
いくつかのローカル サブネットを接続する複数の OpenWrt ルーターを備えたプライベート ネットワークがあります。いくつかのルーターで NAT を使用して、異なるプロバイダー経由でインターネットにアクセスできるようにしています。
ローカル DNS 再帰キャッシュ リゾルバ (Unbound) を実行し、すべてのローカル サブネット上のすべてのクライアントにサービスを提供します。
各ルータはローカル サブネットの DHCP を処理し、ホスト名を割り当てます。ただし、すべてのサブネットは my-example.com の下にあります。(したがって、ルータ 1 のクライアントは 'client1.router1.my-example.com' になります)
すべてのルーターが DHCP クライアントをメインの DNS 提供ルーターに報告するようにして、任意のローカル サブネット上の任意のクライアントが名前で他のクライアントにアクセスできるようにしたいと思います。(ルーティングはすでに機能しており、IP アドレスで任意の場所から任意の場所にアクセスできます。)
メイン DNS マシンにプライベート ダイナミック DNS セットアップのようなものが必要なようですが、適切なパッケージが見つかりません。
すべてのローカル DHCP クライアント名 (異なるルーターのすべてのサブネットから) を、ローカル ネットワーク内の他のすべてのクライアントが利用できるようにするにはどうすればよいですか?
答え1
DNS をそのままにして、サフィックスに応じて適切なネームサーバーにリクエストを転送するように中央の Unbound サーバーを構成することもできます。これは、forward-zone
またはstub-zone
ブロックを使用して実行できます。(どちらも動作は非常に似ていますが、あなたの場合は、stub-zone
権威サーバーを直接ポイントしているのに対し、 は別の再帰リゾルバーを指すことを期待しているため、 の方が正確ですforward-zone
。) たとえば、次のようになります。
stub-zone:
name: "router1.my-example.com."
stub-addr: <IPv4 address of router1>
stub-addr: <IPv6 address of router1>
stub-first: yes
(パブリックDNSでは、通常サブドメインを設定します代表団レコードを使用するNS
- これにより、たとえば<foo>.router1.my-example.com
別のサーバーによって処理されることがリゾルバーに通知されます。
あるいはだろうルータがレコードを中央サーバに直接登録するようにダイナミック DNS を設定することは可能ですが、そのためにはまったく別のソフトウェアに切り替える必要があるでしょう。中央サーバ側では、Unbound を BIND9 またはゾーンをホストでき、RFC 2136「DNS 更新」プロトコルをサポートする他のものに置き換える必要があるでしょう。また、ルータでは、そのような更新を送信する方法を知っている DHCP サーバが必要になります。
OpenWRT に追加のオプションがあるかどうかはわかりませんが、ルーターでは現在 Dnsmasq が実行されているのではないかと思います。Dnsmasq は、すべて同じプロセスで実行されているため、動的なホスト名を実行できます。つまり、同じプログラムが DNS と DHCP の両方を処理します。ただし、DNS 更新を他の場所に送信する方法がわかりません。正しいパラメータで--dhcp-script
実行させるには、 Dnsmasq を使用する必要がありますnsupdate
。(ISC DHCP サーバーは DDNS をサポートしており、BIND とペアになっていることがよくありますが、現在はメンテナンスされていません。)