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デフォルトでは、DNS を 127.0.0.53 を指すように書き換えます。作成した名前空間ではアクセスできないため、DNS ルックアップは失敗します。

使用してみると、実行中かどうかに関係なくdig google.com. @1.1.1.1動作するはずです。systemd-resolve

関連情報