systemd-resolve 在网络命名空间内解析不正确

systemd-resolve 在网络命名空间内解析不正确

我有一台带有网络命名空间 (ns1) 的 Ubuntu 机器,该机器通过 veth 连接到主机网络命名空间。我在 iptables 中创建了 MASQUERADE 规则来访问互联网,并且我可以从网络命名空间 ping 8.8.8.8。

当我dig google.com从主机执行此操作时,它可以工作,并且我在主界面中看到:

08:03:02.376478 IP 10.0.10.40.51566 > 10.0.10.2.53: 48449+ [1au] A? google.com. (39)
08:03:02.378335 IP 10.0.10.2.53 > 10.0.10.40.51566: 48449 1/0/1 A 216.58.204.110 (55)

但是,当我在网络命名空间中执行 dig: 时sudo ip netns ns1 dig google.com,它不起作用,这是我在主机主界面中看到的内容:

08:03:09.033958 IP 10.0.10.40.50888 > 10.0.10.2.53: 32798+ [1au] A? ip-10-0-10-40.eu-west-3.compute.internal. (69)
08:03:09.034152 IP 10.0.10.40.36297 > 10.0.10.2.53: 43961+ [1au] AAAA? ip-10-0-10-40.eu-west-3.compute.internal. (69)
08:03:09.034460 IP 10.0.10.2.53 > 10.0.10.40.50888: 32798 NXDomain 0/1/1 (144)
08:03:09.034460 IP 10.0.10.2.53 > 10.0.10.40.36297: 43961 NXDomain 0/1/1 (144)
08:03:09.034559 IP 10.0.10.40.50888 > 10.0.10.2.53: 32798+ A? ip-10-0-10-40.eu-west-3.compute.internal. (58)
08:03:09.034639 IP 10.0.10.40.36297 > 10.0.10.2.53: 43961+ AAAA? ip-10-0-10-40.eu-west-3.compute.internal. (58)
08:03:09.034837 IP 10.0.10.2.53 > 10.0.10.40.50888: 32798 NXDomain 0/1/0 (133)
08:03:09.034906 IP 10.0.10.2.53 > 10.0.10.40.36297: 43961 NXDomain 0/1/0 (133)

为什么来自网络命名空间的请求不是尝试解析主机名google.com而是主机名ip-10-0-10-40.eu-west-3.compute.internal?后者显然是我的 Ubuntu 机器的主机名

编辑

如果我停止 systemd-resolve 并添加上游名称服务器,它就会正常工作。因此,这一定是 systemd-resolve 的问题

答案1

systemd-resolve默认情况下将重写您的 DNS 以指向 127.0.0.53。它在您创建的命名空间中不可访问,因此 DNS 查找失败。

尝试使用,无论是否正在运行,dig google.com. @1.1.1.1它都应该可以工作。systemd-resolve

相关内容