Курс по сетевым технологиям
A A A

 

Обзор протокола

Протокол IPv6 пришел на смену IPv4 в связи с острой нехваткой адресного пространства.

Отличия IPv6 от IPv4:

  • Адрес состоит из 128 бит против 32 бит в IPv4
  • Уменьшенный и упрощенный IP заголовок (состоит из 40 байт)
  • Обязательное использование IPSec
  • Нет необходимости в использовании NAT
  • Улучшенная и упрощенная маршрутизация благодаря агрегированию адресов по континентам и странам

 

Адреса назначаются Региональным реестрам (Regional Internet Registry) Агентством интернета по назначению сетевых адресов (Internet Corporation of Assigned Network Numbers, ICANN). Всего существует 5 RIR (Североамериканский, Южноамериканский, Европейский, Тихоокеанский, Африканский). Далее реестры  назначают адреса провайдерам, а те в свою очередь своим клиентам.

Вот как это выглядит:

Присвоение адреса Европейским реестром


Все адреса группируются с помощью префикса исходя из географических регионов. Таким образом, упрощается маршрутизация:

 

Континент

RIR

Назначенные адреса

Северная Америка

ARIN

2001:600::/23

2001:1800::/23

2001:4800::/23

2600::/12

2610::/12

Европа, Ближний Восток, Центральная Азия

RIPE NCC

2001:600::/23

2001:800::/23

2001:a00::/23

2001:1400::/23

Азия, Тихоокеанский регион

APNIC

2001:200::/23

2001:e00::/23

2001:c00::/23

Африка, регион Индийского океана

AfriNIC

2001:4200::/23

Латинская Америка, Карибский регион

LACNIC

2880::/12


В IPv6 адреса принято записывать в шестнадцатеричной форме квартетами, разделенными двоеточиями. В каждом квартете по 2 байта. Всего таких квартетов 8:

Структура адреса IPv6

Адрес состоит из 2-х частей: префикс, назначаемый провайдером и узел. Однако определенную долю узловой части при необходимости можно выделить и для подсети:

Разделение адреса на узловую и сетевую части

Структура точно такая же, как и у IPv4.

Маска всегда записывается с помощью косой черты, где указывается количество бит, отведенных под сетевую часть. 

Адреса могут иметь и сокращенную форму записи. Например, адрес 2003:0000:0000:0001:0000:0000:0000:0010/4 можно записать так: 2003::1:0:0:0:10/4 либо так 2003:0:0:1::10/4. То есть опускаются нули, причем сокращать можно только 1 раз. Нельзя тот же адрес написать так: 2003::1::10.

Ниже представлены варианты сокращения для большего понимания:

 

Полный вариант записи

Сокращенный вариант

Ошибочный вариант

2000:0000:0000:0000:0000:0000:0000:0000/8

2000::/8

2000:/3

2000/3

2::/3

2000:0000:0000:0000:0000:0000:0000:0010/20

2000::10/20

2000:10/20

2::10/20

2000:0000:0000:1111:0000:0000:0000:0001/32

2000::1111:0000:0000:0000:0001/32


2000:0000:0000:1111::1/32

2000::1111::1/32

2000:0000:0001:0002:0003:8000:0009:0a0b/48

2000::1:2:3:8000:9:a0b/48

2000::1:2:3:8:9:a0b/48



Присвоение адресов

В IPv6 адреса присваиваются одним из следующих способов: 

Статически:

  1. Прописывается полностью весь адрес
  2. Прописывается только сетевой префикс (первые 64 бита). Идентификатор узла (последние 64 бита) автоматически настраивается посредством технологии EUI-64 (подробнее ниже). 

Динамически:

  1. DHCPv6 с сохранением состояния (то есть сервер помнит кому и когда назначил адрес и остальные параметры). Работает также, как и DHCPv4.
  2. Автоконфигурация - хост узнает префикс подсети и шлюз по умолчанию посредством протокола NDP. Узловая часть настраивается посредством EUI-64. 

