デフォルトでは、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ファイルと同じ情報があります)
さて、私はそれを手に入れたと思います。私はこの答えを受け入れますが、これがうまくいかなかったことが判明した場合は、別の質問を投稿します。
私はまだこのコンピューターで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
によって実行されるようにします。