处理具有多个 IP 的 Linux 计算机上释放主公网 IP 后 DNS 解析失败的问题

处理具有多个 IP 的 Linux 计算机上释放主公网 IP 后 DNS 解析失败的问题

我在具有多个网络接口和 IP 地址的 Linux 机器上遇到了一个问题。具体来说,在 ens3 接口上发布主要公共 IP(我们称之为 112. * .* .1)后,DNS 解析失败。

经过调查,我发现默认路由的源 IP(通过 ip route)在路由表中保持不变。因此,DNS查询会尝试使用过时的源 IP(112.*.*.1),从而导致名称解析暂时失败。

我正在寻求有关如何在发布主要公共 IP 后确保正确解析 DNS 的指导。是否有推荐的配置或自动化机制来处理这种情况并相应地更新默认路由的源 IP?

附加信息:

操作系统:

 Operating System: Ubuntu 20.04.1 LTS 
 Kernel: Linux 5.4.0-42-generic
 Network Configuration Tool: Netplan

DNS解析失败:

root@ecsb6285de3e605:~#  ping -I  112. *.* .2  www.amazon.com 
ping: www.amazon.com: Temporary failure in name resolution

root@ecsb6285de3e605:~# ping -I  112. *.* .2  8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 112. *.* .1 : 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=3.08 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=3.10 ms

网络配置:

ip route 的输出:

root@ecsb6285de3e605:~# ip r 
default via 112.73.32.1 dev ens3 proto static 
10.0.0.0/8 via 10.105.2.1 dev ens2 proto static 
10.105.2.0/24 dev ens2 proto kernel scope link src 10.105.2.195 
112.*.*.*/19 dev ens3 proto kernel scope link src 112.*.*.*

ip a 的输出:

root@ecsb6285de3e605:~#  ip a 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:f7:f1:5c brd ff:ff:ff:ff:ff:ff
    inet 10.105.2.195/24 brd 10.105.2.255 scope global ens2
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fef7:f15c/64 scope link 
       valid_lft forever preferred_lft forever
3: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 52:54:00:8f:fc:23 brd ff:ff:ff:ff:ff:ff
    inet 112.*.*.1/19 brd 112.*.*.255 scope global ens3
       valid_lft forever preferred_lft forever
    inet 112.*.*.2/19 brd 112.*.*.255 scope global secondary ens3
       valid_lft forever preferred_lft forever
    inet 112.*.*.3/19 brd 112.*.*.255 scope global secondary ens3
       valid_lft forever preferred_lft forever
    inet 112.*.*.4/19 brd 112.*.*.255 scope global secondary ens3
       valid_lft forever preferred_lft forever
    inet 112.*.*.5/19 brd 112.*.*.255 scope global secondary ens3
       valid_lft forever preferred_lft forever

ip a现象:释放主IP(112.*.*.1)后,DNS解析失败,但是释放112.*.*.1后,或的输出没有任何变化ip route

当明确指定源 IP 时(例如,使用 ip route change default via GATEWAY_IP dev ens3 proto static src Unreleased_EIP),DNS 解析将按预期运行。

DNS 解析成功后,使用的默认路由是:

default via GATEWAY_IP dev ens3 proto static src 112.*.*.2 

src 地址可以是任何未发布的弹性 IP (EIP)。

相关内容