dnsmasqを仮想マシンのネームサーバーとして使用しようとしています。すべてのVMで、/etc/resolv.conf
これはVMが192.168.15.3
確認されたドメイン名にアクセスする必要があることを意味します。ただし、192.168.15.3を保持するインターフェイスは、ホストのネットワーク名前空間内にあります。
ping 192.168.15.3
VMとホスト(ネットワークネームスペース内)の両方からアクセスできます。ネットワーク名前空間の外側には、lsof -i:53
dnsmasqがポート53でリッスンしていることが示されています。ネットワークネームスペース内で実行してもlsof -i:53
何もありません。
/etc/resolv.conf
ホストのパブリックネームスペース内のすべてのインターフェイスのIPアドレスを使用するように変更すると、名前解決は正しく機能します。 dnsmasqプロセスには問題がないようです。
dnsmasqを停止した後にこれを試してみましたが、ip netns exec <THE NAMESPACE> systemctl start dnsmasq
dnsmasqがパブリック名前空間内でポートを開くだけであることがわかります。
仮想マシン内で変更したくなく、ホストでのみ構成したい場合はresolv.conf
どうすればよいですか?ネットワークネームスペース内でポート53にアクセスできるようにする方法は?
ベストアンサー1
http://man7.org/linux/man-pages/man8/ip-netns.8.html
ネットワークネームスペースは、独自のルーティング、ファイアウォールルール、およびネットワークデバイスを含む論理的にネットワークスタックの別のコピーです。
したがって、次のようなものが必要です。 iptablesはDNSルックアップIPとポートをリダイレクトします。