Задачей DHCP Relay агента является передача DHCP-пакетов от клиента к серверу и обратно в случае, если DHCP-сервер находится в одной сети, а клиент в другой. Другой функцией является добавление дополнительных опций в DHCP-запросы клиента (например, опции 82).
Принцип работы DHCP Relay агента на коммутаторе: коммутатор принимает от клиента DHCP- запросы, передает эти запросы серверу от имени клиента (оставляя в запросе опции с требуемыми клиентом параметрами и, в зависимости от конфигурации, добавляя свои опции). Получив ответ от сервера, коммутатор передает его клиенту.
Пример настройки на коммутаторе агрегации. В данной схеме интерфейс коммутатора является шлюзом для клиента:
1) Включить глобально dhcp relay:
ip dhcp relay enable
2) Задать ip-адрес доступного dhcp-сервера (192.168.10.5):
ip dhcp relay address 192.168.10.5
3) Включить добавление dhcp option 82 (при необходимости):
ip dhcp information option
Настроить формат добавления dhcp option 82:
ip dhcp relay information option suboption-type custom
либо
ip dhcp relay information option suboption-type tr101
4) Включить dhcp relay в клиентском vlan:
interface vlan 1
ip dhcp relay enable
ip address 192.168.1.1
5) В vlan'е где находится dhcp-сервера настроить ip-адрес:
interface vlan 10
ip address 192.168.10.1
При конфигурации DHCP-сервера следует обратить внимание на то, чтобы выдаваемые адреса находились в одной подсети с клиентским интерфейсом (interface vlan 1)
Пример настройки на коммутаторе доступа. В данной схеме на коммутаторе настраивается только dhcp relay, при этом шлюз находится на вышестоящем коммутаторе агрегации:
1) Включить глобально dhcp relay:
ip dhcp relay enable
2) Задать ip-адрес доступного dhcp-сервера (192.168.10.5):
ip dhcp relay address 192.168.10.5
3) Настроить формат добавления dhcp option 82 (при необходимости). Дополнительных настроек для включения опции не требуется. Опция добавляется автоматически:
ip dhcp relay information option suboption-type custom
либо
ip dhcp relay information option suboption-type tr101
4) Включить dhcp relay в клиентском vlan:
interface vlan 1
ip dhcp relay enable
5) В vlan'е где находится dhcp-сервера настроить ip-адрес:
interface vlan 10
ip address 192.168.10.1
При конфигурации DHCP-сервера следует обратить внимание на то, чтобы в ответах от сервера сохранялась опция 82, подставленная DHCP Relay.
Коммутаторы поддерживают возможность явного определения адреса relay агента, с которого будут отправляться клиентские dhcp пакеты на dhcp сервер. Настраивается командой ip dhcp relay gateway-address <ip_address> в контексте конфигурации клиентского svi, либо физического интерфейса.
Данный функционал используется в сценариях с несколькими ip адресами на клиентском интерфейсе. К примеру, в следующей конфигурации:
relay#sh run vlan database vlan 5,10 exit ! ip dhcp relay address 10.10.10.5 ip dhcp relay enable ! hostname relay ! interface TenGigabitEthernet1/0/1 switchport mode trunk switchport trunk allowed vlan add 5 exit ! interface TenGigabitEthernet1/0/2 switchport access vlan 10 exit ! interface vlan 5 ip address 10.10.10.1 255.255.255.0 exit ! interface vlan 10 ip address 192.168.10.1 255.255.255.0 ip address 192.168.20.1 255.255.255.0 ip dhcp relay enable exit ! ! end |
relay агент, получив широковещательный dhcp discover от dhcp клиента, формирует новый пакет с адресом 192.168.10.1 в поле giaddr, и уже unicast'ом отправляет его на адрес dhcp сервера 10.10.10.5.
Для передачи dhcp discover с secondary ip, например при необходимости выбора определенного адресного пула на dhcp сервере, выполним команду ip dhcp relay gateway-address 192.168.20.1 в контексте конфигурации interface vlan 10.
Теперь, формируемый relay агентом dhcp discover, имеет адрес 192.168.20.1 в поле giaddr, этот же адрес устанавливается в поле source address заголовка ip:
