Ipv6 — Это Весело. Часть 1

У меня возникла идея познакомить паблик Хабра с IPv6 и настройкой протоколов на основе этого замечательного протокола, который до сих пор плохо понятен сетевикам.

Для этих целей я остановлюсь на двух основных поставщиках: Juniper и Cisco. Моя статья будет состоять из трех частей.

В первой части я соберу всю самую скучную, но очень нужную теорию.

Давайте рассмотрим поля протокола ipv6, принципы работы, подсети и поставим себе задачу максимально сосредоточиться на отличии его от нашего любимого IPv4. Что ж, приступим, и начнем с плана.



План

• Заголовок IPv6 в сравнении с IPv4. • Представление адресов IPv6. • Виды совместного использования протоколов IPv4 и IPv6. • Типы адресов • Подсети

Введение

Истощение адресного пространства IPv4 стало мотивирующим фактором для перехода на IPv6. Поскольку Африка, Азия и другие регионы мира получают больше подключений к глобальному Интернету, это приводит к нехватке адресов IPv4. В понедельник, 31 января 2011 г.

, IANA выделило RIR последние 8 блоков адресов IPv4. По мнению экспертов, эти адреса будут заселены в период с 2015-2020 годов.

Но помимо отсутствия адресного пространства, IPv6 имеет некоторые преимущества перед IPv4, о которых мы поговорим в этой статье.

Протокол IPv6 разработан как преемник протокола IPv4. IPv6 имеет большее 128-битное адресное пространство, которого достаточно для 340 ундециллионов адресов.

(Это число 340, за которым следуют 36 нулей.

) Однако IPv6 — это не просто большие адреса.

Когда IETF начал разработку преемника IPv4, они использовали эту возможность, чтобы устранить ограничения IPv4 и внести дополнительные улучшения.

Программисты постоянно конкурируют со Вселенной: они пытаются создавать всё больше и больше идиотоустойчивых программ, а Вселенная создаёт всё больше совершенных идиотов.

Пока что Вселенная побеждает. (Рич Кук)



Заголовок IPv6 и IPv4

Одним из основных улучшений конструкции IPv6 по сравнению с IPv4 является упрощенный заголовок IPv6. Заголовок IPv4 состоит из 20 октетов (до 60 байт, если используется поле «Параметры») и 12 основных полей заголовка, исключая поля «Параметры» и «Заполнитель».

Заголовок IPv6 состоит из 40 октетов (в основном из-за длины адресов IPv6 источника и назначения) и 8 полей заголовка (3 основных поля заголовка IPv4 и 5 дополнительных полей).

Кроме того, в IPv6 добавлено новое поле, которое не используется в IPv4. Упрощенный заголовок IPv6 предлагает ряд преимуществ по сравнению с IPv4: повышенная эффективность маршрутизации для масштабируемой производительности и скорости пересылки; не требуется обработка контрольной суммы; упрощенные и более эффективные механизмы заголовка расширения (в отличие от поля «Параметры» в IPv4); Поле Flow Label предназначено для обработки каждого потока без необходимости открывать внутренний транспортный пакет для идентификации различных потоков трафика.

В заголовке пакета IPv6 используются следующие поля: Версия : поле, содержащее 4-битное двоичное значение, определяющее версию IP-пакета.

Для пакетов IPv6 это поле всегда имеет значение 0110. Класс трафика : 8-битное поле, соответствующее полю дифференцированных услуг (DS) в заголовке IPv4. Он также содержит 6-битное значение кода дифференцированного обслуживания (DSCP), которое используется для классификации пакетов, а также 2-битное значение явного уведомления о перегрузке (ECN), используемое для управления перегрузкой трафика.

Метка потока : 20-битное поле, предоставляющее специальную услугу для приложений реального времени.

Это поле указывает маршрутизаторам и коммутаторам поддерживать один и тот же путь для потока пакетов, чтобы избежать переупорядочения пакетов.

Длина полезной нагрузки : 16-битное поле, соответствующее полю общей длины в заголовке IPv4. Он определяет размер всего пакета (фрагмента), включая заголовок и дополнительные расширения.

Следующий заголовок: 8-битное поле, соответствующее полю «Протокол» в заголовке IPv4. Он определяет тип полезных данных, которые несет пакет, позволяя сетевому уровню пересылать данные соответствующему протоколу более высокого уровня.

Это поле также используется, когда к пакету IPv6 добавляются дополнительные заголовки расширений.

