Автоконфигурация в IPv6

В IPv6 появился новый механизм автоконфигурации узла. Называется он Stateless Address Autoconfiguration или SLAAC. Используется он для автоматического получения IP адреса и сетевого префикса узлом, без использования DHCPv6 сервера, или совместно с ним.

Действительно, когда мы создаём некоторую сеть, мы прописываем адрес шлюза и префикс этой сети на маршрутизаторе. Этой информации достаточно, чтобы выдавать адреса устройствам. Механизм SLAAC позволяет маршрутизатору назначать устройствам адреса даже если в сети нет DHCPv6.

Маршрутизатор Cisco с рабочим IPv6 интерфейсом рассылает в сеть информацию об этой сети, включающую в себя сетевую часть IP адреса и длину префикса. Кроме того, в этом сообщении содержится адрес шлюза по умолчанию для сети. Подробнее о структуре IPv6 адреса можно прочитать здесь. Сообщение это называется Router Advertisement (RA) и отправляется обычно раз в 200 секунд на мультикастовый адрес FF02::1 (подробнее об этом адресе можно прочитать в статье про мультикаст в IPv6).

Если в сети появилось новое устройство, которому необходим адрес, ему необязательно ждать 200 секунд до ближайшей рассылки, оно может направит запрос маршрутизатору (Router Solicitation или RS) и попросить его выслать настройки немедленно. Запрос маршрутизатору выполняется на адрес FF02::2.

Оба сообщения RA и RS отправляются посредством протокола ICMPv6, с мультикастовым адресом получателя в IP пакете.

Для того чтобы маршрутизатор начал полноценно обслуживать сеть (рассылать в неё RA и отвечать на RS), мало настроить IPv6 адрес на интерфейсе, необходимо так же включить режим маршрутизации для IPv6 сетей, введя команду ipv6 unicast routing в режиме глобальной конфигурации.

Существует три способа назначения адреса:

  1. Маршрутизатор выдаёт подсеть, префикс и адрес шлюза. Другую информацию устройства не получают.
  2. Маршрутизатор выдаёт подсеть, префикс и адрес шлюза, а отдельный DHCPv6 сервер выдаёт дополнительную информацию: опции, маршруты, адреса DNS серверов и другую – по необходимости.
  3. Stateless Address Autoconfiguration вообще не используется – устройство не использует RA от маршрутизатора, а обращается к DHCPv6 серверу, который предоставляет всю необходимую информацию, включая адрес, шлюз, префикс, DNS сервера и другую – в зависимости от настроек DHCP.

В случае использования третьего варианта, DHCP сервер выдаёт клиенту полный IPv6 адрес – все 128 бит, который назначается на интерфейсе клиента. В случае использования первых двух вариантов, маршрутизатор сообщает клиенту только сеть, в которой он находится, шлюз и префикс. Таким образом, клиенту недостаёт второй половины IP адреса (идентификатора интерфейса). Напомню, что адрес состоит из 128 бит, а маршрутизатор выдаёт максимум, только первые 64. Оставшиеся 64 бита, где должна находиться информация о хосте, должны быть заполнены самим устройством, маршрутизатору не важно, что именно устройство туда поместит, важно, чтобы первые 64 бита (сеть) были правильными. Для генерации правой половины IP адреса используется алгоритм EUI-64 или вообще генерируется случайный набор цифр.

Тэги: 

Комментарии

По поводу пункта 1 (и частично 2): В RFC6106 (2010г.) описан режим анонсирования DNS-серверов в RA. Уже много где реализовано (в роутерах, в RADVD для nix/nux).

Добавить комментарий