DHCP Relay Agent применяется для предоставления DHCP-серверу дополнительных данных о полученном DHCP-запросе. К таким данным можно отнести информацию об устройстве, на котором запущен DHCP Relay Agent, а также информацию oб ONT, с которого получен DHCP-запрос. Модификация DHCP-пакетов производится путем перехвата и последующей обработки на CPU устройства.
Идентификация ONT на DHCP-сервере производится путем анализа содержимого DHCP option 82.
Опция 82 DHCP (DHCP option 82) — опция протокола DHCP, использующаяся для того чтобы проинформировать DHCP-сервер о том, от какого DHCP-ретранслятора и через какой его порт был получен запрос.
Опция 82 состоит из двух подопций:
- Agent Circuit ID — содержит информацию о том, с какого порта пришел запрос на DHCP-ретранслятор.
- Agent Remote ID — идентификатор самого DHCP-ретранслятора.
Более подробную информацию о опции 82 можно прочитать в рекомендации RFC-3046
DHCP Relay Agent позволяет как прозрачно передать эту опцию с ONT, так и сформировать или перезаписать ее по заданному формату. Использование DHCP option 82 особенно актуально, когда в сети нет выделенных VLAN для каждого пользователя.
DHCP Relay Agent поддерживает настраиваемый формат как подопции Circuit ID, так и Remote ID.
1. Настройка профиля DHCP Relay Agent
Перейдите в режим редактирования нужного профиля dhcp-ra:
LTP-8X(config)# profile dhcp-ra dhcp-ra-01
Включите обработку DHCP трафика:
LTP-8X(config-dhcp-ra)("dhcp-ra-01")# enable
При необходимости включите вставку/перезапись DHCP option 82:
LTP-8X(config-dhcp-ra)("dhcp-ra-01")# overwrite-option82
При необходимости задайте формат DHCP option 82 командами overwrite- option82 circuit-id и overwrite-option82 remote-id:
LTP-8X(config-dhcp-ra)("dhcp-ra-01")# overwrite-option82 circuit-id "%HOSTNAME%%MAC%%OPT82_CID%" LTP-8X(config-dhcp-ra)("dhcp-ra-01")# overwrite-option82 remote-id "%OPT82_RID%"
Список лексем, доступных для использования:
Лексема | Описание |
---|---|
%HOSTNAME% | Сетевое имя терминала |
%MNGIP% | IP-адрес терминала |
%GPON-PORT% | Номер канала OLT, с которого пришёл DHCP request |
%ONTID% | Идентификатор ONT, отправившего DHCP request |
%PONSERIAL% | Серийный номер ONT, отправившего DHCP request |
%GEMID% | Номер GEM-порта, в котором пришёл DHCP request |
%VLAN0% | Внешний VID |
%VLAN1% | Внутренний VID |
%MAC% | MAC-адрес ONT, с которого пришёл запрос |
%OLTMAC% | MAC-адрес OLT |
%OPT60% | DHCP option 60, пришедшая от ONT |
%OPT82_CID% | Circuit ID, пришедшая от ONT |
%OPT82_RID% | Remote ID, пришедшая от ONT |
%DESCR% | Первые 20 символов описания ONT |
При необходимости задействуйте защиту от DoS атак командой dos-block. Укажите порог интенсивности DHCP-запросов в секунду, после которого следует блокировка командой dos-block packet-limit.
LTP-8X(config-dhcp-ra)("dhcp-ra-01")# dos-block LTP-8X(config-dhcp-ra)("dhcp-ra-01")# dos-block packet-limit 200 LTP-8X(config-dhcp-ra)("dhcp-ra-01")# dos-block block-time 300
При необходимости настройте список доверенных (trusted) DHCP-серверов командами trusted primary и trusted secondary. Задайте таймаут ответа DHCP-серверов командой trusted timeout. Активируйте механизм фильтрации командой trusted. Примените изменения командой commit.
LTP-8X(config-dhcp-ra)("dhcp-ra-01")# trusted primary 10.0.0.1 LTP-8X(config-dhcp-ra)("dhcp-ra-01")# trusted secondary 10.0.0.2 LTP-8X(config-dhcp-ra)("dhcp-ra-01")# trusted timeout 100 LTP-8X(config-dhcp-ra)("dhcp-ra-01")# trusted LTP-8X(config-dhcp-ra)("dhcp-ra-01")# do commit
Далее сформированный профиль необходимо назначить на OLT-чипы.
LTP-8X# configure terminal LTP-8X(config)# gpon olt profile dhcp-ra dhcp-ra-01 LTP-8X(config)# do commit LTP-8X(config)# do save
Есть возможность назначения профиля dhcp-ra на отдельный vlan. В этом случае все правила профиля будут работать только для указанного vlan.
LTP-8X# configure terminal LTP-8X(config)# gpon olt profile dhcpra dhcp-ra-01 vid 100 LTP-8X(config)# do commit LTP-8X(config)# do save
Для просмотра конфигурации GPON OLT, просмотра назначенных профилей, в том числе профиля dhcp-ra, используйте команду:
LTP-8X# show gpon olt configuration
2. Настройка broadcast-unicast relay
В целях уменьшения широковещательного трафика и во избежание ответов от нежелательных DHCP-серверов возможно формирование unicast-обмена через DHCP Relay Agent. В данном примере настраивается перенаправление dhcp-запросов ONT из сервисного vlan (2000) в management vlan (1209).
Перейдите в режим конфигурирования switch, затем в раздел редактирования сервисного VLAN:
LTP-8X(switch)(config)# vlan 2000
Создайте L3-интерфейс, задав IP-адрес для VLAN, которая используется для cross-connect type management (актуально только для single-tag сервиса). Здесь можно прописать ip адрес из той подсети, которую планируете использовать для распределения адресов между ONT. Данная подсеть с нужным диапазоном ip адресов должна быть настроена на вышестоящем dhcp сервере.
LTP-8X(switch)(config-vlan)# ip address 10.10.10.1/32
Включите relay в vlan 2000:
LTP-8X(switch)(config-vlan)# ip dhcp relaying LTP-8X(switch)(config-vlan)# exit
Перейдите в режим редактирования 1209.
LTP-8X(switch)(config)# vlan 1209
Создайте L3-интерфейс, задав IP-адрес для VLAN, которая используется для коммутации с сетью, в которой расположен DHCP-сервер.
LTP-8X(switch)(config-vlan)# ip address 192.168.209.240/24 LTP-8X(switch)(config-vlan)# exit
Укажите адрес DHCP-сервера.
LTP-8X(switch)(config)# ip dhcp relay 192.168.209.5
Если адрес DHCP-сервера находится за маршрутизатором, доступным за указанным L3-интерфейсом, настройте статический маршрут:
LTP-8X(switch)(config)# ip dhcp relay 192.168.56.1 LTP-8X(switch)(config)# commit LTP-8X(switch)(config)# exit LTP-8X# configure terminal LTP-8X(config)# ip route prefix 192.168.56.0 mask 24 gateway 192.168.209.5 LTP-8X(config)# do commit