Новая, шестая версия протокола IP (IPv6) внесла существенные изменения в систему адресации IP-сетей (RFC 2373). И, прежде всего, это коснулось увеличения разрядности адреса.
IPve-адрес состоит из 128 бит, или 16 байт. Это дает возможность пронумеровать огромное количество узлов:
340 282 366 920 938 463 463 374 607 431 762 211 456.
Масштаб этого числа иллюстрирует, например, такой факт: если разделить это теоретически возможное количество IP-адресов между всеми жителями Земли (а их сегодня примерно 6 миллиардов), то на каждого из них придется невообразимо, если не сказать бессмысленно большое количество IP-адресов — 5,7 х 1028! Очевидно, что такое значительное увеличение длины адреса было сделано не только и даже не столько для снятия проблемы дефицита адресов.
Главной целью изменения системы адресации было не механическое увеличение адресного пространства» а повышение эффективности работы стека TCP/IP в целом.
Вместо прежних двух уровней иерархии адреса (номер сети и номер узла) в IPv6 имеется 4 уровня, из которых три уровня используются для идентификации сетей, а один — для идентификации узлов сети. За счет увеличения числа уровней иерархии в адресе новый протокол эффективно поддерживает технологию CIDR. Благодаря этому, а также усовершенствованной системе групповой адресации и введению нового типов адресов новая версия IP позволяет снизить затраты на маршрутизацию.
|
|
Произошли и чисто внешние изменения — разработчики стандарта предложили использовать вместо десятичной шестнадцатеричную форму записи IP-адреса. Каждые четыре шестнадцатеричные цифры отделяются друг от друга двоеточием. Вот как, например, может выглядеть адрес IPv6:
FEDC:0A98:0:0:0:0:7654:3210.
Если в адресе имеется длинная последовательность нулей, то запись адреса можно сократить. Например, приведенный выше адрес можно записать и так:
FEDC:0A98::7654:3210.
Сокращение в виде двух двоеточий (::) может употребляться в адресе только один раз. Можно также опускать незначащие нули в начале каждого поля адреса, например, вместо FEDC:0A98::7654:3210 можно писать FEDC:A98::7654:3210.
Для сетей, поддерживающих обе версии протокола (IPv4 и IPv6), разрешается использовать для младших 4 байт традиционную для IPv4 десятичную запись: 0:0:0:0:0:FFFF: 129.144.52,38 или::FFFF:129.144.52.38.
В новой версии IPv6 предусмотрено три основных типа адресов: индивидуальные адреса, групповые адреса и адреса произвольной рассылки. Тип адреса определяется значением нескольких старших битов адреса, которые названы префиксом формата.
□ Индивидуальный адрес (unicast) определяет уникальный идентификатор отдельного интерфейса конечного узла или маршрутизатора. Назначение адреса этого типа совпадает с назначением уникальных адресов в версии IPv4 — с их помощью пакеты доставляются определенному интерфейсу узла назначения. В версии IPv6, в отличие от версии IPv4, отсутствует понятие класса сети (А, В, С и D) и связанное с ним фиксированное разбиение адреса на номер сети и номер узла по границам байтов. Индивидуальные адреса делятся на несколько подтипов для отражения специфики некоторых часто встречающихся в современных сетях ситуаций.
|
|
□ Групповой адрес (multicast) IPv6 аналогичен по назначению групповому адресу IPv4. Он идентифицирует группу интерфейсов, относящихся, как правило, к разным узлам. Пакет с таким адресом доставляется всем интерфейсам с этим адресом. Групповые адреса используются в IPv6 для замены Широковещательных адресов — для этого вводится адрес особой группы, объединяющей все интерфейсы подсети.
□ Адрес произвольной рассылки (anycast) — это новый тип адреса, который так же, как и групповой адрес, определяет группу интерфейсов. Однако пакет с таким адресом доставляется любому из интерфейсов группы, как правило, «ближайшему» в соответствии с метрикой, используемой протоколами маршрутизации. Синтаксически адрес произвольной рассылки ничем не отличается от индивидуального адреса и назначается из того же диапазона адресов. Адрес произвольной рассылки может быть назначен только интерфейсам маршрутизатора. Интерфейсы маршрутизаторов, входящие в одну группу произвольной рассылки, имеют индивидуальные адреса и, кроме того, общий адрес группы произвольной рассылки. Адреса такого типа ориентированы на маршрутизацию от источника, при которой маршрут прохождения пакета определяется узлом-отправителем путем указания IP-адресов всех промежуточных маршрутизаторов. Например, поставщик услуг может присвоить всем своим маршрутизаторам один и тот же адрес произвольной рассылки и сообщить его абонентам. Если абонент желает, чтобы его пакеты передавались через сеть этого поставщика услуг, то ему достаточно указать этот адрес в цепочке адресов маршрута от источника, и пакет будет передан через ближайший маршрутизатор данного поставщика услуг.
Так же как и в IPv4, в IPv6 имеются так называемые частные адреса, предназначенные для использования в автономных сетях. В отличие от версии IPv4 в версии IPv6 эти адреса представлены двумя разновидностями:
□ Адреса локальных сетей, не разделенных на подсети, содержат только 64- разрядное поле идентификатора интерфейса, а остальные разряды, кроме префикса формата, должны быть нулевыми, поскольку потребность в номере подсети здесь отсутствует.
□ Адреса локальных сетей, разделенных на подсети, содержат по сравнению с предыдущими адресами дополнительное двухбайтово^ поле номера подсети.
Основным подтипом индивидуального адреса является глобальный агрегируемый уникальный адрес. Такие адреса могут агрегироваться для упрощения маршрутизации. В отличие от уникальных адресов узлов версии IPv4, которые состоят из двух полей — номера сети и номера узла, глобальные агрегируемые уникальные адреса IPv6 имеют более сложную структуру, включающую шесть полей (рис. 18.20).
8 | 24 | ||||
FP | TLA | <CJ NLA | SLA | Идентификатор интерфейса |
Рис. 18.20. Структура глобального агрегируемого уникального адреса в пакете IPv6 |
□ Префикс формата (Format Prefix, FP) для этого типа адресов имеет размер три бита и значение 001.
Следующие три поля — агрегирования верхнего (Top-Level Aggregation, TLA), следующего (Next-Level Aggregation, NLA) и местного (Site-Level Aggregation, SLA) уровней — описывают три уровня идентификации сетей.
□ Поле TLA предназначено для идентификации сетей самых крупных поставщиков услуг. Конкретное значение этого поля представляет собой общую часть адресов, которыми располагает данный поставщик услуг. Сравнительно небольшое количество разрядов, отведенных под это поле (13), выбрано специально для ограничения размера таблиц маршрутизации в магистральных маршрутизаторах самого верхнего уровня Интернета. Это поле позволяет перенумеровать 8196 сетей поставщиков услуг верхнего уровня, а значит, число записей, описывающих маршруты между этими сетями, также будет ограничено значением 8196, что ускорит работу магистральных маршрутизаторов. Следующие 8 разрядов зарезервированы на будущее для расширения при необходимости поля TLA.
|
|
□ Поле NLA предназначено для нумерации сетей средних и мелких поставщиков услуг. Значительный размер поля NLA позволяет путем агрегирования адресов отразить многоуровневую иерархию поставщиков услуг.
□ Поле SLA предназначено для адресации подсетей отдельного абонента, например подсетей одной корпоративной сети. Предполагается, что поставщик услуг назначает некоторому предприятию номер его сети, состоящий из фиксированного значения полей TLA и NLA, которые в совокупности являются аналогом номера сети версии IPv4. Остальная часть адреса — поля SLA и идентификатор интерфейса — поступает в распоряжение администратора корпоративной сети, который полностью берет на себя формирование адреса и не должен согласовывать этот процесс с поставщиком услуг. Причем поле идентификатора интерфейса имеет вполне определенное назначение — оно должно хранить физический адрес узла. На этом уровне также можно агрегировать адреса небольших подсетей в более крупные подсети, и размер поля SLA в 16 бит обеспечивает достаточную свободу и гибкость построения внутрикорпоративной иерархии адресов.
□ Идентификатор интерфейса является аналогом номера узла в IPv4. Отличием версии IPv6 является то, что в общем случае идентификатор интерфейса просто совпадает с его локальным (аппаратным) адресом, а не представляет собой произвольно назначенный администратором номер узла. Идентификатор интерфейса имеет длину 64 бита, что позволяет поместить туда МАС-ад- рес (48 бит), адрес Х.25 (до 60 бит), адрес конечного узла ATM (48 бит) или номер виртуального соединения ATM (до 28 бит), а также, вероятно, даст возможность использовать локальные адреса технологий, которые могут появиться в будущем. Такой подход в стиле протокола IPX делает ненужным протокол ARP, поскольку процедура отображения IP-адреса на локальный адрес становится тривиальной — она сводится к простому отбрасыванию старшей части адреса. Кроме того, в большинстве случаев отпадает необходимость ручного конфигурирования конечных узлов, так как младшую часть адреса — идентификатор интерфейса — узел узнает от аппаратуры (сетевого адаптера и т. п.), а старшую — номер подсети — ему сообщает маршрутизатор.
|
|
.Очевидно, что при. таком изобилии сетей, которое предоставляется клиенту в JPv6, совер-. шенно теряет смысл операция использования масок для разделения сетей на подсети, в то время как обратная процедура объединение подсетей приобретает особое значение* Разработчики стандартов IPv6 считают, что агрегирование адресов является основным способом аффективного использования адресного пространства в новой версии протокола
Пример
Пусть клиент получил от поставщика услуг пул адресов IPv6, определяемый следующим префиксом:
20:0А:00:С9:74:05/48.
Давайте проведем анализ этого числа. Поскольку его первые 3 бита равны 001, следовательно, это глобальный агрегируемый уникальный адрес (рис. 18.21).
Префиксы провайдеров 48 бит Для конечного абонента 80 бит
|
Пользователь может адресовать более 65 ООО сетей |
Префикс провайдера 20:0А:00:С9:74:05/48
В качестве адреса узла:
- МАС-адрес;
- АТМ-адрес;
- Телефонный номер;
- 1Ру4-адрес и т. п.
Рис. 18.21. Пример глобального агрегируемого адреса
Адрес этот принадлежит поставщику услуг верхнего уровня, у которого все сети имеют префикс 20:0А/16. Он может выделить поставщику услуг второго уровня некоторый диапазон адресов с общим префиксом, образованным его собственным префиксом, а также частью поля NLA. Длина поля NLA, отводимая под префикс, определяется маской, которую поставщик услуг верхнего уровня также должен сообщить своему клиенту — поставщику услуг второго уровня. Пусть в данном примере маска состоит из 32 единиц в старших разрядах, а результирующий префикс поставщика услуг второго уровня имеет вид:
20:0А:00:С9/32:
В распоряжении поставщика услуг второго уровня остается 16 разрядов поля NLA для нумерации сетей своих клиентов. В качестве клиентов могут выступать поставщики услуг третьего и более низких уровней, а также конечные абоненты — предприятия и организации. Пусть, например, следующий байт (01110100) в поле NLA поставщик
услуг использовал для передачи поставщику услуг более низкого (третьего) уровня, а тот, в свою очередь, использовал последний байт поля NLA для назначения пула адресов клиенту. Таким образом, с участием поставщиков услуг трех уровней был сформирован префикс 20:0А:00:С9:74:05/48, который получил клиент.
Протокол IPv6 оставляет в полном распоряжении клиента 2 байта (поле SLA) для нумерации сетей и 8 байт (полем идентификатора интерфейса) для нумерации узлов. Имея такой огромный диапазон номеров подсетей, администратор может использовать его по-разному. Он может выбрать простую плоскую организацию своей сети, назначая каждой имеющейся подсети определенное значение из диапазона в 65 535 адресов, игнорируя оставшиеся. В крупных сетях более эффективным способом (сокращающим размеры таблиц корпоративных маршрутизаторов) может оказаться иерархическая структуризация сети на основе агрегирования адресов. В этом случае используется та же технология CIDR, но уже не поставщиком услуг, а администратором корпоративной сети.
Помимо подробно рассмотренного выше глобального агрегируемого адреса, существуют и другие разновидности индивидуального адреса.
□ Адрес обратной петли 0:0:0:0:0:0:0:1 играет в версии IPv6 ту же роль, что и адрес 127.0.0.1 в версии IPv4.
□ Неопределенный адрес, состоящий из одних нулей, является аналогом адреса 0.0.0.0 протокола IPv4. Этот адрес может появляться в IP-пакетах только в качестве адреса источника, и это означает, что пакет послан до того, как узел изучил свой IP-адрес (например, до получения его от DHCP-сервера).
Предполагается, что довольно большое время будут сосуществовать островки Интернета, работающие по протоколу IPv6, и остальная часть Интернета, работающая на версии IPv4. Для того чтобы узлы, поддерживающие версию IPv6, могли использовать технику передачи пакетов IPv6 через сеть IPv4 в автомагическом режиме, разработан специальный подтип адресов, которые переносят 1Ру4-адрес в младших 4-х байтах 1Ру6-адреса, а в старших 12 байтах адреса содержат нули (рис. 18.22). Такие индивидуальные адреса делают очень простой процедуру преобразования адресов между двумя версиями протокола IP и называются 1Ру4-совместимыми 1Ру6-адресами.
1Ру4-адрес (4 байта)
, 1----------- —т~
- ': jt' i л
00000000000...0000000000000
-------- V----------------------------------------
12 байт
V-------------------------------------------------------
Исходный 1Ру6-адрес (16 байт) (1Ру4-совместимый 1Ру6-адрес)
Рис. 18.22. Преобразование IPv6 в IPv4
Для решения обратной задачи — передачи 1Ру4-пакетов через части Интернета, работающие по протоколу IPv6, — предназначен 1Ру4-отображенный 1Ру6-адрес. Этот тип адреса по-прежнему содержит в 4-х младших байтах 1Ру4-адрес, в старших 10-ти байтах — нули, а в 5-м и 6-м байтах 1Ру6-адреса — единицы, которые показывают, что узел поддерживает только 4-ю версию протокола IP (рис. 18.23).
Работа по детализации подтипов 1Ру6-адресов еще далека от завершения. Сегодня определено назначение только 15 % адресного пространства IPv6, а оставшаяся часть адресов еще ждет своей очереди, чтобы найти применение для решения одной из многочисленных проблем Интернета.
IPv6 (16 байт)
(^4-отображенный IPv6-aflpec)
—у ; 6 байт 5 байт 10 байт! |
Исходный IPv4-aflpec (4 байта) Рис. 18.23. Преобразование IPv4 в IPv6