Протокол iPv6
Разработка интернет-протокола версии 6 (IPv6) была инициирована Инженерным советом интернета (IETF) в начале 1990-х годов. Основной предпосылкой к созданию нового стандарта послужило осознание неизбежности исчерпания адресного пространства протокола IPv4, использующего 32-битное кодирование. В 1993 году IETF объявил конкурс на разработку протокола следующего поколения (IPng – Internet Protocol next generation), в рамках которого рассматривались различные архитектурные концепции.
Официальным моментом рождения IPv6 принято считать декабрь 1995 года, когда был опубликован документ RFC 1883, зафиксировавший базовые спецификации нового протокола сетевого уровня. Впоследствии, в 1998 году, данный стандарт был переработан и закреплен в документе RFC 2460, ставшем основным нормативным ориентиром для производителей сетевого оборудования на долгие годы. Окончательный статус интернет-стандарта (Internet Standard) был присвоен IPv6 в июле 2017 года с выходом RFC 8200, который актуализировал технические требования с учетом многолетней практики эксплуатации сетей.
Главным
концептуальным отличием IPv6 от своего
предшественника является переход от
32-битного к 128-битному схеме адресации.
Математически это расширяет адресное
пространство до
уникальных комбинаций, что приблизительно
эквивалентно
адресам. Подобная избыточность полностью
решает проблему дефицита идентификаторов
и позволяет закрепить за каждым сетевым
интерфейсом на планете глобально
уникальный адрес.
Синтаксическая структура адреса IPv6 представляется в виде восьми групп четырехзначных шестнадцатеричных чисел, разделенных двоеточием, например: 2001:0db8:85a3:0000:0000:8a2e:0370:7334. Для оптимизации восприятия и сокращения записи применяются правила компрессии, согласно которым ведущие нули в каждой группе могут быть опущены, а одна последовательность, состоящая исключительно из нулевых групп, может быть замещена двойным двоеточием. В результате применения данных правил вышеприведенный адрес принимает вид 2001:db8:85a3::8a2e:370:7334.
В архитектуре IPv6 полностью упразднено понятие широковещательной рассылки (broadcast), функции которой были перераспределены между другими типами адресации. Вся структура современного трафика классифицируется по трем основным направлениям. Индивидуальные адреса (Unicast) предназначены для доставки пакета конкретному интерфейсу. Многоадресные адреса (Multicast) обеспечивают доставку пакета группе интерфейсов, подписанных на определенный поток. Произвольные адреса (Anycast) направляют пакет на ближайший к отправителю интерфейс из группы топологически распределенных узлов.
При проектировании IPv6 разработчики уделили особое внимание снижению вычислительной нагрузки на промежуточные маршрутизаторы. Несмотря на то, что размер адреса увеличился в четыре раза, базовый заголовок IPv6 имеет фиксированную длину 40 байт, что ровно в два раза превышает минимальную длину заголовка IPv4. Это было достигнуто путем удаления редко используемых и избыточных полей.
Базовый заголовок IPv6 включает в себя строго структурированный набор полей, расположенных в жесткой последовательности. Начинается структура с 4-битного поля Версии (Version), содержащего значение 6, за которым следует 8-битное поле Класса трафика (Traffic Class), используемое для обеспечения качества обслуживания (QoS) и приоритизации пакетов. Далее располагается 20-битная Метка потока (Flow Label), позволяющая маркировать последовательности пакетов для их идентичной обработки маршрутизаторами в рамках одной сессии. За ней следует 16-битное поле Длины полезной нагрузки (Payload Length), указывающее размер данных за базовым заголовком, включая расширения. Завершают управляющую часть 8-битное поле Следующего заголовка (Next Header), определяющее тип последующей структуры данных, и 8-битное поле Предела пересылок (Hop Limit), ограничивающее максимальное количество транзитных узлов взамен устаревшего поля TTL. Основную часть заголовка занимают два поля по 128 бит каждое, содержащие Адрес отправителя (Source Address) и Адрес получателя (Destination Address).Из базового заголовка была исключена контрольная сумма сетевого уровня, поскольку проверка целостности данных эффективно реализуется на канальном и транспортном уровнях, что существенно ускорило процесс коммутации пакетов аппаратными средствами связи.
Для реализации дополнительных функций, которые в IPv4 возлагались на необязательные поля, в IPv6 внедрена концепция цепочки заголовков расширения (Extension Headers). Данные заголовки располагаются в теле пакета между базовым заголовком сетевого уровня и данными транспортного уровня. Маршрутизаторы, находящиеся на пути следования пакета, не анализируют эти расширения, за редким исключением, что минимизирует задержки при обработке трафика. Заголовки расширения активируются только конечными узлами и применяются для маршрутизации от источника, фрагментации, а также обеспечения безопасности.
Интеграция протокола IPSec непосредственно в архитектуру IPv6 изначально являлась обязательным требованием, что гарантировало сквозное шифрование и аутентификацию на сетевом уровне без применения сторонних утилит. Заголовки расширения AH (Authentication Header) и ESP (Encapsulating Security Payload) обеспечивают криптографическую защиту целостности и конфиденциальности передаваемой информации.
Важным технологическим прорывом стало внедрение механизма автоматической настройки параметров соединения без фиксации состояния (SLAAC – Stateless Address Autoconfiguration). Этот алгоритм позволяет сетевому устройству самостоятельно сгенерировать легитимный глобальный адрес. Процесс реализуется посредством взаимодействия с локальным маршрутизатором через протокол ICMPv6, когда узел запрашивает префикс сети, после чего комбинирует его с собственным идентификатором интерфейса, который вычисляется на основе MAC-адреса по методике EUI-64 или генерируется случайным образом для обеспечения конфиденциальности.