EUI-64:

C помощью данной технологии настраивается узловая часть IP адреса. Достигается это с помощью МАС адреса интерфейса. В середину МАС адреса добавляются 2 байта FFFE, то есть получается всего 64 бита. 7-ой бит 1-го байта МАС адреса устанавливается в 1. 

Выглядит это так:

Формат EUI-64

Благодаря уникальности МАС адреса достигается и уникальность IP адреса.

 

В IPv6 существует и DHCPv6  без сохранения состояния.

 

Что это означает? 

Сервер предоставляет определенную информацию по запросу, однако он не запоминает кому и когда он ее предоставил. Данный тип сервера не назначает IP адреса.

 

Какую информацию он может предоставить? 

Например, информацию о DNS  серверах. DHCPv6 без сохранения состояния используется совместно с методом автоконфигурации, так как данный метод только настраивает IP адрес интерфейса и шлюза по умолчанию и на этом все! Для обобщения вышесказанного приведу таблицу:

 

Способ назначения адреса

Описание

Статический

Вручную весь 128-битный адрес

Статический с EUI - 64

Вручную только 64-битный префикс узел - автоматически с помощью EUI-64

Динамический - DHCPv6 c сохранением состояния

Весь 128-битный адрес

Динамический - автоконфигурирование без сохранения состояния

Префикс сети настраивается автоматически с помощью протокола NDP

Узловая часть - с помощью EUI-64



Адресация. Типы адресов

В IPv6 существуют следующие типы адресов. 

Одноадресатные (Unicast) - стандартные адреса, которые в свою очередь делятся на:

Глобальные (global) - публичный адрес, назначенный провайдером

Локальные (unique local) - аналогичные частным адресам в IPv4

Канальные (link local) - используются для работы протокола NDP.  Назначаются автоматически самим хостом. Даже, если в сети нет DHCP и  автоконфигурирование выключено, то у хоста в любом случае будет IP адрес. Именно этот тип адреса используется маршрутизаторами для вычисления маршрута. Канальные адреса используются только в локальных сетях и не маршрутизируются в сети интернет.

 

Многоадресатные (Multicast) - групповые адреса.

Одноадресатные резервные (Anycast) - групповой адрес. Всегда используется в качестве адреса получателя. Похож на адрес многоадресатной рассылки, однако на запрос отвечает всегда ближайшее устройство, в то время в случае многоадресатного адреса на запрос реагируют все устройства группы. Данный тип адресов используется только маршрутизаторами. 

Широковещательные (broadcast) адреса протоколом IPv6 не поддерживаются. Вместо них используются многоадресатные адреса. 

В таблице указаны диапазоны всех типов адресов:

 

Тип адреса

Описание

Префиксы

Глобальный

Уникальный маршрутизируемый через интернет

2000::/12

2600::/12

и так далее

Лоакальный

Работают только в локальной сети

FD00::/8

Канальный

Используются протоколом NDP. Через интернет не маршрутизируются

FE80::/10

FE90::/10

FEA0::/10

FEB0::/10

Многоадресатный

Идентифицируют группу устройств. Могут использоваться в локальной сети и интернет

FF00::/8

FF02::/16

Резервный

Определяет группу получателей. Всегда используется в качестве адреса получателя. Маршрутизируется через интернет.

Такой же, как и у глобального



Network Discovery Protocol - NDP

Данный протокол был разработан специально для IPv6.  Выполняет функции протоколов ARP, ICMP, Router Discovery, Router Redirect в IPv4 (то есть в IPv6 перечисленные протоколы отсутствуют). 

К ним относят следующие функции протокола:

  • Определение префикса подсети
  • Обнаружение маршрутизатора/шлюза по умолчанию
  • Обнаружение соседей в локальной сети
  • Автоматическая настройка адреса интерфейса
  • Разрешение сетевых и канальных адресов
  • Определение параметров канала в подсети
  • Определение следующего перехода (маршрутизатора) в сети

 

