Основы IPv4 и IPv6

Последнее изменение: Thursday November 30th, 2023

Этот текст объясняет общую информацию о протоколах IPv4 и IPv6.

Введение

IPv4 – блестящий протокол, разработанный для обеспечения коммуникации между компьютерами в сети. Эта сеть постепенно превратилась в Интернет, самую крупную сеть устройств на Земле. Разработчики IPv4, однако, не предполагали, что Интернет будет расти с экспоненциальной скоростью. Скоро стало ясно, что количество IPv4-адресов не будет достаточным для массового наплыва устройств, которые должны были быть подключены друг к другу. Таким образом, в середине 1990-х годов началось обсуждение нового протокола (IPv6). В 1998 году IPv6 стал стандартом черновика от IEFT (Группа по инженерии Интернета), а в 2017 году он стал Интернет-стандартом. С момента появления IPv6 было медленное движение к переходу к стандарту IPv6 и выводу из строя IPv4. К сожалению, это не так просто, поскольку IPv4 твердо утвердился в Интернете.

Переход происходит медленно, но в последние годы существует гораздо большее усилие по внедрению IPv6 в Интернет. Принятие IPv6 выросло с примерно 5% до примерно 36% всего за последние 5 лет и не показывает признаков замедления. Но почему бы кто-то хотел использовать IPv6? Есть ли преимущества и/или недостатки в его использовании по сравнению с IPv4? В чем разница между IPv6 и IPv4? Как это работает?

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

Почему использовать IPv6?

Если вы поставите адрес IPv6 рядом с адресом IPv4, легко пропустить тот факт, что один является преемником другого. У них есть совершенно разная нотация. Однако они используют одну и ту же систему счисления. Единственное отличие – это система счисления, используемая для отображения IP-адреса. Адреса IPv4 отображаются как четыре группы по три десятичные цифры, разделенные точками, в то время как адреса IPv6 используют восемь групп по четыре шестнадцатеричные цифры, разделенные двоеточиями.

Hexadecimal IPv6: 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff
Decimal IPv4: 192.0.2.223

Если посмотреть на адрес IPv6, его иногда сложно прочитать, и его невозможно запомнить. Однако разработчики IPv6 реализовали некоторые трюки по сжатию, которые можно применить к IPv6, чтобы сократить общую длину адреса. Иногда это даже может сделать адрес IPv6 короче адреса IPv4. Если мы преобразуем адрес IPv6 в двоичную систему, можно легче понять основную концепцию его структуры. Например, вышеупомянутый адрес IPv6 в двоичной системе выглядит следующим образом:

0010000000000001:0000110110111000:1111111111111111:1111111111111111:1111111111111111:1111111111111111:1111111111111111:1111111111111111

Это может уже напоминать что-то, так как это выглядит довольно похожим на двоичный адрес IPv4, только намного больше. В то время как адрес IPv4 состоит из 32 бит, адрес IPv6 имеет 128 бит – в четыре раза больше. Как вы могли заметить, это означает, что мы можем создать 2 в степени 128 адресов IPv6. Это было бы около 340 триллионов триллионов триллионов адресов IPv6! Таким образом, практически невозможно исчерпать запас IPv6-адресов, так как это случилось с IPv4-адресами, у которых было всего 2 в степени 32 (примерно 4,2 миллиарда) возможных адреса.

IPv6 предоставляет не только большее количество доступных IP-адресов, но также необходим для

долгосрочного здоровья и развития Интернета.

Преимущества IPv6

В процессе разработки IPv6 существовало стремление увеличить безопасность протокола. IP-безопасность (IPsec) обеспечивает безопасный способ передачи чувствительной информации по Интернету. Этот каркас состоит из открытых стандартов, разработанных IETF. IPsec предоставляет ряд служб сетевой безопасности, используемых для защиты данных. Во-первых, конфиденциальность данных – функция, позволяющая отправителю шифровать пакеты перед отправкой их по сети. Это гарантирует, что только предполагаемое устройство-получатель сможет прочитать пакет. Во-вторых, проверка целостности данных возможна для получателя, что позволяет ему проверить целостность пакетов IPsec и убедиться, что данные никаким образом не были изменены по пути к месту назначения. В-третьих, аутентификация происхождения данных позволяет получателю аутентифицировать источник передаваемых пакетов. Эти улучшения позволяют отправлять информацию по общественной сети без модификации, наблюдения или подделки.

IPv6 все еще включает в себя следующие преимущества:

  • Больше не требуется NAT, но его все еще можно использовать
  • Автоконфигурация
  • Больше нет коллизий с частными адресами
  • Упрощение формата заголовка
  • Лучшая маршрутизация многозадачности

Я расскажу об этих преимуществах более подробно в следующих разделах.

Недостатки IPv6

