4.1. Общие сведения об опции 82
Опция 82 протокола DHCP используется для того, чтобы проинформировать DHCP-сервер о том, от какого DHCP-ретранслятора и через какой его порт был получен запрос. Коммутатор с функцией DHCP-relay или DHCP-snooping добавляет опцию в DHCP-запросы от клиента и передает их серверу. DHCP-сервер, в свою очередь, предоставляет IP-адрес и другую конфигурационную информацию в соответствии с преднастроенными политиками на основании информации, полученной в заголовке опции 82. Коммутатор снимет заголовок опции с принятого от DHCP-сервера сообщения и передаст сообщение клиенту в соответствии с информацией о физическом интерфейсе, указанной в опции. Применение опции 82 прозрачно для клиента.
Сообщение DHCP может включать множество полей различных опций, опция 82 - одна из них. Она должна располагаться после других опций, но до опции 255.
Рисунок 42.1 - формат опции 82
Заголовок опции 82 может содержать несколько суб-опций. RFC3046 описывает 2 суб-опции Circuit-ID и Remote-ID.
4.2. Настройка добавления опции 82
Включить добавление опции 82 DHCP relay;
Включить добавление опции 82 DHCP snooping;
Настроить атрибуты опции 82 DHCP relay на интерфейсе;
Включить опцию 82 для DHCP сервера;
Настроить формат опции 82 для DHCP Relay;
Настроить разделитель;
Настроить метод создания опции 82;
Команды для диагностики опции 82;
Включить добавление опции 82 DHCP relay:
Команда | Описание |
---|---|
ip dhcp relay information option no ip dhcp relay information option ! В режиме глобальной конфигурации | Включить опцию 82 для добавления DHCP relay Выключить добавление опции 82 DHCP relay; |
2. Включить добавление опции 82 DHCP snooping;
Команда | Описание |
---|---|
ip dhcp snooping information enable no ip dhcp snooping information enable ! В режиме глобальной конфигурации | Включить опцию 82 для добавления DHCP snooping Выключить добавление опции 82 DHCP snooping; |
3. Настроить атрибуты опции 82;
Команда | Описание |
---|---|
ip dhcp relay information policy {drop | keep | replace} no ip dhcp relay information policy ! В режиме конфигурирования интерфейса VLAN | Настроить режим политики при получении DHCP запроса, который уже содержит опцию 82: drop - запрос будет отброшен; keep - запрос будет передан без обработки; replace - поле опции 82 будет добавлено заново, после чего запросу будет передан серверу. Восстановить значение по-умолчанию (replace) |
ip dhcp snooping information option allow-untrusted [replace] no ip dhcp snooping information option allow-untrusted ! В режиме глобальной конфигурации | Разрешить передачу DHCP-запросов c добавленной опцией 82, полученные с недоверенных портов, replace - поле опции 82 будет добавлено заново, после чего запросу будет передан серверу. Отбрасывать DHCP-запросы c добавленной опцией 82, полученные с недоверенных портов (по-умолчанию) |
ip dhcp {snooping | relay} information option subscriber-id { standard | <circuit-id>}
! В режиме конфигурирования интерфейса | Задать контекст <circuit-id> не длиннее 64 символов, передаваемый в качестве суб-опции Circuit-ID, добавляемой в DHCP-запросы, полученные с интерфейса. Возможно указать следующие ключи: %h: hostname; %v: vlan-id; %M: local MAC в верхнем регистре; %m: local MAC, в нижнем регистре; %R: client MAC,в верхнем регистре; %r: client MAC , в нижнем регистре; %s: slotID; %p: portID; %i: client ip address standard - стандартное имя VLAN и интерфейса (порта), например ”Vlan2+Ethernet1/0/12”. Вернуть значение по-умолчанию (standard) |
ip dhcp {snooping | relay} information option subscriber-id format {hex | acsii} ! В режиме конфигурирования интерфейса | Задать формат опции 82, суб-опции Circuit-ID, добавляемой агентом DHCP-relay |
4. Включить опцию 82 для DHCP сервера;
Команда | Описание |
---|---|
ip dhcp server relay information enable no ip dhcp server relay information enable ! В режиме глобальной конфигурации | Идентифицировать сервером коммутатора опцию 82. Игнорировать сервером коммутатора опцию 82. |
5. Настроить формат опции 82 для DHCP Relay;
Команда | Описание |
---|---|
ip dhcp {snooping | relay} information option subscriber-id format {hex | acsii | vs-hp} ! В режиме глобальной конфигурации | Задать формат опции 82, суб-опции Circuit-ID |
ip dhcp {snooping | relay} information option remote-id format {default | vs-hp} ! В режиме глобальной конфигурации | Задать формат опции 82, суб-опции Remote-ID |
6. Настроить разделитель;
Команда | Описание |
---|---|
ip dhcp {snooping | relay} information option delimiter [colon | dot | slash | space] no ip dhcp {snooping | relay} information option delimiter ! В режиме глобальной конфигурации | Задать разделитель каждого параметра суб-опций опции 82. Восстановить значение по-умолчанию (slash) |
7. Настроить метод создания опции 82;
Команда | Описание |
---|---|
ip dhcp {snooping|relay} information option self-defined remote-id {hostname | mac | string WORD} no ip dhcp {snooping | relay} information option self-defined remote-id ! В режиме глобальной конфигурации | Задать метод создания суб-опции Remote-ID опции 82 Восстановить значение по-умолчанию (mac) |
ip dhcp {snooping | relay} information option self-defined remote-id format [ascii | hex] ! В режиме глобальной конфигурации | Задать формат заданной пользователем суб-опции Remote-ID опции 82 |
ip dhcp {snooping | relay} information option self-defined subscriber-id {vlan | port | id (switch-id (mac | hostname)| remote-mac)| string WORD } no ip dhcp {snooping | relay} information option self-defined subscriber-id ! В режиме глобальной конфигурации | Задать метод создания суб-опции Circuit-ID опции 82 Восстановить значение по-умолчанию (vlan port) |
ip dhcp {snooping | relay} information option self-defined subscriber-id format [ascii | hex] ! В режиме глобальной конфигурации | Задать формат заданной пользователем суб-опции Circuit-ID опции 82 |
8. Команды для диагностики опции 82;
Команда | Описание |
---|---|
show ip dhcp relay information option ! В привилегированном режиме | Отобразить информацию состоянии опции 82 |
debug ip dhcp {snooping | relay} packet ! В привилегированном режиме | Отобразить информацию о пакетах, обработанных агентом DHCP relay или DHCP snooping. |
4.3.Пример конфигурации опции 82
4.3.1. Пример конфигурации опции 82 для DHCP relay
Рисунок 42.2 - конфигурации опции 82 для DHCP relay
В приведенном на рисунке 42.2 примере коммутаторы уровня 2 Switch1 и Switch2 подключены к коммутатору 3-го уровня Switch3, который будет передавать сообщения от DHCP-клиента DHCP-серверу и обратно как агент DHCP relay. Если DHCP опция 82 отключена, DHCP-сервер не может распознать, к сети какого коммутатора, Switch1 или Switch2, подключен DHCP-клиент. В этом случае ПК, подключенные Switch1 и Switch2, получат адреса из общего пула DHCP-сервера. Если же DHCP опция 82 включена, Switch3 будет добавлять информацию о портах и VLAN в запрос от DHCP-клиента. Таким образом, DHCP-сервер сможет выделить адрес из двух разных подсетей, чтобы упростить управление.
Конфигурация коммутатора Switch3(MAC address is f8:f0:82:75:33:01):
Switch3(Config)#service dhcp Switch3(Config)#ip dhcp relay information option Switch3(Config)#ip forward-protocol udp bootps Switch3(Config)#interface vlan 3 Switch3(Config-if-vlan3)#ip address 192.168.10.222 255.255.255.0 Switch3(Config-if-vlan2)#ip address 192.168.102.2 255.255.255.0 Switch3(Config-if-vlan2)#ip helper 192.168.10.88
Пример конфигурации ISC DHCP Server для Linux:
ddns-update-style interim ignore client-updates; class "Switch3Vlan2Class1" { match if option agent.circuit-id = "Vlan2+Ethernet1/0/2" and option agent.remote-id=f8:f0:82:75:33:01; } class "Switch3Vlan2Class2" { match if option agent.circuit-id = "Vlan2+Ethernet1/0/3" and option agent.remote-id=f8:f0:82:75:33:01; } subnet 192.168.102.0 netmask 255.255.255.0 { option routers 192.168.102.2; option subnet-mask 255.255.255.0; option domain-name "example.com.cn"; option domain-name-servers 192.168.10.3; authoritative; pool { range 192.168.102.21 192.168.102.50; default-lease-time 86400; #24 Hours max-lease-time 172800; #48 Hours allow members of "Switch3Vlan2Class1"; } pool { range 192.168.102.51 192.168.102.80; default-lease-time 43200; #12 Hours max-lease-time 86400; #24 Hours allow members of "Switch3Vlan2Class2"; } }
После описанных выше настроек DHCP-сервер будет выделять адреса из диапазона 192.168.102.21 ~ 192.168.102.50 для устройств, подключенных к коммутатоу Switch2, и из диапазона 192.168.102.51~192.168.102.80 для устройств, подключенных к коммутатоу Switch1.
4.3.2. Пример конфигурации опции 82 для DHCP snooping
Рисунок 42.3 - настройка опции 82 для DHCP snooping
Как показано на рисунке 42.3, коммутатор уровня 2 Switch1 c включенным DHCP-snooping передает DHCP-запросы серверу и ответы от DHCP-сервера клиенту. После того, как на коммутаторе будет включена функция добавления опции 82 для DHCP snooping, Switch1 будет добавлять информацию о коммутаторе, интерфейсе и VLAN клиента в сообщения запроса.
Конфигурация коммутатора Switch1(MAC address is f8:f0:82:75:33:01):
Switch1(config)#ip dhcp snooping enable Switch1(config)#ip dhcp snooping binding enable Switch1(config)#ip dhcp snooping information enable Switch1(Config-If-Ethernet1/0/12)#ip dhcp snooping trust
Пример конфигурации ISC DHCP Server для Linux:
ddns-update-style interim; ignore client-updates; class "Switch1Vlan1Class1" { match if option agent.circuit-id = "Vlan1+Ethernet1/0/3" and option agent.remote-id=f8:f0:82:75:33:01; } subnet 192.168.102.0 netmask 255.255.255.0 { option routers 192.168.102.2; option subnet-mask 255.255.255.0; option domain-name "example.com.cn"; option domain-name-servers 192.168.10.3; authoritative; pool { range 192.168.102.51 192.168.102.80; default-lease-time 43200; #12 Hours max-lease-time 86400; #24 Hours allow members of "Switch1Vlan1Class1"; } }
После описанных выше настроек DHCP-сервер будет выделять адреса из диапазона 192.168.102.51~192.168.102.80 для устройств, подключенных к коммутатоу Switch1.
4.4. Решение проблем с конфигурацией опции 82
Убедитесь, что DHCP-relay и/или DHCP-snooping настроен правильно;
Опция 82 требует взаимодействия DHCP relay и DHCP сервера для выделения IP-адресов. DHCP-сервер должен установить политику выделения адресов основываясь на сетевой топологии DHCP-relay. Если в сети больше одного ретранслятора, уделите внимание политике передачи DHCP-запросов;
При поиске неисправностей подробная информация о процессе работы функции опции 82 DHCP-relay и DHCP-сервера может быть получена с помощью команд «debug ip dhcp relay packet» и «debug ip dhcp server packet».