เหตุใดจึงใช้การออกอากาศในขั้นตอน DHCPREQUEST


19

นี่คือกระบวนการของDHCPการดำเนินการ ป้อนคำอธิบายรูปภาพที่นี่

คำถามของฉันอยู่ที่ขั้นตอนที่ 3 เหตุใดไคลเอนต์จึงส่งBroadcastและไม่ใช่Unicastเพราะหลังจากการดำเนินการสองครั้งก่อนหน้านี้ที่อยู่ของเซิร์ฟเวอร์ DHCP / เซิร์ฟเวอร์ Relay ควรเป็นที่รู้จักกันหรือไม่


คำตอบใดช่วยคุณได้บ้าง ถ้าเป็นเช่นนั้นคุณควรยอมรับคำตอบเพื่อที่คำถามจะไม่โผล่ขึ้นมาเรื่อย ๆ โดยมองหาคำตอบ อีกวิธีหนึ่งคุณสามารถให้และยอมรับคำตอบของคุณเอง
Ron Maupin

คำตอบ:


30

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

เซิร์ฟเวอร์ได้รับการถ่ายทอด DHCPREQUEST จากลูกค้า เซิร์ฟเวอร์เหล่านั้นไม่ได้เลือกโดยข้อความ DHCPREQUEST ใช้ข้อความเป็นการแจ้งเตือนว่าลูกค้าปฏิเสธข้อเสนอของเซิร์ฟเวอร์นั้น

โปรโตคอลสันนิษฐานว่าอาจมีเซิร์ฟเวอร์ DHCP หลายเครื่อง โดยการกระจายข้อความคำขอเซิร์ฟเวอร์ทั้งหมดที่อาจมีการเสนอให้สามารถทราบถึงทางเลือกของลูกค้า


11

คุณสามารถมีเซิร์ฟเวอร์ DHCP หลายเครื่อง - คำขอจะถูกส่งเป็นการกระจายสัญญาณเพื่อแจ้งเซิร์ฟเวอร์ DHCP อื่น ๆ ที่อาจส่งข้อเสนอที่ไม่ได้รับข้อเสนอ


7

เนื่องจากจนกระทั่งเซิร์ฟเวอร์ส่ง DHCPACK ไคลเอ็นต์ยังคงไม่มีที่อยู่ IP เป็นไปได้ที่เซิร์ฟเวอร์ DHCP จะตอบกลับคำขอด้วย DHCPNACK


เหตุใดจึงบอกเป็นนัยว่าการออกอากาศจะต้องใช้ไคลเอ็นต์รู้ MAC address ของเซิร์ฟเวอร์จากข้อความ DHCPOFFER ดังนั้นจึงสามารถส่ง DHCPREQUEST unicast ไปยังเซิร์ฟเวอร์นั้น - ไม่จำเป็นต้องมีที่อยู่ IP เพื่อให้เกิดขึ้น
psmears

1
@psmears เนื่องจากการออกอากาศ L3 ถูกส่งเป็นการออกอากาศ L2 DHCP ไม่ใช่โปรโตคอล L2 ดังนั้นคุณจะผูกพันกับกฎเนื่องจากข้อมูลถูกส่งผ่านจาก L3 ถึง L2
YLearn

2
@YLearn: คุณต้องการ IP ต้นทางและปลายทางสำหรับ L3 multicast หรือ Broadcast packet ด้วยดังนั้นมันจึงไม่ใช่ปัญหาชัดเจน :) ไม่มีเหตุผลทางทฤษฎีว่าทำไมแพ็กเก็ต DHCPREQUEST ไม่สามารถส่งกับ IP ปลายทางและ MAC ของ เซิร์ฟเวอร์และ (เช่นเดียวกับแพ็กเก็ตบรอดคาสต์) IP ต้นทาง 0.0.0.0 สาเหตุของการออกอากาศคือเพื่อให้เซิร์ฟเวอร์ DHCP อื่น ๆ (ถ้ามี) ทราบว่าไคลเอ็นต์กำลังปฏิเสธข้อเสนอ
psmears

1
@psmears ปลายทางของการออกอากาศ L3 คือ 255.255.255.255 คุณสามารถหาแหล่งออกอากาศ L3 ได้จาก 0.0.0.0 อย่างไรก็ตามคุณไม่สามารถจัดหา L3 unicast จาก 0.0.0.0 ได้
YLearn

2
@YLearn: แน่นอนคุณสามารถส่งแพ็คเก็ตที่มีไบต์สำหรับที่อยู่แหล่งที่ตั้งเป็นศูนย์! นั่นอาจถูกห้ามโดย RFC บางคน - คุณรู้จักหรือไม่ RFC1700 บอกว่า 0.0.0.0 "อาจใช้เป็นที่อยู่แหล่งที่มา" (แต่ไม่มีอะไรเกี่ยวกับ unicast / Broadcast) RFC1122 บอกว่า 0.0.0.0 "ต้องไม่ส่งยกเว้นเป็นแหล่งที่อยู่ซึ่งเป็นส่วนหนึ่งของขั้นตอนการเริ่มต้นที่โฮสต์เรียนรู้ที่อยู่ IP ของตัวเอง" (อีกครั้งไม่มีข้อ จำกัด uni / Broadcast) สิ่งนี้ได้รับคำสั่งจากที่อื่นหรือไม่?
psmears
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.