web-dev-qa-db-ja.com

DNSMASQの代わりに特定のDNSサーバーを使用するようにLXCを構成する

デフォルトでは、LXCコンテナーは、lxc-netサービスで開始されるdnsmasqの実行中のインスタンスに接続します。

私の場合、ネームコインを介して登録されている.bitドメインを参照できるncdnsと呼ばれるものに接続するローカルの非バインドDNSサーバーを実行しています。

これらの2つは矛盾しています。私のlxcコンテナはDNSのdnsmasqに依存しており、DNSはポート53で実行されます。同時に、.bitドメインに到達するには、unboundサーバーをポート53で実行する必要があります。 (非標準ポートを使用してネームサーバーをresolv.confに含めることができない可能性については この投稿 のコメントを参照してください。また、IRCチャネルと基本的に、非標準ポートでDNSサーバーをresolv.confにポイントすることは基本的に不可能であることを学びました。

したがって、LXCのものをサポートし、.bitドメインを解決することもできる結合DNSサーバーを作成し、それをポート53で実行する必要があります。

私のunboundサーバーは.bitドメインを再帰的に解決し、他のすべてのドメインをルーターに転送して、すべてのドメインを効果的に解決できると考えられます。

質問は次のとおりです。

1:どのようにしてlxc-netにdnsmasqを開始しないように指示しますか?

2:unboundは、追加の構成なしではLXCコンテナーのDNSサーバーとして機能しないと思います。 lxcコンテナに対してunboundが行うことを実行するように、dnsmasqを構成するにはどうすればよいですか? (この質問への答えは、lxc-net(まだ見つけていません)によって起動されたときに使用するdnsmasq confファイルの場所であり、バインドされていない状態でその構成をコピーすることを試みることができます。 lxc-netで使用されるdnsmasqconfファイルと同じ情報があります)

2
jcarpenter2

さて、私はそれを手に入れたと思います。私はこの答えを受け入れますが、これがうまくいかなかったことが判明した場合は、別の質問を投稿します。

私はまだこのコンピューターで3(!)のDNSサーバーを実行しています:dnsmasq LXCに付属しているので(まったく「そのまま」ではありません。下記を参照)、ncdnsとNamecoin DNSサーバーとunbound

繰り返しますが、ポート53で実行できるDNSサーバーは1つだけなので、そのポートにはどちらかを選択する必要があります。 unboundの設定を拡張して、dnsmasqが行うことを実行するか、またはその逆を行うことができます。 dnsmasqはすでにLXCで動作するように複雑に構成されているようであり、unboundが実行できないDHCPサーバーとしても機能するため、これを開始点とすることにしました。

次の内容の/etc/dnsmasq.confファイルを作成しました。

listen-address=127.0.0.1
resolv-file=/etc/resolv.dnsmasq.conf
server=/bit./127.0.0.1#5301

1行目は、dnsmasqが私のローカルアドレスをリッスンできるようにし、LXCコンテナーだけでなくPCの名前も解決します。 2行目は、特別なresolvファイルを使用するようにdnsmasqに指示します。このファイルは、resolv.confからコピーして貼り付けました(気になる場合は、ルーターのIPを指します)。最後の3行目は、ポート5301で実行されているunboundサーバーにリクエストが転送される.bitスタブドメインを追加します。

Resolv.confファイルも単純に変更しました

nameserver 127.0.0.1

すべてのDNSルックアップがdnsmasqによって実行されるようにします。

2
jcarpenter2