DHCPREQUESTステップでブロードキャストが使用されるのはなぜですか?


19

これはDHCP操作のプロセスです。 ここに画像の説明を入力してください

私の質問は、前の2つの操作の後にDHCPサーバー/リレーサーバーのアドレスを知る必要があるため、クライアントユニキャストではなくブロードキャストを送信する3番目のステップです。


何か答えがありましたか?もしそうなら、質問が永遠にポップアップし続けないように答えを受け入れて、答えを探してください。または、独自の回答を提供して受け入れることもできます。
ロンモーピン

回答:


30

https://tools.ietf.org/html/rfc2131#page-13

サーバーは、クライアントからDHCPREQUESTブロードキャストを受信します。DHCPREQUESTメッセージで選択されていないサーバーは、クライアントがそのサーバーの提供を拒否したという通知としてメッセージを使用します。

このプロトコルは、複数のDHCPサーバーが存在する可能性があると想定しています。要求メッセージをブロードキャストすることにより、オファーを発行した可能性のあるすべてのサーバーがクライアントの選択を認識できます。


11

潜在的に複数のDHCPサーバーを持つことができます-オファーが送信されない可能性があるオファーを送信した可能性がある他のDHCPサーバーに通知するために、要求がブロードキャストとして送信されます。


7

サーバーがDHCPACKを送信するまで、クライアントにはIPアドレスがないためです。DHCPサーバーは、DHCPNACKで要求に応答することができます。


クライアントがDHCPOFFERメッセージからサーバーのMACアドレスを知っているので、クライアントはDHCPREQUESTユニキャストをそのサーバーに送信できます-そのためにIPアドレスは必要ありません。
psmears

1
L3ブロードキャストはL2ブロードキャストとして送信されるため、@ psmears。DHCPはL2プロトコルではないため、データがL3からL2に渡されるときにルールにバインドされます。
YLearn

2
@YLearn:L3マルチキャストまたはブロードキャストパケットの送信元および宛先IPも必要なので、それは明らかに問題ではありません:) DHCPREQUESTパケットを送信先IPおよびMACサーバー、および(ブロードキャストパケットの場合と同様に)ソースIP 0.0.0.0。ブロードキャストの理由は、クライアントが提供を拒否していることを他のDHCPサーバー(ある場合)に知らせるためです。
psmears

1
@ psmears、L3ブロードキャストの宛先は255.255.255.255です。0.0.0.0からL3ブロードキャストをソースできます。ただし、0.0.0.0からL3ユニキャストを送信することはできません。
YLearn

2
@YLearn:送信元アドレスのバイトがゼロに設定されたパケットを送信できます!ただし、一部のRFCでは禁止されている場合があります-知っていますか?RFC1700には、0.0.0.0が「送信元アドレスとしてのみ使用できる」と書かれています(ただし、ユニキャスト/ブロードキャストについては何もありません)。RFC1122は、ホストが自身のIPアドレスを学習する初期化手順の一部としてソースアドレスとして送信する場合を除き、送信する必要があります0.0.0.0を言います(再び、ユニ/ブロードキャスト制限なし)。これはどこか他の場所で義務付けられていますか?
psmears
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.