RFC 2460
RFC 2460 — это спецификация протокола IPv6 (Internet Protocol version 6), утверждённая Инженерным советом Интернета (IETF) в декабре 1998 года. Документ определяет формат пакета, систему адресации, механизмы маршрутизации и базовые принципы работы шестой версии интернет-протокола. RFC 2460 пришёл на смену более ранней версии IPv4 (RFC 791) и был разработан для преодоления ограничений, связанных с исчерпанием адресного пространства, а также для улучшения эффективности передачи данных, безопасности и поддержки новых типов сервисов.
История создания и статус документа
Разработка IPv6 началась в начале 1990-х годов, когда стало очевидно, что 32-битное адресное пространство IPv4 (около 4,3 миллиарда адресов) будет исчерпано в обозримом будущем. RFC 2460 был опубликован в декабре 1998 года, заменив собой проект RFC 1883, который был первым описанием протокола. Авторами документа выступили Стив Дирринг (Steve Deering) из корпорации Cisco и Роберт Хинден (Robert Hinden) из компании Nokia.
В июле 2017 года IETF опубликовала RFC 8200, который стал новым стандартом для IPv6, заменив RFC 2460. RFC 8200 уточнил некоторые положения, удалил устаревшие механизмы (например, фрагментацию только на узле-источнике) и внёс ряд технических исправлений, однако фундаментальные принципы, заложенные в RFC 2460, сохранились. Несмотря на замену, RFC 2460 остаётся исторически важным документом, на который ссылаются многие последующие спецификации.
Основные отличия от IPv4
RFC 2460 вводит несколько ключевых изменений по сравнению с IPv4:
- Увеличенное адресное пространство: IPv6 использует 128-битные адреса, что даёт приблизительно 340 ундециллионов (3,4 × 10³⁸) адресов.
- Упрощённый формат заголовка: базовый заголовок IPv6 имеет фиксированную длину 40 байт и содержит только 8 полей, тогда как заголовок IPv4 — 12 полей переменной длины.
- Автоконфигурация: поддержка безгосударственной автоматической настройки адресов (SLAAC) без необходимости в DHCP-сервере.
- Встроенная безопасность: протокол IPsec является обязательным компонентом, хотя на практике его использование опционально.
- Улучшенная поддержка расширений: заголовки расширения заменяют опции IPv4 и позволяют более гибко добавлять новые функции.
- Отсутствие контрольных сумм на сетевом уровне: контрольные суммы убраны из заголовка, так как они присутствуют на канальном и транспортном уровнях.
Структура пакета IPv6
Формат пакета определён в RFC 2460 и состоит из двух частей: базового заголовка и одного или нескольких заголовков расширения, следующих за ними.
Базовый заголовок (40 байт)
Базовый заголовок содержит следующие поля:
- Version (4 бита): версия протокола, для IPv6 равно 6.
- Traffic Class (8 бит): метка класса трафика для контроля качества обслуживания (QoS).
- Flow Label (20 бит): метка потока для идентификации последовательности пакетов, требующих одинаковой обработки маршрутизаторами.
- Payload Length (16 бит): длина полезной нагрузки в байтах (данные после базового заголовка, включая все заголовки расширения).
- Next Header (8 бит): указывает тип следующего заголовка (либо верхнего уровня, либо расширения). Аналог поля Protocol в IPv4.
- Hop Limit (8 бит): максимальное число промежуточных узлов, через которые может пройти пакет. При каждом проходе значение уменьшается на 1; при достижении 0 пакет отбрасывается.
- Source Address (128 бит): IPv6-адрес отправителя.
- Destination Address (128 бит): IPv6-адрес получателя.
Заголовки расширения
В отличие от IPv4, где опции встраиваются непосредственно в базовый заголовок, в IPv6 они выносятся в отдельные заголовки расширения, которые располагаются между базовым заголовком и заголовком транспортного уровня. Это позволяет маршрутизаторам обрабатывать базовый заголовок быстрее, не анализируя все опции.
RFC 2460 определяет несколько типов заголовков расширения:
- Hop-by-Hop Options: обрабатывается каждым промежуточным узлом. Используется, например, для Jumbo Payload (пакеты больше 65535 байт) или для Router Alert.
- Destination Options: обрабатывается только узлом назначения.
- Routing: позволяет задать список промежуточных узлов, через которые должен пройти пакет.
- Fragment: используется для фрагментации пакетов. В RFC 2460 фрагментация может выполняться только на узле-отправителе; в RFC 8200 это правило стало строгим.
- Authentication Header (AH): обеспечивает аутентификацию и целостность данных (часть IPsec).
- Encapsulating Security Payload (ESP): обеспечивает шифрование и/или аутентификацию (часть IPsec).
При отсутствии заголовков расширения поле Next Header в базовом заголовке указывает на протокол верхнего уровня (TCP — 6, UDP — 17).
Адресация
RFC 2460 определяет структуру 128-битного адреса, но не описывает конкретные форматы адресов — они позже были формализованы в RFC 4291. Тем не менее, в документе вводятся три основных типа адресов:
- Unicast: адрес одного интерфейса. Пакет доставляется конкретному узлу.
- Anycast: адрес набора интерфейсов, принадлежащих разным узлам. Пакет доставляется ближайшему (по метрике маршрутизации) интерфейсу из этого набора.
- Multicast: адрес группы интерфейсов. Пакет доставляется всем интерфейсам в группе.
RFC 2460 также вводит префиксную запись адресов (CIDR-нотация), например, 2001:db8::/32, где :: заменяет последовательность нулевых блоков.
Автоконфигурация
Важным нововведением IPv6, поддерживаемым RFC 2460, является механизм безгосударственной автоматической конфигурации адресов (Stateless Address Autoconfiguration, SLAAC). Этот процесс позволяет узлу автоматически сформировать глобально уникальный IPv6-адрес без обращения к серверу DHCP. Алгоритм включает:
- Получение префикса сети от маршрутизатора (через сообщения Router Advertisement).
- Генерацию идентификатора интерфейса (обычно на основе MAC-адреса с использованием модифицированного EUI-64 или случайным образом).
- Проверку уникальности адреса с помощью Neighbor Discovery (протокол, определённый в RFC 4861).
при необходимости адрес и данные можно получить и от DHCPv6-сервера (stateful-режим).
Совместимость с IPv4
RFC 2460 не содержит прямых механизмов обратной совместимости с IPv4, так как IPv6 является принципиально новым протоколом, а не расширением старого. Для обеспечения взаимодействия между сетями IPv4 и IPv6 вводятся вспомогательные технологии, описанные в отдельных документах:
- Туннелирование: инкапсуляция пакетов IPv6 в IPv4.
- Двойной стек (dual-stack): одновременная работа стеков IPv4 и IPv6 на одном устройстве.
- Трансляция (NAT64, DNS64): преобразование адресов и протоколов.
Эти механизмы не являются частью RFC 2460, но необходимы для плавного перехода с IPv4 на IPv6.
Критика и ограничения
Несмотря на техническое совершенство, RFC 2460 подвергался критике по нескольким причинам:
- Необходимость в изменении всей сетевой инфраструктуры: внедрение IPv6 требует замены или обновления маршрутизаторов, коммутаторов и программного обеспечения, что делает процесс медленным и дорогим.
- Перегрузка функциональности: некоторые считают, что сложные заголовки расширения и механизмы SLAAC излишне усложняют реализацию.
- Проблемы с безопасностью при автоконфигурации: SLAAC может быть уязвим к атакам, если не используются дополнительные механизмы (такие как Secure Neighbor Discovery).
- Отсутствие обратной совместимости: полное разделение с IPv4 усложняет постепенное внедрение и требует длительных переходных периодов.
Значение и влияние
RFC 2460 стал основой для современной сетевой архитектуры интернета. Протокол IPv6, определённый в этом документе, является единственным формальным стандартом для глобальной маршрутизации в условиях исчерпания адресов IPv4. Хотя на начало 2020-х годов доля IPv6 в мировом интернет-трафике составляла около 30–40%, его внедрение продолжает расти, особенно в мобильных сетях, облачных сервисах и при развёртывании сетей «Интернета вещей» (IoT).
RFC 2460 также послужил основой для множества дополнительных RFC, уточняющих и расширяющих его положения. В частности, RFC 8200 (современный стандарт) сохранил все ключевые механизмы протокола, лишь удалив устаревшие функции и повысив формальность описания.
Источники
- RFC 2460 — Internet Protocol, Version 6 (IPv6) Specification (December 1998)
- RFC 8200 — Internet Protocol, Version 6 (IPv6) Specification (July 2017)
- RFC 791 — Internet Protocol (September 1981)
- RFC 4291 — IP Version 6 Addressing Architecture (February 2006)
- RFC 4861 — Neighbor Discovery for IP version 6 (IPv6) (September 2007)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →