Совершенствование технологии протокола IP
21 апреля 2005
Рубрика: Интернет и сети.
Автор: Фархад Рахимов.
pic

Чтобы компьютеры в сети могли связываться между собой, они должны пользоваться общим языком, который называется протоколом. Протокол это набор правил и стандартов, обеспечивающий связь между компьютерами в сети. Протокол IP (Internet Protocol) помогает определять местоположение конечного компьютера при сетевой связи. IP представляет собой ненадежный, не требующий установления подключения протокол, который главным образом используется для адресации пакетов и их маршрутизации между компьютерами, объединенными в сеть. В Интернете используется много различных типов пакетов, но один из основных — IP-пакет, именно он вкладывается в кадр Ethernet, и именно в него вкладываются пакеты UDP, TCP.

Ненадежность протокола IP заключается в том, что передаваемый пакет может быть потерян, испорчен, доставлен вне последовательности, продублирован или доставлен с опозданием. При этом протокол IP не пытается исправлять такие ошибки, запрашивая повторную передачу данных. Протокол IP работает в виде почтового сортировочного участка стека протоколов TCP/IP, в котором происходит сортировка и доставка пакетов. Главной функцией протокола IP является маршрутизация пакетов, пока они не достигнут пункта назначения.

IP начал разрабатываться и был апробирован впервые в рамках первых исследовательских сетей в начале 70-х годов, и на сегодняшний день IPv4 является основным протоколом сетевого уровня. То есть «поверх» IP осуществляется огромное количество разнообразных телекоммуникационных взаимодействий. 20-30 лет назад, когда IPv4 был универсальным и оптимальным протоколом, общее количество узлов исчислялось несколькими десятками. Если бы первоначальные темпы роста Сети сохранялись, то сейчас в ней было бы 1000 узлов. В 1981 году в Сети насчитывалось всего около 200 узлов, а в марте 2000 года более 75 миллионов. Это означает, что в последние десятилетия новый узел появляется приблизительно каждые 30 секунд.
Недостатки IPv4 можно разбить на две большие группы:

• проблемы масштабируемости
• отсутствие некоторых обязательных механизмов.

Проблемы масштабируемости IPv4 проявляются не только в таком колоссальном объединении сетей, как Интернет, но и в крупных корпоративных сетях. Состоят они в следующем:

• недостаточность объема 32-битного адресного пространства
• сложность агрегирования маршрутов, разрастание таблиц маршрутизации
• сложность массового изменения IP-адресов.
• относительная сложность обработки заголовков пакетов IPv4.

В IPv4 отсутствуют следующие обязательные по современным меркам механизмы:

• механизмы информационной безопасности
• средства поддержки классов обслуживания.

В плане информационной безопасности особенно неприятно отсутствие стандартных средств аутентификации и шифрования данных. Исходный IP-адрес идентифицирует отправителя, но каких-либо аутентификаторов в пакете IPv4 нет, поэтому проверить подлинность отправителя практически невозможно, как невозможно и сформировать защищенный канал передачи данных с произвольным абонентом сети. Средства безопасности желательно реализовать именно на сетевом уровне, поскольку тогда они будут функционировать прозрачным для приложений образом, то есть не придется вносить изменения в существующее прикладное программное обеспечение. Отсутствие поддержки классов обслуживания в IPv4 многие маршрутизаторы компенсируют собственными механизмами выделения IP-потоков, анализируя информацию транспортного уровня. Ясно, что такие решения оказываются закрытыми, не обеспечивающими сквозной поддержки классов обслуживания в разнородной среде, что в значительной степени эти решения обесценивает. Как и в случае механизмов безопасности, поддержка классов обслуживания должна быть реализована на сетевом уровне, поскольку обеспечивать ее будут маршрутизаторы, связывающие оконечные системы. Помимо проблем с ростом объемов и ограниченным числом IP-адресов, специалисты называют следующие: неограниченный рост маршрутных таблиц, отсутствие встроенных механизмов обеспечения «качества обслуживания», отсутствие встроенных механизмов автоконфигурации хостов, отсутствие встроенных средств безопасности и неэффективность механизмов поддержки мобильных устройств. Основная проблема на сегодняшний день — опасность не успеть действительно существует, и если она воплотится, то «Интернет рухнет под колоссальным давлением новых пользователей и растущего трафика. Кроме того, важные инновации, проводимые в Европе, Америке Японии и других странах, будут сорваны».

pic

Необходимость перехода с использованием в Интернете протокола IPv4 на IPv6 обусловлена вышеуказанными недостатками протокола IPv4, главной среди которых является нехватка адресного пространства. И этот переход уже начался. Однако если учесть число всевозможных узлов в глобальной сети, то становится понятно, что для замены всего программного и аппаратного обеспечения, не способного работать с IPv6, потребуется не один год. И в течение всего этого периода необходимо, чтобы серверы и маршрутизаторы, работающие с новым протоколом, были совместимы с теми, которые использует старый. Сделать это не так-то и просто. На сегодняшний день существует четыре основных механизма обеспечения как прямой, так и обратной совместимости, причем у некоторых из них есть еще и несколько разновидностей. Давайте же мы с вами рассмотрим, каким образом обеспечивается совместная работа узлов, использующих разные версии протокола IP.

