我有一台 Linux 机器 Ubuntu 22.04,上面有两个接口,分别称为bond0
和bond1
。这台机器有 IP10.242.87.123
和以下名称服务器:
nameserver 161.26.0.7
nameserver 161.26.0.8
该服务器是 Patroni/PostgreSQL 集群的一部分,我们更改了 neplan,使其能够与同一集群的另外两台机器(10.242.23.122 和 10.242.23.126)通信。以下是 neplan:
network:
ethernets:
ens3:
dhcp4: true
match:
macaddress: 02:00:07:3c:53:e3
set-name: bond0
ens4:
dhcp4: true
match:
macaddress: 02:00:09:3c:53:e3
set-name: bond1
routes:
- to: 10.242.23.122/32
via: 10.242.87.1
- to: 10.242.151.126/32
via: 10.242.87.1
version: 2
我们在其他 Linux Ubuntu 22 上也做了同样的事情,没有问题。问题是这台机器的路由表有这样的 DNS 条目:
161.26.0.6 0.0.0.0 255.255.255.255 UH 100 0 0 bond1
161.26.0.6 10.242.151.1 255.255.255.255 UGH 100 0 0 bond0
161.26.0.7 0.0.0.0 255.255.255.255 UH 100 0 0 bond1
161.26.0.7 10.242.151.1 255.255.255.255 UGH 100 0 0 bond0
161.26.0.8 0.0.0.0 255.255.255.255 UH 100 0 0 bond1
161.26.0.8 10.242.151.1 255.255.255.255 UGH 100 0 0 bond0
如果我使用以下命令删除它们:
route del -net 161.26.0.6 netmask 255.255.255.255 dev bond1
route del -net 161.26.0.7 netmask 255.255.255.255 dev bond1
route del -net 161.26.0.8 netmask 255.255.255.255 dev bond1
我能够使用 DNS 名称 ping 外部服务器(在删除 DNS 之前,无法访问它)。问题是后台进程将它们重新添加回来。幸运的是,这次错误的条目以这种方式添加:
161.26.0.6 10.242.151.1 255.255.255.255 UGH 100 0 0 bond0
161.26.0.6 0.0.0.0 255.255.255.255 UH 100 0 0 bond1
161.26.0.7 10.242.151.1 255.255.255.255 UGH 100 0 0 bond0
161.26.0.7 0.0.0.0 255.255.255.255 UH 100 0 0 bond1
161.26.0.8 10.242.151.1 255.255.255.255 UGH 100 0 0 bond0
161.26.0.8 0.0.0.0 255.255.255.255 UH 100 0 0 bond1
所以它可以工作,因为 0.0.0.0 条目可能位于具有真实网关的条目之后。我的问题是:
- 为什么我在其他集群的 Ubuntu 22 机器上没有遇到同样的问题
- 添加这些额外条目的后台进程是什么?
- 我的 netplan 配置文件可能是导致该问题的根本原因吗?