IPv6 — Internet Protocol version 6 — новая версия интернет-протокола (IP), призванная решить проблемы, с которыми столкнулась предыдущая версия (IPv4) при её использовании в Интернет, за счёт целого ряда принципиальных изменений. Как всегда при рассмотрении протоколов начинаем с места протокола ipv6 в модели OSI и TCP/IP.
Место IPv6 в моделях OSI и TCP/IP
IPv6 в модели OSI находится на сетевом уровне, а в модели TCP/IP на соответствующем ему уровне интернет.
В стеке протоколов TCP/IP протокол IPv6 находится на сетевом уровне, там же где находится IPv4. Назначение IPv6 точно такое же как и у IPv4 — передача данных на сетевом уровне. IPv6 несовместим с IPv4, но совместим со всеми остальными протоколами стека TCP/IP, такими как ICMP, DHCP, TCP, UDP, HTTP, DNS и другими.
Цели создания IPv6
Может возникнуть вопрос, зачем нужен еще один протокол сетевого уровня, если уже есть протокол IPv4, который работает хорошо. Проблема протокола IPv4 заключается в нехватке IP адресов. Длина IP адресов в протоколе IPv4 — 4 байта, то есть максимальное количество адресов IPv4 примерно 4,3 миллиарда. Когда протокол создавался это было большое количество IP адресов, но сейчас, когда интернет стал очень популярной сетью, стало понятно, что 4 миллиарда адресов это не так уж и много.
Для сравнения, население Земли сейчас составляет более, чем 7 миллиардов, при этом многие люди используют не одно устройство, а несколько, это может быть ноутбук, планшет, смартфон, умные часы и многое другое.
Также, необходимо учитывать сервер и сетевое оборудование в инфраструктуре интернет и сетевых сервисов, а такие технологии, как интернет вещей еще больше увеличивают требования к количеству IP адресов.
Количество доступных адресов IPv4 стремительно сокращается, последний крупный блок адресов IPv4 класса А, был выдан в 2011 году, и уже близко то время, когда какая-то компания или человек захотят подключиться к интернет, но не смогут этого сделать, из-за того что им не хватит адреса IPv4.
Было предложено несколько временных решений, проблемы нехватки IP адресов, которые оказались достаточно успешными. Самые популярные это технология трансляции сетевых адресов NAT, эта технология позволяет подключиться к сети интернет используя всего лишь один IP адрес, сеть, состоящую из большого количества устройств с использованием частных или приватных IP адресов.
Также справиться с проблемой нехватки IP адресов помогла технология бесклассовой междоменной маршрутизации (Classless Inter-Domain Routing, CIDR), которая обеспечила возможность использовать маски переменной длины, и распределять IP адреса блоками разной длины, а не классами A, B и C как было раньше.
Протокол IPv6 создан для долговременного решения проблемы нехватки IP адресов. Для этого длина IP адресов в протоколе IPv6 увеличена до 16 байт, количество IP адресов в протоколе IPv6 — 3,4*1038. Такого количества IP адресов хватит, для того чтобы подключить к интернету все устройства, как сейчас так и в достаточно далеком будущем.
Также при разработке IPv6 постарались упростить протокол, для того чтобы маршрутизаторы могли обрабатывать пакеты IPv6 быстрее, и обеспечили возможность защиты данных с помощью шифрования.
IPv6 считается новым протоколом, однако работа над ним началась еще в 1990 году, когда впервые задумались о возможной проблеме исчерпания адресов IPv4. Первый вариант стандарта протокола IPv6 был принят в документе RFC 1883 в 1995 году, а действующий стандарт протокола IPv6 документ RFC 2460 был принят в 1998 году. Таким образом протоколу IPv6 уже больше 20 лет, и новым его можем называть только по сравнению с протоколом IPv4.
Формат заголовка IPv6
Давайте рассмотрим формат заголовка протокола IPv6. Основное изменение это более длинные адреса отправителя и получателя, каждая из которых занимают по 16 байт.
- Первое поле в заголовке протокола IPv6 также, как и в заголовке протокола IPv4, это номер версии 4 для IPv4 и 6 для IPv6.
- Затем идет поле класс трафика, оно необходимо для реализации качества обслуживания. Самый простой вариант, разбиение трафика на два класса, обычный и важный. Маршрутизаторы, которые поддерживают обеспечение качества обслуживания, передают важный трафик быстрее используя специальную выделенную очередь, также возможны и другие варианты использования классов трафиков.
- Следующее поле в заголовке IPv6 это метка потока, это поле используется для того чтобы объединить преимущества сетей коммутации пакетов с сетями с коммутацией каналов. У набора пакетов, которые передаются от одного отправителя к одному получателю, и требует определенного типа обслуживания, устанавливается одна и та же метка. Маршрутизаторы, которые поддерживают работу в таком режиме, обрабатывают пакет на основе метки, что гораздо быстрее.
- Следующее поле это длина полезной нагрузки, в отличии от протокола IPv4, где в подобном поле указывается общая длина пакета, здесь указывается только размер данных без размера заголовка.
- Затем идет поле следующий заголовок, которое необходимо, если используются дополнительные заголовки, в этом поле указывается тип первого дополнительного заголовка.
- В IPv6 поле время жизни пакета переименовали в максимальное число транзитных участков, потому что на практике вместо времени жизни, даже в протоколе IPv4, указывается максимальное количество маршрутизаторов через которое может пройти пакет, перед тем как он будет отброшен.
По сравнению с заголовком протокола IPv4 в протоколе IPv6 нет полей, которые отвечают за фрагментацию, и за контрольную сумму. Расчет контрольной суммы создает большую нагрузку на маршрутизаторы, однако эта операция часто является излишней, так как контрольная сумма рассчитывается на канальном уровне, и на сетевом уровне. Поэтому от расчета контрольных сумм в протоколе IPv6, было решено отказаться.
Также было принято решение отказаться от фрагментации, потому что она так же как и расчет контрольной суммы, создает большую нагрузку на маршрутизаторы. На практике во многих сетях сейчас используется один и тот же размер пакета, соответствующий размеру кадра Ethernet 1500 байт, поэтому фрагментация часто являются ненужной. Если все же где-то по пути пакета встретиться сеть с меньшим максимальным размером пакета, то вместо фрагментации необходимо использовать технологию Path MTU Discovery.
Также как и заголовок протокола IPv4, заголовок протокола IPv6 состоит из двух частей обязательный и необязательной. В необязательные части может быть несколько дополнительных заголовков.
Дополнительные заголовки IPv6
В IPv6 могут быть дополнительные заголовки следующих типов:
- Заголовок параметры маршрутизации — содержит данные, которые необходимы маршрутизаторам для того, чтобы корректно обрабатывать пакеты.
- Заголовок параметры получателя — содержит данные, которые необходимы для обработки пакета на стороне получателя.
- Дополнительный заголовок маршрутизация — содержит список маршрутизаторов, через который пакет должен обязательно пройти.
В протоколе IPv6 фрагментация преимущественно не используется, вместо неё используется технология Path MTU Discovery, но как вариант все-таки маршрутизаторы могут фрагментировать пакеты, для этого используется не обязательная часть заголовка.
Важным добавлением в протокол IPv6 является механизм защиты данных, которых не было в IPv4 это аутентификация и шифрование. Обе технологии не являются частью протокола IPv6, а описаны в отдельных документах. RFC 2402 IP Authentication Header используется для аутентификации, а документ RFC 2406 описывает технологию шифрования IP Encapsulation Security Payload, сейчас активными являются обновленные версии этих документов.
Влияние IPv6 на IPv4
Некоторые технологии, которые предложены в протоколе IPv6 были внедрены и в протокол IPv4. Например, поле тип сервиса, которое использовалось в заголовке IPv4, было заменено на поле класс трафика, в котором используется тот же самый формат, что и в заголовке протокола IPv6. Также в протокол IPv4 были перенесены аутентификация и шифрования в виде технологии IP Security, сокращенное IPSec.
Внедрение IPv6
Таким образом, IPv6 это новый, улучшенный и упрощенный протокол сетевого уровня, который позволяет решить проблему нехватки и адресов IPv4. Однако проблема заключается в том, что протоколы IPv4 и IPv6 несовместимы друг с другом. На практике это означает, что если вы хотите использовать IPv6, то необходимо поменять оборудование и программное обеспечение, на то которое поддерживает протокол IPv6 и провести значительную перенастройку сетевого оборудования, и все эти действия заметны, как пользователям так и администраторам.
Заменить все сетевое оборудование и программное обеспечение в один момент невозможно, поэтому разработчики IPv6 предполагали, что две версии протокола, будут сосуществовать в интернет достаточно долгое время.
Для того, чтобы можно было плавно перейти на протокол IPv6 были предложены две возможные технологии:
- Первая технология это двойной стек, все современное оборудование и программное обеспечение поддерживает работу как, по протоколу IPv4, так и по протоколу IPv6. Таким образом, для того чтобы начать использование IPv6, вам нужно просто сконфигурировать протокол IPv6 на своем оборудовании, и скорее всего все начнет работать. Но имейте ввиду чтобы подключиться к интернет по протоколу IPv6, эту версию протокола должен поддерживать ваш провайдер.
- Другая возможность совместного использования протоколов IPv4 и IPv6, это туннелирование, предположим что у нас есть несколько сетей внутри которых используется протокол IPv6, но эти сети разрознены и между ними находится сеть IPv4. В этом случае можно создать так называемый туннель, в туннеле пакеты IPv6 будут вкладываться внутрь пакетов IPv4, и таким образом передаваться из одной сети IPv6 в другую сеть IPv6, между которыми есть соединение только по протоколу IPv4.
Для того чтобы ускорить внедрение протокола IPv6, многие крупные компании объединились и устроили мировой запуск протокола IPv6, он произошел 6 июня 2012 года, в нем участвовали многие крупные компании-производители сетевого оборудования, такие как Cisco и D-Link, интернет-компании такие как Google, Facebook, компании производители программного обеспечения, такие как Microsoft, а также большое количество других компаний.
Использование IPv6 по данным Google
Несмотря на то, что протокол IPv6 решает проблемы нехватки IP адресов, его внедрение на практике ведется достаточно медленно. Компания google предоставляет статистику запросов к своим серверам по протоколу IPv6. Сейчас всего лишь 17 % запросов используют протокол IPv6, а остальные IPv4.
Медленное внедрение протокола IPv6 объясняется тем, что необходима перенастройка сетевого оборудования, а многие пользователи не понимают, зачем нужно это делать. Технология NAT позволяет достаточно эффективно справиться с проблемой нехваткой адресов IPv4, и переходить на протокол IPv6, жесткой необходимости у многих компаний нет. Однако со временем адреса IPv4 все-таки закончатся, и у пользователей интернета не останется выбора, как переходить на IPv6.
Итоги по протоколу IPv6
В статье рассмотрели протокол IPv6 это протокол используется на сетевом уровне для передачи данных, и он предназначен для замены протокола IPv4. Протокол IPv6 позволяет решить проблему нехватки адресов IPv4, также он позволяет ускорить работу маршрутизаторов, и обеспечить безопасность передачи данных на сетевом уровне. Для того чтобы это обеспечить, длина IP адресов IPv6 увлечена до 16 байт, отказались от расчета контрольных сумм и фрагментации на маршрутизаторах, а для защиты данных в единой технологии аутентификации и шифрования.
Однако существует проблема с внедрением протокола IPv6 вызванная с несовместимостью IPv4. Для того чтобы перейти на протокол IPv6, необходимо полностью перенастроить существующие сетевое оборудование, на что пользователи и администраторы сетей идут неохотно.