Двойной стек
Этот механизм обеспечения совместимости между IPv4 и IPv6 — самый простой. Его суть заключается в следующем. На каждом узле сети, который работает с IPv6 и которому требуется взаимодействие с IPv4-хостами, устанавливается стек протокола IPv4, и ему выделяется IPV4-адрес. Естественно, после этого данный узел может «общаться» с другими хостами, работающими с разными версиями протокола IP. Главным преимуществом принципа двойного стека, как мы уже отмечали, является относительная простота. К сожалению, недостатков у него гораздо больше.
Во-первых, для того чтобы двойной стек нормально работал, необходимо, чтобы большинство промежуточных маршрутизаторов Глобальной сети работали как с протоколом IPv4, так и с протоколом IPv6. Во-вторых, для использования двойного стека системные администраторы должны установить и настроить на каждом узле специальное программное обеспечение. А это требует дополнительных затрат как времени специалистов, так и денег на приобретение ПО. В-третьих, применение этого механизма повышает использование системных ресурсов узлов Сети и может замедлять их работу. Правда, от последних двух недостатков можно избавиться. Для этого необходимо, чтобы производители сетевого аппаратного и программного обеспечения внесли в свои продукты изменения, позволяющие им работать с обеими версиями протокола. К сожалению, это потребует немалых затрат, так что наверняка подавляющее большинство из них решит, что «овчинка выделки не стоит».

pic

Application Level Gateway (ALG)
Двойной стек — самый простой механизм обеспечения совместимости IPv4 и IPv6 Application Level Gateway (ALG) — переводится с английского как «шлюз прикладного уровня». Этот механизм предполагает, что для каждого приложения, работающего с Интернетом, создается специальная утилита, которая преобразовывает весь входящий трафик этого приложения из IPv4 в IPv6, а весь исходящий — из IPv6 в IPv4. Таким образом, сам узел работает по новой версии протокола, а весь трафик передается по старой. Преимуществ использования шлюзов прикладного уровня два. Во-первых, это простота установки и настройки, а во-вторых — универсальность механизма. И действительно, использование шлюзов обеспечивает как «общение» узлов, работающих с разными протоколами, так и взаимодействие IPv6-сетей между собой посредством существующей среды передачи данных IPv4.
Теперь поговорим о недостатках использования механизма AGL, которые, как и преимущества, очевидны. Все они появились благодаря тому, что необходима установка дополнительного программного обеспечения для каждого приложения. Во-первых, эти утилиты еще нужно разработать, что потребует от различных компаний определенных затрат. Во-вторых, конечные пользователи должны приобрести эти шлюзы, установить их и настроить. А все это тоже затраты. А если учесть, что на большинстве современных компьютеров стоит не менее десятка различных приложений, использующих Интернет (и это не говоря уже про серверы), то становится понятно, что использование шлюзов, мягко говоря, неэффективно.

pic

Туннелирование
Application Level Gateway (ALG) предполагает, что для каждого приложения, работающего с Интернетом, создается специальная утилита, которая преобразовывает весь входящий трафик этого приложения из IPv4 в IPv6.
Механизм туннелирования используется для частичного решения проблемы совместимости. Он не может применяться для связи IPv6-узлов с IPv4-хостами. Туннелирование предназначено для организации связи между IPv6-узлами или сетями посредством существующей среды передачи данных, поддерживающей только версию протокола IPv4. Суть этого механизма заключается в следующем. Между сетями или хостами, работающими с IPv6, с помощью специального программного обеспечения создается «туннель». Пакеты информации, попадая на один конец этого «туннеля», преобразовываются. Это преобразование заключается в инкапсулировании IPv6-пакетов в пакеты стандарта IPv4, которые затем пересылаются на «выход». На втором конце «туннеля» происходит обратный процесс. Из IPv4-пакетов извлекаются пакеты стандарта IPv6, которые затем обрабатываются маршрутизаторами, как обычно.

Главным преимуществом этого механизма является отсутствие необходимости приобретать и устанавливать дополнительное программное обеспечение на каждом узле. Так, для сети, построенной на основе протокола IPv6, достаточно создать несколько «туннелей», связывающих ее с другими такими же сетями. Именно по такому принципу и построена 6bone. Это глобальная сеть, которая использовалась для тестирования и доработки протокола IPv6. Она состоит из целого ряда подсетей, которые связаны между собой посредством «туннелей». Кстати, именно благодаря 6bone механизм туннелирования и приобрел наибольшее распространение в Интернете для обеспечения совместимости между узлами, работающими с IPv6 и IPv4, даже несмотря на главный его недостаток, о котором мы уже упомянули.

pic