Несмотря на множество преимуществ IPv6, у него есть несколько недостатков и проблем, которые могут возникнуть для конечного пользователя.
Самый очевидный недостаток – это длина адресов IPv6. Как упоминалось ранее, адрес IPv6 состоит из восьми групп по четыре шестнадцатеричные цифры. Запоминание такого длинного адреса или ввод его в терминал во время административной работы может быть мучительным.

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

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

Как устроен адрес IPv6?

IPv6, по сути, все так же выполняет ту же функцию, что и IPv4. Адреса IPv6 структурированы аналогично IPv4: они имеют префикс сети и идентификатор интерфейса/хоста. Префиксы в IPv6 такие же, как подсетевые маски, используемые в адресах IPv4. В IPv6 используется нотация CIDR (Classless Inter-Domain Routing) для отображения маски, используя целое число от 1 до 128 для представления битов сети.

      Префикс сети              Идентификатор хоста
XXXX : XXXX : XXXX : XXXX : XXXX : XXXX : XXXX : XXXX

Например, в 2001:db8:85a3:8d3:0000:0000:0000:001a/64, 2001:db8:85a3:8d3::/64 – это префикс сети, а возможные адреса IPv6 в диапазоне от 2001:db8:85a3:8d3:0000:0000:0000:0001/64 до 2001:db8:85a3:8d3:ffff:ffff:ffff:ffff/64.

( XXXX : XXXX : XXXX ) : XXXX : XXXX : XXXX : XXXX : XXXX

Первые 3 поля префикса сети адреса IPv6 (отмеченные в квадратных скобках) содержат префикс сайта. Префикс описывает общую топологию, обычно выделенную вашему сайту провайдером услуг интернета (ISP) или Региональным интернет-реестром (RIR).

XXXX : XXXX : XXXX : ( XXXX ) : XXXX : XXXX : XXXX : XXXX

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

Сжатие адресов IPv6

Я упомянул ранее, что адреса IPv6 можно сжимать, чтобы сделать их короче и легче читаемыми. Для этого метода сжатия применяются два правила. Во-первых, ведущие нули могут быть удалены любыми группами (гекстетами) в адресе. Например,

1001:0005:ffc0:0000:0000:5893:0032:0001

может быть упрощено до,

1001:5:ffc0:0:0:5893:32:1

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

ffc0

Маршрутизатор не добавит ноль обратно в конец гекстета при заполнении нулями. Вместо этого ноль будет помещен перед другими цифрами, как вот так:

0ffc

Во-вторых, мы можем удалить непрерывные нули. В этом примере у нас было 2 группы из четырех нулей. Это можно заменить на,

1001:5:ffc0::5893:32:1

Маршрутизаторы, читающие этот адрес, автоматически добавят отсутствующие нули. Это, однако, можно сделать только один раз в адресе. Таким образом, наш адрес IPv6 уже выглядит гораздо более читаемым.

Автоконфигурация

У хостов IPv6 есть возможность генерировать свой собственный адрес, что облегчает и ускоряет администрирование. Существует несколько шагов, которые выполняются для автоконфигурации интерфейса в IPv6. В ходе этого процесса создается локальный адрес. Локальный адрес – это адрес IPv6, который позволяет общение между хостами, находящимися в одной сети. Адрес можно определить с использованием одного из двух механизмов – бессостоятельного и состоятельного.
Бессостоятельная автоконфигурация адреса (SLAAC) не требует ручной конфигурации хостов и дополнительной конфигурации серверов. Этот механизм позволяет хосту автоматически генерировать собственные адреса. Для создания адресов используются локальная информация и информация, рекламируемая маршрутизаторами. Маршрутизаторы рекламируют префиксы, идентифицирующие подсеть или подсети, связанные с интерфейсом. Хосты генерируют идентификатор интерфейса, уникально идентифицирующий интерфейс в подсети. Совмещая префикс и идентификатор интерфейса, формируется уникальный адрес. Хост может генерировать только локальные адреса, если нет доступных маршрутизаторов.

В состоятельной модели автоконфигурации хосты получают адреса интерфейсов или информацию и параметры конфигурации от сервера. Это можно сравнить с процессом DHCP от IPv4, и серверы, предоставляющие информацию, также называются серверами DHCPv6. Эти серверы поддерживают базу данных, которая проверяет, какие адреса были назначены каким хостам. Протокол состоятельной автоконфигурации позволяет хостам получать адреса и другую информацию о конфигурации от сервера. Бессостоятельная и состоятельная автоконфигурация часто дополняют друг друга. Например, хост может использовать бессостоятельную автоконфигурацию для конфигурации своих собственных адресов, но использовать состоятельную автоконфигурацию для получения другой информации.

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

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

Тип адреса Префикс Используется для
Глобальный уникаст 2000::/3 Публичный, маршрутизируемый
Уникальный локальный fc00::/7 Маршрутизируемый в ЛВС
Локальный канальный fe80::/10 Немаршрутизируемый
Мультимедийный ff00::/8 Адреса для групп
Любойкаст 2000::/3 Общий адрес

