
当社には、DHCP サーバーとしても機能するルーターがあります。ただし、このルーターは設定があまりできないため、結果として IPv6 と IPv4 の両方の DNS サーバーが常に提供されるため、一部のデバイスが LAN 上の一部のサーバーを認識できなくなり、DNS オーバーライドによって、世界に表示されるアドレスではなくローカル アドレスを返すことができなくなります。
私たちが検討している回避策の 1 つは、これらのサーバーの 1 つに DHCP サーバーを設定することです。サーバーが稼働していれば、どの DNS サーバーを使用するかに関して適切に設定された DHCP 応答を送信します。実行できるのはこの DHCP サーバーだけですが、このマシンが何らかの理由でダウンすると、他の DHCP サーバーがその不足を補うことができないため、すべてがダウンするように見えます。ただし、DHCP サーバーをバックアップとして実行すると (ダウンすることはめったにありません)、他のサーバーが応答しないかダウンしていない限り、アドレスを配布しないように、何らかの方法でそのサーバーの優先度を下げる必要があります。
どうすればこれができるでしょうか?
答え1
残念ながら、DHCP プロトコルではこれを実行する方法は提供されていません。
DHCP RFC では、クライアントが複数の DHCP OFFER (複数のサーバーからなど) を受信した場合、クライアントがどの OFFER を受け入れるか決定できるとされています。ただし、その選択アルゴリズムは、DHCP クライアント実装者の実装詳細として残されています。
Apple の DHCP クライアント (macOS、iOS、watchOS、tvOS、HomePod など) には、より多くの DHCP オプションを含む OFFER を選択するヒューリスティックがあることはわかっています。これは、「実際の」企業 DHCP サーバーは、多くの追加の DHCP オプション (使用する LDAP サーバーおよび WINS サーバーのリストなど) を提供するように構成されている可能性が高いのに対し、一部の消費者向けホーム ネットワーク デバイスに組み込まれたランダムな DHCP サーバーは、DHCP オプションのリストがはるかに短い (企業 LAN に誤って接続された Wi-Fi ホーム ゲートウェイ ルーターなど) という、驚くほど信頼性の高い仮定に基づいています。
Windows、Android、その他の Linux などの他の DHCP クライアント実装における DHCP OFFER 選択アルゴリズムについては、私にはわかりません。ネットワーク上の多くの DHCP クライアント実装では、最初に表示された OFFER を選択するか、X ミリ秒間リッスンした後に最後に表示された OFFER を選択するだけかもしれません。実際に知る方法はありません。一般的なオープン ソース DHCP クライアント実装のソースを調べることはできますが、Microsoft がどこかで公開文書化していない限り、Windows DHCP クライアントのさまざまなバージョンが何を行うかを知る方法はないと思います。