Транслятор IP/ICMP
Механизм туннелирования используется для частичного решения проблемы совместимости
Это самый современный механизм, обеспечивающий как совместимость между IPv4 и IPv6-узлами, так и связь между собой IPv6-сетей посредством среды передачи данных IPv4. В нем используются специальные типы адресов (0000:0000:0000:0000:0000:0000: XXXX:XXXX и 0000:0000:0000:0000:0000:FFFF:XXXX: XXXX), которые есть в новой версии протокола. Для реализации этого механизма необходимо специальное программное обеспечение — транслятор. Он устанавливается на границе IPv6-сети. Весь приходящий извне трафик в формате IPv4 принимается именно этим транслятором, который преобразовывает его согласно стандарту IPv6 и отправляет узлам сети, каждому из которых присвоен IPv4-транслированный адрес. То же самое происходит и с исходящим трафиком. Он проходит через транслятор, который преобразовывает его согласно протоколу IPv4 и отправляет адресатам.

Достоинством транслятора является простота его установки, настройки и использования. Фактически единственное, о чем стоит позаботиться системному администратору — это присвоение всем хостам, входящим в сеть, IPv4-транслированных адресов. Особенно приятен тот факт, что в случае использования транслятора ничего не нужно делать с прикладным программным обеспечением (настраивать, устанавливать дополнительные приложения и так далее).

pic

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

Адреса IPv6 можно разделить на три типа: обычные (unicast), групповые (multicast) и нечеткие (anycast). Обычный адрес идентифицирует один интерфейс; групповой — группу интерфейсов. Пакет с обычным адресом передается конкретному адресату, в то время как пакет с групповым адресом доставляется всем членам группы. Аналогично групповому адресу третий тип адресов IPv6 идентифицирует набор интерфейсов. Однако пакет с нечетким адресом доставляется только на один интерфейс — ближайшему члену данной группы.

Одно из применений таких адресов состоит, например, в указании хосту в качестве адреса шлюза нечеткого адреса. При этом хосту не надо знать конкретный адрес маршрутизатора, потому что последний является членом группы маршрутизаторов с таким адресом. Кроме того, изменять данный адрес в случае изменения местоположения маршрутизатора не надо. Это становится возможным благодаря тому, что пакеты по-прежнему отправляются ближайшему члену нечеткой группы. Использование такого рода адресов в IPv6 сводит к минимуму некоторые свойственные IPv4 проблемы реконфигурации при реструктурировании сети.
Адреса IPv4 разделяются на классы в соответствии со значениями нескольких первых бит адреса. IPv6 распределяет адресное пространство аналогичным образом; этот метод реализуется с помощью поля переменной длины, обозначаемого термином «Format Prefix». Таблица 1 описывает исходное распределение адресного пространства IPv6, в том числе назначение блока адресов, его двоичный префикс и его долю от всего адресного пространства.

Только мы привыкли к точечно-десятичной нотации адресов IPv4, как тут появляется IPv6 со 128-разрядными адресами. В IPv6 128-разрядные адреса записываются в виде восьми 16-разрядных целых чисел, разделенных двоеточием. Каждое целое число представлено четырьмя шестнадцатеричными цифрами; иными словами, вы будете вынуждены ввести 32 шестнадцатеричные цифры для задания IP-адреса — весьма утомительное занятие. Ваши пальцы должны быть достаточно натренированы, чтобы ввести адрес станции, а также шлюза и сервера DNS. К счастью, IPv6 разрешает опустить начальные нули в шестнадцатеричных числах, а также использовать пару двоеточий (::) внутри адреса для замены последовательности нулевых чисел. На начальной стадии развертывания IPv6, скорее всего, только часть из 128 бит найдет реальное применение, поэтому адреса будут содержать множество нулей. Таким образом, пропуск начальных нулей и использование только пары двоеточий вместо последовательности нулевых чисел должно упростить процесс конфигурации IP. Например, IPv4-совместимые адреса IPv6 будут состоять из 32-разрядных адресов IPv4, записанных в младших 32 разрядах адресного пространства IPv6. Иначе говоря, префикс такого адреса будет состоять из 96 нулей.

pic

В качестве иллюстрации мы рассмотрим следующий 128-разрядный адрес: 504A:0000: 0000:0000:00FC: ABCD: 3A1F:4D3A. Так как IPv6 позволяет пропустить начальные нули в каждом блоке из 4 шестнадцатеричных цифр в адресе, данный адрес можно записать в сокращенном виде следующим образом: 504A:0:0:0:FC:ABCD: 3A1F:4D3A. Однако, если воспользоваться принятым соглашением об исключении последовательных блоков нулей, адрес можно записать еще короче 504A::FC: ABCD:3A1F:4D3A. Теперь адрес состоит всего из пяти шестнадцатеричных чисел вместо восьми. Таким образом, пара двоеточий представляет 3 целых числа, значение которых равно нулю.

pic
Orphus system
Подписывайтесь на канал infoCOM.UZ в Telegram, чтобы первыми узнавать об ИКТ новостях Узбекистана
В Telegram
В WhatsApp
В Одноклассники
ВКонтакте