Почему трансляция используется на этапе DHCPREQUEST?

19

Это процесс DHCPоперации, введите описание изображения здесь

У меня вопрос на 3-м шаге, почему Клиент отправляет широковещательную рассылку, а не одноадресную рассылку, поскольку после двух предыдущих операций должен быть известен адрес сервера DHCP / сервера ретрансляции?

Магомет
источник
Вам помог какой-нибудь ответ? Если это так, вы должны принять ответ, чтобы вопрос не появлялся вечно, ища ответ. Кроме того, вы можете предоставить и принять свой собственный ответ.
Рон Мопин

Ответы:

30

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

Серверы получают широковещательную рассылку DHCPREQUEST от клиента. Те серверы, которые не выбраны в сообщении DHCPREQUEST, используют это сообщение как уведомление о том, что клиент отклонил предложение этого сервера.

Протокол предполагает, что может быть несколько серверов DHCP. Передавая сообщение запроса, все серверы, которые могли выдать предложение, могут знать о выборе клиента.

Boomi
источник
11

Возможно, у вас может быть несколько DHCP-серверов - запрос отправляется как широковещательный, чтобы уведомить другие DHCP-серверы, которые потенциально отправили предложения, о том, что их предложение не принято.

Zac67
источник
7

Поскольку до тех пор, пока сервер не отправит DHCPACK, у клиента все еще нет IP-адреса. Сервер DHCP может ответить на запрос с помощью DHCPNACK.

YLearn
источник
Почему это подразумевает необходимость использования широковещательной передачи? Клиенту известен MAC-адрес сервера из сообщения DHCPOFFER, поэтому он может отправить одноадресную рассылку DHCPREQUEST на этот сервер - для этого не требуется IP-адрес.
psmears
1
@psmears, потому что трансляции L3 отправляются как трансляции L2. DHCP не является протоколом L2, поэтому вы обязаны соблюдать правила, поскольку данные передаются из L3 в L2.
YLearn
2
@YLearn: Вам также нужен IP-адрес источника и назначения для многоадресного или широковещательного пакета L3, так что это явно не проблема :) Нет теоретической причины, по которой пакет DHCPREQUEST не мог быть отправлен с IP-адресом назначения и MAC-адресом получателя. сервер и (как и в случае широковещательного пакета) исходный IP-адрес 0.0.0.0. Причина такой трансляции заключается в том, чтобы сообщить другим DHCP-серверам (если таковые имеются), что клиент отклоняет их предложения.
psmears
1
@psmears, назначение трансляции L3 - 255.255.255.255. Вы можете получить трансляцию L3 с 0.0.0.0. Однако вы не можете использовать одноадресную передачу L3 с версии 0.0.0.0.
YLearn
2
@YLearn: Вы, конечно, можете отправить пакет с байтами для адреса источника, установленного на ноль! Это может быть запрещено некоторыми RFC - вы знаете об этом? RFC1700 говорит, что 0.0.0.0 «может использоваться только как адрес источника» (но ничего об одноадресной / широковещательной передаче); RFC1122 говорит 0.0.0.0 «НЕ ДОЛЖЕН отправляться, кроме как в качестве адреса источника как части процедуры инициализации, с помощью которой хост узнает свой собственный IP-адрес» (опять же, нет ограничений uni / broadcast). Это обязательно где-то еще?
psmears