Способен ли новый протокол предоставить место все возрастающему числу обитателей Internet — без чрезмерных болезней роста?
Ни для кого не секрет, что доступное пространство IP-адресов Internet подходит к концу. Многие организации уже успели это почувствовать на себе, когда они пытались зарезервировать для себя блок адресов. С ростом трафика на информационной супермагистрали решение этой проблемы становится все более насущным.
Одна из главных причин, почему IETF взялась за усовершенствование протокола IPv4, состояла именно в прогнозируемом быстром росте Internet. Еще в начале 90-х, когда группа занялась разработкой IPv6, ее члены осознавали, что растущее число пользователей Internet потребует резкого увеличения адресного пространства.
Несмотря на то что пространство адресов еще не исчерпано, потребность увеличения числа IP-адресов диктуется несколькими факторами. Один из них — практика резервирования адресов блоками фиксированной величины, при которой компания получает блок адресов класса B из 65 000 уникальных адресов IPv4. Даже если компания использует не все зарезервированные адреса — что весьма вероятно, — никто другой ими воспользоваться не может.
Стефан Диринг, сопредседатель рабочей группы IPv6 и ведущий инженер Cisco Systems, подчеркивает серьезность проблемы. "Значительная часть адресного пространства IPv4 не используется потому, что она уже была кем-то зарезервирована, — говорит он. — Адреса IPv4 рассматриваются всеми как ограниченный ресурс".
Осознание этого факта послужило основным стимулом для IPv6. Если отраслевые специалисты рассматривают его как бесспорную замену для разработки IPv4, то другие озабочены последствиями перехода на новый протокол Internet.
РАСШИРЕНИЕ IP
Одна из основных отличительных черт IPv6 — использование 128-разрядного адресного пространства (по сравнению с 32-разрядным адресным пространством IPv4), благодаря чему масштабируемость Internet резко повышается. Такое расширение адресного пространства позволит исключить необходимость преобразования сетевых адресов (Network Address Translation, NAT), если протокол будет реализован в сети соответствующим образом. Другое преимущество IPv6 состоит в том, что он предусматривает возможность использования различных типов адресов, например IPX.
Автоматическая конфигурация адресов представляет собой одну из важнейших практических технологий в IPv6. Она не только избавляет от необходимости назначать новые адреса вручную, но и упрощает изменение ранее назначенных адресов. Однако такая система будет работать только при использовании эффективной методики перенумерации.
Кроме того, IPv6 имеет три типа адресов, в то время как IPv4 — только два. Оба протокола предусматривают уникальную адресацию (unicast addressing), когда пакеты передаются одному адресату, и групповую адресацию (multicast addressing), когда пакеты передаются каждому члену группы, увеличивая накладные расходы на маршрутизацию. Введение избирательной адресации (anycast addressing) в IPv6 представляется значительным достижением. Такие сообщения посылаются одному из членов предопределенной группы из нескольких адресов, а не каждому из них.
IPv6 включает также поддержку мобильного IP для обеспечения маршрутизации между беспроводными и наземными сетями. Мобильное устройство сохраняет свой исходный адрес, но при этом оно получает второй адрес с информацией о местонахождении.
УСОВЕРШЕНСТВОВАНИЕ МАРШРУТИЗАЦИИ
IPv6 предусматривает и функции для упрощения и усовершенствования маршрутизации. Некоторые из полей заголовка IPv4 были исключены или стали необязательными, в результате чего накладные расходы на обработку пакетов на маршрутизаторе должны сократиться. Изменение заголовка позволяет также повысить гибкость с точки зрения возможности введения новых опций.
Чтобы лучше понять, как информация в заголовке влияет на производительность маршрутизации, мы рассмотрим заголовок маршрутизации (см. Рисунок 1). Отправитель IPv6 использует заголовок для указания транзитных узлов, через которые пакет должен пройти на пути к адресату.
Поле Next Header (следующий заголовок) в заголовке маршрутизации сообщает о том, какой заголовок следует после заголовка маршрутизации. Поле Header Extension Length (длина расширения заголовка) — это 8-значное целое число, выражающее длину заголовка маршрутизации в блоках из восьми октетов (исключая первые восемь октетов).
Поле Routing Type (тип маршрутизации) — это 8-разрядный идентификатор специфической разновидности заголовка маршрутизации. Раздел Segments Left (оставшиеся сегменты) сообщает о числе оставшихся предопределенных транзитных узлов на пути пакета к адресату.
Формат поля специфических для указанного типа данных приводится в Routing Type. Длина поля данных такова, что общая длина заголовка маршрутизации составляет целое число, кратное восьми октетом.
Заголовки маршрутизации такого типа прекрасно подходят для некоторых видов пакетов, но что если маршрутизация оказывается более сложной, например, когда длина пакета превышает предельное допустимое для сети значение (Maximum Transmission Unit, MTU)? В таких случаях пакет делится на фрагменты, каждый из которых передается как отдельный пакет.
При такой схеме отправители IPv6 используют заголовки фрагментов. Если в IPv4 фрагментация выполняется маршрутизаторами вдоль пути передачи пакета, то в IPv6 она выполняется только на отправителе.
Заголовок фрагмента представлен на Рисунке 2. Next Header идентифицирует первоначальный тип заголовка подвергаемой фрагментации части исходного пакета. При передаче полю Reserved присваивается значение 0; при приеме оно игнорируется. Поле Fragment Offset (смещение фрагмента) указывает на сдвиг данных, следующих за этим заголовком, по отношению к фрагментируемой части исходного пакета. Этот сдвиг должен быть кратен восьми октетам. Еще одно поле Reserved — это зарезервированное поле длиной два бита, при передаче ему присваивается значение 0, а при приеме оно игнорируется. В поле флага M значение 1 указывает на наличие последующих фрагментов, а значение 0 — на отсутствие последующих фрагментов, т. е. на то, что данный фрагмент — последний.
32-разрядное поле Identification введено для того, чтобы источник мог присваивать идентификационный номер каждому фрагментируемому пакету. Это значение должно быть уникальным для пакетов с одним и тем же адресом отправителя и получателя в пределах некоторого интервала времени (максимальный вероятный срок жизни). Избавляя отправителя от необходимости знать максимальный срок жизни пакетов, идентификационный номер упрощает процесс передачи пакетов.
Другое изменение в маршрутизации пакетов IPv6 состоит в том, что читать все заголовки пакета каждому маршрутизатору в конкретном сегменте больше не требуется. Ввиду иерархического подхода к маршрутизации в IPv6 маршрутизатору достаточно прочесть только некоторые поля.
Для иллюстрации этой концепции мы рассмотрим базовые принципы иерархической маршрутизации. В отличие от плоской схемы маршрутизации, при которой все маршрутизаторы равноправны, иерархическая схема позволяет создавать конфигурации, где часть маршрутизаторов принадлежит к магистрали маршрутизации, в то время как другие функционируют на более низких уровнях инфраструктуры.
Иерархическая маршрутизация допускает создание доменов. В большинстве сетей основная часть трафика не выходит за пределы индивидуальных доменов. Это позволяет упростить алгоритмы маршрутизации, поскольку таким маршрутизатором требуется знать только о действиях маршрутизаторов в пределах их собственного домена. Таким образом, трафик для обновления таблиц маршрутизации сокращается.
Иерархическая маршрутизация имеет, однако, и недостатки: при изменении конфигурации сети адреса также требуется изменить.
ПРИОРИТЕТЫ И ЗАЩИТА
Несмотря на то что термин "качество обслуживания" (Quality of Service, QoS) часто используется для описания некоторых аспектов работы сети, оценка реальных преимуществ IPv6 по сравнению с IPv4 с точки зрения QoS требует тщательного анализа. Протоколу IPv6 приписываются многочисленные преимущества с точки зрения QoS, но насколько они существенны?
"Широко распространено заблуждение, что спецификация протокола IPv6 описывает своего рода волшебную палочку, по мановению которой сеть будет обеспечивать поддержку качества обслуживания", — говорят Пол Фергюсон и Джеф Хьюстон, авторы книги "Качество обслуживания: обеспечение QoS в Internet и корпоративных сетях". Однако авторы указывают на две функции IPv6, которые могут пригодиться при реализации дифференциальных классов услуг: поле Priority (приоритет) длиной четыре бита в заголовке пакета и Flow Label (метка потока).
Поле Priority было введено для того, чтобы отправитель мог указать конкретные уровни приоритета для конкретных пакетов. Задаваемые при помощи четырех битов значения разделены на две категории: одну группу составляют значения, определяющие приоритет трафика, для которого отправитель обеспечивает контроль за перегрузками (включая реагирование на такие события, как потеря пакетов), а другую — значения, определяющие приоритет трафика, при котором отправитель не реагирует на перегрузки (например, трафик реального времени с постоянной скоростью).
Несмотря на утверждение авторов о том, что реальные преимущества данной схемы задания приоритетов не ясны, они замечают, что такое разделение типов трафика "может иметь преимущества с появлением более совершенных алгоритмов отбраковки пакетов".
(Со времени опубликования книги IETF внесла некоторые изменения, например длина поля Priority была увеличена до восьми битов, само название поля было изменено на Traffic Class (класс трафика), а длина Flow Label была уменьшена с 24 до 20 бит. Кроме того, IETF поручила определение семантики этого поля Рабочей группе по дифференцированным услугам (Differentiated Services Working Group, DSWG).)
Отправитель может использовать поле Flow Label в заголовке пакета для маркировки последовательности пакетов как подлежащих специальной обработке. Принадлежащие к одному потоку пакеты должны иметь одну и ту же метку потока, адрес отправителя и адрес получателя.
Максимальная продолжительность состояния обработки потока на конкретном пути должна указываться в описании механизма установления этого состояния — например в RSVP. Такой подход позволяет избежать появления недействительных состояний обработки потока.
Другие усовершенствования IPv6 включают укрепленную идентификацию и защиту с помощью расширений Internet Protocol Security (IPSec). Протокол Encapsulating Security Payload (ESP) осуществляет шифрование всех датаграмм IP целиком.
IPv6 требует от разработчиков стеков включения в продукты поддержки протоколов IPSec и Oakley/ISAKMP. IPSec — это протокол защиты на уровне пакетов, а Oakley/ISAKMP (Internet Security Association and Key Management Protocol) предназначен для согласования используемых ключей шифрования. Важно помнить, что окончательная версия IPSec пока еще не появилась, поэтому функциональность IPv6 может в итоге оказаться несколько иной.
Одна из областей, где укрепление защиты IPv6 может особенно пригодиться, — это виртуальные частные сети (Virtual Private Network, VPN). Шифрование имеет важнейшее значение для эффективной реализации VPN. Вместе с тем шифрование данных усложняет принятие решения о классе обслуживания (Class-of-Service, CoS) на основании содержимого пакета. Однако в случае, когда VPN начинаются и завершаются на конечных точках, информация CoS может указываться независимо от VPN. Кроме того, автоматическая конфигурация маршрутизаторов в IPv6 должна упростить реализацию защищенных VPN.
Усиленные функции защиты в IPv6 также могут оказаться весьма полезны в приложениях электронной коммерции, где жесткие меры защиты обязательны.
ПОТЕНЦИАЛЬНЫЕ ПРИЛОЖЕНИЯ
Один из широко дискутируемых вопросов об IPv6 состоит в том, что многие из его функций могут быть включены в IPv4 (по крайней мере со временем). Например, несмотря на отсутствие возможностей автоматической конфигурации, протокол динамической конфигурации хостов (Dynamic Host Configuration Protocol, DHCP) позволяет достигнуть аналогичных результатов. Однако проблему следует рассматривать в долгосрочной перспективе. Адресное пространство неизбежно потребуется расширить, если Internet будет продолжать расти прогнозируемыми темпами — и здесь IPv4 не сможет конкурировать с IPv6.
Кроме того, целый ряд приложений может выиграть от внедрения IPv6. Усовершенствования IPv6 в заголовках и адресах, идентификации и защите, а также в области QoS имеют важное значение для надлежащей реализации электронной коммерции. Новые функции позволят оптимизировать приложения — от интерактивных банковских операций до автоматизации цепочки поставок. Такие технологии, как мультимедиа, видеоконференции и голос по IP, также должны выиграть от введения поддержки QoS.
Реализация VPN может существенно улучшиться. Одна из причин этого состоит в том, что эффективная реализация VPN невозможна без предварительного решения вопросов туннелирования и маршрутизации. Усовершенствования IPv6 в обеих названных областях должны упростить развертывание VPN в сетях будущего.
Боб Хинден, сопредседатель и редактор документов в рабочей группе IPng, а также директор по передовым архитектурам в Nokia, отмечает преимущества автоматической конфигурации адресов для некоторых приложений. Усовершенствования IPv6 могут оказаться особенно полезны с ростом популярности информационных устройств малых форм, в частности персональных цифровых секретарей (Personal Digital Assistance, PDA) и мобильных телефонов. "Люди хотят иметь устройства, которые они могли бы подключить к сети — и чтобы при этом их конфигурация не была слишком сложной, — говорит Хинден. — При наличии глобальной адресации и автоматической конфигурации вы можете создать элегантное решение при большом количестве портативных беспроводных устройств".
Хинден полагает, что версии таких устройств с поддержкой IPv6, а также предложения типа виртуальных машин Java на базе IPv6 должны появиться в ближайшие несколько лет.
КОНВЕРСИЯ ВЕРСИЙ
Как и при любом переходе на новую сеть, переход от IPv4 к IPv6 будет сопровождаться трудностями — некоторые из них предсказуемы, другие — нет.
Диринг утверждает, что ему часто приходится слышать от администраторов сетей вопрос: "Когда, наконец, появится IPv6?"
"Я предложил IETF, чтобы переход к IPv6 совершился 31 декабря 1999 года, — шутит Диринг. — Все и так ожидают на следующий день всевозможных катаклизмов ввиду проблемы Y2K, так что переход к IPv6 можно провести "под шумок" — никто и не заметит".
В действительности же миграция к IPv6 будет представлять собой длительный процесс, причем в большинстве реализаций IPv4 и IPv6 какое-то время будут сосуществовать друг с другом. Наличие подходящих процедур миграции должно стать определяющим фактором для внедрения IPv6. Обеспечение совместимости между компонентами IPv6 и оставшимися элементами IPv4, такими, как хосты и маршрутизаторы, представляет собой основную проблему процесса миграции.
Двумя основными стратегиями миграции являются двойные стеки и туннелирование. Первый подход предполагает выполнение одного стека для IPv4 и другого для IPv6 на каждом узле с поддержкой IP. Данная конфигурация предусматривает наличие интерфейса для идентификации типа трафика и для направления этого трафика адресату. Таким интерфейсом мог бы быть IPv6-совместимый API — скорее всего, расширение IPv4 API. Узлы с двумя стеками поддерживали бы как 32-разрядные, так и 128-разрядные адреса.
Для реализации двойных стеков администраторам скорее всего придется изменить информацию о конфигурации маршрутизаторов и модернизировать DNS для поддержки более длинных адресов IPv6.
При туннелировании датаграммы IPv6 инкапсулируются в заголовок IPv4. На принимающем конце туннелирующий маршрутизатор удаляет заголовок IPv4 из датаграммы IPv6. Схема двунаправленного туннелирования представлена на Рисунке 3. Два туннеля конфигурируются таким образом, что точка входа в один туннель служит точкой выхода из другого туннеля.
Одно из преимуществ туннелирования состоит в простоте организации взаимодействия между хостами и узлами IPv6 по унаследованной сети. К тому же в отличие от альтернативных подходов типа NAT туннелирование прозрачно для большинства конечных систем и приложений.
Другое достоинство туннелирования заключается в том, что оно обеспечивает эффективную инфраструктуру для тестирования. Данный подход позволяет любой компании создать свою частную тестовую сеть, не нарушая функционирования имеющейся сети на базе IPv4, причем она может быть подключена к таким же тестовым сетям других компаний.
Недостаток туннелирования — в увеличении накладных расходов вследствие необходимости передачи дополнительных заголовков, из-за чего функционирование сети может ухудшиться. Поэтому администратору сети следует заранее убедиться, что глобальная сеть сможет справиться с возросшей нагрузкой.
Какой бы подход ни возобладал, оба протокола будут сосуществовать в сети в течение достаточно продолжительного времени. Кроме того, миграция обойдется, скорее всего, недешево, так как придется модернизировать такие устройства, как маршрутизаторы, коммутаторы, серверы, программное обеспечение и стеки TCP/IP, — а это чревато возможностью внесения программных ошибок и другими неприятностями.
Кроме того, весьма вероятно, что IPv6 будет внедряться в отдельных частях или сегментах сети, а не одним махом во всей сети. Такой подход подчеркивает важность туннелей IPv4, с помощью которых сегменты IPv6 смогут взаимодействовать друг с другом через маршрутизаторы IPv4.
Джон Пейдж, президент The Business Internet, чья компания занимается обучением и консультациями по стратегиям перехода от IPv4 к IPv6, утверждает, что трудности неизбежны. Например, внедрение нового или модифицированного оборудования для интеграции трафика IPv6 в сеть IPv4 может привести к снижению производительности. "При пересечении границы между областями IPv4 и IPv6 поток пакетов подвергается различным программным преобразованиям, — поясняет Пейдж, — и это приводит к замедлению потока трафика".
"Трудно сказать, какое влияние будет иметь преобразование сетевых адресов, — продолжает он. — Ввиду различия потоков данных последствия шифрования и идентификации также сложно прогнозировать, хотя мы определенно можем сказать, что сетевые операции будут выполняться поначалу с меньшей, чем номинальная, скоростью".
По мнению Хиндена, план миграции IETF, предполагающий сосуществование систем IPv4 и IPv6, также имеет недостатки. Один из них, по его словам, состоит в том, что "если IPv4 будет сохранен на устройстве, то это приведет к потере преимуществ автоматической конфигурации IPv6. Даже если часть сети с IPv6 и не придется переконфигурировать, то часть сети с IPv4 потребуется переконфигурировать".
IPV6 В ДЕЙСТВИИ
Одно из наиболее очевидных препятствий реализации сети IPv6 состоит в том, что переход не может произойти, пока не появятся продукты с поддержкой данного протокола. Однако отсутствие продуктов не смущает Диринга: "В IETF осознают, что цикл разработки такого рода продуктов занимает годы, так что у меня не вызывает беспокойства тот факт, что пока IPv6 не получил широкого распространения".
Сдерживающим фактором широкомасштабного распространения IPv6 остается и отсутствие сетевых приложений, перенесенных на IPv6-совместимые API.
Такие продукты, как IPv6-совместимые операционные системы типа Windows NT, должны появиться прежде, чем движение по внедрению IPv6 сможет набрать ход. Исследовательская группа в области программного обеспечения Microsoft Research работает над стеком IPv6 для NT. Вряд ли готовую версию стека стоит ожидать в ближайшем будущем, но код можно посмотреть уже сейчас на узле Microsoft Research по адресу: http://www.research.microsoft.com .
По информации Microsoft, работа еще не завершена, но на данный момент программное обеспечение поддерживает обработку заголовков, автоматические и конфигурируемые туннели IPv6 поверх IPv4, заголовки с указанием транзитных узлов, автоматическую конфигурацию адресов и некоторые другие функции.
Поддержка IPv6 должна в конечном итоге появиться в сетевых ОС и других производителей, в частности Novell и Sun Microsystems. Как утверждается, прототип Solaris IPv6 от Sun поддерживает автоматические и конфигурируемые туннели IPv6 поверх IPv4, разрешение адресов IPv6, уникальную и групповую адресацию IPv6, а также фрагментацию и сборку IPv6. Как заявляет Novell, стек TCP/IP в NetWare 5.0 "написан таким образом, чтобы разработчики Novell и NetWare могли поддерживать будущие редакции IP (такие, как IPv6) с минимальными усилиями".
Что касается аппаратного обеспечения, Cisco Systems и подразделение Bay Networks компании Nortel уже тестируют реализации продуктов, такие, как IPv6-совместимые маршрутизаторы (см. врезку "IPv6: по ту сторону мифа").
Cisco заявляет, что ее разработчики занимаются реализацией поддержки IPv6 в программном обеспечении IOS. Кроме того, они занимаются изменением реализации Border Gateway Proto-col 4 (BGP4) для включения поддержки дополнительных протоколов, в том числе IPv6. По сведениям из Bay, коммутатор Versalar IP Access Switch 15000 поддерживает помимо IPv4 еще и IPv6.
Перечисленные в этой статье реализации продуктов и сетей на базе IPv6 находятся пока на экспериментальной стадии разработки. Некоторые считают, что это все, на что протокол может рассчитывать, и что лучшая альтернатива появится до того, как IPv6 будет полностью реализован.
В сетевом мире, где никогда не стоит говорить никогда, любое может случиться. Но, с учетом всех потраченных усилий и открывающихся перспектив, IPv6 представляется наиболее вероятным кандидатом на роль Internet следующего поколения. Важно понять, что проблему нехватки сетевых адресов невозможно решить каким-либо простым способом.
Элизабет Кларк — ответственный редактор Network Magazine. С ней можно связаться по адресу: eclark@mfi.com.IPv6: по ту сторону мифа
Несмотря на то что имеющиеся реализации IPv6 ограничены главным образом тестовыми приложениями, ряд таких проектов обещает дать ценную практическую информацию о функционировании сетей на базе IPv6.
Internet2, финансируемый консорциумом университетов и частных фирм, а также такими спонсорами, как Cisco Systems и Bay Networks, функционирует как тестовая сеть с поддержкой таких приложений, как многоадресная передача, качество обслуживания и защита информации. Группа занимается проверкой того, как маршрутизаторы на базе IPv6 взаимодействуют с имеющимся программным и аппаратным обеспечением.
Что касается качества обслуживания, Internet2 используется для обкатки резервирования ресурсов. Одна из основных областей интересов — архитектура с поддержкой сигналов "занято", когда запрошенная пропускная способность не может быть гарантирована. Это осуществляется посредством резервирования ресурсов из конца в конец во время установления соединения весьма специфическим образом. Что касается многоадресной передачи, Internet2 пытается усовершенствовать алгоритмы обработки многоадресной информации, выбора наилучшего маршрута для передачи такой информации и обеспечения качества обслуживания для чувствительных ко времени данных.
6Bone, самостоятельное детище проекта IETF по IPng, представляет собой экспериментальную глобальную сеть IPv6. Эта виртуальная сеть состоит из связанных туннелями сегментов, каждый из которых поддерживает IPv6.
Хосты в сети взаимодействуют через существующую инфраструктуру IPv4. Одна из целей проекта — способствовать переходу от IPv4 к IPv6 посредством разработки магистрали IPv6 в масштабах Internet. В соответствии с этим планом, магистраль IPv6 должна охватить сети провайдеров Internet и частные сети. В настоящее время ее участниками являются Университет Осаки и Институт компьютерных исследований в Гренобле.
Ресурсы Internet
Дополнительную информацию о деятельности Рабочей группы IPng можно найти на http://www.ietf.org/html.charters/ipngwg-charter.html.
Подробности о реализациях IPv6 можно узнать на http://playground.sun.com/pub/ipng/html/ipng-main.html.
Понятное описание Internet Protocol, Version 6 (IPv6) можно найти на сервере Cisco по адресу: http://www.cisco.com/warp/public/732/ipv6/.
Дополнительную информацию о 6Bone можно найти на http://www-6bone.lbl.gov/6bone/.