我有 2 个网络接口连接到我的机器。(Fwiw 它是一个带有主(默认)ENI 和附加的辅助 ENI 的 aws 实例,每个 ENI 都具有关联的公共和私有 IP 地址。)
我添加了第二个路由表,引入了表规则,并根据我的喜好在主表和附加表中添加和删除了几条路由。
一切正常,除了定期,一个额外的不需要的(破坏的)默认网关路由被添加到主表中。对此负责的守护进程是什么?
为了更好地衡量它的相关性,这是我的配置:
的内容/etc/netplan/50-cloud-init.yaml
:
version: 2
ethernets:
ens5:
dhcp4: true
match:
macaddress: 06:c5:b4:81:5d:a2
set-name: ens5
ens6:
dhcp4: true
match:
macaddress: 06:23:d7:eb:f9:f1 # ENI assigned
set-name: ens6
main
桌子:
default via 10.1.2.1 dev ens5 proto dhcp src 10.1.2.251 metric 100
10.1.2.0/24 dev ens5 proto kernel scope link src 10.1.2.251
10.1.2.1 dev ens5 proto dhcp scope link src 10.1.2.251 metric 100
rt2
桌子:
default via 10.1.2.1 dev ens6 src 10.1.2.34
10.1.2.0/24 dev ens6 scope link src 10.1.2.34
路由表rt2
是稳定的,但该main
表不会长时间包含单个默认网关。有时我可以终止 ssh 会话并返回,一切都没有改变;其他时候,如果我再等一会儿,当我 ssh 回到新的默认网关时就会添加。Ubuntu 20.04 中的某些东西,可能在 netplan 或 dhcp 守护程序中,或者可能是 aws(?) 或其他东西,定期将以下两行添加回main
表中:
default via 10.1.2.1 dev ens6 proto dhcp src 10.1.2.34 metric 100
10.1.2.1 dev ens6 proto dhcp scope link src 10.1.2.34 metric 100
我可以使用类似的命令再次删除它们,sudo ip route del default via 10.2.1.1 dev ens6
但它们永远不会停止重新添加。这会导致非对称路由情况,因为它会中断我与 iface 的 ssh 连接,因此非常不方便ens6
。
这很可能来自 DHCP 服务器。您已启用 DHCP,但未指定您不想从 DHCP 服务器获取路由。
为避免这种情况,您可以指定: