15 февраля 2023 Время чтения: 5 минут

Лев Матюшкин,

разработчик ПО

IP-адрес: чем отличаются v4 и v6

ispmanager

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

Зачем нужны IP-адреса

IP-адреса нужны компьютерам сети по тем же причинам, по которым нужны адреса для зданий. По адресу один компьютер находит в сети другой, доставляет туда объект данных или запрашивает информацию. В настоящее время распространены две версии протокола: четвертая (IPv4) и шестая (IPv6). Между ними была еще версия IPv5, но она была экспериментальной.

Почему есть разные версии

Четвертая версия протокола IP появилась в 1980-х и получила широкое распространение, поэтому с соответствующей адресацией мы сталкиваемся чаще всего. Однако со временем у IPv4 выявились проблемы, и на во второй половине 1990-х началось тестирование шестой версии протокола. Главной дилеммой стало исчерпание IPv4-адресов. Но обо всем по порядку.

Как происходит адресация по стандарту IPv4

В версии IPv4 каждому узлу сети сопоставлен IP-адрес. Адрес состоит из четырех блоков, называемых октетами. Информация в октете записывается в виде целого числа от 0 до 255 (то есть 28 значений). Комбинаторика подсказывает, что так как таких блоков четыре, то общее число возможных узлов для версии IPv4 равно 232, то есть около 4.2 млрд.

Запись IPv4 адреса

Обычно октеты разделяются точками и записываются в форме десятичных чисел. Например, сайту ispmanager.ru cоответствует следующий IP-адрес:

178.250.156.213

Такая форма записи удобна для администрирования, однако маршрутизаторы воспринимают IPv4-адрес проще: как последовательность из 32 бит, то есть 32 позиций, на каждой из которых стоит ноль или единица.

IPv4
IPv4-адрес в формате десятичной записи с разделением октетов точками. Каждый октет соответствует одному байту, то есть 8 битам. Весь адрес кодируется с помощью 32 бит

Кто отвечает за IP-адреса и их распределение между узлами сети

Организации, ответственные за распределение IP имеют иерархическую структуру связей. Корневой организацией являются IANA, та делегирует распределение адресов пяти Региональным интернет-регистраторам (англ. Regional Internet Registry, сокр. RIR), те – национальным интернет-регистраторам (NIR) и так далее.

Как URL преобразуется в IP-адрес

Хотя вся адресация в интернете устроена с помощью IP-адресов, обычным пользователям интернета не приходится об этом думать. Вместо этого мы пользуемся поисковиками и URL-ссылками. Специализированные серверы DNS умеют сопоставлять URL и IP-адрес и подсказывают устройству, с какого IP запросить данные.

Что такое маска подсети

Для организация сети необходима некоторая иерархия — было бы полезно, если бы по IP-адресу можно было бы определить, к какой подсети он относится. Так как подсети могут иметь разный размер, в современном вебе принята организация, которую называют бесклассовой:

  • компьютеры в подсетях имеют общие начальные биты адреса;
  • общее количество бит, выделенное для подсети, называется маской;
  • маску записывают после адреса через косую черту.

Так, запись вида a.b.c.d/8 означает, что первые 8 бит (октет acode>) соответствуют адресу подсети, а остальные 24 бита (три остальных октета b.c.d) используются для адресации узлов подсети. Множество всех IPv4-адресов соответствуют маске /0, а отдельный уникальный адрес — маске /32.

Зарезервированные IPv4-адреса

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

  • 0.0.0.0/8 — адреса источников пакетов «своей» сети;
  • 127.0.0.0/8 — localhost, подсеть для коммуникаций внутри хоста. Такие пакеты не проходят через сетевую карту, а сами адреса используются, чтобы программы на устройстве могли общаться друг с другом;
  • 192.168.0.0/16 — для использования в частных сетях.

Зачем же нужен IPv6

С развитием интернета растет количество узлов сети, но протокол IP подразумевает конечное количество адресов. В 1996 году в эксплуатацию введена шестая версия протокола IP, которая предоставляет существенно более широкое адресное пространство. Против 32 бит у IPv4 каждый IPv6-адрес имеет длину 128 бит. Введение нового протокола было оправданным решением: 25 ноября 2019 были распределены последние свободные IPv4-адреса, и теперь получить IPv4-адрес можно только если его освободит текущий владелец.

Как выглядят IPv6-адреса

Адреса IPv6 отображаются в виде восьми блоков из четырех цифр в шестнадцатеричной записи. Блоки называются хекстетами и разделяются двоеточиями:

2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d

Так как запись длинная, введены два правила для упрощения записей:

  1. Если в хекстете есть ведущие нули, их можно удалить.
  2. Самая длинная группа, состоящая полностью из нулевых хекстетов и двоеточий заменяется на двойное двоеточие. Такая замена для однозначности расшифровки IPv6 адреса может проводиться только один раз.

Приведем пару примеров сокращения:

2001:0db8:0000:0000:0000:0000:ae21:ad12 → 2001:db8::ae21:ad12

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

0000:0000:0000:0000:0000:0000:ae21:ad12 → ::ae21:ad12

В этом примере группа из шести нулевых хекстетов заменена на символ двойного двоеточия.

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

http://[2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d]/

При необходимости указания порта он указывается после скобок:

http://[2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d]:8080/

Зарезервированные IPv6-адреса

Так же, как и у четвертой версии, в протоколе IP шестой версии есть адреса, которые не используются для маршрутизации. Например:

  • :: — аналогичен адресу 0.0.0.0 для IPv4,
  • ::1 — соответствует 127.0.0.0/8 для IPv4,
  • 2001:0db8:: — адрес зарезервирован для документации и использования в примерах.

Какие еще проблемы решает IPv6

Как мы упомянули выше, IP — это не только адреса, но и протокол. В шестой версии протокола были убраны ограничения и проверки, которые усложняли работу маршрутизаторов — устройств, за счет которых происходит передача информации в интернете. Таблицу с подробным сравнением особенностей двух протоколов можно посмотреть на сайте IBM.

Почему IPv6 не так уж популярен

Доля IPv6-адресов в России не превышает 10%. Провайдерам для поддержки нового протокола нужно покупать и профессионально настраивать новое оборудование. При этом приходится параллельно поддерживать и протокол IPv4, так как IPv6 не имеет обратной совместимости с IPv4. Но переход на IPv6 лишь дело времени — с каждым годом растет доля сетевых устройств, поддерживающих IPv6.

Напишите в сообщество в «Телеграм», если вам интересно подробнее разобраться в каждом из типов адресов, протоколов или каких-то смежных вопросах.