
4.4. Протокол iPv6
В начале 1995 года IETF, после 3 лет консультаций и дискус-сий, выпустило предложения по новому стандарту протокола IP – IPv6 (RFC-2460), который еще называют IPing. Тогда он был разработан для решения проблем адресного пространства и ряда смежных задач. Решено, что адресное пространство IPv6 будет распределяться IANA (Internet Assigned Numbers Authority – комис-сия по стандартным числам в Интернет), которая будет иметь региональных представителей, которые будут подробно заниматься выдачей IP-адрсов в своих областях. Такое распределение не будет необратимым. IANA сможет в любой момент перераспределить адресное пространство, в случае допущения ошибок при его распределении. Иными словами, все сделано так, чтобы не повторить прежних ошибок IPv4.
Что касается самого адресного пространства, то оно будет расширено с прежних 4 миллиардов с небольшим IPv4 до 340 282 366 920 938 463 463 374 607 431 768 211 456 адресов! IP-пространство IPv6 будет 128-битным, что добавит возможностей маршрутизации (особенно это будет заметно для мультикас-тингового транслирования). В нём определён новый тип адресов «anycast», который будет вести к ближайшему интерфейсу из списка адресов. Адреса IPv6 также способны автоконфигури-роваться бесконтекстно. Такие адреса существенно упростят маршрутизацию и уменьшат таблицы маршрутизации.
Кроме явного преимущества в расширении адресного пространства, можно выделить следующие преимущества IPv6 над IPv4:
– возможность автоконфигурирования IP адресов;
– упрощение маршрутизации;
– облегчение (упрощение) заголовка пакета;
– поддержка качества обслуживания (QoS);
– наличие возможности криптозащиты дейтаграмм на уровне протокола;
– повышенная безопасность передачи данных.
Собственно, почти все преимущества IPv6 вытекают как раз из формата его пакета и формы адресации. Переделанный и усовершенствованный стандарт позволить реализовать на уровне протокола мощную криптозащиту (шифрование данных) и многие сервисы, такие как QoS. QoS в IPv6 поддерживается полностью на сетевом уровне. Это крайне важно для мультимедиа-трансляций.
Также, в новом протоколе будет возможность автоконфигу-рирования IP адресов для конечных компьютеров в сети двумя способами: c помощью усовершенствованного DHCP или без него.
IPv6 узлы способны автоматически конфигурировать для себя IP адрес. Делается это двумя основными способами:
– с помощью протокола DHCPv6 (С фиксацией состояния);
– без него (Без фиксации состояния).
В первом случае для конфигурирования адреса используется сервис DHCP, переписанный для 6 версии Интернет протокола. Процесс этот мало отличается по сути от аналогичного с IPv4. Протокол DHCPv6 (Dynamic Host Configuration Protocol version 6) был разработан специально для IPv6.
Во втором случае конфигурирование проходит без каких-либо сторонних средств по примерной схеме:
– автоматически присваивает IPv6 адрес (Stateless Address Autoconfiguration);
– сконструировать предполагаемый адрес, локальный для канала (link-local address);
– убедиться (в масштабах канала связи) в уникальности этого адреса;
– присвоить адрес интерфейсу;
– находит маршрутизатор;
– запросить маршрутизатор о префиксах, действующих на данном канале связи;
– сконфигурировать глобальный адрес на интерфейсе;
– устанавливает маршруты.
В протоколе IPv6 пакеты не могут фрагментироваться и соби-раться маршрутизаторами. Отправитель обязан заранее выяснить максимальный размер пакетов (Maximum Transmission Unit, MTU), поддерживаемый на всём пути до получателя, и, при необхо-димости, выполнить фрагментацию своими силами. Оговаривается, что MTU не может быть меньше 576 байт; вероятно, в последующих версиях спецификаций IPv6 это значение возрастет до 1500 байт. Снятие с маршрутизаторов забот о фрагментации также способствует повышению эффективности их работы, хотя и немного усложняет в определённой степени работу и функцио-нальность оконечных систем.
Рассмотрим подробнее адресацию в IPv6. Увеличение адреса с 32 бит до 128 по логике увеличит и таблицы маршрутизации. Чтобы такого не произошло, надо строить иерархическую систему адресации. Примером такой системы может служить наша телефонная система, где по коду страны, города и затем линии АТС можно проследить маршрут до абонента. Итак, как устроен IP-адрес в IPv6. Он может быть представлен в трёх формах:
1) Основная форма: x:x:x:x:x:x:x:x.
Здесь x – это шестнадцатеричное 16-битное число (т.е. имею-щее в себе максимум 4 символа в шестнадцатеричной системе).
Например: fabc:de12:3456:7890:ABCD:EF98:7654:3210.
2) Сжатая форма. Здесь, для уменьшения длинны адреса, в котором присутствует несколько групп, содержащих в себе только нулевые биты, применяется сокращение "::" - оно означает, что на его месте находится какое-то количество групп с нулевыми битами. Выглядеть этот тип записи будет следующим образом:
(1 форма) 108b:0:0:0:8:800:200C:417A
(2 форма) 108b::8:800:200C:417A
Понятно, что несколько групп нулевых байт заменить двойным двоеточием мы не сможем, поскольку в этом случае будет непонятно, сколько байт пропущено в первом, а сколько во всех остальных случаях.
3) Альтернативная форма. Очевидно, что переход на IPv6 будет плавным: одновременно перевести на новую инфраструктуру все подключённые к Сети устройства невозможно. Специально для эти целей в IPv6 предусмотрено два типа «переходных» адресов. Первые выдаются узлам, ответственным за туннелирование трафика между IPv6 и IPv4, и состоят из 96 нулевых бит и привычного адреса IPv4. Вторые предназначены узлам, которые не поддерживают новую систему адресации: 80 нулевых бит плюс 16 единичных бит, а потом – адрес IPv4 (RFC 2373).
Пример: 0:0:0:0:0:0:13.1.68.3 или в сжатом виде: ::13.1.68.3
В IPv6 существуют следующие типы адресов: unicast, anycast и multicast. Адреса ведут не к узлу, а к интерфейсу этого узла, потому, что каждый интерфейс принадлежит только одному узлу. IPv6 уникастный адрес соотносится только с одним интерфейсом. Одному интерфейсу могут соответствовать много IPv6 адресов различного типа (уникастные, эникастные и мультикстные). Существует два исключения из этого правила:
1. Одиночный адрес может приписываться нескольким физическим интерфейсам, если приложение рассматривает эти несколько интерфейсов как единое целое при представлении его на уровне Интернет.
2. Маршрутизаторы могут иметь ненумерованные интерфейсы (например, интерфейсу не присваивается никакого IPv6 адреса) для соединений точка-точка, чтобы исключить необходимость вручную конфигурировать и объявлять (advertise) эти адреса. Адреса не нужны для соединений точка-точка маршрутизаторов, если эти интерфейсы не используются в качестве точки отправления или назначения при посылке IPv6 дейтаграмм. Маршрутизация здесь осуществляется по схеме близкой к используемой протоколом CIDR в IPv4.
IPv6 соответствует модели IPv4, где субсеть ассоциируется с каналом. Одному каналу могут соответствовать несколько субсетей.
Тип IPv6 адреса определяется его лидирующими байтами. По этим байтам можно понять, к какому типу относится тот или иной адрес. Это упрощает маршрутизацию. Комбинация лидирующих байт называется префиксом (табл. 4.3).
Т а б л и ц а 4.3 Таблица префиксов, их назначений и части пространства, занимаемого ими
Назначение |
Префикс (двоичный) |
Часть адресного пространства |
Зарезервировано |
0000 0000 |
1/256 |
Не определено |
0000 0001 |
1/256 |
Зарезервировано для NSAP |
0000 001 |
1/128 |
Зарезервировано для IPX |
0000 010 |
1/128 |
Не определено |
0000 011 |
1/128 |
Не определено |
0000 1 |
1/32 |
Не определено |
0001 |
1/16 |
Не определено |
001 |
1/8 |
Провайдерские уникаст-адреса |
010 |
1/8 |
Не определено |
011 |
1/8 |
Зарезервировано для географических уникаст-адресов |
100 |
1/8 |
Не определено |
101 |
1/8 |
Не определено |
110 |
1/8 |
Не определено |
1110 |
1/16 |
Не определено |
1111 0 |
1/32 |
Не определено |
1111 10 |
1/64 |
Не определено |
1111 110 |
1/128 |
Не определено |
1111 1110 0 |
1/512 |
Локальные канальные адреса |
1111 1110 10 |
1/1024 |
Локальные адреса (site) |
1111 1110 11 |
1/1024 |
Мультикаст-адреса |
1111 1111 |
1/256 |
Как видно, при таком распределении возможно легко отличать адреса провайдера, локальные адреса и мультикаст адреса. Синтаксис уникастного адреса обычно содержит префикс, указание области сети (ID области), ID субсети, прочие указатели маршрута и на конце ID интерфейса, которым считается уникальный IEEE-802 MAC адрес.
Эникастные адреса входят в состав уникастного пространства и синтаксически неотличимы от уникастных. Такой адрес не может являться адресом ЭВМ. Он может быть только адресом маршру-тизатора и не может быть указан в поле «адрес отпра-вителя».
Синтаксически такой адрес состоит их префикса субсети и остатка из нулевых бит, т.е. он идентичен уникаст адресу интер-фейса с нулевым идентификатором. Пакеты, посланные по такому адресу, придут ко всем маршрутизаторам сети, но реально работа будет осуществляться с тем, который первым пришлёт ответ.
Мультикастные адреса IPv6 имеют следующую структуру:
– 8 Бит – 11111111
– 4 Бита – Flags
– 4 Бита – Scope
– 112 Бит – Идентификатор группы
В поле Flags 3 старших бита зарезервированы, а последний (T) означает:
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 до FF0F:0:0:0:0:0:0:0.
Зарезервированые мультикаст-адреса не будут присваиваться каким-либо мультикаст-группам.
Адреса для обращения ко всем узлам:
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 маршрутизаторов в пределах области 1 (локальные узлы) или 2 (связанные локально узлы).
DHCP server/relay-agent: FF02:0:0:0:0:0:0:C
Представленные мультикастинг-адреса идентифицируют груп-пу всех IPv6 DHCP серверов и транзитных агентов в пределах области (scope) 2 (локальный канал).
Адрес активного узла (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 адреса, которые отличаются только старшими разрядами, например, из-за множественных старших префиксов, соответствующих разным провайдерам, будут совпа-дать с адресом активного узла, что сокращает число мультикаст-групп, к которым узел должен присоединиться.
Как и в IPv4, в IPv6 также существуют зарезервированные IP адреса. Они представлены в табл. 4.4.
Нельзя сказать, что до появления IPv6 не делались попытки обойти адресные ограничения IPv4. Например, в протоколах BOOTP (BOOTstrap Protocol) и DHCP (Dynamic Host Configuration Protocol) предлагается достаточно простой и естественный способ решения проблемы для ситуации, когда число физических подклю-чений ограничено, или реально все пользователи не работают в сети одновременно. Типичной ситуацией такого сорта является доступ к Internet по коммутируемом каналу, например телефону. Ясно, что одновременно несколько пользователей физически не могут разговаривать по одному телефону, поэтому каждый из них при установке соединения запрашивает свою конфигурацию, в том числе и IP-адрес. Адреса выдаются из ограниченного набора адресов, который закреплен за телефонным пулом. IP-адрес пользователя может варьироваться от сессии.
Совершенно очевидно, что приведенный выше пример - это достаточно специфическое решение, ориентированное на специальный вид подключения к сети. Однако не только адресная проблема определила появление нового протокола. Разработчики позаботились и о масштабируемой адресации IP-пакетов, ввели новые типы адресов, упростили заголовок пакета, ввели идентификацию типа информационных потоков для увеличения эффективности обмена данными, ввели поля идентификации и конфиденциальности информации.
Т а б л и ц а 4.4. Зарезервированные адреса IPv6
IPv6 адрес |
Длина префикса (биты) |
Описание |
Заметки |
:: |
128 |
– |
см. 0.0.0.0 |
::1 |
128 |
Loopback адрес |
см. 127.0.0.1 |
::xx.xx.xx.xx |
96 |
встроенный IPv4 |
Нижние 32 бита это адрес назы-вается IPv4 сов-местимым адре-сом. Устарел и больше не ис-пользуется. |
::ffff:xx.xx.xx.xx |
96 |
Адрес IPv6, отображенный на IPv4 |
Нижние 32 бита это адрес IPv4. Для хостов, не поддерживающих IPv6. |
2001:db8:: |
32 |
Документирование |
Зарезервирон для примеров в документации в rfc3849 |
fe80:: — febf:: |
10 |
link-local |
Аналог 169.254.0.0/16 в IPv4 |
fec0:: — feff:: |
10 |
site-local |
Помечен как устаревший в rfc3879 |
fc00:: |
7 |
Unique Local Unicast |
Пришел на смену Site-Local rfc4193 |
ffxx:: |
8 |
multicast |
|