Увеличение адреса с 32 бит до 128 по логике увеличит и таблицы маршрутизации. Чтобы такого не произошло, надо строить иерархическую систему адресации (чем и намерена заниматься IANA). Примером такой системы может служить наша телефонная система, где по коду страны, города и затем линии АТС можно проследить маршрут до абонента.
Итак, как устроен IP-адрес в IPv6. Он может быть представлен в трёх формах:
1) Основная форма: xxxx:x
Здесь x - это шестнадцатеричное 16-битное число (т.е. имеющее в себе максимум 4 символа в шестнадцатеричной системе).
Примеры: fabc:de127890:ABCD:EF98:7654:3210
108b:0:0:0:8:800:200C:417A
2) Сжатая форма.
Здесь, для уменьшения длинны адреса, в котором присутствует несколько групп, содержащих в себе только нулевые биты, применяется сокращение "::" - оно означает, что на его месте находится какое-то количество групп с нулевыми битами. Выглядеть этот тип записи будет следующим образом:
Примеры:
(1 форма) 108b:0:0:0:8:800:200C:417A
(2 форма) 108b::8:800:200C:417A
_______________________
(1 форма) ff01:0:0:0:0:0:0:43
(2 форма) ff01::43
_______________________
(1 форма) 451a:0000:0000:0000:e63d:0000:0000:8264
(2 форма) 451a::e63d:0:0:8264.
_______________________
Хороший пример - адрес обратной связи:
(1 форма) 0:0:0:0:0:0:0:1
(2 форма) ::1
Понятно, что несколько групп нулевых байт заменить двойным двоеточием мы не сможем, поскольку в этом случае будет непонятно, сколько байт пропущено в первом, а сколько во всех остальных случаях.
3) Альтернативная форма.
Очевидно, что переход на IPv6 будет плавным: одновременно перевести на новую инфраструктуру все подключённые к Сети устройства невозможно (куда проще было в своё время перейти на IPv4). Специально для «смутного времени» в IPv6 предусмотрено два типа «переходных» адресов. Первые выдаются узлам, ответственным за туннелирование трафика между IPv6 и IPv4, и состоят из 96 нулевых бит и привычного адреса IPv4. Вторые предназначены узлам, которые не поддерживают новую систему адресации: 80 нулевых бит плюс 16 единичных бит, а потом — адрес IPv4(RFC 2373).
Пример:
0:0:0:0:0:0:13.1.68.3
0:0:0:0:0:FFFF:129.144.52.38
или в сжатом виде:
::13.1.68.3
::FFFF:129.144.52.38
В IPv6 существуют следующие типы адресов: unicast, anycast и multicast. Адреса ведут не к узлу, а к интерфейсу этого узла, потому, что каждый интерфейс принадлежит только одному узлу.
IPv6 уникастный адрес соотносится только с одним интерфейсом. Одному интерфейсу могут соответствовать много IPv6 адресов различного типа (уникастные, эникастные и мультикстные). Существует два исключения из этого правила:
- 1. Одиночный адрес может приписываться нескольким физическим интерфейсам, если приложение рассматривает эти несколько интерфейсов как единое целое при представлении его на уровне Интернет.
2. Маршрутизаторы могут иметь ненумерованные интерфейсы (например, интерфейсу не присваивается никакого IPv6 адреса) для соединений точка-точка, чтобы исключить необходимость вручную конфигурировать и объявлять (advertise) эти адреса. Адреса не нужны для соединений точка-точка маршрутизаторов, если эти интерфейсы не используются в качестве точки отправления или назначения при посылке IPv6 дейтаграмм. Маршрутизация здесь осуществляется по схеме близкой к используемой протоколом CIDR в IPv4.
Тип IPv6 адреса определяется его лидирующими байтами. По этим байтам можно понять, к какому типу относится тот или иной адрес. Это упрощает маршрутизацию. Комбинация лидирующих байт называется префиксом.
Далее приведена таблица префиксов, их назначений и части пространства, занимаемого ими:
Как видно, при таком распределении возможно легко отличать адреса провайдера, локальные адреса и мультикаст адреса.
Синтаксис уникастного адреса обычно содержит префикс, указание области сети (ID области), ID субсети, прочие указатели маршрута и на конце ID интерфейса, которым считается уникальный IEEE-802 MAC адрес.
Эникастные адреса входят в состав уникастного пространства и синтаксически неотличимы от уникастных. Такой адрес не может являться адресом ЭВМ. Он может быть только адресом маршрутизатора и не может быть указан в поле "адрес отправителя".
Синтаксически такой адрес состоит их префикса субсети и остатка из нулевых бит, т.е. он идентичен уникаст адресу интерфейса с нулевым идентификатором. Пакеты, посланные по такому адресу, придут ко всем маршрутизаторам сети, но реально работа будет осуществляться с тем, который первым пришлёт ответ.
Мультикастные адреса IPv6 имеют следующую структуру:
Код: Выделить всё
8 Бит 4 Бита 4 Бита 112 Бит
11111111 Flags Scope Идентификатор группы
T = 0 указывает на то, что адрес является стандартным ("well-known") мультикастным, официально выделенным для глобального использования в Интернет.
T = 1 указывает, что данный мультикастинг-адрес присвоен временно ("transient").
Поле Scope представляет собой 4-битовый код мультикастинга, предназначенный для определения предельной области действия мультикастинг-группы. Допустимые значения:
Приведенные ниже мультикаст-адреса являются зарезервированными (предопределенными):0 зарезервировано
1 Область действия ограничена локальным узлом
2 Область действия ограничена локальным каналом
3 (не определено)
4 (не определено)
5 Область действия ограничена локальной сетью
6 (не определено)
7 (не определено)
8 Область действия ограничена локальной организацией
9 (не определено)
A (не определено)
B (не определено)
C (не определено)
D (не определено)
E глобальные пределы (global scope)
F зарезервировано
Перечисленные выше мультикаст-адреса зарезервированы и не будут присваиваться каким-либо мультикаст-группам.FF00:0:0:0:0:0:0:0
FF01:0:0:0:0:0:0:0
FF02:0:0:0:0:0:0:0
FF03:0:0:0:0:0:0:0
FF04:0:0:0:0:0:0:0
FF05:0:0:0:0:0:0:0
FF06:0:0:0:0:0:0:0
FF07:0:0:0:0:0:0:0
FF08:0:0:0:0:0:0:0
FF09:0:0:0:0:0:0:0
FF0A:0:0:0:0:0:0:0
FF0B:0:0:0:0:0:0:0
FF0C:0:0:0:0:0:0:0
FF0D:0:0:0:0:0:0:0
FF0E:0:0:0:0:0:0:0
FF0F:0:0:0:0:0:0:0
Адреса для обращения ко всем узлам:
Приведённые выше адреса идентифицируют группу, включающую в себя все IPv6 узлы в пределах группы 1 (локальные узлы) или 2 (локально связанные узлы).FF01:0:0:0:0:0:0:1
FF02:0:0:0:0:0:0:1
Адреса всех маршрутизаторов:
Приведённые выше мультикаст-адреса идентифицируют группу всех IPv6 маршрутизаторов в пределах области 1 (локальные узлы) или 2 (связанные локально узлы).FF01:0:0:0:0:0:0:2
FF02:0:0:0:0:0:0:2
Приведённые выше мультикастинг-адреса идентифицируют группу всех IPv6 DHCP серверов и транзитных агентов в пределах области (scope) 2 (локальный канал).DHCP server/relay-agent: FF02:0:0:0:0:0:0:C
Адрес активного узла (solicited-node): FF02:0:0:0:0:1:xxxx:xxxx
Приведённый выше мультикаст-адрес вычислен как функция уникастного и эникастного адресов узла. Мультикаст-адрес активного узла (solicited-node) сформирован из младших 32 бит адреса (уникастного или эникастного) добавлением 96 битного префикса FF02:0:0:0:0:1. В результате получен мультикастинг адрес, охватывающий интервал:
FF02:0:0:0:0:1:0000:0000
до
FF02:0:0:0:0:1:FFFF:FFFF
Например, код мультикаст-адреса активного узла (solicited node), соответствующий IPv6 адресу 4037::01:800:200E:8C6C, равен FF02::1:200E:8C6C. IPv6 адреса, которые отличаются только старшими разрядами, например, из-за множественных старших префиксов, соответствующих разным провайдерам, будут совпадать с адресом активного узла, что сокращает число мультикаст-групп, к которым узел должен присоединиться.
Основано на материале Семенова Ю.А. (ГНЦ ИТЭФ) - "Адресация IPv6" http://book.itep.ru