Debian 中具有两个接口的默认路由

Debian 中具有两个接口的默认路由

我有一台带有两个接口的 Debian 机器,由 dhcp 配置:

allow-hotplug eth0
iface eth0 inet dhcp

allow-hotplug eth1
iface eth1 inet dhcp

在启动时,会向 eth1 添加一条默认路由:

0.0.0.0         10.200.10.253   0.0.0.0         UG    0      0        0 eth1
10.0.2.0        0.0.0.0         255.255.255.0   U     0      0        0 eth0
10.200.10.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1

但我需要将默认路由改为 eth0 上的网关。删除默认路由并在启动后运行 dhclient 即可:

$ sudo route del default
$ sudo dhclient -v eth0

我知道我可以把它放上去rc.local,但是有没有更“干净”的方法来做到这一点?

我不能使用静态地址。

答案1

在我看来,似乎生成的两个 DHCP 客户端(每个客户端都有其对应的 iface)都获得了默认网关并开始竞争。事情就是这样发生的,开启的那个eth1肯定获胜(无论出于什么原因)。

解决方案似乎并不明显,因为它取决于您的设置。从逻辑上讲,使用 DHCP 获取默认网关意味着您不必关心它在哪里。

基于,我会尝试添加

interface eth1 {
    supersede routers ""
}

看看/etc/dhcp/dhclient.conf会发生什么。这个想法是让supersede任何routers由 DHCP 服务器提供的 IP 地址都通过 DHCP 服务器到达eth1

相关内容