systemd-resolve가 네트워크 네임스페이스 내에서 잘못 확인됩니다.

systemd-resolve가 네트워크 네임스페이스 내에서 잘못 확인됩니다.

veth를 통해 호스트 네트워크 네임스페이스에 연결된 네트워크 네임스페이스(ns1)가 있는 Ubuntu 시스템이 있습니다. 인터넷에 액세스하기 위해 iptables에 MASQUERADE 규칙을 만들었고 네트워크 네임스페이스에서 8.8.8.8을 ping할 수 있습니다.

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기본적으로 127.0.0.53을 가리키도록 DNS를 다시 작성합니다. 생성한 네임스페이스에서는 연결할 수 없으므로 DNS 조회가 실패합니다.

사용해 보면 실행 중이든 아니든 dig google.com. @1.1.1.1작동할 것입니다 .systemd-resolve

관련 정보