我使用 Ubuntu,并且我有很多接口。eth0 是我的互联网连接,它从完全不受我控制的 DHCP 服务器获取信息。
然后我有 eth1、eth2、eth3 和 eth4,我为它们创建了一个 DHCP 服务器。(ISC DHCP 服务器)
它似乎起作用了,我甚至从面向互联网的接口上的外部 DHCP 服务器获取了一个 IP 地址。
但是,出于某种原因,在我为 eth1-eth4 安装本地 DHCP 服务器后,eth0 网关似乎出问题了。(我之所以这么认为,是因为我获得了 eth0 的 IP,我可以 ping 通本地网络上的其他东西,但无法访问互联网)。
/etc/network/interfaces 中有关 eth0 的特定信息:auto lo iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 10.0.1.1
netmask 255.255.255.0
network 10.0.1.0
broadcast 10.0.1.255
gateway 10.0.1.1
mtu 8192
auto eth2
iface eth2 inet static
address 10.0.2.1
netmask 255.255.255.0
network 10.0.2.0
broadcast 10.0.2.255
gateway 10.0.2.1
mtu 8192
我的 /etc/default/isc-dhcp-server:
INTERFACES="eth1 eth2 eth3 eth4"
那么,为什么当我告诉本地 DHCP 服务器不要监听 eth0 时,它会破坏 eth0 的网关?有人看到这个问题吗?或者我能做些什么来修复它?
问题似乎确实出在网关上。“netstat -nr”显示:
0.0.0.0 --- 10.X.X.X ---- 0.0.0.0 --- UG 0 0 0 eth3
应该是
0.0.0.0 129.2XX.X.X 0.0.0.0 UG 0 0 0 eth0
因此由于某种原因,我的本地 DHCP 服务器覆盖了我从网络 DHCP 获得的网关。
编辑:dhcp.conf 看起来像这样(我仅包含了 eth1 子网的信息):
ddns-update-style none;
not authoritative;
subnet 10.0.1.0 netmask 255.255.255.0 { interface eth1;
option domain-name "example.org";
option domain-name-servers ns1.example.org,
ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
range 10.0.1.10 10.0.1.100;
host camera1_1 { hardware ethernet 00:30:53:11:24:6E; fixed-address 10.0.1.10; }
host camera2_1 { hardware ethernet 00:30:53:10:16:70; fixed-address 10.0.1.11; }
}
此外,如果我在终端中运行“/etc/init.d/networking restart”,网关似乎设置正确,但这对我没有帮助,我需要在启动时设置正确的网关,我宁愿找到问题的根源
答案1
所以我找到了解决方案。我与 DHCP 服务器无关。默认网关被更改的原因是由于 eth1、eth2 等的网关参数。由于我实际上不需要为它们指定网关,所以我只是删除了 /etc/network/interfaces 中的所有网关内容。