Debian

Debian - 雙 WAN - DHCP 介面上的靜態路由

  • October 5, 2017

我有兩個 WAN 介面進入 Debian 8 VM。

WAN 1 - 所有網際網路和本地流量。(0.0.0.0/0) 有一個靜態 IP,因此 IP、網路遮罩和網關是固定值。

WAN 2 - 僅特定的私有子網流量 (10.100.0.0/16)。通過 DHCP 獲得的 IP,可以是 10.0.0.0/8 範圍內的任何位置。

我無法控制 WAN2(連結由 ISP 提供),所以我面臨著雙網關的情況。

現在,這就是我的設置方式。

iface eth0 inet static
address 172.16.100.100
netmask 255.255.255.0
gateway 172.16.100.1

iface eth1 inet dhcp

然後我手動調出 eth1,獲取 DHCP 網關 IP,然後手動為 10.100.0.0/16 設置靜態路由。當然,這可以正常工作,直到 DHCP 租約更新,大約每 4 天更新一次。此時我必須關閉 eth1,將其重新啟動,記下新網關並設置新的靜態路由。

我嘗試通過 eth1 設置到 10.100.0.0/16 的靜態路由,但不知道下一跳網關 IP .. 當然這不起作用。

我也嘗試了幾個 iproute2 設置,但它仍然歸結為知道它看起來的下一跳地址。

我要解決的問題 - 我如何為 eth1 設置靜態路由,因為我不知道下一跳地址,因為它通過 DHCP 不斷變化?

假設您正在執行dhclient(ISC DHCP 客戶端),您可以添加一個腳本/etc/dhcp/dhclient-enter-hooks.d來獲取 DHCP 網關地址(它在某個環境變數或其他環境變數中)並更新路由表。確切的實現留給讀者作為練習。

(強制性的“你的 ISP 很爛”附錄:你的 ISP真的很爛)

你試過這個嗎?

ip route add 10.100.0.0/16 dev eth1

如果這仍然不起作用,很有可能存在路由衝突,請嘗試添加指標或檢查route -n

引用自:https://serverfault.com/questions/874954