LinuxネットワークネームスペースのDnsmasqの問題

LinuxネットワークネームスペースのDnsmasqの問題

dnsmasqを仮想マシンのネームサーバーとして使用しようとしています。すべてのVMで、/etc/resolv.confこれはVMが192.168.15.3確認されたドメイン名にアクセスする必要があることを意味します。ただし、192.168.15.3を保持するインターフェイスは、ホストのネットワーク名前空間内にあります。

ping 192.168.15.3VMとホスト(ネットワークネームスペース内)の両方からアクセスできます。ネットワーク名前空間の外側には、lsof -i:53dnsmasqがポート53でリッスンしていることが示されています。ネットワークネームスペース内で実行してもlsof -i:53何もありません。

/etc/resolv.confホストのパブリックネームスペース内のすべてのインターフェイスのIPアドレスを使用するように変更すると、名前解決は正しく機能します。 dnsmasqプロセスには問題がないようです。

dnsmasqを停止した後にこれを試してみましたが、ip netns exec <THE NAMESPACE> systemctl start dnsmasqdnsmasqがパブリック名前空間内でポートを開くだけであることがわかります。

仮想マシン内で変更したくなく、ホストでのみ構成したい場合はresolv.confどうすればよいですか?ネットワークネームスペース内でポート53にアクセスできるようにする方法は?

ベストアンサー1

http://man7.org/linux/man-pages/man8/ip-netns.8.html

ネットワークネームスペースは、独自のルーティング、ファイアウォールルール、およびネットワークデバイスを含む論理的にネットワークスタックの別のコピーです。

したがって、次のようなものが必要です。 iptablesはDNSルックアップIPとポートをリダイレクトします。

おすすめ記事