Как маршрутизаторы обрабатывают ограниченные и направленные трансляции
Первое, что нужно понять, чтобы ответить на ваши вопросы, это то, что ограниченные кадры вещания не маршрутизируются. По умолчанию, когда маршрутизатор получает кадр с адресом назначения, который транслируется на уровне 2 или 3, маршрутизатор просто отбрасывает кадр. Вот почему роутеры считаются границей широковещательных доменов.
Вот некоторые примеры:
ff-ff-ff-ff-ff-ff
(трансляция 2 уровня)
255.255.255.255
(уровень 3, ограниченная трансляция)
Думая об этом, это имеет смысл. Если бы маршрутизаторы передавали широковещательные рассылки, один запрос arp достиг бы каждого доступного хоста в Интернете, что было бы ужасно неэффективно и довольно глупо.
Направленные передачи с другой стороны иногда маршрутизируются. (IE 192.168.1.255/24
) Обычно по умолчанию эта функция отключена, но ее можно включить, введя ip directed-broadcast
команду на маршрутизаторе. Это позволит ему пересылать направленные широковещательные сообщения в соответствии с таблицей маршрутизации, как если бы они были обычными пакетами. Это, однако, не позволяет маршрутизатору пересылать ограниченные широковещательные сообщения, которые по умолчанию все еще заблокированы. Это также немного не по теме вашего первоначального вопроса, см. Эту страницу форм Cisco для получения дополнительной информации по этому вопросу.
Уровень 3, но не уровень 2?
Чтобы ответить на ваш второй вопрос, не имеет смысла иметь кадр с широковещательным адресом уровня 3 без широковещательного адреса уровня 2. Это победило бы всю цель того, чтобы быть вещательным кадром и просто не работать напрямую. Наличие адреса назначения одноадресного уровня 2 не изменит поведение маршрутизатора вообще, поскольку маршрутизатор принимает свои решения на уровне 3. Все, что заботит маршрутизатор, - это 255.255.255.255
адрес назначения и отбрасывает пакет.
Это важно для коммутаторов, которые вообще не заботятся об адресе уровня 3. Коммутаторы увидят только адрес одноадресного уровня 2. Вместо отправки пакета через все интерфейсы в одном и том же vlan он использовал бы таблицу адресов источника (SAT), как это было бы с любым другим адресом назначения одноадресной передачи. Фактически, при назначении адреса одноадресного уровня 2 кадр больше не является широковещательным кадром, даже если он имеет 255.255.255.255
адрес на уровне 3.
Как работает DHCP-ретрансляция на практике
Что касается вашего последнего вопроса, то ретрансляция DHCP - это способ «обмана» роутера вокруг правила о запрете пересылки широковещательных пакетов. Давайте посмотрим на пакет DHCP Discover:
- Исходный MAC: [одноадресный Mac источника]
- Dest MAC:
ff-ff-ff-ff-ff-ff
- Исходный IP:
0.0.0.0
- IP-адрес назначения:
255.255.255.255
- Исходный порт: UDP 68
- Порт назначения: UDP 67
Когда маршрутизатор видит, что пакет поступает на интерфейс с ip helper-address
настроенной командой, он проверяет, совпадает ли он с любым из протоколов, которые «помогли» по умолчанию или настроены с помощью глобальной ip forward-protocol
команды. В этом случае, поскольку это DHCP, маршрутизатор видит, что порт назначения соответствует UDP 67, и позволяет «помогать» пакету. Затем маршрутизатор изменяет IP-адрес назначения с 255.255.255.255
IP-адреса, настроенного ip helper-address
командой, а также изменяет адрес источника на адрес интерфейса маршрутизатора, на который поступил пакет, и передает пакет по остальной части логики маршрутизации.
Теперь, когда пакет имеет адрес назначения одноадресной рассылки, маршрутизатор обрабатывает его как любой другой пакет. Он запрашивает IP-адрес назначения (который теперь является вспомогательным адресом), а затем заменяет адреса уровня 2 перед отправкой пакета из соответствующего интерфейса.
Возвращаясь снова
Маршрутизатор использует практически тот же процесс в обратном порядке для предложения DHCP, которое отправляется обратно клиенту. Серверы DHCP отправляют предложение на IP-адрес, указанный в качестве адреса источника в пакете обнаружения DHCP. Таким образом, пакет, покидающий сервер DHCP, выглядит следующим образом:
- Исходный MAC: одноадресный Mac DHCP-сервера
- Dest MAC: MAC-адрес маршрутизатора или шлюза по умолчанию для DHCP-сервера
- IP-адрес источника: индивидуальный IP-адрес сервера DHCP
- IP-адрес назначения: IP-адрес первого интерфейса маршрутизатора, к которому обратился пакет DHCP Discover
- Порт источника: UDP 67
- Порт назначения: UDP 68
Поскольку этот пакет имеет одноадресный уровень 3, маршрутизаторы адреса назначения будут пересылать пакет в обычном режиме до тех пор, пока он не достигнет маршрутизатора с интерфейсом, IP-адрес которого соответствует IP-адресу назначения пакета. Из предыдущего помните, что этот маршрутизатор все еще имеет ip helper-address
конфигурацию на этом интерфейсе. Маршрутизатор проверяет, является ли пакет предложением DHCP, затем переписывает пакет, чтобы стать широковещательным пакетом, и отправляет его обратно на этот интерфейс, зная, что клиент DHCP находится где-то в этом сегменте сети. Пакет, покидающий маршрутизатор, теперь выглядит следующим образом.
- Исходный MAC: одноадресный Mac интерфейса маршрутизатора
- Dest MAC:
ff-ff-ff-ff-ff-ff
- IP-адрес источника: индивидуальный IP-адрес сервера DHCP
- IP-адрес назначения:
255.255.255.255
- Порт источника: UDP 67
- Порт назначения: UDP 68
TL: DR; Ретранслятор DHCP, использующий ip helper-address
подкоманду интерфейса, «обманывает» правило, согласно которому маршрутизаторы не могут пересылать ограниченные широковещательные сообщения, изменяя IP-адрес назначения пакета на одноадресный IP-адрес сервера DHCP перед его маршрутизацией. Это позволяет всем маршрутизаторам вниз по линии соответствующим образом направить пакет на сервер DHCP. При ответе сервер DHCP отправляет пакет обратно на одноадресный IP-адрес интерфейса маршрутизатора, который первым получил пакет обнаружения DHCP (тот, который с ip helper-interface
командой). Когда маршрутизатор получает предложение обратно, он преобразует его обратно в широковещательный пакет и отправляет его на интерфейс с клиентом в своем широковещательном домене.