Предел перехода : 8-битное поле, которое заменяет поле «Время жизни» (TTL) в IPv4. Это значение уменьшается на единицу каждым маршрутизатором, пересылающим пакет. Когда счетчик достигает 0, пакет отбрасывается и на отправляющий хост отправляется сообщение ICMPv6, указывающее, что пакет не достиг места назначения.

Адрес источника — 128-битное поле, определяющее IPv6-адрес принимающего узла.

Адрес назначения : 128-битное поле, определяющее IPv6-адрес принимающего хоста.



IPV6 — это весело.
</p><p>
 Часть 1

"

Основная проблема программистов в том, что их ошибки невозможно предсказать.

(Сеймур Крэй)



Представление адресов IPv6

Длина адресов IPv6 составляет 128 бит и записывается в виде строки шестнадцатеричных значений.

Биты представлены одной шестнадцатеричной цифрой, всего 32 шестнадцатеричных значения.

В этой статье не будет примеров преобразования шестнадцатеричного числа в двоичное и десятичное.

Любой уважающий себя сетевой специалист должен уметь мысленно переводить из разных систем счисления, ведь за красивые глазки сетевики денег не получают - и не мало.

Опишем два важных правила правильного представления адресов IPv6. 1) Правило №1: Первое правило сокращения записи адресов IPv6 — опустить все ведущие нули в шестнадцатеричной записи.

Например: 01AB можно представить как 1AB 09F0 можно представить как 9F0 0A00 можно представить как A00 00AB можно представить как AB Это правило применяется только к ведущим нулям, а НЕ к последующим, иначе адрес будет записан нечетко.

Например, шестнадцатеричное число «ABC» может быть представлено как «0ABC» или «ABC0».

2) Правило №2: Второе правило сокращения записи адреса IPv6 заключается в том, что двойное двоеточие (::) может заменять любую одиночную непрерывную строку, состоящую из одного или нескольких 16-битных сегментов (шестнадцатеричных), состоящих из нулей.

Двойное двоеточие (::) можно использовать в адресе только один раз.

Неправильный адрес: 2001:0DB8::ABCD::1234 Возможные расширения неоднозначно написанных сжатых адресов: 2001:0DB8::ABCD:0000:0000:1234 2001:0DB8::ABCD:0000:0000:0000:1234 2001:0DB8:0000:ABCD::1234 2001:0DB8:0000:0000:ABCD::1234

Сначала изучите теорию.

Затем найдите свой собственный стиль программирования.

И наконец, забудьте об этой ерунде и просто пишите код. (Джордж Карретт)



Виды совместного использования протоколов IPv4 и IPv6

Двойной стек : Двойной стек позволяет протоколам IPv4 и IPv6 сосуществовать в одной сети.

Двухстековые устройства одновременно работают со стеками протоколов IPv4 и IPv6 (рисунок прилагается):

IPV6 — это весело.
</p><p>
 Часть 1

Туннелирование — это метод транспортировки пакетов IPv6 по сети IPv4. Пакет IPv6 инкапсулируется в пакет IPv4, как и другие типы данных.



IPV6 — это весело.
</p><p>
 Часть 1

Конверсия - Трансляция сетевых адресов 64 (NAT64) позволяет устройствам, работающим под управлением IPv6, взаимодействовать с устройствами, работающими под управлением IPv4, используя метод преобразования, аналогичный методу преобразования NAT для IPv4. Пакет IPv6 преобразуется в пакет IPv4 и наоборот.

IPV6 — это весело.
</p><p>
 Часть 1

Сначала изучите теорию.

Затем найдите свой собственный стиль программирования.

И наконец, забудьте об этой ерунде и просто пишите код. (Джордж Карретт)



Типы IPv6-адресов

Существует три типа адресов IPv6: Одноадресная передача (индивидуальная) – Используется для определения интерфейса на устройстве, работающем по протоколу IPv6. Многоадресная рассылка – Используется для отправки пакетов на несколько адресов назначения (заменен широковещательный адрес, для всех узлов имеется адрес IPv6, что дает аналогичный результат).

Anycast – Любой индивидуальный адрес, который можно назначить нескольким устройствам.

Пакет, отправленный на произвольный адрес, пересылается на ближайшее устройство с этим адресом.

Чтобы ознакомиться с типами адресов, нам нужна следующая информация: Префикс или сетевая часть адреса IPv4 может обозначаться маской подсети в десятичном формате с точками или длиной префикса (обозначение косой черты).

Например, IP-адрес 192.170.6.11 с маской подсети, разделенной точками, 255.255.255.0 эквивалентен 192.170.6.11/24. Протокол IPv6 использует длину префикса для обозначения префиксной части адреса.

IPv6 не использует десятичное представление с точками для маски подсети.

