我的一台工作服务器在连接中央服务器时遇到问题。这是突然发生的,之前它可以正常工作,现在在另一台相同的工作服务器上仍然可以正常工作。
经过检查,问题原来是这样的:
root@svc1:~# nslookup central.example.com
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: central.example.com
Address: 26.156.133.221
Name: central.example.com
Address: 64:ff9b::2ea6:1337
systemd-resolvd
似乎认为中央服务器有一个 ipv6 地址。但实际上没有,而且从来没有:
root@svc1:~# dig central.example.com @ns1.example.com in AAAA
...
# there is no ANSWER SECTION
我可能可以通过某种方式清除本地 DNS 缓存并修复连接问题。但这种情况怎么会发生?我该如何防止这种情况再次发生?
答案1
前缀64:ff9b::
是众所周知的 NAT64 前缀。出于某种原因,systemd 认为您处于仅 IPv6 网络上,无法访问 IPv4 地址。因此,它会尝试提供帮助并合成 NAT64 地址,以便您能够通过该地址到达目的地。
我不知道 systemd 为什么会这样做 :(