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 獲取預設 GW 意味著您不關心它在哪裡。

基於,我會嘗試添加

interface eth1 {
    supersede routers ""
}

看看/etc/dhcp/dhclient.conf會發生什麼事。這個想法是supersede任何routers由 DHCP 伺服器提供的服務都可以eth1透過任何方式到達。

相關內容