Длина префикса обозначает сетевую часть адреса IPv6 с использованием адреса или длины префикса IPv6. Диапазон длины префикса может составлять от 0 до 128. Традиционная длина префикса IPv6 для локальных и других типов сетей — /64. Это означает, что длина префикса или сетевой части адреса составляет 64 бита, а оставшиеся 64 бита остаются для идентификатора интерфейса (хостовой части) адреса.



IPV6 — это весело.
</p><p>
 Часть 1

Образование в области компьютерных технологий не сделает вас великим программистом, так же как изучение кистей и красок не сделает вас великим художником.

(Эрик Рэймонд)



Одноадресные IPv6-адреса
Адрес Unicast используется для определения интерфейса устройства, работающего по протоколу IPv6. Пакет, отправленный на одноадресный адрес, будет получен интерфейсом, назначенным этому адресу.

Как и в случае с IPv4, адрес IPv6 должен быть одноадресным.

Существует шесть типов одноадресных адресов: Глобальный одноадресный адрес Глобальный одноадресный адрес мало чем отличается от общедоступного адреса IPv4. Эти адреса, на которые можно маршрутизироваться в Интернете, уникальны во всем мире.

Глобальные одноадресные адреса можно настроить статически или назначить динамически.

Ссылка-локальная Локальный адрес канала IPv6 позволяет устройству взаимодействовать с другими устройствами на основе IPv6 по тому же каналу и только по этому каналу (подсети).

Пакеты с локальным адресом источника или назначения не могут быть перенаправлены за пределы канала, по которому исходит пакет. В отличие от локальных адресов каналов IPv4, локальные адреса каналов IPv6 играют важную роль в различных аспектах сети.

Глобальный одноадресный адрес не требуется.

Однако для хранения локального адреса канала требуется сетевой интерфейс, работающий по протоколу IPv6. Если локальный адрес канала не настроен вручную на интерфейсе, устройство автоматически создает собственный адрес, не обращаясь к DHCP-серверу.

Хосты, использующие IPv6, создают локальный IPv6-адрес, даже если устройству не назначен глобальный IPv6-адрес.

Это позволяет устройствам, использующим IPv6, взаимодействовать с другими устройствами, использующими IPv6, в той же подсети, включая шлюз по умолчанию (маршрутизатор).

Локальные адреса IPv6 находятся в диапазоне FE80::/10. /10 Петлевая проверка Адрес обратной связи используется узлом для отправки пакета самому себе и не может быть назначен физическому интерфейсу.

Как и в случае с адресом обратной связи IPv4, вы можете пропинговать адрес обратной связи IPv6, чтобы проверить настройки TCP/IP на локальном хосте.

Адрес обратной связи IPv6 состоит из всех нулей, за исключением последнего бита, который в сжатом формате выглядит как ::1/128 или просто ::1. Неуказанный адрес Неопределенный адрес состоит из нулей и сжимается как ::/128 или просто ::.

Он не может быть назначен интерфейсу и используется только в качестве адреса источника в пакете IPv6. Неуказанный адрес используется в качестве адреса источника, если устройству еще не присвоен постоянный IPv6-адрес или когда источник пакета не связан с пунктом назначения.

Уникальный местный Уникальные локальные адреса IPv6 имеют некоторые общие черты с частными адресами RFC 1918 для IPv4, но между ними есть и существенные различия.

Уникальные локальные адреса используются для локальной адресации внутри узла или между ограниченным числом узлов.

Эти адреса не должны маршрутизироваться в глобальном IPv6. Уникальные локальные адреса варьируются от FC00::/7 до FDFF::/7. В случае IPv4 частные адреса объединяются с преобразованием сетевых портов и адресов (NAT/PAT) для обеспечения преобразования частных адресов в общедоступные.

Это сделано из-за отсутствия адресного пространства IPv4. Многие сайты также используют частный характер адресов RFC 1918 для обеспечения безопасности или защиты сети от потенциальных угроз.

Однако это никогда не было целью этих технологий, и IETF всегда рекомендовал принимать надлежащие меры предосторожности при работе маршрутизатора в Интернете.

Хотя IPv6 обеспечивает специальную адресацию для сайтов, он не предназначен для сокрытия внутренних устройств IPv6 от Интернета IPv6. IETF рекомендует ограничивать доступ к устройствам, используя лучшие меры безопасности.

