DHCPv6 [RFC3315] - версия протокола DHCP для работы с IPv6. Этот протокол назначает как IPv6 адреса, так и другие параметры настройки сети, такие, как адрес DNS или доменное имя. DHCPv6 может назначать IPv6 адреса через relay (ретранслятор). DHCPv6 сервер также может обеспечить сервис DHCPv6 без состояния отслеживания (SLAAC), при котором клиенту могут быть назначены параметры конфигурации, такие как адрес DNS-сервера и доменное имя без назначения IPv6-адреса.
В протоколе DHCPv6 предусмотрены три объекта: клиент, relay (ретранслятор) и сервер. Протокол DHCPv6 основан на протоколе UDP. Клиент DHCPv6 отправляет сообщения запроса конфигурации DHCP-серверу или DHCP-relay на порт UDP 547, в ответ сервер или relay DHCPv6 отправляют сообщения на порт UDP 546. Клиент DHCPv6 отправляет сообщения solicit и request DHCP-серверу или relay на multicast-адрес - ff02::1:2.
Рисунок 41.1 - процесс согласования DHCPv6
Когда DHCPv6 клиент пытается запросить IPv6 адрес и другую конфигурацию, сначала клиент должен найти DHCPv6-сервер, а только после этого запросить конфигурацию.
В момент обнаружения сервера, DHCP клиент пытается найти DHCPv6 сервер, рассылая SOLICIT сообщения, содержащее собственный идентификатор DUID, на мультикаст-адрес FF02::1:2;
Каждый DHCPv6-сервер, получивший SOLICIT, ответит клиенту сообщением ADVERTISE (предложение), которое содержит идентификатор DUID сервера и его приоритет;
Возможно, что клиент получить несколько сообщений ADVERTISE. В этом случае клиент должен выбрать один сервер и ответить ему сообщение REQUEST, чтобы запросить предложенный им адрес;
Выбранный DHCPv6-сервер подтверждает клиенту IPv6 адрес и другие параметры в сообщении REPLY.
Вышеуказанные четыре этапа завершают процесс динамического назначения параметров. Однако, если DHCPv6 сервер и DHCPv6 клиент не находятся в одной сети, сервер не сможет получить multicast-пакеты от клиента и ответить ему. Для пересылки таких пакетов используется DHCPv6-relay, функции которого реализованы на коммутаторе. Когда DHCPv6-relay получает сообщение от DHCPv6 клиента, он инкапсулирует его в пакет Relay-forward и доставляет следующему DHCPv6-relay или серверу.
Для делегирования IPv6 префиксов DHCPv6 сервер настраивается на маршрутизаторе провайдера (PE), а DHCPv6-клиент настраивается на маршрутизаторе клиента (CPE). Маршрутизатор клиента шлет маршрутизатору провайдера запрос на выделение префикса адресов и получает предварительно настроенный префикс. Затем CPE маршрутизатор делит выделенный префикс на /64 подсети. Эти префиксы будут анонсированы сообщениями объявления маршрутизатора (RA) хостам.
Включить\выключить сервис DHCPv6;
Настроить адресный пул DHCPv6:
Создать\удалить адресный пул;
Настроить параметры адресного пула;
Включить функцию DHCPv6 сервера на порту;
Включить\выключить сервис DHCPv6;
Команда | Описание |
---|---|
service dhcpv6 no service dhcpv6 ! В режиме глобальной конфигурации | Включить сервисы DHCPv6 (server, relay) Выключить сервисы DHCPv6 (по умолчанию) |
2. Настроить адресный пул DHCPv6:
a. Создать\удалить адресный пул
Команда | Описание |
---|---|
ipv6 dhcp pool <poolname> no ipv6 dhcp pool <poolname> ! В режиме глобальной конфигурации | Создать адресный пул DHCPv6 Удалить адресный пул DHCPv6 |
b. Настроить параметры адресного пула;
Команда | Описание |
---|---|
network-address <ipv6-pool-start-address> {<ipv6-pool-end-address> | <prefix-length>} [eui-64]
! В режиме конфигурации адресного пула DHCPv6 | Задать диапазон адресов, назначаемых пулом от <ipv6-pool-start-address> до <ipv6-pool-end-address> с длиной префикса <prefix-length>. Если длина префикса 64 бита, адрес может быть выделен по стандарту EUI-64 [eui-64] Удалить диапазон адресов, назначаемых пулом |
dns-server <ipv6-address> no dns-server <ipv6-address> ! В режиме конфигурации адресного пула DHCPv6 | Задать адрес DNS-сервера Удалить адрес DNS-сервера |
domain-name <domain-name> no domain-name <domain-name> ! В режиме конфигурации адресного пула DHCPv6 | Задать доменное имя Удалить доменное имя |
excluded-address <ipv6-address> no excluded-address <ipv6-address> ! В режиме конфигурации адресного пула DHCPv6 | Исключить адрес из пула. Удалить исключение. |
lifetime {<valid-time> | infinity} {<preferred-time> | infinity} no lifetime ! В режиме конфигурации адресного пула DHCPv6 | Задать время аренды адреса <valid-time> и <preferred-time> в секундах, infinity - устанавливает неограниченное время. Восстановить значения по умолчанию: preffered-time 2592000 секунд (30 дней), valid-time 604800 секунд (7 дней) |
3. Включить функцию DHCPv6 сервера на порту;
Команда | Описание |
---|---|
ipv6 dhcp server <poolname> [preference <value>] [rapid-commit] [allow-hint] no ipv6 dhcp server <poolname> ! В режиме конфигурации интерфейса | Включить функцию DHCPv6 сервера на интерфейсе и привязать используемый адресный пул <poolname>. [preference <value>] - задать приоритет <value> для данного DHCP-серверa, [rapid-commit] - быстрый ответ на solicit, [allow-hint] - разрешить делегировать префикс, предлагаемый клиентом. Выключить функцию DHCPv6 сервера на интерфейсе |
Включение/выключение сервиса DHCPv6;
Настроить DHCPv6-relay на интерфейсе.
Включение/выключение сервиса DHCPv6;
Команда | Описание |
---|---|
service dhcpv6 no service dhcpv6 ! В режиме глобальной конфигурации | Включить сервисы DHCPv6 (server, relay) Выключить сервисы DHCPv6 (по умолчанию) |
2. Настроить DHCPv6-relay на интерфейсе.
Команда | Описание |
---|---|
ipv6 dhcp relay destination {[<ipv6-address>] [interface { <interface-name> | vlan <1-4096>}]} no ipv6 dhcp relay destination {[<ipv6-address>] [interface { <interface-name> | vlan <1-4096>}]} ! В режиме конфигурации интерфейса | Настроить адрес назначения для DHCPv6-relay Удалить адрес назначения для DHCPv6-relay |
Включить/выключить DHCPv6 сервис;
Настроить пул делегирования префиксов;
Настроить адресный пул DHCPv6:
Создать/удалить адресный пул DHCPv6;
Настроить пул делегирования префиксов, используемый адресным пулом;
Настроить статическую привязку префиксов;
Настроить другие параметры адресного пула DHCPv6;
Включить функцию сервера делегирования префиксов DHCPv6 на интерфейсе.
Включить/выключить DHCPv6 сервис;
Команда | Описание |
---|---|
service dhcpv6 no service dhcpv6 ! В режиме глобальной конфигурации | Включить сервисы DHCPv6 (server, relay) Выключить сервисы DHCPv6 (по умолчанию) |
2. Настроить пул делегирования префиксов;
Команда | Описание |
---|---|
ipv6 local pool <poolname> <prefix|prefix-length> <assigned-length> no ipv6 local pool <poolname> ! В режиме глобальной конфигурации | Создать адресный пул <poolname> для делегирования префиксов <prefix|prefix-length>
|
3. Настроить адресный пул DHCPv6:
a. Создать/удалить адресный пул DHCPv6.
Команда | Описание |
---|---|
ipv6 dhcp pool <poolname> no ipv6 dhcp pool <poolname> ! В режиме глобальной конфигурации | Создать адресный пул DHCPv6 Удалить адресный пул DHCPv6 |
b. Настроить пул делегирования префиксов, используемый адресным пулом;
Команда | Описание |
---|---|
prefix-delegation pool <poolname> [lifetime <valid-time> <preferred-time>] no prefix-delegation pool <poolname> ! В режиме конфигурации адресного пула DHCPv6 | Задать делегируемый пул префиксов <poolname> для адресного пула DHCPv6 и назначить используемый префикс клиенту, в полях <preferred-time> <valid-time> задать предпочтительное и действительное время аренды префикса. Удалить делегируемый пул префиксов <poolname> |
c. Настроить статическую привязку префиксов;
Команда | Описание |
---|---|
prefix-delegation <ipv6-prefix/prefix-length> <client-DUID> [iaid <iaid>] [lifetime <valid-time> <preferred-time>] no prefix-delegation <ipv6-prefix/prefix-length> <client-DUID> [iaid <iaid>] ! В режиме конфигурации адресного пула DHCPv6 | Настроить префикс <ipv6-prefix/prefix-length> для статической привязки к клиенту <client-DUID> удалить <ipv6-prefix/prefix-length> из статической привязки к клиенту <client-DUID> |
d. Настроить другие параметры адресного пула DHCPv6;
Команда | Описание |
---|---|
dns-server <ipv6-address> no dns-server <ipv6-address> ! В режиме конфигурации адресного пула DHCPv6 | Задать адрес DNS-сервера Удалить адрес DNS-сервера |
domain-name <domain-name> no domain-name <domain-name> ! В режиме конфигурации адресного пула DHCPv6 | Задать доменное имя Удалить доменное имя |
4. Включить функцию сервера делегирования префиксов DHCPv6 на порту
Команда | Описание |
---|---|
ipv6 dhcp server <poolname> [preference <value>] [rapid-commit] [allow-hint] no ipv6 dhcp server <poolname> ! В режиме конфигурации интерфейса | Включить функцию DHCPv6 сервера на интерфейсе и привязать используемый адресный пул <poolname>. [preference <value>] - задать приоритет <value> для данного DHCP-серверa, [rapid-commit] - быстрый ответ на solicit, [allow-hint] - разрешить делегировать префикс, предлагаемый клиентом. Выключить функцию DHCPv6 сервера на интерфейсе |
Включить/выключить DHCPv6 сервис;
Включить функцию сервера делегирования префиксов DHCPv6 на интерфейсе.
Включить/выключить DHCPv6 сервис;
Команда | Описание |
---|---|
service dhcpv6 no service dhcpv6 ! В режиме глобальной конфигурации | Включить сервисы DHCPv6 (server, relay) Выключить сервисы DHCPv6 (по умолчанию) |
2. Включить функцию сервера делегирования префиксов DHCPv6 на интерфейсе.
Команда | Описание |
---|---|
ipv6 dhcp client pd <prefix-name> [rapid-commit] no ipv6 dhcp client pd ! В режиме глобальной конфигурации | Включить функцию DHCPv6 делегирования префиксов на интерфейсе клиента Выключить функцию DHCPv6 делегирования префиксов на интерфейсе клиента |
При развертывании сетей IPv6 коммутатор SNR может быть настроен как сервер DHCPv6 для управления распределением адресов IPv6. Поддерживается режим с отслеживанием состояния, так и без отслеживания.
Топология:
Рисунок 41.2 - пример настройки DHCPv6
Как показано на рисунке 41.2, на уровне доступа используются коммутаторы Switch1 и Switch2 для подключения пользователей в кампусе. На первом уровне агрегации коммутатор Switch3 настроен как DHCPv6-relay. На втором уровне агрегации коммутатор Switch4 настроен как DHCPv6 сервер и соединен с сетью вышестоящего оператора. На компьютерах пользователей установлена ОС, поддерживающая IPv6.
Конфигурация Switch4:
Switch4>enable Switch4#config Switch4(config)#service dhcpv6 Switch4(config)#ipv6 dhcp pool EastDormPool Switch4(dhcpv6-EastDormPool-config)#network-address 2001:da8:100:1::1 2001:da8:100:1::100 Switch4(dhcpv6-EastDormPool-config)#excluded-address 2001:da8:100:1::1 Switch4(dhcpv6-EastDormPool-config)#dns-server 2001:da8::20 Switch4(dhcpv6-EastDormPool-config)#dns-server 2001:da8::21 Switch4(dhcpv6-EastDormPool-config)#domain-name dhcpv6.com Switch4(dhcpv6-EastDormPool-config)#lifetime 1000 600 Switch4(dhcpv6-EastDormPool-config)#exit Switch4(config)#interface vlan 1 Switch4(Config-if-Vlan1)#ipv6 address 2001:da8:1:1::1/64 Switch4(Config-if-Vlan1)#exit Switch4(config)#interface vlan 10 Switch4(Config-if-Vlan10)#ipv6 address 2001:da8:10:1::1/64 Switch4(Config-if-Vlan10)#ipv6 dhcp server EastDormPool preference 80 Switch4(Config-if-Vlan10)#exit Switch4(config)# |
Конфигурация Switch3:
Switch3>enable Switch3#config Switch3(config)#service dhcpv6 Switch3(config)#interface vlan 1 Switch3(Config-if-Vlan1)#ipv6 address 2001:da8:1:1::2/64 Switch3(Config-if-Vlan1)#exit Switch3(config)#interface vlan 10 Switch3(Config-if-Vlan10)#ipv6 address 2001:da8:10:1::2/64 Switch3(Config-if-Vlan10)#exit Switch3(config)#interface vlan 100 Switch3(Config-if-Vlan100)#ipv6 address 2001:da8:100:1::1/64 Switch3(Config-if-Vlan100)#no ipv6 nd suppress-ra Switch3(Config-if-Vlan100)#ipv6 nd managed-config-flag Switch3(Config-if-Vlan100)#ipv6 nd other-config-flag Switch3(Config-if-Vlan100)#exit Switch3(config)# |
Настройка Switch1 и Switch2 одинакова:
Switch1(config)#service dhcpv6 Switch1(config)#interface vlan 1 Switch1(Config-if-Vlan1)#ipv6 address 2001:da8:100:1::2/64 Switch1(Config-if-Vlan1)#ipv6 dhcp relay destination 2001:da8:10:1::1 |
Если DHCPv6-клиент не может получить IP адрес и другие сетевые параметры, после проверки кабеля и клиентского оборудования следует выполнить следующее:
Проверьте, запущен ли DHCPv6-сервер;
Если DHCPv6-клиент и DHCPv6-сервер находятся не в одной сети и не имеют прямой L2-связности, проверьте, настроена ли на коммутаторе, отвечающем за пересылку пакетов, функция DHCPv6-relay;
Проверьте, имеет ли DHCP-сервер адресный пул в том же сегменте, что и адрес interface vlan коммутатора, перенаправляющего DHCP-пакеты;