我使用LXD
和cloud-init
配置一个具有两个接口的实例,这些接口通过 DHCP 分配 IP。
eth0
(10.23.44.177/24)连接到主机(lxdbr0)上的网桥,以连接到互联网。enp5s0
(192.168.100.179)连接到没有互联网访问的私有局域网上的另一个节点。
我的问题是,我可以 ping 8.8.8.8 或私有 LAN 上的 IP,但它们都严重滞后,10 秒内无法工作,然后 ping 成功,然后一段时间内没有任何反应。如果我关闭其中一个接口,另一个接口工作正常。我肯定是我的路由出了问题。
这里有一些信息。
$ ip route s
default via 192.168.100.1 dev enp5s0 proto dhcp src 192.168.100.179 metric 100
default via 10.23.44.1 dev eth0 proto dhcp src 10.23.44.177 metric 100
10.23.44.0/24 dev eth0 proto kernel scope link src 10.23.44.177
10.23.44.1 dev eth0 proto dhcp scope link src 10.23.44.177 metric 100
192.168.100.0/24 dev enp5s0 proto kernel scope link src 192.168.100.179
192.168.100.1 dev enp5s0 proto dhcp scope link src 192.168.100.179 metric 100
$ ifconfig
enp5s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.179 netmask 255.255.255.0 broadcast 192.168.100.255
inet6 fe80::216:xxxx:xxxx:xxxx prefixlen 64 scopeid 0x20<link>
ether 00:16:3e:xx:xx:xx txqueuelen 1000 (Ethernet)
RX packets 144 bytes 15102 (15.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 705 bytes 55690 (55.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.23.44.177 netmask 255.255.255.0 broadcast 10.23.44.255
inet6 fd42:45c6:df12:80cb:216:xxxx:xxxx:xxxx prefixlen 64 scopeid 0x0<global>
inet6 fe80::216:3eff:xxxx:xxxx prefixlen 64 scopeid 0x20<link>
ether 00:16:3e:12:xx:xx txqueuelen 1000 (Ethernet)
RX packets 15620 bytes 95337338 (95.3 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 10186 bytes 740093 (740.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 182 bytes 17262 (17.2 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 182 bytes 17262 (17.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
有人能帮我修复我的路线吗?
答案1
您从两个 DHCP 服务器获取两个默认网关,因此您的机器有两个具有相同度量的默认路由;它不知道哪一个是首选,并尝试同时使用它们,但结果好坏参半。
您需要删除此路线:
default via 192.168.100.1 dev enp5s0 proto dhcp src 192.168.100.179 metric 100
但是,这是由 DHCP 服务器提供给您的,因此可能很难永久摆脱它;您可能需要一个在接口启动后删除路由的脚本。
如果您可以控制 192.168.100.0/24 专用网络上的 DHCP 服务器,则应将其配置为不提供默认网关。否则,您需要在提供路由后删除该路由。