Debian
Debian - 雙 WAN - DHCP 介面上的靜態路由
我有兩個 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