![DHCPオファーはすでにローカルIPアドレスに送信されています](https://rvso.com/image/1497071/DHCP%E3%82%AA%E3%83%95%E3%82%A1%E3%83%BC%E3%81%AF%E3%81%99%E3%81%A7%E3%81%AB%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%ABIP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%AB%E9%80%81%E4%BF%A1%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99.png)
現在のローカル IP アドレスを解放し、新しい IP アドレスを割り当てるために、ターミナルに次のコマンドを入力しました。
sudo ipconfig set en0 BOOTP
sudo ipconfig set en0 DHCP
これは、Wireshark での DHCP パケットのスクリーンショットです。
私が読んでいる本によると、DHCP Offer メッセージは 255.255.255.255 にブロードキャストされるはずです。そうではありません。ルーターが私のアドレスを付与する前から、どうして私のアドレスを知っているのか、私には理解できません。192.168.1.5 は確かに私の古いアドレスです。ルーターは私の MAC アドレスを保存し、古い IP アドレスにマッピングしているのでしょうか。ルーター (実際には任意の DHCP サーバー) に新しい別の IP を強制的に付与させることは可能ですか。
答え1
DHCP サーバーは、DHCP 要求から MAC アドレスを取得します。実際に正しい宛先に配信されるのは MAC アドレスだけなので、提供された IP アドレスを応答パケットの IP ヘッダー (および DHCP ペイロード) に含めることができます。
更新 (ウィキペディア)
DHCP サーバーは、クライアントから IP アドレスのリース要求である DHCPDISCOVER メッセージを受信すると、クライアントの IP アドレスを予約し、クライアントに DHCPOFFER メッセージを送信してリースを提供します。このメッセージには、クライアントの MAC アドレス、サーバーが提供する IP アドレス、サブネット マスク、リース期間、およびオファーを行う DHCP サーバーの IP アドレスが含まれます。
リクエスト
これは、DHCP DISCOVERリクエストです。Wireshark サンプル
これは 00:0b:82:01:fc:42 から来て、ff:ff:ff:ff:ff:ff (ブロードキャスト アドレス) に送られることに注意してください。
また、関連するRFC言う
- クライアントは、ローカルの物理サブネット上でDHCPDISCOVERメッセージをブロードキャストします。DHCPDISCOVERメッセージには、ネットワークアドレスの値を提案するオプションが含まれる場合があります。およびリース期間。BOOTP リレー エージェントは、同じ物理サブネット上にない DHCP サーバーにメッセージを渡す場合があります。
クライアントは、DHCP サーバーに、昨日電源を切る前に使用していた IP アドレスを割り当ててもらえないかと問い合わせることができます。そのアドレスが別のクライアントに割り当てられていない場合、DHCP サーバーはこれを許可する場合があります。
返事
これが返信です (DHCP OFFER)
ソースは00:08:74:AD:F1:9B、宛先は00:0b:82:01:fc:42であることに注意してください。
これはすべて LAN ローカルであるため、IP ヘッダーのアドレス フィールドの内容は無関係です。パケットを必要な場所に届けるために使用されるのは、イーサネット ヘッダーのアドレス フィールドだけです。