Ipv6: новые возможности новой версии

Появление новой версии протокола IP (IPv6, в настоящее время используется IPv4) обусловлено целым рядом причин. Одна из основных — прогнозируемый на ближайшее время стремительный рост Всемирной Сети Internet.

Фундаментальным принципом построения сетей на основе протокола IP, необходимым для правильной маршрутизации и доставки пакетов, является уникальность сетевых адресов, то есть каждый данный IP-адрес может принадлежать только одному устройству. На сегодняшний день осталось невыделенным около 1 400 000 000 адресов из возможных 4 294 967 296, то есть примерно 30%, чего должно хватить на несколько лет, а может быть и более. Дефицит адресов пока выражается в основном в том, что по выражению одного из сетевых гуру, адрес класса A не смог бы получить и сам господь бог. Таких адресов может существовать всего 128 (формат: 0, адрес сети 7 бит, адрес хоста 24 бита), но каждый из них содержит диапазон 224, то есть 16 777 216 адресов. Однако появившиеся в последнее время устройства для доступа в Интернет и развитие цифрового телевидения, которое собирается превратить каждый телевизор в Интернет-устройство, могут быстро исчерпать имеющиеся запасы неиспользованных адресов.

Если в компьютерных сетях для выхода в Интернет могут применяться технологии типа NAT (Network Address Translation, — преобразование сетевого адреса), при которой для взаимодействия с окружающей средой используется всего несколько уникальных адресов, предоставляемых, возможно, провайдером, а внутри локальной сети адресация может быть достаточно произвольной, то для сетевого телевизора этот способ не подходит, так как каждому устройству требуется свой уникальный адрес.

Кроме всего прочего, этот новый рынок предъявляет к протоколам транспортного уровня, каковым является IP, совершенно новые требования в части легкости получения и смены адресов, полностью автоматического конфигурирования (представьте себе домохозяйку, настраивающую DNS своего телевизора). Если новый протокол не появится своевременно, то фирмы-провайдеры начнут внедрять свои собственные, что может привести к невозможности гарантированного соединения «всех со всеми». Наличие открытого протокола, удовлетворяющего требованиям по наличию необходимого адресного пространства, легкости конфигурирования и маршрутизации, способного работать совместно с имеющимся IP v4 поможет сохранить имеющуюся тенденцию способности к соединению между собой любых устройств, поддерживающих IP при наличии новых возможностей, которые основаны на анализе использования IP v4.

Кроме того, остается еще одна проблема — уникальность адреса вовсе не означает, что устройство будет правильно функционировать. Адреса нужны в первую очередь не для того, чтобы «всех пересчитать», а для правильной маршрутизации при доставке пакетов. Таким образом, для беспрепятственного роста Сети необходимо не только наличие свободных адресов, но и определенная методика их выделения, позволяющая решить проблему масштабируемости. Сведение к минимуму накладных расходов на маршрутизацию является сегодня одной из основных проблем и ее важность будет возрастать в дальнейшем по мере роста Сети. Просто присвоить устройству адрес недостаточно, необходимо еще обеспечить условия для правильной маршрутизации с минимальными накладными расходами.

В настоящее время только одна известная технология, а именно иерархическая маршрутизация, позволяет за счет приемлемых технических издержек обеспечить доставку пакетов в сети размерами с Интернет. Технология иерархической маршрутизации заключается в разбиении всей сети на более мелкие подсети, маршрутизация в которых производится самостоятельно. Подсети, в свою очередь, могут разбиваться на еще более мелкие и т. д. В результате образуется древовидная структура, причем в качестве узлов выступают маршрутизаторы, а в качестве листьев -- оконечные устройства-хосты. Путь, который проделывает пакет, передаваемый от одного листа до другого, может быть длиннее, чем при иной топологии, но зато он всегда может быть рассчитан с наименьшими издержками. Некоторую аналогию можно провести с телефонными номерами — первым идет код страны, за ним код города, а затем собственно номер, состоящий, в свою очередь, из кода АТС и собственно номера абонента.

История нового протокола восходит к концу 1992 года. Именно тогда IETF (Inernet Engineering Task Force — рабочая группа по технической поддержке Интернет) приступила к анализу данных, необходимых для разработки нового протокола IP. К концу 1994 года был утвержден рекомендательный стандарт и разработаны все необходимые для реализации протокола вспомогательные стандарты и документы.

IP v6 является новой версией старого протокола, разработанной таким образом, чтобы обеспечить совместимость и «мягкий» переход, не приуроченный к конкретной дате и не требующий одновременных действий всех участников. По некоторым прогнозам, совместное существование двух протоколов будет продолжаться до десяти и более лет. Учитывая то обстоятельство, что среди выделенных типов адресов IP v6 имеется специальный тип адреса, эмулирующий адрес IP v4, можно ожидать относительно спокойного перехода, не сопровождающегося крупными неудобствами и неприятностями. Фактически на одном компьютере могут иметься оба протокола, каждый из которых подключается по мере необходимости.