Глобальный уникаст – это публичный, маршрутизируемый адрес, такой же, как и общедоступный адрес IPv4. Эти адреса можно определить по префиксу 2000::/3. Это означает, что первые 3 бита будут идентифицировать адрес глобального уникаста.

Уникальный локальный – адрес, аналогичный частному IPv4, и не маршрутизируется глобально. У этих адресов префикс fc00::/7. Используя первые 7 бит, уникальный локальный всегда начнется с “f”, за которым следует “c” или “d”.

Локальные канальные адреса можно рассматривать как быстрые автоматические IP-адреса, которые могут быть сгенерированы без помощи другого устройства. Эти адреса не маршрутизируются в сети. Как уже упоминалось, эти адреса предназначены только для общения с другими устройствами в той же локальной сети. У них префикс fe80::/10. Вы, возможно, уже заметили шаблон. Это указывает на то, что адреса локальных каналов будут использовать первые 10 бит для начала с “fe”.

Мультимедийные адреса присваиваются группе устройств, которые будут прослушивать этот конкретный мультимедийный адрес. Этот тип адреса легко узнать, так как они всегда начинаются с “ff”.

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

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

Упрощение формата заголовка

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

Заголовок IPv6
Версия Класс обслуживания Метка потока
Длина полезной нагрузки Следующий заголовок Предел перехода
Исходный адрес
Адрес назначения
Заголовок IPv4
Версия Длина заголовка Тип обслуживания Общая дли

на

Идентификация Флаги Смещение фрагмента
Время жизни Протокол Контрольная сумма заголовка
Исходный адрес
Адрес назначения
Опции Дополнение

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

Заголовок IPv4 Заголовок IPv6
Версия 4 бита = Версия 4 бита
IHL (Длина заголовка интернета) 4 бита Не существует в IPv6
Тип обслуживания 8 бит = Класс обслуживания 8 бит
Не существует в IPv4 Метка потока 20 бит
Общая длина 16 бит = Длина полезной нагрузки 16 бит
Идентификация 16 бит Не существует в IPv6
Флаги 3 бита Не существует в IPv6
Смещение фрагмента 13 бит Не существует в IPv6
Время жизни 8 бит = Предел перехода 8 бит
Протокол 8 бит = Следующий заголовок 8 бит
Контрольная сумма заголовка 16 бит Не существует в IPv6
Исходный адрес 32 бита = Исходный адрес 128 бит
Адрес назначения 32 бита = Адрес назначения 128 бит
Опции 0-320 бит = Дополнительные заголовки 0-320 бит
Дополнение Произвольная длина Не существует в IPv6

The Traffic class field is an identifier of the packet’s class or priority and serves the same function as the IPv4 Type of service field.

The Flow label field is the only new field in IPv6. It indicates to intermediate devices that a packet belongs to a specific sequence of packets between a source and a destination. This field distinguishes different traffic flow to IPv6 routers.

Payload length is the Total length field equivalent in IPv6 and simply shows the length in bytes of the data portion of a packet.

The Time to live field has been renamed to Hop limit as it more accurately describes the function of the field.

The Protocol field has been renamed Next header and specifies the protocol in the payload such as TCP, UDP or ICMPv6. This field has some additional options compared to the Protocol field in IPv4, such as Generic Routing Encapsulation (GRE), Encapsulating Security Payload (ESP) and Open Shortest Path First (OSPF)

No more NAT

NAT (Network Address Translation) is a protocol that is most often used to map local/private IP addresses to one public IP address and vice versa in order to provide local hosts with Internet access. NAT was specifically developed as a workaround to slow down the inevitable exhaustion of IPv4 addresses. However, the large addressing space of IPv6 changes this, in that there is no longer a need to conserve addresses and every device can easily be given a unique globally routable address. It may no longer be necessary to use NAT in IPv6, but it is still possible to implement it in an IPv6 network. It is mainly used to help translate IPv4 addresses to IPv6 addresses.

Conclusion

At the moment the vast majority of devices on the Internet still use IPv4. It will still take a number of years before IPv4 is truly phased out in favor of IPv6. Adoption of the newer protocol, however, is further advanced in more modern countries around the world such as Germany, USA, Saudi Arabia and Japan, and in countries that have a large population with a growing IT sector, such as India and Brazil. For the foreseeable future, we will, however, live in a world that has both IPv4 and IPv6 and where many systems run on a dual stack IP system. Only once IPv6 has overtaken IPv4 in market share, will we be able to have systems that are IPv6-only.

Sources

Was this article helpful?
Просмотры: 734

10 лет с BeeHosting!
Отмечаем скидками до 70% на все услуги
+ бесплатная миграция сайта.

Facebook Instagram linkedin

Beehosting.pro website uses cookies

We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners who may combine it with other information that you’ve provided to them or that they’ve collected from your use of their services.

Меню