是的,我一次又一次地知道……但我没有看到,也许有人看到了我的问题。我必须通过具有 Internet 访问权限的服务器 (10.0.0.5) 转发连接到 eth1 (9.0.0.5) 的内部办公网络 (此处为 9.0.0.0/24)。
以下是我的起点:
/etc/网络/接口
# INTERNET
auto eth0
iface eth0 inet static
address 10.0.0.5
netmask 255.255.255.248 # we've got only 5 IPs with Internet connection.
gateway 10.0.0.1 # the gateway where we get our signal from
dns-name-servers 1.2.3.4 # DNS-Server
# OFFICE - DNS-Server running on this iface giving IPs of the network 9.0.0.0/24
auto eth1
iface eth1 inet static
address 9.0.0.5
netmask 255.255.255.0
路线-n
target Router Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
9.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
10.0.0.0 0.0.0.0 255.255.255.248 U 0 0 0 eth0
此外,在 eth1 上运行着一个 DHCP 服务器,其设置如下
/etc/dhcp/dhpcd.conf
ddns-update-style none;
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
authoritative;
log-facility local7;
### OUR OFFICE NETWORK
subnet 9.0.0.0 netmask 255.255.255.0 {
range 9.0.0.10 9.0.0.252;
option subnet-mask 255.255.255.0;
option routers 10.0.0.5; # <- The servers eth1 IP here?
}
我错过了什么?
答案1
谢谢你的图片,它让事情变得更清楚。
首先,由于您的客户端位于网络中9.0.0.0/24
,因此他们需要在同一个子网中有一个默认路由器(他们不知道如何到达另一个子网),因此 DHCP 条目应该读取option routers 9.0.0.5
- 该子网中“我的服务器”的地址。
现在他们应该将任何其他网络(除9.0.0.0
)的数据包发送到该地址,9.0.0.5
希望知道如何路由它们。
由于“我的服务器”具有到的默认路由10.0.0.1
,因此如果目的地在其直接连接的网络之外,它将把这些数据包传递给“网关”。希望“网关”能够使用 NAT 将它们传递得更远。到目前为止,一切都还好。
当目标主机(例如151.101.65.69
)尝试响应时,它会将响应发送到“网关”;该主机知道请求来自9.0.0.10
。但现在有一个问题:“网关”没有到 的路由9.0.0.0/24
,因此再次将数据包传递到其默认路由(或者可能丢弃它,因为您的专用网络根本没有路由)。
如果您无权更改“网关”的配置,有两种解决方案: