logo search
PITS-1-2010new2

2.4.12. Протокол iPv6

Когда в начале 90-х годов началось активное промышленное использование Internet (сети предприятий на основе транспорта Internet, применение Web-технологий для доступа к корпоративной информации, электронная коммерция, новости и поиск, образование и развлечения), новый узел в Сети стал появляться каждые 30 с. Все это привело к резкому росту числа узлов Internet, изменению характера трафика и ужесточению требований к качеству обслуживания пользователей. IPv4 может адресовать более 4 млрд. объектов (4,294,967,296 уникальных адресов), он уже использован на 94%, а через 1-2 года вообще может исчерпать свои возможности. Среди прочих путей выхода из создавшегося положения за счет разработки новых протоколов стека TCP/IP сообщество Internet решило подвергнуть серьезной модернизации и ключевой протокол IP в следующих целях:

Отмеченные выше проблемы можно было решить только изменением формата IP-пакета и логики обработки полей его заголовка.

Новый IPv6 (1998 г.) внес существенные изменения в систему адресации IP-сетей. IPv6-адрес состоит из 128 битов (16 байтов), что позволяет адресовать до 5,7 × 1028 узлов. Но главной целью было не механическое увеличение адресного пространства, повышение эффективности работы стека TCP/IP в целом.

Вместо двух уровней иерархии адреса в IPv4 (номер сети, номер узла) в IPv6 имеется 4 уровня для идентификации: три – сетей, один – узлов. За счет этого эффективно поддерживается технология бесклассовой междоменной маршрутизации (Classless Inter-Domain Routing, CIDR). Ее суть заключается в том, каждому поставщику услуг Internet назначается непрерывный диапазон IP-адресов. А все его адреса имеют общую старшую часть – одинаковые цифры в нескольких старших разрядах – префикс. Например, если у поставщика услуг имеется непрерывное пространство (пул) адресов числом 2n, то префикс для IPv4 составляет (32-n) разрядов. А оставшиеся n разрядов играют роль счетчика последовательных номеров. Когда потребитель обращается к поставщику услуг с просьбой о выделении ему некоторого числа адресов, то в пуле «вырезается» непрерывная область. В ней требуемое число адресов должно быть равно именно 2n, а начальная граница выделяемого пула адресов должна быть кратна требуемому числу узлов. И чем меньше число адресов в выделенной области, тем длиннее ее префикс.

Таким образом, маршрутизация на магистралях Internet может осуществляться на основе префиксов, а не полных адресов сетей. Тогда в таблицах маршрутизации вместо множества записей по числу сетей будет достаточно поместить одну сразу для всех сетей, имеющих общий префикс. Такое агрегирование адресов позволит уменьшить объем таблиц маршрутизации в маршрутизаторах всех уровней, вследствие чего ускорить работу маршрутизаторов и повысить пропускную способность Internet [3].

В IPv6 вместо десятичной формы записи IP-адреса используется шестнадцатеричная (по 4 бита на цифру). Каждые 4 шестнадцатеричные цифры разделяются двоеточием (на 8 двухбайтовых полей), например, ABCD:1A77:0:0:0:0:3953:3520.

Можно опускать незначащие нули в начале каждого поля адреса. А вместо длинной последовательности нулей один раз можно использовать два двоеточия (::). Например, вместо адреса

0BCD:0A77:0:0:0:0:3953:0020

можно использовать его эквивалент вида

BCD:A77::3953:20.

Для сетей, поддерживающих обе версии IPv4 и IPv6, разрешается использовать для младших 4 байтов традиционную десятичную запись IPv4, например, 0:0:0:0:FFFF:125.144.77.13 или ::FFFF:125.144.77.13.

Значение нескольких старших битов адреса (префикс формата) определяет тип адреса. В IPv6 предусмотрено 3 основных типа адресов:

В IPv6 имеются так называемые частные адреса для использования в автономных сетях:

Основной подтип индивидуального адреса – глобальный агрегируемый уникальный адрес. Цель агрегирования – упрощение маршрутизации. В отличие от уникальных адресов IPv4 вида (сеть, узел) глобальные агрегируемые уникальные адреса имеют более сложную структуру, включающую 6 полей.

  1. Префикс формата (Format Prefix, FP) – для этого типа адресов имеет значение 001.