Встроенный IPv4 Последние обсуждаемые типы одноадресных адресов — это встроенные адреса IPv4. Использование этих адресов облегчает переход с IPv4 на IPv6. Глобальный одноадресный адрес Глобальные одноадресные IPv6-адреса уникальны во всем мире и маршрутизируются через Интернет IPv6. Эти адреса эквивалентны общедоступным адресам IPv4. В настоящее время назначаются только глобальные одноадресные адреса с первыми тремя битами 001 или 2000::/3. Это лишь 1/8 всего доступного адресного пространства IPv6. Адрес 2001:0DB8::/32 зарезервирован для документации, включая использование в примерах.

Глобальный одноадресный адрес состоит из трех частей: Глобальный префикс маршрутизации.

Глобальный префикс маршрутизации — это префикс или сетевая часть адреса, назначенного интернет-провайдером клиенту или хосту.

В настоящее время /48 — это глобальный префикс маршрутизации, который интернет-регистраторы присваивают своим клиентам — корпоративным сетям и отдельным пользователям.

Этого адресного пространства более чем достаточно для большинства клиентов.

Идентификатор подсети.

Идентификатор подсети используется организациями для идентификации подсетей внутри каждого узла.

Идентификатор интерфейса.

Идентификатор интерфейса IPv6 эквивалентен хостовой части адреса IPv4. Термин «идентификатор интерфейса» используется, когда один узел может иметь несколько интерфейсов, каждый из которых имеет один или несколько адресов IPv6.

IPV6 — это весело.
</p><p>
 Часть 1

Процесс EUI-64 – IEEE разработал расширенный уникальный идентификатор (EUI) или модифицированный процесс EUI-64. Этот процесс берет 48-битный MAC-адрес Ethernet клиента и вставляет еще 16 бит в середину этого адреса, чтобы создать 64-битный идентификатор интерфейса.

Преимущество MAC-адреса Ethernet EUI-64 заключается в том, что его можно использовать для определения идентификатора интерфейса.

Кроме того, сетевые администраторы могут легко отслеживать IPv6-адрес конечных устройств, используя уникальный MAC-адрес.

Однако это беспокоит других пользователей из-за угрозы их конфиденциальности.

Они обеспокоены тем, что их пакеты можно отследить до физического компьютера.

Чтобы избежать таких осложнений, вы можете использовать случайно сгенерированный идентификатор интерфейса.

В зависимости от операционной системы устройство может использовать случайно сгенерированный идентификатор интерфейса вместо MAC-адресов и EUI-64. Вся эта операция необходима, если настроен DHCPv6.

В мире нет языка программирования, на котором разработчики не могли бы написать плохую программу.

(Ларри Флон)



Многоадресная рассылка IPv6
Не сильно отличается от адресов многоадресной рассылки IPv4. Как вы помните, адрес многоадресной рассылки используется для отправки одного пакета одному или нескольким адресатам (группе многоадресной рассылки).

Адреса многоадресной рассылки IPv6 имеют префикс FF00::/8. Адреса многоадресной рассылки могут быть только адресами назначения, а не адресами источника.

Есть два типа: 1) групповые IPv6-адреса: 2) присвоенный групповой адрес; 1) Многоадресный адрес запрошенного узла.

Назначенные групповые адреса зарезервированы для определенных групп устройств.

Назначенный адрес многоадресной рассылки — это один адрес, используемый для связи с группой устройств, использующих один и тот же протокол или службу.

Назначенные адреса многоадресной рассылки используются в сочетании с определенными протоколами, такими как DHCPv6. Давайте посмотрим на две распространенные группы назначенных адресов многоадресной рассылки IPv6. Группа многоадресной рассылки для всех узлов FF02::1 — Это многоадресная группа, к которой подключены все устройства, работающие по протоколу IPv6. Пакет, отправленный в эту группу, принимается и обрабатывается всеми интерфейсами IPv6 в канале или сети.

Эта группа адресов работает так же, как широковещательный адрес в IPv4. Группа многоадресной рассылки для всех маршрутизаторов FF02::2 — Это многоадресная группа, к которой подключены все маршрутизаторы IPv6. Пакет, отправленный в эту группу, принимается и обрабатывается всеми маршрутизаторами IPv6 в канале или сети.

Многоадресный адрес запрашиваемого хоста — это адрес, который соответствует только 24 битам глобального одноадресного IPv6-адреса устройства.

Эти пакеты должны обрабатывать только устройства, имеющие одинаковые 24 бита в наименее значимой, самой правой части идентификатора интерфейса.

2) Многоадресный IPv6-адрес запрошенного узла создается автоматически при назначении глобального индивидуального адреса или адреса локального канала.

Групповой адрес IPv6 запрошенного хоста создается путем объединения специального префикса FF02:0:0:0:0:1:FF00::/104 с крайними правыми 24 битами его индивидуального адреса.

