Привычные нам IP-адреса IPv4 из четырех блоков когда-то должны закончиться. Это как закончились номера телефонов — пришлось придумать новые, подлиннее, чтобы хватило на всех. В контексте IP с этой задачей созданы справляться IPv6.
IPv6 — это новый протокол адресации в интернете. Он пришел на смену IPv4, потому что у старой версии банально заканчиваются адреса. Способности IPv4 хватает на 4 миллиарда уникальных адресов — а устройств давно больше.
IPv6 расширяет пространство адресов до 340 ундециллионов. Это настолько много, что на каждый квадратный миллиметр Земли можно выдать по 600 квадриллионов IP-адресов — и еще останется.
Зачем это нужно? Чтобы у каждого устройства в интернете был свой уникальный адрес, по которому можно обращаться независимо.
В IPv4 для этого используют NAT (Network Address Translation) — это как офис с одним телефоном на всех. Если кто-то звонит, секретарь спрашивает: «Кому передать?», и звонок идет дальше.
То же самое делает роутер: он получает один внешний IP, и всё остальное оборудование в квартире или офисе работает под внутренними адресами — типа 192.168.0.123. Когда пользователь заходит на сайт, роутер сам подменяет адреса — чтобы тот сайт думал, что с ним говорит один и тот же клиент.
У такого подхода с NAT есть проблемы:
thatcloud
Чтобы все-таки достучаться до устройства внутри NAT, инженеры делают проброс портов. Это как сказать секретарю: «Если звонят по внутреннему номеру 8080 — это мой комп, соединяй меня».
Чтобы упростить настройку, придумали автоматические костыли. Например:
Эти подходы тоже имеют недостатки:
IPv6 — это не просто длиннее, это по-другому. Это другая логика построения сети.
Например:
Подробнее о том, как работает IPv6, рассмотрим в разделе «Принципы работы IPv6».
IPv6-адрес выглядит пугающе: 2001:0db8:0000:0042:0000:8a2e:0370:7334
. В отличие от привычных адресов из четырtх чисел через точку (192.168.0.1
), тут — восемь блоков по четыре символа, разделtнных двоеточиями.
Но на самом деле всё проще, чем кажется. Это просто шестнадцатеричные числа, каждое из которых занимает 16 бит. Вся строка — это 128 бит, или 16 байт. Поэтому такой адрес не только длиннее, но и гораздо «просторнее».
IPv6-адрес делится на две логические части:
Это похоже на адрес: сначала город, улица, дом — это сетевая часть. Потом — квартира, это интерфейс.
IPv6-адреса можно и нужно сокращать. Вот основные правила:
Убираем начальные нули в каждом блоке:
Группы из одних нулей можно заменить двойным двоеточием ::
, но только один раз в адресе.
Выглядит уже не так страшно — и читается легче.
Помимо обычных адресов, в IPv6 есть зарезервированные — они выполняют особые функции в системе. Вот самые распространtнные:
::1
— localhost, как 127.0.0.1
в IPv4.::
— нулевой адрес, обозначает «неизвестный» (в начальной инициализации).fe80::/10
— link-local-адреса, действуют только внутри локальной сети. Присваиваются автоматически при подключении.ff00::/8
— multicast, групповые адреса.Когда провайдер подключает квартиру к интернету, обычно вместо одного IPv6-адреса он выдает целый набор — подсеть. Например, могут дать такой блок: 2001:db8::/64
.
Разберем по частям:
2001:db8::
— это начало адреса, или префикс. Он говорит, к какой сети принадлежит пользователь. /64
— это маска подсети. Она показывает, что первые 64 бита в адресе — это префикс, а оставшиеся 64 можно использовать внутри сети, для своих устройств. Почему именно 64 бита? В IPv6 адрес состоит из 128 бит. Если 64 из них заняты под префикс, остается еще 64 бита на адресацию внутри сети. Это очень много адресов. Около 18 квинтиллионов.
А зачем столько? Даже если подключаете только два устройства — например, ноутбук и принтер — всё равно выдадут подсеть /64
. Почему так щедро?
Потому что:
/64
;IPv6 изначально проектировался не с целью сэкономить адреса, а чтобы упростить управление сетью.
Пример в быту. Представим, что провайдер дал адрес 2001:db8:abcd:1234::/64
. Это значит:
2001:db8:abcd:1234
, — принадлежит пользователю;2001:db8:abcd:1234::1
2001:db8:abcd:1234::2
2001:db8:abcd:1234::dead:beef
Без NAT, без пробросов, без внутренней адресации. Всё в одной плоской, прозрачной сети.
А если нужно больше сетей? Тогда выделяют маску покороче. Например:
/56
— это целых 256 подсетей по /64
./48
— это уже 65 тысяч сетей по /64
.Такое дают предприятиям, операторам и дата-центрам.
А маска /128
— наоборот, указывает на один конкретный адрес. Такой блок не делится и используется, чтобы точно задать одно устройство или интерфейс. Например, в файрволах, конфигурации маршрутов или при ручной настройке доступа.
IPv6-адрес состоит из двух частей:
Сетевую часть сообщает маршрутизатор или провайдер. А вот вторую устройство формирует само. Есть два основных способа:
По MAC-адресу. Это значит, что вторая половина IPv6-адреса содержит уникальный «отпечаток» сетевой карты. Такой адрес стабилен: он не меняется при перезагрузке и позволяет легко находить устройство в сети.
Случайным образом. Чтобы не раскрывать MAC-адрес, многие системы формируют временные адреса — на основе случайных чисел. Такие адреса называются приватными и периодически обновляются. Они используются для исходящих подключений, чтобы сохранить анонимность.
На практике устройства часто используют оба адреса одновременно:
IPv6 задумывался не просто как расширение адресного пространства, а как переосмысленная с нуля модель работы сети. В ней — меньше ручных настроек, больше автоматизации, но при этом всё работает надежно и безопасно.
Чтобы это стало возможным, устройства, маршрутизаторы и приложения должны по-другому взаимодействовать между собой.
В IPv4 это обычно устроено так: роутер поднимает DHCP-сервер, каждое устройство получает от него IP-адрес, маску, шлюз, DNS. Если DHCP не сработал — всё, доступности нет.
В IPv6 всё работает иначе.
Здесь устройство может само получить себе адрес, без DHCP и без участия администратора. Это называется SLAAC — Stateless Address Autoconfiguration, то есть «автонастройка без сохранения состояния».
Как работает SLAAC?
2001:db8:abcd:1234::/64
.Например: если префикс — 2001:db8:abcd:1234::/64
, а сетевая карта устройства имеет MAC b8:27:eb:45:12:34
, то итоговый адрес будет, например: 2001:db8:abcd:1234::ba27:ebff:fe45:1234
. Преобразование MAC-адреса в часть IPv6-адреса происходит по схеме EUI-64.
Этот адрес будет уникальным, стабильным и пригодным для связи из любой точки интернета — если файрвол разрешит.
Почему это удобно:
Но есть нюанс. Такой способ адресации раскрывает MAC-адрес устройства. А по нему можно определить:
Чтобы этого избежать, системы используют временные приватные адреса.
Когда устройство формирует IPv6-адрес по MAC-адресу, это удобно: адрес создается автоматически, остается постоянным и уникальным. Но по этому адресу устройство можно отследить, а это плохо для приватности:
Чтобы не «светить» MAC-адрес, в IPv6 придумали Privacy Extensions. Суть простая:
В результате приватность сохраняется, никто не узнает MAC-адрес, а входящие соединения по-прежнему возможны через стабильный адрес.
В современных системах Privacy Extensions включен по умолчанию:
ОС |
Поддержка Privacy Extensions |
Windows |
Да (с Windows 10 по умолчанию) |
MacOS |
Да |
Linux (systemd) |
Да, но может отсутствовать в отдельных дистрибутивах |
Android |
Да |
В Linux можно увидеть оба адреса командой:
ip -6 addr
Результат:
inet6 2001:db8:abcd:1234::1234/64 scope global dynamic mngtmpaddr
inet6 2001:db8:abcd:1234::ba27:ebff:fe45:1234/64 scope global
Первый — временный (mngtmpaddr
), второй — стабильный.
Privacy Extensions делают IPv6 приватным по умолчанию. Пользователь получает анонимность без NAT, без прокси и без костылей: адрес меняется автоматически, MAC не раскрывается, отслеживать пользователя становится значительно сложнее. При этом всё это происходит незаметно — система сама решает, какой адрес использовать и когда его сменить.
IPv6 упрощает и ускоряет маршрутизацию за счет того, что у каждого устройства уже есть уникальный глобальный адрес. Не нужно прятаться за NAT, не нужно делать пробросы портов — пакет можно просто доставить по адресу, как письмо по почте.
Роутер раздает префикс, не адреса. Когда устройство подключается к сети, маршрутизатор не выдает ему IP-адрес, как в IPv4. Он просто объявляет: «У нас в сети используется префикс 2001:db8:abcd:1234::/64
— берите и пользуйтесь».
Устройства сами берут этот префикс и достраивают свой IPv6-адрес (через SLAAC или DHCPv6).
Маршрутизатор лишь сообщает: «всё, что начинается с 2001:db8:abcd:1234
, идет через меня» — и сеть готова.
Вместо ARP — NDP. В IPv4, чтобы узнать, где конкретный IP-адрес, используется ARP: «Кто такой 192.168.0.123? Подайте голос!» — и нужное устройство откликается.
В IPv6 вместо ARP работает Neighbor Discovery Protocol (NDP). Принцип похожий, но безопаснее и гибче:
помогает найти соседние устройства в сети;
сообщает о себе, когда устройство включается;
говорит, кто тут в сети является маршрутизатором;
показывает, насколько большой может быть пакет (MTU);
позволяет устроить автоматическую настройку (например, выдать префикс для сети SLAAC).
Вместо broadcast — multicast. IPv4 активно использует широковещательные запросы (broadcast), которые рассылаются всем в сети. Это создает нагрузку, особенно в больших сетях.
IPv6 от broadcast отказался совсем. Вместо него — multicast:
Пакет отправляется только нужным участникам, которые подписаны на определенную группу.
Пример: все маршрутизаторы слушают адрес ff02::2
, все узлы — ff02::1
.
Это экономит трафик, снижает шум и ускоряет работу сети.
Как строится маршрут? IPv6-маршрутизация устроена просто:
Устройство знает, к какой подсети оно принадлежит.
Знает адрес шлюза (обычно — link-local-адрес роутера, например fe80::1
).
Если адрес назначения вне своей подсети — пакет уходит на шлюз.
Шлюз уже знает, куда дальше его передать — и так до нужного получателя.
Всё это — без NAT, без преобразования адресов, без скрытых правил.
В IPv6 одно устройство может иметь сразу несколько адресов на одном интерфейсе — и это нормально.
Например:
ip -6 addr
— может показать такое:
inet6 2001:db8:abcd:1234::ba27:ebff:fe45:1234/64 scope global
inet6 2001:db8:abcd:1234::1234/64 scope global temporary
inet6 fe80::1c5c:2eff:fee3:a864/64 scope link
Что тут происходит?
Это не ошибка, а норма. IPv6 использует три типа адресов одновременно:
Тип адреса |
Для чего используется |
Link-local |
Внутри одной сети (начинается с |
Глобальный (постоянный) |
Для входящих подключений — например, чтобы подключиться по SSH |
Временный (temporary) |
Для исходящих подключений — чтобы скрыть MAC-адрес |
Все они активны одновременно, но:
для входящих соединений используется стабильный адрес,
для исходящих — чаще всего временный.
А как система решает, с какого адреса отправлять? Операционная система сама выбирает нужный адрес по ряду критериев. Этот механизм называется source address selection — выбор исходного адреса.
Коротко — работает так:
Адрес должен подходить по зоне видимости — например, если пользователь отправляет запрос на link-local-адрес, он сам должен использовать link-local.
Если адресов несколько — используется временный (temporary), если разрешено политикой конфиденциальности.
Если адрес стабильный — его используют для сервисов, которые ожидают входящие подключения.
Если адрес явно указан в настройках или приложении — используется он.
Например, когда пользователь открывает браузер и заходит на сайт, система выберет временный адрес, чтобы не «светить» MAC. А когда нужно запустить сервер, он будет слушать стабильный адрес, чтобы был постоянный выход.
IPv6 — это будущее, но оно не наступает мгновенно. Большая часть интернета по-прежнему работает на IPv4, поэтому большинство устройств, серверов и приложений сегодня используют оба протокола одновременно. Это и называется Dual Stack.
Как это выглядит? Один и тот же сайт или сервер может иметь два IP-адреса:
IPv4: 185.65.148.89
IPv6: 2a03:6f00:1:2::5c35:7471
Устройство клиента (ноутбук, телефон, сервер) тоже имеет оба адреса. Когда открывается сайт или начинается подключение к сервису — система выбирает, какой протокол использовать.
А как выбирается, какой стек использовать? Здесь вступает в работу алгоритм с забавным названием — Happy Eyeballs.
Смысл:
Система сначала пробует подключиться по IPv6.
Одновременно — по IPv4 (с небольшой задержкой).
Кто быстрее ответит — тот и выигрывает.
Это сделано для того, чтобы пользователь не страдал от «плохого IPv6», если он формально есть, но реально не работает.
Почему так сложно? Потому что мы живем в переходном периоде:
Поэтому пока остается Dual Stack — устройство, сервер или сайт работают одновременно по двум протоколам.
Одна из главных фишек IPv6 — это автоматическая настройка адреса (SLAAC). Устройство может само узнать префикс сети от роутера и сформировать себе IPv6-адрес — без DHCP-сервера, без администратора, без лишних настроек.
Но если всё так удобно — зачем тогда вообще придумали DHCPv6?
SLAAC умеет только одно: собрать себе адрес.
А если нужно:
SLAAC этого не может. А DHCPv6 — может.
Что умеет DHCPv6?
DHCPv6 и SLAAC могут работать вместе. Это не «или-или». Многие сети используют оба способа одновременно: SLAAC — для генерации адреса, DHCPv6 — для DNS и других параметров.
IPv6 устроен иначе, чем IPv4. Здесь у каждого устройства — свой глобальный адрес. Это удобно: можно подключиться напрямую, не настраивая NAT и проброс портов.
Но звучит пугающе: «А как же безопасность? Получается, теперь к моему холодильнику могут подключиться из интернета?».
Нет. Потому что в IPv6, несмотря на отсутствие NAT, всё контролируется через файрвол — если он включен и настроен. По умолчанию входящие подключения разрешены, администратор должен самостоятельно ограничить доступ, открывая только нужные порты (например, 80 и 443 для веб-сервера).
Вместо NAT в IPv6 используется явный файрвол — как на роутере, так и на каждом устройстве.
Он по умолчанию:
То есть файрвол остается. Просто он не маскирует, а контролирует напрямую.
Рассмотрим на простом примере. Сервер получает адрес IPv6, но без настроек файрвола к нему подключиться невозможно. Чтобы запустить сайт, мы разрешаем порт 443 — только его. Это гораздо понятнее, чем NAT: никакой подмены, никакой путаницы, всё явно.
Link-local-адреса всё равно изолированы. Если кто-то вдруг получит адрес такого типа, это не значит, что он стал уязвимым. Link-local-адреса работают только внутри одной сети, через один интерфейс. Они недоступны из интернета по определению — даже без файрвола.
IPv6 может показаться сложным — новые адреса, новые принципы, непонятные сокращения. Но если смотреть на результат, всё становится ясно: он избавляет от старых костылей и упрощает жизнь.
Нет NAT — меньше плясок с бубном
Сеть сама настраивается
Приватность встроена
Управлять сетью проще
/64
— единый стандартСервисы работают как надо
IPv6 может казаться экспериментом: про него слышали многие, но на практике чаще используют старый IPv4.
На самом деле он уже давно работает — просто бесшумно, в фоновом режиме. Мы сталкиваемся с ним каждый день, даже не замечая.
Мобильные операторы. Почти все крупные мобильные сети за рубежом — на IPv6:
Облачные платформы и хостинг. Практически все облака поддерживают IPv6. В Timeweb Cloud, например:
/64
;Это дает возможность строить гибкие, масштабируемые инфраструктуры: балансировщики, прокси, изолированные сервисы — без возни с пробросом портов.
Сайты и крупные платформы. IPv6 включен по умолчанию:
Разработка, IoT, DevOps:
IPv6 уже работает почти везде, но часто незаметно — его не видно, пока не посмотришь специально. Вот как быстро узнать, работает ли он на вашей системе.
Перейдите на сайт проверки IPv6. Он покажет:
Linux:
ip -6 addr
Если увидите строки вроде:
inet6 2a03:6f01:1:2::abcd/64 scope global
inet6 fe80::1c5c:2eff:fee3:a864/64 scope link
— значит, IPv6 есть.
Если только fe80::
— это локальный адрес, глобального нет.
Windows:
ipconfig
Смотрите раздел IPv6-адрес
— если там только fe80::
или вообще пусто, значит глобального IPv6 нет.
Ethernet adapter Ethernet:
IPv6-адрес. . . . . . . . . . . . : 2001:db8:abcd:1234:98e2:34ff:fe12:abcd
Временный IPv6-адрес. . . . . . . : 2001:db8:abcd:1234:58d1:22ff:fe00:1a2b
Локальный IPv6-адрес канала . . . : fe80::98e2:34ff:fe12:abcd%4
Разверните свой VPS/VDS с бесплатным IPv6
IPv4 умирает — медленно, но верно. Новых адресов не выдается с 2019 года, провайдеры покупают оставшиеся по завышенным ценам. IPv4 будет жить еще какое-то время, но уже как «костыль», а не как решение по умолчанию.
А IPv6 растет. Мобильные операторы перешли на IPv6 почти полностью. Облачные провайдеры (включая Timeweb Cloud) выдают IPv6-адреса автоматически и бесплатно. Большие сайты давно работают по Dual Stack — IPv6 выигрывает по скорости.
Дальше IPv6 будет только набирать обороты, новые приложения будут требовать его по умолчанию. Внутри инфраструктур, облаков и контейнеров останутся только IPv6 — дешевле, проще, быстрее.