Ubuntu 20.04升级后路由表频繁异常变更的排查与修复方案咨询
Ubuntu 20.04升级后路由表频繁异常变更的排查与修复方案咨询
我家里的路由器通过enp2s0连接WLAN,通过enp3s0连接内部LAN(192.168.10.0/24)。上周从Ubuntu 18.04升级到20.04之后,总有某个进程在我的路由表中反复添加和删除路由,尤其是192.168.10.0/24网段的路由被移除的情况特别影响使用。
有意思的是,192.168.10.0/24的路由会不断出现又消失,就像存在某种竞争条件一样。
当前路由表
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 202 0 0 enp2s0 0.0.0.0 192.168.10.2 0.0.0.0 UG 204 0 0 br0 0.0.0.0 192.168.1.1 0.0.0.0 UG 205 0 0 br1 10.0.3.0 0.0.0.0 255.255.255.0 U 0 0 0 lxcbr0 169.254.0.0 0.0.0.0 255.255.0.0 U 203 0 0 enp3s0 192.168.42.0 0.0.0.0 255.255.255.0 U 207 0 0 vpn_dom 169.254.0.0 0.0.0.0 255.255.0.0 U 211 0 0 veth656d4511 169.254.0.0 0.0.0.0 255.255.0.0 U 213 0 0 veth9cad73ba 169.254.0.0 0.0.0.0 255.255.0.0 U 215 0 0 veth6a01cdf0 169.254.0.0 0.0.0.0 255.255.0.0 U 217 0 0 veth4b13dc4c 192.168.1.0 0.0.0.0 255.255.255.0 U 202 0 0 enp2s0 192.168.1.0 0.0.0.0 255.255.255.0 U 205 0 0 br1 192.168.10.0 0.0.0.0 255.255.255.0 U 204 0 0 br0
Netplan配置文件
network: version: 2 renderer: networkd ethernets: enp2s0: dhcp4: false dhcp6: false enp3s0: dhcp4: false dhcp6: false wlp4s0: dhcp4: false dhcp6: false bridges: br1: interfaces: [enp2s0] dhcp4: false dhcp6: false addresses: [192.168.1.11/24] routes: - to: default via: 192.168.1.1 metric: 1 on-link: true nameservers: addresses: [8.8.8.8] parameters: stp: true forward-delay: 4 br0: interfaces: [enp3s0] dhcp4: false dhcp6: false addresses: [192.168.10.2/24] nameservers: addresses: [8.8.8.8] parameters: stp: true forward-delay: 4
我使用网桥是因为有LXC容器需要桥接这两个外部网络。我怀疑是dhclient在不断添加这些路由,已经确认Network Manager是禁用且未运行的,也没有使用防火墙。
期望的路由表状态
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.10.2 0.0.0.0 UG 100 0 0 br0 0.0.0.0 192.168.1.1 0.0.0.0 UG 1 0 0 br1 10.0.3.0 0.0.0.0 255.255.255.0 U 0 0 0 lxcbr0 192.168.42.0 0.0.0.0 255.255.255.0 U 207 0 0 vpn_dom
目前临时能用的办法是持续运行以下3条命令:
watch sudo ip route add 192.168.10.0/24 dev br0watch sudo route del default gw 192.168.1.1 dev enp2s0watch sudo route del default gw 192.168.10.2 dev br0
显然这只是个勉强能用的临时方案。
重启后的路由表(ip route show输出)
default via 192.168.1.1 dev br1 proto static metric 1 onlink default via 192.168.1.1 dev enp2s0 proto dhcp src 192.168.1.11 metric 202 default via 192.168.10.2 dev br0 proto dhcp src 192.168.10.2 metric 204 default via 192.168.1.1 dev br1 proto dhcp src 192.168.1.11 metric 205 10.0.3.0/24 dev lxcbr0 proto kernel scope link src 10.0.3.1 linkdown 169.254.0.0/16 dev enp3s0 scope link src 169.254.220.38 metric 203 169.254.0.0/16 dev br0 scope link src 169.254.220.38 metric 204 169.254.0.0/16 dev vpn_dom scope link src 169.254.214.249 metric 207 169.254.0.0/16 dev veth51ea584b scope link src 169.254.166.248 metric 211 169.254.0.0/16 dev vethb08250b6 scope link src 169.254.103.110 metric 213 169.254.0.0/16 dev veth9b43ee1b scope link src 169.254.250.25 metric 215 169.254.0.0/16 dev veth3ef55092 scope link src 169.254.46.176 metric 217 169.254.0.0/16 dev wlp4s0 scope link src 169.254.22.8 metric 306 192.168.1.0/24 dev enp2s0 proto dhcp scope link src 192.168.1.11 metric 202 192.168.1.0/24 dev br1 proto dhcp scope link src 192.168.1.11 metric 205 192.168.10.0/24 dev br0 proto dhcp scope link src 192.168.10.2 metric 204
问题咨询
- 如何诊断这个问题?
- 如何禁用/配置那个不断添加和删除多余路由的进程?
- 怎样操作才能达到我期望的路由表状态?
备注:内容来源于stack exchange,提问作者Adam Ryczkowski
相关产品推荐
相关产品推荐

