Debian - 双 WAN - DHCP 接口上的静态路由

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 设置,但最终似乎还是要知道下一跳地址。

我正在尝试解决的问题——由于我不知道下一跳地址(因为它通过 DHCP 不断变化),如何为 eth1 设置静态路由?

答案1

假设您正在运行dhclient(ISC DHCP 客户端),您可以添加一个脚本,/etc/dhcp/dhclient-enter-hooks.d该脚本获取 DHCP 网关地址(它位于某个环境变量或其他变量中)并更新路由表。确切的实现留给读者练习。

(强制性的“你的 ISP 很烂”附录:你的 ISP真的糟透了)

答案2

你尝试过这个吗?

ip route add 10.100.0.0/16 dev eth1

如果这仍然不起作用,很有可能存在路由冲突,请尝试添加度量或检查route -n

相关内容