私はネットワーキングクラスでDHCPを学んでおり、調査の一環として、次のビデオを見ていました。
https://www.youtube.com/watch?v=0UvLRVlPx6A
したがって、上記のビデオ(3:48)のWiresharkキャプチャでは、すべてのDHCP OFFER、REQUEST、およびACKメッセージの宛先IPとしてブロードキャストアドレスがあります。
一方、次の記事では、DISCOVERメッセージを除くすべてのメッセージがユニキャストであると述べています。
https://www.grandmetric.com/2017/07/18/what-is-dhcp-and-how-does-it-work/
私の質問は次のとおりです:1。それらのどれが正しいですか?それは本当にケースバイケースに依存していますか?
DHCPの信頼できるソースの可能性が高い RFC 2131 。これが セクション3.1 からの抜粋です
- クライアントは、ローカルの物理サブネットでDHCPDISCOVERメッセージをブロードキャストします。
[...]
- 各サーバーはDHCPOFFERメッセージで応答する場合があります
[...]
- クライアントは、1つ以上のサーバーから1つ以上のDHCPOFFERメッセージを受信します。クライアントは、複数の応答を待つことを選択できます。クライアントは、DHCPOFFERメッセージで提供される構成パラメーターに基づいて、構成パラメーターを要求するサーバーを1つ選択します。 クライアントはDHCPREQUESTメッセージをブロードキャストします。このメッセージには、選択したサーバーを示す「サーバー識別子」オプションを含める必要があります。
[...] 4.サーバーは、クライアントからDHCPREQUESTブロードキャストを受信します。 DHCPREQUESTメッセージで選択されていないサーバーは、クライアントがそのサーバーのオファーを拒否したことを通知するメッセージとしてメッセージを使用します。
そして説明は続く。ブロードキャストが送信されるときはいつでも、それは明示的に述べられています。
したがって、高可用性を実現するために、ネットワークブロードキャストドメインに複数のDHCPサーバーが存在する可能性があるという事実に主に関連しています。最初のDHCPREQUESTで通信がユニキャストに切り替わっていた場合、他の冗長サーバーは、クライアントが他のサーバーを選択したかどうか(提供されたIPアドレスをより速くリサイクルできるようにする)、またはそれが消えたばかりかどうかを認識しません。
セクション4.1 で説明されている使用規則は他にもあります。ほとんどの場合、クライアントが割り当てられたIPアドレス(ソース0.0.0.0ではなく)の使用を開始すると、通信はユニキャストに切り替わります。
'giaddr'フィールドがゼロで、 'ciaddr'フィールドがゼロ以外の場合、サーバーはDHCPOFFERおよびDHCPACKメッセージを 'ciaddr'のアドレスにユニキャストします。 。 'giaddr'がゼロで 'ciaddr'がゼロで、ブロードキャストビットが設定されている場合、サーバーはDHCPOFFERおよびDHCPACKメッセージを0xffffffffにブロードキャストします。ブロードキャストビットが設定されておらず、「giaddr」がゼロで「ciaddr」がゼロの場合、サーバーはDHCPOFFERおよびDHCPACKメッセージをクライアントのハードウェアアドレスと「yiaddr」アドレス。いずれの場合も、「giaddr」がゼロの場合、サーバーはDHCPNAKメッセージを0xffffffffにブロードキャストします。
注:IPアドレスへのユニキャストには最初にARP解決が必要です(したがって、クライアントはIPアドレスを構成する必要があります)。ハードウェアアドレスへのユニキャストは必要ありません(クライアントにIPがない場合の最初のDHCPOFFERに使用されます)。 )。
また、たとえば、セクション4.3.2では、DHCPREQUESTのさまざまな使用例について説明しています。SELECTION状態(最初の使用)、INIT-REBOOT(キャッシュされた情報ですが、使用しなくなった後)、またはRENEWING(リースの延長)です。 3番目のケースでは、メッセージはユニキャストを使用して送信する必要があると述べています。