NDP поддерживает 5 типов пакетов ICMPv6:

  1. Запрос на доступность маршрутизатора (Router solicitation)
  2. Ответ маршрутизатора (Router advertisement)
  3. Запрос на доступность соседа (Neighbour solicitation)
  4. Ответ соседа (Neighbour advertisement)
  5. Перенаправление (Redirect)

 

Для работы протокола используются канальные (link local) адреса, которые вычисляются автоматически без участия DHCP сервера и маршрутизатора. 

Принцип работы протокола очень прост. Например, хосту требуется узнать префикс подсети. Для этого он отправит запрос (Router Solicitation - RS) на доступность маршрутизатора. Причем запрос отправит по многоадресатному адресу FF02::2, который прослушивают только маршрутизаторы. Приняв запрос, маршрутизатор отправит ответ (Router Advertisement - RA)  по адресу FF02::1, который прослушивают все хосты:

Принцип работы протокола NDP


Кроме того, маршрутизаторы сами периодически рассылают необходимую информацию всем узлам в сети по адресу FF02::1. 

 

 

Инициализация узла IPv6

После подачи питания узел IPv6 проходит процедуру инициализации, которая отличается от инициализации в IPv4: 

  1. Вычисляется канальный адрес узла (FE80::/10) с помощью EUI-64
  2. Для определения префикса подсети, а также шлюза по умолчанию хост отправляет запрос маршрутизатору (Router socilitation). В качестве адреса отправителя выступает только что вычисленный канальный адрес, а в качестве адреса получателя выступает многоадресатный адрес FF02::2.
  3. Если хост настроен на DHCPv6 с сохранением состояния, то он принимает все необходимые  сетевые параметры от сервера. Если настроена автоконфигурация, то вычисляется одноадресатный  адрес с помощью EUI-64. Затем на сервер DHCPv6 без сохранения состояния отправляется запрос на получение информации о серверах DNS.



Миграция к IPv6

Так как сразу перейти на IPv6 нереально, то были разработаны методы для постепенной миграции на IPv6. 

Двойной стек (Dual stack) - все сетевые устройства работают одновременно на IPv4  и IPv6. Постепенно роль IPv4 в данной сети уменьшается. Такое возможно в основном в локальных сетях. 

Туннелирование. Для этого IPv6 пакеты инкапсулируются в пакеты IPv4 и передаются по сети IPv4. Дойдя до сети назначения пакет IPv6 извлекается и дальше самостоятельно “путешествует” по своей сети:

Туннелирование пакетов IPv6 в сети IPv4


Существует несколько способов туннелирования. 

Вручную настроенный туннель (Manually Configured Tunnels - MCT) - настраивается на конечных маршрутизаторах. 

Динамический туннель “6to4” - создается динамический туннель от одного маршрутизатора до конечного. Конечная точка туннеля (IPv4 адрес) определяется по IPv6 адресу. Принцип работы прост. Выделяется специально зарезервированный адрес 2002::/16. Затем глобальный IPv4 адрес преобразуется в шестнадцатеричную форму и добавляется к адресу 2002::/16. Оставшиеся биты добавляются нулями. 

Межсайтовый протокол автоматической туннельной адресации (Intra Site Automatic Tunnel  Addressing Protocol, ISATAP) - динамически создает туннель, однако не работает, когда в сети присутствует преобразование NAT. 

Teredo - туннель создается самими конечными узлами, которые поддерживают двойной стек. То есть компьютер инкапсулирует пакет IPv6 в пакет IPv4 и передает по сети IPv4. Принимающий компьютер проводит обратную процедуру. 

Трансляция адресов IPv6 в IPv4 с помощью NAT-PT (Network Address Translation - Protocol Translation) - преобразует адреса IPv6 в адреса IPv4. Служит для взаимодействия сетей IPv6 и IPv4 друг с другом.