Следующие 3 поля: агрегирования верхнего уровня (Top-Level Aggregation, TLA), агрегирования следующего уровня (Next-Level Aggregation, NLA), агрегирования местного уровня (сайтов) (Site-Level Aggregation, SLA) – описывают 3 уровня идентификации сетей (рис. 1.32).

  1. Поле TLA – предназначено для идентификации сетей самых крупных поставщиков услуг. Значение поля – общая часть адресов поставщика услуг. Длина поля (13 битов) специально ограничена для ограничения размера таблиц маршрутизации в магистральных маршрутизаторах самого верхнего уровня Internet. Она рассчитана на 8196 сетей поставщиков услуг верхнего уровня и такое же предельное число записей, что ускорит работу магистральных маршрутизаторов.

Поля глобального агрегируемого уникального адреса

Число битов

3

13

8

24

16

64

Название поля

FP

TLA

Резерв

NLA

SLA

Идентификатор интерфейса

Рис.1.32. Структура глобального агрегируемого уникального адреса IPv6

  1. Следующее поле зарезервировано для будущего расширения поля TLA.

  2. Поле NLA – предназначено для нумерации сетей средних и мелких поставщиков услуг. Значительный размер поля позволяет путем агрегирования адресов отразить многоуровневую иерархию поставщиков услуг.

  3. Поле SLA – предназначено для адресации подсетей отдельного абонента, например, подсетей одной корпоративной сети. Поставщик услуг назначает предприятию номер его сети, представляющий фиксированные значения полей TLA и NLA и являющийся аналогом номера сети в IPv4. А остальная часть адреса (SLA и идентификатор интерфейса) поступает в распоряжение администратора корпоративной сети, полностью отвечающего за ее формирование и значения. Причем поле идентификатора интерфейса обязательно должно хранить физический адрес узла. На этом уровне также можно агрегировать адреса небольших подсетей в более крупные подсети, и размер поля обеспечивает достаточную свободу и гибкость построения внутрикорпоративной иерархии адресов.

  4. Идентификатор интерфейса является аналогом номера узла IPv4. Но здесь в общем случае идентификатор интерфейса просто совпадает с его локальным (аппаратным) адресом. В данное поле можно поместить IPv4-адрес (32 бита), MAC-адрес (48 битов), адрес X.25 (до 60 битов), адрес конечного узла ATM (до 48 битов) или номер виртуального соединения ATM (до 28 битов), а также позволит использовать локальных адреса будущих технологий. Такой подход делает ненужным протокол ARP, поскольку процедура отображения IP-адреса на локальный теперь сведется к простому отбрасыванию старшей части адреса. Кроме того, в большинстве случаев отпадает необходимость ручного конфигурирования конечных узлов, так как младшую часть адреса (идентификатор интерфейса) узел сам узнает от аппаратуры (сетевого адаптера), а старшую (номер подсети) ему сообщает маршрутизатор.

Кроме рассмотренного глобального агрегируемого индивидуального адреса в IPv6 существуют и другие разновидности индивидуального адреса, например, адрес обратной петли (0:0:0:0:0:0:0:1 или ::1) – аналог адреса 127.0.0.1 в IPv4; неопределенный адрес (все нули) только источника (он отправлен до того, как узел изучил свой IP-адрес, например, до получения его от DCHP-сервера) – аналог адреса 0.0.0.0.

Таким образом, IPv6 оставляет в полном распоряжении клиента поле SLA (2 байта) для нумерации подсетей и поле идентификатора интерфейса (8 байтов) для нумерации узлов. Этот большой диапазон номеров подсетей администратор может распорядиться им по-разному. Он может выбрать плоскую схему, назначая каждой подсети свое значение из 65535 адресов. Но в крупных сетях более эффективным способом является иерархическая структуризация сети на основе агрегирования адресов. В этом случае используется ранее рассмотренная технология CIDR, но не поставщиком услуг, а администратором корпоративной сети.

Считается, что довольно долго будут сосуществовать островки Internet, поддерживающие IPv6, и остальная часть Сети, поддерживающая IPv4. Чтобы узлы IPv6 могли использовать технику передачи пакетов IPv6 через сеть IPv4 в автоматическом режиме, разработан специальный подтип адресов, переносящих IPv4-адрес в младших 4 байтах IPv6-адреса, а в старших 12 байтах – нули. Такие индивидуальные адреса делают процедуру преобразования адресов между этими версиями протокола IP очень простой и называются IPv4-совместимыми IPv6-адресами.

Для решения обратной задачи – передачи IPv4-пакетов через сеть IPv6, предназначен IPv4-отображенный IPv6-адрес. Он также содержит в младших 4 байтах IPv6-адреса IPv4-адрес, в старших 10 байтах – нули, а в средних 2 байтах – единицы, показывающие что узел поддерживает только IPv4.

Работа по детализации подтипов IPv6-адресов еще далека от своего завершения. Пока определено назначение только 15% адресного пространства IPv6, оставшаяся часть адресов еще ждет эффективных решений проблем Сети [3].