Однако использование старых адресов не является выходом из положения, поэтому протокол IP v6 предусматривает специальные возможности по присвоению новых адресов и их замене без вмешательства (или при минимальном вмешательстве) персонала. Для этого предусмотрена привязка к компьютеру не IP-адреса, а интерфейса. Сам же интерфейс может иметь несколько адресов, принадлежащих к трем категориям: действительный, прошлый, недействительный. При замене адреса «на лету» новый адрес становится «действительным», а старый — «прошлым». Все вновь осуществляемые соединения производятся при помощи действительного адреса, но уже имеющиеся продолжаются по прошлому адресу. Через некоторое время, которое может быть выбрано достаточно большим, чтобы гарантировать полный разрыв всех соединений по прошлому адресу, он переходит в категорию недействительных. Таким образом, практически гарантируется автоматическая замена адреса без участия персонала. Для полностью гарантированной автоматической замены адреса потребовалось бы внесение изменений в протоколы TCP и UDP, которые не входят в состав IP.

Замена адресов осуществляется двумя способами — явным и неявным. Явный способ использует соответствующим образом доработанный протокол DHCP. Неявный способ не требует наличия сервера DHCP, а использует адрес подсети, получаемый от соседей и мостов. В качестве адреса хоста используется просто MAC-адрес хоста, то есть адрес, используемый на канальном уровне. Этот способ, при всем своем изяществе, по понятным причинам не может присваивать адреса, совместимые с IP v4, и поэтому в переходный период его применение будет ограничено. К сожалению, механизм выделения новых адресов не затрагивает таких аспектов, как обновление базы данных DNS, адресов серверов DNS, конфигурации маршрутизаторов и фильтров и тех приложений клиент-сервер, которые используют привязку к адресу, что делает полную замену адресов локальной сети не менее трудоемким мероприятием, чем при применении IP v4.

Протокол IP v6 предполагает также значительные улучшения при работе в локальной сети. Единый протокол NDP (Neighbor Discovery Protocol — протокол распознавания соседей) заменяет применяемые в IP v4 протоколы ARP, ICMP и значительно расширяет их функциональные возможности. Вместо использующихся в протоколе ARP широковещательных пакетов канального уровня используются групповые сообщения (multicast), то есть адресованные всем членам подсети, притом, не на канальном, а на сетевом уровне, что должно значительно снизить широковещательный трафик, являющийся бичом локальных сетей Ethernet. Усовершенствованы функции протокола ICMP, облегчая работу разных подсетей в одном физическом сегменте. Включен механизм распознавания неисправных маршрутизаторов, что позволяет повысить устойчивость к сбоям оборудования. В дополнение к имевшимся ранее двум типам адресации — Unicast и Multicast (доставке уникальному получателю или группе получателей) — добавлен третий — Anycast, при котором осуществляется доставка любому получателю из группы.

Существенное отличие нового протокола от старого заключается в том, что длина адресной части составляет 128 бит — в четыре раза больше, чем 32 бита у IP V4. Чтобы представить эту величину, достаточно сказать, что на каждом квадратном метре поверхности суши и моря можно разместить примерно 6,7х1023 адресов. Из заголовка пакета IP изъяты как не используемые некоторые поля, что позволило сократить издержки, связанные с их обработкой и уменьшить размер заголовка (он длиннее, чем у IP v4 всего в два раза, несмотря на учетверенный размер адресной части).

Первым идет четырехбитное поле Version (Версия), его значение равно 6. Следующее поле — Priority (Приоритет) — длиной 8 бит используется для установки приоритета пакета. Приоритет увеличивается с ростом значения этого поля. Значения 0...7 используются для пакетов, время доставки которых не лимитировано, например значение 1 рекомендуется использовать для новостей, 2 — для почты, 7 — для служебного трафика (SNMP, маршрутизирующие протоколы). Значения 8...15 используются для пакетов, задержка доставки которых нежелательна, например аудио и видео в реальном времени. Далее следует поле Traffic Class, первоначально называвшееся Flow Label, длиной 20 бит. Оно служит для идентификации последовательности пакетов, его значение присваивается при помощи генератора случайных чисел и имеет одинаковую величину у всех пакетов данной последовательности. Следующее поле — Payload Length — содержит размер данных, следующих за заголовком, в байтах и имеет длину 16 бит. Следом расположено поле Next Hdr, идентичное по назначению полю Protocol протокола IP v4 и использующее те же значения. Восьмибитное поле Hop Limit аналогично по назначению полю Time to Live, то есть устанавливается источником согласно разумным предположениям о длине маршрута, а затем уменьшается на «1» при каждом прохождении через маршрутизатор. При снижении значения поля до нуля пакет снимается как «заблудившийся». Последними идут поля адресов источника и приемника длиной 128 бит (16 байт) каждое. Адреса в стандарте IP v6 имеют более сложную структуру, чем в предыдущем, при этом используются префиксы разной длины (табл. 1).