Групповой адрес запрашиваемого узла состоит из 2 частей.

Префикс группы FF02:0:0:0:0:1:FF00::/104: первые 104 бита группового адреса запрошенного узла.

Младшие 24 бита: последние или крайние справа 24 бита группового адреса запрошенного узла.

Эти биты копируются из крайних правых 24 битов глобального индивидуального адреса или локального адреса канала устройства.

Существует вероятность того, что несколько устройств будут иметь один и тот же адрес многоадресной рассылки запрошенного узла.

Идентификаторы интерфейсов устройств редко имеют одинаковые самые правые 24 бита.

Это не представляет никаких проблем, поскольку устройство по-прежнему будет обрабатывать инкапсулированное сообщение, содержащее полный IPv6-адрес запрошенного устройства.

Если отладка — это процесс удаления ошибок, то программирование должно быть процессом их внесения.

(Эдсгер В.

Дейкстра)



Подсети

Для разделения сети IPv6 на подсети используется другой подход, чем для сети IPv4. Адресное пространство IPv6 разделено не для экономии адресов, а для обеспечения иерархической логической структуры сети.

Разбиение на подсети в IPv6 возможно двумя способами, которые я изложу ниже и дополню картинками для лучшего понимания.

Создание подсетей с использованием идентификатора подсети : Как вы помните, блок адресов IPv6 с префиксом /48 содержит 16 бит идентификатора подсети, как показано на рисунке.

Разделение на подсети с использованием 16 бит идентификатора подсети дает 65 536/64 возможных подсетей.

Поэтому нет необходимости заимствовать биты из идентификатора интерфейса или хостовой части адреса.

Каждая подсеть IPv6/64 содержит примерно 18 квинтиллионов адресов, что, очевидно, намного больше, чем когда-либо понадобится в одном сегменте IP-сети.

Подсети, созданные на основе идентификатора подсети, легко представить, поскольку двоичное преобразование не требуется.

Чтобы определить следующую доступную подсеть, достаточно вычислить следующее шестнадцатеричное число.

Необходимо применить расчет шестнадцатеричной части идентификатора подсети.

Глобальный префикс маршрутизации одинаков для всех подсетей.

Для каждой подсети увеличивается только четырехбитный байт идентификатора подсети.



IPV6 — это весело.
</p><p>
 Часть 1

Создание подсетей с использованием идентификатора интерфейса — В сетях IPv6, аналогично заимствованию битов из хостовой части адреса IPv4, вы можете заимствовать биты из идентификатора интерфейса для создания дополнительных подсетей IPv6. Обычно это делается из соображений безопасности, чтобы уменьшить количество хостов в подсети и создать дополнительные подсети.

При расширении идентификатора подсети путем заимствования битов из идентификатора интерфейса рекомендуется создавать подсеть на границе полубайта.

Полубайт — это 4 бита или одна шестнадцатеричная цифра.

Префикс подсети /64 расширяется на четыре бита или один полубайт до подсети /68. Это позволяет уменьшить размер идентификатора на 4 бита (с 64 до 60).

Разбиение на подсети на границах полубайтов имеет смысл только для масок подсети, выровненных по полубайтам.

Начиная с /64, маски подсети с выравниванием по полубайтам будут /68, /72, /76, /80 и т. д. Подсети с выравниванием по полусетям позволяют создавать подсети с использованием дополнительного шестнадцатеричного значения.

Можно создать подсеть внутри полубайта, используя шестнадцатеричную цифру, но это не рекомендуется и в этом нет необходимости.

Разбиение на подсети внутри полубайта сводит на нет преимущества быстрого определения префикса по идентификатору интерфейса.

Например, если длина префикса равна /66, первые два бита будут частью идентификатора подсети, а вторые два бита будут частью идентификатора интерфейса.



IPV6 — это весело.
</p><p>
 Часть 1

всегда пишите код так, как если бы его сопровождал психопат, который знает, где вы живете.

(Мартин Голдинг)



Библиография

1) Cisco CCNA RS 2) Cisco CCNP RS 3) IP версии 6 в Junos (EDU-JUN-IPV6) 4) XGU.RU Выше я описал основные моменты IPv6 и его отличия от IPv4. В следующих частях будет больше практической работы.

Напомню, что во второй части будет описана настройка основных протоколов на оборудовании CIsco, а также я опишу принцип работы DHCPV6. В третьей части будет описана настройка IPv6 на оборудовании Juniper. Сети — это круто, — гордится сетевой специалист. вторая часть здесь Теги: #cisco #cisco #Сетевые технологии #ipv6 #juniper #juniper

Вместе с данным постом часто просматривают: