Практическое занятие 2. Протокол IP версии 6
Протокол IPv6 — это новая версия протокола IP, которая разработана в качестве преемника IPv4 и призвана окончательно решить проблему исчерпания адресного пространства. В отличие от адреса IPv4, который имеет длину 32 бита, размер адреса IPv6 составляет 128 бит.
Основные отличия IPv6 от IPv4 заключаются не только в увеличении адресного пространства. При разработке IPv6 ставились и другие не менее важные цели. Приведем основные отличия протокола IPv6 от IPv4:
● Большее адресное пространство. Размер адреса IPv6 увеличен до 128 битов. Это позволяет адресовать примерно 3,4х1038 интерфейсов устройств.
● Иерархическое назначение индивидуальных адресов. Был создан формат индивидуальных адресов Global Unicast, который используется для идентификации устройств в глобальной сети. С его помощью можно создавать множество уровней в иерархической структуре адресов, как провайдеров, так и организаций (т.е. множество раз делить большие блоки адресов на меньшие).
● Расширена поддержка групповых адресов.Улучшена поддержка групповых адресов и добавлена поддержка нового типа адресации: альтернативная (anycast) адресация. Новый тип адресации позволяет доставлять сообщение ближайшему интерфейсу, входящему в группу интерфейсов, идентифицируемых одним адресом.
● Автоконфигурация. В протоколе IPv6 узел может практически самостоятельно сконфигурировать параметры своих интерфейсов.
● Новый формат дейтаграммы. Формат IP-дейтаграммы был переопределен. К основному (фиксированному) заголовку каждой дейтаграммы IPv6 может быть добавлено произвольное число расширенных заголовков, содержащих требуемую контрольную информацию.
● Поддержка качества обслуживания (QoS). Дейтаграмма IPv6 включает функции QoS, обеспечивающие поддержку трафика приложений, чувствительных к задержкам.
● Поддержка безопасности. Функции безопасности поддерживаются с помощью расширенных заголовков Authentication и Encapsulation Security Payload.
Из-за множества отличий протоколов IPv4 и IPv6 и важности протокола IP для функционирования глобальной сети, был разработан план по переходу с протокола IPv4 на IPv6. IETF работала над методами, которые позволили бы плавно перейти с протокола версии 4 на протокол версии 6 и обеспечить возможность узлам IPv4 и IPv6 получать доступ друг к другу. Эти методы включают:
● Использование устройств «Dual Stack» (двойной стек): программное обеспечение устройств включает поддержку обеих версий IP (IPv4 и IPv6), что позволяет им взаимодействовать как с устройствами IPv4, так и с устройствами IPv6.
● Трансляцию IPv4/IPv6: программное обеспечение устройств «Dual Stack» может поддерживать функционал, который принимает запросы от узлов IPv6, преобразует их в дейтаграммы IPv4 и отправляет узлам-получателям с поддержкой IPv4. Дейтаграммы от узлов IPv4, предназначенные узлам IPv6, аналогичным образом преобразуются на устройствах «Dual Stack».
● Туннелирование IPv6 поверх IPv4: устройства IPv6, на пути между которыми отсутствуют маршрутизаторы IPv6, могут взаимодействовать друг с другом за счет инкапсуляции дейтаграмм IPv6 в дейтаграммы IPv4. Другими словами они будут использовать два сетевых уровня: IPv6 будет находиться над IPv4. Инкапсулированная дейтаграмма IPv4 будет передаваться между маршрутизаторами IPv4 пока не достигнет адресата.
Рис. 2.1 Методы перехода с IPv4 на IPv6
Формат заголовка IPv6
При разработке протокола IPv6 были внесены изменения в формат IP-пакета. Увеличение размера IP-адреса с 32 бит до 128 бит добавило 24 байта к заголовку пакета, что, в свою очередь, привело к попытке уменьшить его размер за счет исключения полей, связанных с фрагментацией, и поля контрольной суммы. В результате заголовок пакета IPv6 увеличился всего в два раза (с 20 до 40 байт).
Пакет протокола IPv6 состоит из:
● фиксированного заголовка длиной 40 байт, содержащего адреса источника и приемника и всю требуемую для доставки любой дейтаграммы информацию;
● произвольного числа расширенных заголовков (extension header) переменной длины, каждый из которых содержит дополнительную информацию для поддержки таких функций как фрагментация, маршрутизация, аутентификация, безопасность и опции;
● поля данных переменной длины.
Такой порядок способствует эффективной обработке пакетов на всем пути их следования.
Рис. 2.2 Сравнение форматов заголовка IPv4 и IPv6
Формат фиксированного заголовка IPv6 показан на Рис. 2.20. Он состоит из следующих полей:
● Версия (Version) – для IPv6 значение поля должно быть равно 6;
● Класс трафика (Traffic Class) – поле используется для идентификации разных классов трафика или приоритетов для обеспечения дифференцированного обслуживания пакетов IPv6;
● Метка потока (Flow Label) – используется отправителем для обозначения последовательности пакетов, которые должны быть подвергнуты определенной обработке маршрутизаторами;
● Размер поля данных (Payload Length) – число, указывающее длину поля данных, идущего за заголовком пакета (с учетом расширенного заголовка);
● Следующий заголовок (Next Header) – задает тип расширенного заголовка IPv6, который следует за фиксированным;
● Предельное число шагов (Hop Limit) – уменьшается на 1 каждым маршрутизатором, через который передается пакет; при значении, равном 0, пакет отбрасывается;
● Адрес источника (Source Address) – 128-битный адрес отправителя пакета;
● Адрес назначения (Destination Address) – 128-битный адрес получателя пакета.
Расширенные заголовки IPv6 используются для поддержки механизмов маршрутизации, безопасности, фрагментации, сетевого управления и расположены между фиксированным заголовком и заголовком протокола более высокого уровня. Пакет IPv6 может содержать 0, 1 или несколько расширенных заголовков, каждый из которых определяется значением поля Next Header предшествующего заголовка. Все существующие типы расширенных заголовков описаны в таблице 2.1.
Таблица 2.1. Типы расширенных заголовков IPv6
Расширенный заголовок | Тип | Описание |
Hop-by-Hop Options | Параметры, которые должны быть обработаны каждым транзитным узлом на пути от отправителя до получателя пакета | |
Routing | Позволяет отправителю определять список узлов, которые пакет должен пройти | |
Fragment | Содержит информацию о фрагментации пакета | |
Encapsulating Security Payload (ESP) | Обеспечивает шифрование данных с помощью IPSec | |
Authentication Header (AH) | Содержит информацию для проверки подлинности зашифрованных данных при использовании IPSec | |
Destination Options | Определяет произвольный набор опций, которые должны быть обработаны получателем пакета | |
TCP UDP ICMPv6 | Заголовок вышележащего уровня |
Рис. 2.3Информация о расширенном заголовке в пакете IPv6
Поле Next Header используется для логической связи всех заголовков пакета IPv6. Например, Next Header в фиксированном заголовке указывает тип первого расширенного заголовка, поле Next Header в первом расширенном заголовке содержит тип следующего расширенного заголовка и т.д. Поле Next Header последнего расширенного заголовка содержит номер протокола транспортного уровня (TCP или UDP) (Рис. 2.4).
Рис. 2.4 Расширенные заголовки IPv6
Расширенные заголовки обрабатываются только узлом-получателем, за исключением заголовка Hop-By-Hop Options, который обрабатывается каждым промежуточным узлом на пути пакета, включая отправителя и получателя.
Каждый расширенный заголовок может появляться в дейтаграмме IPv6 только один раз (за исключением Destination Options, который появляется дважды). Если в дейтаграмме имеется несколько расширенных заголовков, они должны следовать в определенном порядке:
1. Hop-by-Hop Options
2. Destination Options (для опций, которые должны быть обработаны получателем, указанным в поле Destination Address плюс последовательностью получателей, перечисленных в заголовке Routing)
3. Routing
4. Fragment
5. Authentication
6. Encapsulating Security Payload
7. Destination Options (для опций, которые должны быть обработаны только последним получателем пакета)
Подведем итог в сравнении заголовков пакетов IPv4 и IPv6:
● Неизменными остались поля Версия (Version), Адрес источника (Source Address) и Адрес назначения (Destination Address);
● Поле Длина заголовка (Internet Header Length) исчезло, так как фиксированный заголовок IPv6 имеет определенную длину (40 байт);
● Поле Тип сервиса (Type of Service) трансформировалось в заголовке IPv6 в поля Класс трафика (Traffic Class) и Метка потока (Flow Label);
● Поля Время жизни (Time to Live) и Протокол (Protocol) в заголовке IPv6 изменили названия, соответственно, на Предельное число шагов (Hop Limit) и Следующий заголовок (Next Header) с некоторым уточнением трактовки;
● Поле Контрольная сумма (Header Checksum) было ликвидировано, так как ее подсчет занимает некоторое время, что существенно снижает производительность узлов;
● Поля в заголовке IPv4, связанные с фрагментацией, были перенесены в расширенные заголовки IPv6.