В настоящее время для непосредственного использования предназначено около 15% адресов, остальные 85% зарезервированы для распределения в будущем.

Специальные типы адресов предназначаются для более гибкого использования. Provider-Based Unicast Address (Выделяемые Провайдером Уникальные Адреса) служат для глобальной связи. Он состоит из префикса 010, Registry Id, идентифицирующего организацию, зарегистрировавшую провайдера; Provider Id, идентифицирующего провайдера; Subscriber Id, идентифицирующего организацию-клиента и собственно адреса. Адреса для локального использования (Link Local Use и Site Local Use) предназначены для применения внутри одного сегмента или одной организации, то есть пакеты с такими адресами не маршрутизируются за границы текущего сегмента или локальной сети соответственно. Они могут быть использованы, например, при автоматическом присвоении адресов. Для выхода в глобальную сеть может быть использована подстановка адресов по типу NAT. Если под заполнители-нули выделено достаточно места, то организация, ранее не имевшая соединения с Интернет, может легко провести замену адресов на глобальные путем конкатенации REGISTRY ID + PROVIDER ID + SUBSCRIBER ID и локального адреса. К специальным типам адресов также относятся адреса, совместимые с IP v4. Первый тип относится к «совместимым» адресам, которые предназначены для туннелирования пакетов IP v6 через существующую инфраструктуру IP v4. Второй тип адресов отображает на IP v6 подмножество адресов IP v4 для тех устройств, которые не поддерживают новый протокол.

Широковещательный адрес благодаря использованию полей Flags и Scope может также использоваться более гибко. В четырехбитном поле Flags пока используется только младший бит для указания, является ли данный адрес постоянным и выделенным соответствующими организациями, ответственными за выдачу адресов, или используется единовременно. Поле Scope используется для ограничения области распространения широковещательных пакетов. Значения этого поля приведены в таблице 2.

При рассмотрении возможностей, предоставляемые новым протоколом, может возникнуть вопрос, а зачем он все-таки нужен? Большинство функций либо уже имеются в IP v4, либо могут быть реализованы путем доработки соответствующих протоколов. Так, автоматическое выделение адресов производится при помощи протокола DHCP, адресный барьер преодолевается при помощи протокола NAT и т. д. и т. п. Однако разработка всех необходимых заплаток для протокола IP v4 потребовала бы затраты не меньших (а то и больших) усилий, чем создание нового протокола «с чистого листа». Разумеется, лист был не совсем чистым, поскольку вопросы совместимости и совместной работы обоих протоколов имелись в виду с самого начала проектирования. В конце концов Интернет все равно пришла бы к кризису дефицита адресов, так что заблаговременная разработка и постепенное внедрение протокола IP v6 были более чем уместны.

Для реализации перехода на новый протокол образовалась неформальная некоммерческая организация 6bone, включающая в себя более 100 организаций, в основном, сетевых провайдеров и университетов. Главная задача организации — создание инфраструктуры, позволяющей транспортировку пакетов стандарта IP v6 по всей сети Интернет. Как и существующая сегодня инфраструктура IP v4, она будет состоять из большого количества провайдеров и локальных сетей, объединенных в единую Сеть. В настоящее время в состав 6bone входят представители 41 страны, от США, Англии и Японии и до Камеруна и Казахстана.

Необходимость создания такой инфраструктуры объясняется прежде всего тем, что без широкомасштабного тестирования и готовой инфраструктуры (или ее подобия) коммерческие провайдеры (и потребители, занимающиеся, в отличие от университетов, не исследованиями, а бизнесом) вряд ли будут охотно внедрять новый протокол. Таким образом, задачей сети 6bone не является организация параллельной инфраструктуры, а скорее тестирование и отработка методик взаимодействия клиент-провайдер.

Сама сеть 6bone состоит из островков-сетей, которые полностью поддерживают IP v6, соединенных виртуальными туннелями, работающими на установленном у провайдеров оборудовании, которое используется и в коммерческих целях.

Согласно существующему в настоящее время мнению, организация 6bone будет существовать до тех пор, пока будет актуальна ее основная цель — популяризация протокола IP v6.

КомпьютерПресс 6'1999