systemd-resolve неправильно разрешается внутри сетевого пространства имен

systemd-resolve неправильно разрешается внутри сетевого пространства имен

У меня есть машина Ubuntu с сетевым пространством имен (ns1), подключенная к сетевому пространству имен хоста через veth. Я создал правило MASQUERADE в iptables для доступа в Интернет и могу пинговать 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)

Почему запрос, поступающий из сетевого пространства имен, пытается разрешить не hostname google.com, а hostname ip-10-0-10-40.eu-west-3.compute.internal? Последнее, по-видимому, является hostname моей машины Ubuntu

РЕДАКТИРОВАТЬ

Если я останавливаю systemd-resolve и добавляю upstream nameserver, то все работает. Следовательно, это должно быть проблема с systemd-resolve

решение1

systemd-resolveперепишет ваш DNS, чтобы он указывал на 127.0.0.53 по умолчанию. Он недоступен в созданном вами пространстве имен, поэтому поиск DNS невозможен.

Попробуйте использовать его dig google.com. @1.1.1.1, и он должен работать, независимо от того, systemd-resolveзапущен он или нет.

Связанный контент