Сетевой протокол ipv6 что это
Основы IPv6
Предисловие
Пост является кратким конспектом Wiki, TechNet’а, FreeBSD’шного handbook’a, Serverfault’a, множества RFC и документов IANA, а также курсов от Специалист.Ру для сотрудников Яндекса.
Пост можно рассматривать как копилку ссылок по актуальной на 2012 год спецификации IPv6. Однако он никак не описывает возможные способы установки IPv6 соединения с интернетом и не привязан к какой-либо определённой ОС.
Учтите, что прочтение данной хабрастатьи займёт у вас не более получаса, однако крайне рекомендуется ознакомиться со всеми приведёнными в статье ссылками… Последнее может занять несколько недель.
Prerequisites
Хоть статья и называется «Основы IPv6» она всё-таки подразумевает наличие базовых знаний о IP сетях и хотя бы небольшой практический опыт работы с IPv6, в противном случае хабрастатья будет даваться очень не легко.
Так же рекомендуется к прочтению документ Implementing IPv6 Addressing and Basic Connectivity от Cisco.
Ещё стоит заметить, что приведённые на википедию ссылки зачастую более примечательны разделом References нежели своим содержанием.
IPv6 Адреса
Анатомия IPv6 адресов
В первой версии этого хабрапоста тут было много текста, но с того момента на википедии выросла отличная статья: IPv6 Address.
Маски подсетей
Маски теперь задаются только /prefix’ами (CIDR), классовой адресации и стандартной decimal dotted нотации в IPv6 нет. Так же теперь первый и последний адрес сети не являются зарезервированными под идентификатор сети и broadcast соответственно.
Выделение IPv6 адресов
Типы адресов и их префиксы
Виды трафика
Address Scope
В IPv6 появилось такое понятие как Scope, он же Zone ID терминологии Microsoft. На самом деле оно было и в IPv4, однако не было задано явно: сети 10/8, 172.16/12 и 192.168/16 яркие тому примеры.
В случае Unicast/Anycast адресов приминимо следующее:
У каждого IPv6 enabled интерфейса есть свой Link-local адрес. Его scope, внезапно, local. Эти адреса уникальны в пределах линка, но не обязаны быть актуальными в пределах одного хоста. Так, например, VLAN созданный на интерфейсе будет иметь такой же link-local адрес, что и родительский интерфейс (так как без использования IPv6 Privacy Extensions он будет генериться из тогоже Link Layer адреса). Для того, чтобы явно указать интерфейс которому принадлежит IPv6 адрес нужно или указывать в ручную интерфейс для исходящих пакетов или использовать специальный суффикс при записи адреса: %ИндексИнтерфейса в Windows (fe80::2b0:d0ff:fee9:4143%3) или %ИмяИнтерфейса в *BSD/Linux (fe80::2b0:d0ff:fee9:4143%em0).
В случае Multicast адресов scope указан в последних четырёх битах вторго октета IPv6 адреса: ff0s:: и может быть interface-local, link-local, admin-local, site-local, organization-local или же global.
Дополнительно стоит ознакомиться с RFC4007 IPv6 Scoped Address Architecture
Жизненный цикл IPv6 адреса
IPv6 Пакет
Заголовок IPv6 пакета
Extension Headers
IPv6 Протоколы
ICMPv6
ICMP в IPv6 был заменён на ICMPv6. О ICMPv6 можно прочитать в RFC4443 Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification.
Сам по себе ICMPv6 довольно прост, однако на его основе сделано множество довольно не тривиальных протоколов, о которых мы поговорим чуть ниже.
Описание Neighbor Discovery Protocol, заменившего протокол ARP, доступно в RFC4861. Теперь это не отдельный протокол, а надстройка над ICMPv6 добавляющая несколько новых типов сообщений.
Основное предназначение NDP — производить мапинг между link-layer и IPv6 адресами, однако это лишь небольшая часть функциональности.
Автоконфигурация
Zeroconf
Как уже было упомянуто выше, хосты умеют автоматически генерировать себе IPv6 link-local адрес из адреса канального уровня. Так что без какой либо настройки любой IPv6-enabled хост подключённый к сети выдаёт сам себе адрес сетевого уровня.
В IPv4 эта технология использует зарезервированный IPv4 диапазон 169.254/16. Подробно технология описана в RFC3927 Dynamic Configuration of IPv4 Link-Local Addresses (Заметьте, что этот RFC вышел после IPv6’ого 2462).
Stateful
В IPv4 автоконфигурация возможна только с использованием DHCP сервера. В IPv6 эту возможность оставили: можно конфигурировать сеть с помощью DHCPv6 сервера и клиента. Однако, поддержка со стороны вендоров DHCPv6 пока не блещет, так например, dhclient во FreeBSD из коробки не умеет IPv6.
Stateless
Комбинированая
Могут использоваться одновременно оба вида автоконфигурации, например stateless для получения IPv6 префикса и stateful для получения адресов DNS-серверов и/или других параметров, которые нельзя передать с помощью Router Advertisement.
Прочее
Протоколы более высокого уровня
Часть протоколов, использующих адрес сетевого уровня в своей работе требовали внесения в них определённых изменением для того, чтобы начать работать по IPv6. Ярким примером такого протокола является FTP.
Тунелирование IPv6 трафика поверх IPv4 сетей
Mobile IPv6
Про него не знаю нечего, так что просто оставлю это здесь: Mobile IP.
IPv6 адрес как хранилище информации
Согласитесь 128бит — это огромный простор для фантазии. Существует множество технологий которые пытаются использовать эти самые 128бит. От кодирования туда IPv4 адреса и криптографических сигнатур до определения растояний между нодами (тут кстати даже мы думали в этом направлении, но пока присмтриваемся к ALTO: Application-Layer Traffic Optimization (ALTO) Problem Statement).
Socket API
Хабратопик описывает IPv6 с точки зрения NOC / системного администратора, но не с точки зрения программиста. Если кому-то интересны особенности программирования под IPv6, то рекомендую обратиться к RFC3493 — Basic Socket Interface Extensions for IPv6 и книжке IPv6 Network Programming
Протокол IPv6
Что такое IPv6?
Основные решаемые задачи:
Протокол IPv6 разработан в конце 1992 года.
В наше время протокол IPv6 активно используется во множестве сетей по всему миру, но пока ещё не получил столь широкого распространения в Интернете, как IPv4.
Интернет протокол IPv6 хорошо справляется с основными поставленными задачами. Ему присущи достоинства интернет протокола IP и он же лишен некоторых недостатков, к тому же обладает некоторыми новыми возможностями. В общем случае протокол IPv6 несовместим с протоколом IPv4, но зато совместим со всеми остальными протоколами Интернета, включая TCP, UDP, ICMP, OSPF, DNS для чего иногда требуются небольшие изменения.
Особенности IPv6
Заголовок IPv6
Структура IP пакетов версии 6 представлена на рисунке
Также в протоколе IPv6 предусмотрены следующие дополнительные заголовки:
Типы адресов
В IPv6 не существует широковещательных адресов, их функции переданы мультикастинг-адресам.
В IPv6, все нули и все единицы являются допустимыми кодами для любых полей, если не оговорено исключение.
Модель адресации
IPv6 адреса всех типов ассоциируются с интерфейсами, а не узлами. Так как каждый интерфейс принадлежит только одному узлу, уникастный адрес интерфейса может идентифицировать узел.
IPv6 уникастный адрес соотносится только с одним интерфейсом. Одному интерфейсу могут соответствовать много IPv6 адресов различного типа (уникастные, эникастные и мультикстные). Существует два исключения из этого правила:
IPv6 соответствует модели IPv4, где субсеть ассоциируется с каналом. Одному каналу могут соответствовать несколько субсетей.
Формы представления IPv6
Форма шестнадцатеричных чисел и двоеточий
Эта форма является предпочтительной и имеет вид n:n:n:n:n:n:n:n. Каждый знак n соответствует 4-х значному шестнадцатеричному числу (всего 8 шестнадцатеричных чисел, для каждого числа отводится 16 бит).
Сжатая форма
По причине большой длины адрес обычно содержит много нулей подряд. Для упрощения записи адресов используется сжатая форма, в которой смежные последовательности нулевых блоков заменяются парами символов двоеточий (::). Однако такой символ может встречаться в адресе только один раз.
IPv6 — прекрасный мир, стоящий скорого перехода на него
Практически все статьи, которые я видел на тему «чем хорош IPv6 и почему на него стоит пошустрее переходить», говорят только о просто более широком адресном пространстве. В лучшем случае, упомянут автоматическую конфигурацию адресов и маршрутов (stateless address autoconfiguration (SLAAC)). Это удручает, а ведь IPv6 имеет много ещё других неявных плюшек, являясь очень продуманным стеком протоколов (IPv6 + ICMPv6 + NDP)! Создаётся впечатление, что IPv6 это просто тупо про расширение адресов, а дальше то особо никакого профита. Или же некоторые статьи плачутся о том, что они не видят сиюминутного профита от внедрения/перехода. Простоту и удобство, гибкость и расширенные возможности (из-за одного только избавления от NAT-а) не так то легко измерить, как какие-нибудь задержки и пропускную способность. Решил поэтому собрать моё видение прекрасного мира IPv6 протокола и его плюсы в этой статье.
Не использовать IPv6 для построения чего-то нового, новых сетей — просто не имеет смысла, так как лишаемся массы удобств и возможностей, получая кучу геморроя от лишения этой массы удобств и возможностей. IPv6 поддерживается даже с Windows XP версии. Последний раз я проверял пять лет назад, но уже тогда SLAAC+RDNSS/DNSSL поддерживали и iOS и Android и даже Windows 10 устройства, не говоря о GNU/Linux и BSD системах.
IPv4 не является плохим протоколом. Его проблема только в том, что он никогда не задумывался для создания большой глобальной сети, где почти у каждого человека на Земном шаре будет доступ к ней прямиком из штанов (где лежит смартфон). Он создавался во времена, когда компьютеры были более быстрыми чем сети (странное сравнение?) и с кучей памяти. Сейчас наоборот: сделать 10 Gb канал связи можно тривиально и дома, но из коробки ни одна из массово используемых ОС не сможет эффективно коммутировать или маршрутизировать трафик на такой скорости.
Конечному пользователю сложно представить получаемые преимущества, так как Интернета, по факту, уже давно мало кому дают: преобладающая часть людей всегда сидела за NAT-ом и считает, что изобретение протоколов типа WebSocket, есть нечто штатное, нормальное, логичное и разумное, и ничего кроме TCP, UDP и ICMP у нас особо-то и не ходит поверх IP.
Сетевому инженеру, чисто психологически, сложно будет пересиливать себя в понимании того, что адресов и сетей реально очень много выдаётся и не имеет смысла (и даже будет только вредить удобству и простоте обслуживания) экономить на их использовании. Большая проблема — осознание того, что IP адреса уже не являются дефицитным ресурсом и думать приходится чаще всего в понятиях не единичных адресов, а целых огромных сетей минимум с /64 префиксом.
IPv6 имеет более серьёзные требования (эту часть можно обозвать недостатками):
IPv6: что это и зачем
Авторизуйтесь
IPv6: что это и зачем
Многие слышали про последнюю версию протокола IP — IPv6, которая должна заменить IPv4. Однако зачем нужна эта замена? Разбираемся в вопросе, попутно рассматривая разницу между обеими версиями и преимущества новой.
Зачем менять IPv4 на что-то другое?
Потому что адресов IPv4 уже не хватает.
IP-уровень стека протоколов TCP/IP — наиболее важная часть всей архитектуры Интернета. Тем не менее вскоре после запуска IPv4 стали очевидны его ограничения в плане масштабируемости и возможностей. IPv4 для работы необходимо несколько надстроек вроде ICMP и ARP. К середине 1990-х разработали замену IPv4 — IPv6. Требований к Интернету становилось всё больше, а IPv6 отвечал им лучше, чем предыдущая версия.
Каковы самые очевидные отличия IPv4 и IPv6?
128 бит в IPv6-адресе представляют собой восемь 16-битных шестнадцатеричных блоков, разделённых двоеточиями. Например, 2dfc:0:0:0:0217:cbff:fe8c:0. Традиционной формой записи IPv4 адреса является запись в виде четырёх десятичных чисел (от 0 до 255), разделённых точками. Через дробь указывается длина маски подсети. Например, 192.168.0.0/16.
В IPv4 для мультивещания зарезервирована подсеть 224.0.0.0/4. IPv6 для этой цели использует встроенное адресное пространство FF00::/8;
IPv4 использует широковещательные адреса для передачи широковещательных пакетов, IPv6 — многоадресные группы;
IPv4 использует 0.0.0.0 в качестве неопределённого адреса, а 127.0.0.1 для создания адреса обратной связи (loopback). В IPv6 используются :: и ::1 соответственно;
IPv4 использует глобально уникальные публичные адреса для трафика и «частные» адреса, IPv6 — глобально уникальные юникаст-адреса и локальные адреса (FD00::/8).
Чем IPv6 лучше?
Преимущества IPv6 перед IPv4:
Более эффективная маршрутизация без фрагментации пакетов;
Встроенная технология Quality of Service (QoS), которая определяет чувствительные к задержке пакеты;
Устранение NAT для расширения адресного пространства с 32 до 128 бит;
Встроенная поддержка IPsec (использование IPsec опционально);
Автоконфигурация адресов для упрощения администрирования сети;
Улучшенная структура заголовка с меньшими затратами на обработку.
IPv6 более безопасен, чем IPv4?
Нет, в теории они одинаково безопасны.
После запуска IPv6 появилась встроенная возможность шифровать интернет-трафик с помощью распространённого (но не настолько, как SSL) стандарта шифрования IPSec, который не даёт прочитать содержимое трафика при его перехвате. Однако шифрование и расшифровка данных требует оборудования, которое стоит денег. К тому же IPSec можно реализовать и на IPv4, что в теории означает, что IPv4 и IPv6 одинаково безопасны.
Некоторые эксперты утверждают, что пока переход не завершён, пользователи шестой версии находятся в большей опасности, чем пользователи четвёртой. Провайдеры могут использовать IPv6-туннели для предоставления пользователям IPv4 доступа к IPv6-контенту. Злоумышленники могут использовать эти туннели для проведения своих атак.
Ещё одна потенциальная проблема связана с автоконфигурацией — новой функцией IPv6. Она позволяет устройствам самостоятельно назначать себе IP-адрес на основе MAC-адреса, что может быть использовано сторонними лицами для отслеживания определённых пользователей. Тем не менее на устройствах под управлением популярных операционных систем уже установлены расширения конфиденциальности, поэтому для большинства людей это не будет проблемой.
IPv6 быстрее IPv4?
Скорость интернета с IPv6 не будет сильно отличаться от скорости с IPv4. С одной стороны, работа IPv6 должна быть быстрее из-за более простого формата. Однако во время перехода некоторые методы вроде IPv6-туннелей будут создавать дополнительную задержку при преобразовании запросов в IPv4 и наоборот.
Так почему бы просто не перейти на IPv6?
Основная причина — стоимость. Для обновления всех серверов, маршрутизаторов и коммутаторов, которые всё это время зависели только от IPv4, требуется уйма денег и времени.
Кроме того, чтобы справиться с нехваткой адресов, провайдеры назначают пользователям динамический адрес, который может меняться при подключении к другой сети. После отключения от сети устройства освобождают свой адрес, делая его доступным для других устройств. По сути вы арендуете, но не владеете адресом. Это сильно замедляет переход с IPv4 на IPv6.
Но это не значит, что IPv6 не распространяется. Напротив, он используется параллельно с IPv4. Как сообщает Google, около 14% его пользователей используют IPv6. А по заявлениям провайдера Comcast, в Соединённых Штатах уже половина пользователей используют IPv6.
Резюмируем
Нельзя сказать, что IPv6 быстрее и безопаснее, но у него есть ряд преимуществ вроде более эффективной маршрутизации без фрагментации пакетов, встроенной поддержки IPsec и автоконфигурации адресов. А из-за ограниченности адресного пространства IPv4 переход на него неизбежен.
Сетевой протокол ipv6 что это
Между IPv6 и IPv4 существуют схожие базовые характеристики. В настоящее время различные устройства используют IPv6 в качестве источника и адреса назначения для передачи пакетов по сети и такие инструменты, как ping для тестирования сети, как то, что пользователи также делают с IPv4 с минимальными вариациями. [2] IPv6 существует уже много лет для того, чтобы справиться с ошибками и падениями адресов IPv4.
Cодержание
Функциональность
Ниже перечислены типы адресов IPv6:
Глобальный одноадресный адрес
Этот тип адреса IPv6 является уникальным для интернета во всем мире. Это похоже на публичные адреса IPv4. Он маршрутизируется в интернете и состоит из 2 частей: ID подсети и ID интерфейса. [3] Он имеет тот же формат адресов, что и любой широковещательный IPv6-адрес. Этот адрес присваивается органом по присвоению номеров в Интернете (IANA).
Уникальный местный адрес
Этот адрес имеет аналогичное назначение с личным адресом IPv4. Это адрес, который может быть использован внутри компании на нескольких сайтах. Это также не предназначено для маршрутизации в общедоступном интернете. Этот адрес является заменой адресу локального сайта, что позволяет осуществлять связь внутри сайта, будучи при этом маршрутизируемым к нескольким локальным сетям.
Одноадресный адрес
Это относится к адресу IPv6 один на один. Это просто означает, что пакеты адресуются на одноадресный адрес, предназначенный только для одного интерфейса.
Энкаст
Это похоже на адрес многоадресной передачи с небольшими отличиями. Он используется для адресации пакетов, предназначенных для нескольких интерфейсов, но посылает пакеты на первый интерфейс, который найдет, как определено в расстоянии маршрутизации.
Это относится к частному адресу, который не предназначен для маршрутизации в Интернете. Этот тип IPv6-адреса может использоваться локально частными или временными локальными сетями (LAN) для совместного использования и распространения файлов между различными устройствами в локальной сети.
Многоадресная рассылка
Это относится к каждому из них. При использовании этого типа пакеты доставляются на все интерфейсы, которые будут идентифицированы по многоадресному адресу. [4]
IPv4 и IPv6 Сравнение
Ниже описаны различия между IPv6 и IPv4:
Характеристики | IPv4 | IPv6 |
---|---|---|
Длина битового адреса | 32-разрядный | 128-битный |
Конфигурация адреса | Поддержка ручной настройки адреса DHCP и адреса DHCP | Поддержка автоматической настройки и перенумерации адресов |
Возможность сквозной целостности соединения | Недостижимый | Достижимый |
Представление адреса | В десятичной дроби | шестнадцатеричный |
Поле контрольной суммы | В наличии | Недоступно |
Шифрование и аутентификация | Не предусмотрено | При условии |
Кроме того, новейшая версия протокола IPv6 предлагает больше возможностей. Это упрощает настройку адресов, нумерацию сетей и анонсирование маршрутизаторов. Он также упрощает обработку пакетов в маршрутизаторах, размещая ответственность за фрагментацию пакетов на конечных точках. Он может работать с пакетами более эффективно, улучшает производительность и повышает безопасность. Кроме того, это позволяет интернет-провайдерам сократить размер таблиц маршрутизации, сделав их более иерархичными. [5]
В связи с этим быстрый рост мобильных устройств, включая мобильные телефоны, компьютеры и беспроводные устройства, создал потребность в дополнительных блоках IP-адресов, поэтому IPv6 действительно очень полезен во многих отношениях. Ключевым усовершенствованием по сравнению с IPv4 является встроенная поддержка мобильных устройств. IPv6 поддерживает мобильный протокол IPv6, который позволяет различным мобильным устройствам переключаться между различными сетями и получать уведомления о роуминге независимо от их физического местоположения. Протокол IPv6 действительно улучшает IPv4, повышая меры аутентификации и конфиденциальности. Таким образом, IPv6 действительно может обеспечить эффективную структуру безопасности для передачи данных на уровне хоста или сети. [6] Внедрение новейшего протокола IPv6 действительно расширяется во всем мире. Полная замена старого IPv4 займет некоторое время, поскольку он по-прежнему остается самой распространенной и широко используемой версией Интернет-протокола.