6.1 Общая информация о опциях 37 и 38 DHCPv6
DHCPv6 (протокол динамический конфигурации хоста для IPv6) предназначен для адресной схемы IPv6 и используется для назначения префиксов IPv6, IPv6 адресов и других конфигурационных параметров.
Если DHCPv6 клиент хочет запросить параметры конфигурации у DHCPv6-сервера, который находится в другом сегменте сети, ему необходимо использовать DHCPv6-relay. Сообщение DHCPv6, полученное агентом DHCPv6-Relay, инкапсулируется в “relay-forward” пакет, который затем направляется серверу. DHCPv6-сервер отвечает агенту DHCPv6-relay сообщением “relay-reply”, из которого DHCPv6-relay восстанавливает DHCPv6-сообщение и пересылает клиенту.
При использовании DHCPv-relay возникает ряд проблем, например: как избежать нелегального присвоения адресов или как назначить конкретный IPv6-адрес конкретному пользователю. Эти задачи решаются добавлением к сообщениям DHCPv6 опций 37 и 38, описанных в RFC4649 и RFC4580.
Функционал опций 37 и 38 DHCPv6 подобен функционалу опции 82 DHCP для IPv4. DHCPv6 relay добавляет к заголовку опции 37 и 38 к запросам клиента и убирает их из ответных от сервера пакетов. Таким образом, применение опций 37 и 38 прозрачно для DHCPv6-клиента.
По содержанию опций 37 и 38 DHCPv6-сервер может аутентифицировать клиента и relay, назначать и управлять адресами. Так как RFC4649 и RFC4580 и не определяют, как должны быть использованы опции, пользователь может использовать их по своему усмотрению.
6.2. Конфигурирование опций 37 и 38 DHCPv6
Настройка базовых функций опций DHCPv6 snooping;
Настройка базовых функций опций DHCPv6 relay;
Настройка базовых функций опций DHCPv6 server.
Настройка базовых функций опций DHCPv6 snooping:
Команда | Описание |
---|---|
ipv6 dhcp snooping remote-id option no ipv6 dhcp snooping remote-id option ! В режиме глобальной конфигурации | Включить поддержку опции 37 в DHCPv6-snooping Выключить поддержку опции 37 в DHCPv6-snooping |
ipv6 dhcp snooping subscriber-id option no ipv6 dhcp snooping subscriber-id option ! В режиме глобальной конфигурации | Включить поддержку опции 38 в DHCPv6-snooping Выключить поддержку опции 38 в DHCPv6-snooping |
ipv6 dhcp snooping remote-id policy {drop | keep | replace} no ipv6 dhcp snooping remote-id policy ! В режиме глобальной конфигурации | Настроить режим политики при получении DHCPv6 запроса, который уже содержит опцию 37: drop - запрос будет отброшен; keep - запрос будет передан без обработки; replace - поле опции 37 будет добавлено агентом Восстановить значение по-умолчанию (replace) |
ipv6 dhcp snooping subscriber-id policy {drop | keep | replace} no ipv6 dhcp snooping subscriber-id policy ! В режиме глобальной конфигурации | Настроить режим политики при получении DHCPv6 запроса, который уже содержит опцию 38: drop - запрос будет отброшен; keep - запрос будет передан без обработки; replace - поле опции 38 будет добавлено агентом Восстановить значение по-умолчанию (replace) |
2. Настройка базовых функций опций DHCPv6 relay:
Команда | Описание |
---|---|
ipv6 dhcp relay remote-id option no ipv6 dhcp relay remote-id option ! В режиме глобальной конфигурации | Включить поддержку опции 37 в DHCPv6-relay Выключить поддержку опции 37 в DHCPv6-relay |
ipv6 dhcp relay subscriber-id option no ipv6 dhcp relay subscriber-id option ! В режиме глобальной конфигурации | Включить поддержку опции 38 в DHCPv6-relay Выключить поддержку опции 38 в DHCPv6-relay |
ipv6 dhcp relay subscriber-id select pv delimiter WORD (delimiter WORD |) no ipv6 dhcp relay subscriber-id select delimiter ! В режиме глобальной конфигурации | Выбрать разделитель между наименованием порта и vlan для опции 38. Доступны символы #|.|,|;|:|/|+|пробел. Восстановить значения по-умолчанию - без разделителя. |
ipv6 dhcp relay remote-id <remote-id> no ipv6 dhcp relay remote-id ! В режиме конфигурации Interface Vlan | Задать содержание опции 37 строкой <remote-id>, не более 128 символов Восстановить значение по-умолчанию (VLAN MAC) |
ipv6 dhcp relay subscriber-id <subscriber-id> no ipv6 dhcp relay subscriber-id ! В режиме конфигурации Interface Vlan | Задать содержание опции 38 строкой <subscrider-id>, не более 128 символов Восстановить значение по-умолчанию (VLAN+port) |
3. Настройка базовых функций опций DHCPv6 server:
Команда | Описание |
---|---|
ipv6 dhcp server remote-id option no ipv6 dhcp server remote-id option ! В режиме глобальной конфигурации | Включить поддержку опции 37 для DHCPv6-сервера Выключить поддержку опции 37 для DHCPv6-сервера |
ipv6 dhcp server subscriber-id option no ipv6 dhcp server subscriber-id option ! В режиме глобальной конфигурации | Включить поддержку опции 38 для DHCPv6-сервера Выключить поддержку опции 38 для DHCPv6-сервера |
ipv6 dhcp use class no ipv6 dhcp use class ! В режиме глобальной конфигурации | Включить поддержку классов для DHCPv6 адресов Выключить поддержку классов для DHCPv6 адресов (команда не удаляет настройки классов) |
ipv6 dhcp class <class-name> no ipv6 dhcp class <class-name> ! В режиме глобальной конфигурации | Создать dhcpv6 класс <class-name> и войти в режим его конфигурирования Удалить dhcpv6 класс <class-name> |
ipv6 dhcp server select relay-forward no ipv6 dhcp server select relay-forward ! В режиме конфигурации Interface Vlan | Выбрать для чтения опции 37 и 38 из верхнего уровня, при наличии нескольких опций Вернуть значения по-умолчанию - читать опцию из оригинального пакета клиента |
{remote-id [*] <remote-id> [*] | subscriber-id [*] <subscriber-id> [*]} no {remote-id [*] <remote-id> [*] | subscriber-id [*] <subscriber-id> [*]} ! В режиме конфигурирования IPv6 DHCP класса | Настроить опции 37 и 38, соответствующие данному классу |
class <class-name> no class <class-name> ! В режиме конфигурирования адресного пула DHCPv6 | Задать соответствие класса <class-name> текущему адресному пулу DHCPv6 Удалить соответствие класса <class-name> текущему адресному пулу DHCPv6 |
address range <start-ip> <end-ip> no address range <start-ip> <end-ip> ! В режиме конфигурирования адресного пула DHCPv6 | Задать диапазон адресов для текущего адресного пула Удалить диапазон адресов для текущего адресного пула |
6.3. Примеры настройки опций 37 и 38 DHCPv6
6.3.1. Пример настройки опций 37 и 38 для DHCPv6 snooping и сервера
Рисунок 44.1 - Пример настройки опций 37 и 38 для DHCPv6 snooping и сервера
Как показано на рисунке 44.1, ПК1, ПК2 и ПК3 подключены к недоверенным портам 1/0/2, 1/0/3 и 1/0/4, и с помощью DHCPv6 получают IP-адреса 2010:2, 2010:3 и 2010:4 соответственно. DHCPv6-сервер подключен к доверенному порту 1/0/1. Настроены следующие политики выделения адресов (классы): CLASS1 соответствует опции 38, CLASS2 соответствует опции 37, а CLASS3 - опциям 37 и 38. В пуле адресов TestPool1 классам CLASS1, CLASS2 и CLASS3 будут назначены адреса 2001:da8:100:1::2 - 2001:da8:100:1::30, 2001:da8:100:1::31 - 2001:da8:100:1::60 и 2001:da8:100:1::61 - 2001:da8:100:1::100 соответственно. На коммутаторе Switch А включена функция DHCPv6-snooping и настроены опции 37 и 38.
Конфигурация коммутатора Switch A:
SwitchA(config)#ipv6 dhcp snooping remote-id option SwitchA(config)#ipv6 dhcp snooping subscriber-id option SwitchA(config)#int e 1/0/1 SwitchA(config-if-ethernet1/0/1)#ipv6 dhcp snooping trust SwitchA(config-if-ethernet1/0/1)#exit SwitchA(config)#interface vlan 1 SwitchA(config-if-vlan1)#ipv6 address 2001:da8:100:1::1 SwitchA(config-if-vlan1)#exit SwitchA(config)#interface ethernet 1/0/1-4 SwitchA(config-if-port-range)#switchport access vlan 1 SwitchA(config-if-port-range)#exit SwitchA(config)#
Конфигурация коммутатора Switch B:
SwitchB(config)#service dhcpv6 SwitchB(config)#ipv6 dhcp server remote-id option SwitchB(config)#ipv6 dhcp server subscriber-id option SwitchB(config)#ipv6 dhcp pool TestPool1 SwitchB(dhcpv6-eastdormpool-config)#network-address 2001:da8:100:1::2 2001:da8:100:1::1000 SwitchB(dhcpv6-eastdormpool-config)#dns-server 2001::1 SwitchB(dhcpv6-eastdormpool-config)#domain-name dhcpv6.com SwitchB(dhcpv6-eastdormpool-config)# excluded-address 2001:da8:100:1::2 SwitchB(dhcpv6-eastdormpool-config)#exit SwitchB(config)# SwitchB(config)#ipv6 dhcp class CLASS1 SwitchB(dhcpv6-class-class1-config)#remote-id 00-03-0f-00-00-01 subscriber-id vlan1+Ethernet1/0/1 SwitchB(dhcpv6-class-class1-config)#exit SwitchB(config)#ipv6 dhcp class CLASS2 SwitchB(dhcpv6-class-class2-config)#remote-id 00-03-0f-00-00-01 subscriber-id vlan1+Ethernet1/0/2 SwitchB(dhcpv6-class-class2-config)#exit SwitchB(config)#ipv6 dhcp class CLASS3 SwitchB(dhcpv6-class-class3-config)#remote-id 00-03-0f-00-00-01 subscriber-id vlan1+Ethernet1/0/3 SwitchB(dhcpv6-class-class3-config)#exit SwitchB(config)#ipv6 dhcp pool TestPool1 SwitchB(dhcpv6-eastdormpool-config)#class CLASS1 SwitchB(dhcpv6-pool-eastdormpool-class-class1-config)#address range 2001:da8:100:1::3 2001:da8:100:1::30 SwitchB(dhcpv6-pool-eastdormpool-class-class1-config)#exit SwitchB(dhcpv6-eastdormpool-config)#class CLASS2 SwitchB(dhcpv6-pool-eastdormpool-class-class2-config)#address range 2001:da8:100:1::31 2001:da8:100:1::60 SwitchB(dhcpv6-eastdormpool-config)#class CLASS3 SwitchB(dhcpv6-pool-eastdormpool-class-class3-config)#address range 2001:da8:100:1::61 2001:da8:100:1::100 SwitchB(dhcpv6-pool-eastdormpool-class-class3-config)#exit SwitchB(dhcpv6-eastdormpool-config)#exit SwitchB(config)#interface vlan 1 SwitchB(config-if-vlan1)#ipv6 address 2001:da8:100:1::2/64 SwitchB(config-if-vlan1)#ipv6 dhcp server TestPool1 SwitchB(config-if-vlan1)#exit SwitchB(config)#
6.3.2. Пример настройки опций 37 и 38 для DHCPv6 relay
Рисунок 44.2 - Пример настройки опций 37 и 38 для DHCPv6 relay
Для подключения пользователей сети кампуса на уровне доступа используются коммутаторы уровня 2 Switch 1 и Switch 2. На первом уровне агрегации коммутатор Switch 3 используется как агент DHCPv6-relay. На втором уровне агрегации коммутатор Switch 4 используется как DHCPv6-сервер и соединен с остальной сетью.
Конфигурация Switch2:
Switch2(config)#service dhcpv6 Switch2(config)#ipv6 dhcp relay remote-id option Switch2(config)#ipv6 dhcp relay subscriber-id option Switch2(config)#vlan 10 Switch2(config-vlan10)#int vlan 10 Switch2(config-if-vlan10)#ipv6 address 2001:da8:1:::2/64 Switch2(config-if-vlan10)#ipv6 dhcp relay destination 2001:da8:10:1::1 Switch2(config-if-vlan10)#exit
6.4. Решение проблем при настройке опций 37 и 38 DHCPv6
Сообщения запроса DHCPv6 от клиента рассылаются как мультикаст-пакеты и могут быть получены устройством в пределах VLAN-клиента. Если DHCPv6-сервер и DHCPv6-клиент находятся в разных VLAN, необходимо использовать DHCPv6-relay.
Если пакет с опциями 37,38 не был получен, проверьте выбранную политику DHCPv6 при получении пакета с опцией: политика может выполнять как пропуск, так и перезапись опции или сброс пакета.
По-умолчанию DHCPv6-сервер считывает опции 37 и 38 из пакета клиента. Также может быть настроено считывание опций из пакета от DHCPv6-relay.