4

Я смотрю на некоторые пакеты DHCP через Wireshark. Я заметил, что в разделе bootp есть флаг трансляции.

Тем не менее, Dest IP является 255.255.255.255. Разве этого недостаточно, чтобы указать, что оно транслируется? Зачем нужен флаг?

Спасибо,

lang2

2 ответа2

5

Флаг DHCP служит совершенно другой цели. Он устанавливается клиентом для указания серверу, как ответ должен быть отправлен обратно клиенту. Первоначально DHCP-клиент отправляет запрос по широковещательной рассылке, поскольку он не знает IP-адрес сервера. Однако, поскольку сервер знает IP-адрес клиента (он только что предоставил его), сервер может отправить ответ обратно по одноадресной передаче, даже если запрос был отправлен по широковещательной рассылке. Согласно RFC2131:

Клиенту, который не может получать дейтаграммы одноадресной передачи IP, пока его программное обеспечение протокола не настроено с IP-адресом, ДОЛЖНО установить бит BROADCAST в поле 'flags' в 1 в любых сообщениях DHCPDISCOVER или DHCPREQUEST, которые отправляет клиент. Бит BROADCAST предоставит подсказку серверу DHCP и агенту ретрансляции BOOTP для передачи любых сообщений клиенту в его подсети. Клиенту, который может принимать IP-дейтаграммы одноадресной рассылки до того, как его программное обеспечение протокола было настроено, СЛЕДУЕТ сбросить бит BROADCAST в 0.

0

Они находятся на разных уровнях в стеке ISO. IP-адрес назначения 255.255.255.255 делает пакет широковещательным IP-пакетом на уровне IP. Установка широковещательного флага внутри пакета DHCP не сделает этого.

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .