Как сделать IPv6-туннель на роутере через сторонний сервис

Как сделать IPv6-туннель на роутере через сторонний сервис

Если нужен именно роутерный сценарий, схема простая по логике и капризная в деталях. Роутер поднимает 6in4-туннель до внешнего брокера, получает собственный IPv6-префикс и дальше раздает IPv6 в локальную сеть. На практике половина проблем начинается не в настройках, а раньше - на стороне провайдера, NAT и самого железа.

Самый понятный публичный вариант сейчас - Tunnel Broker от Hurricane Electric. Сервис по-прежнему выдает готовые параметры для роутеров и прямо пишет, что для работы нужны ICMP до вашего IPv4 и проход IP protocol 41. Если роутер или провайдер режут такой трафик, туннель либо не поднимется, либо будет «висеть» в состоянии up без реальной связи.

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

Что проверить до первого шага

  • На WAN у роутера должен быть белый IPv4.
  • Роутер должен уметь 6in4, SIT, IPv6 over IPv4 или совместимый режим.
  • Провайдер и сам роутер не должны резать IP protocol 41.
  • WAN-адрес роутера должен отвечать на ping, иначе брокер может не дать создать туннель.

Если на WAN видите адрес из диапазона 100.64.0.0/10, почти наверняка у вас CGNAT. В таком случае классический 6in4 через публичного брокера обычно не взлетает. Смысл продолжать появляется только при белом IPv4.

Какие данные нужны от брокера

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

Поле у брокера Что означает Куда пойдет в роутере
Server IPv4 Address Удаленный IPv4 сервера туннеля Remote IPv4, Peer IPv4, Server IPv4
Client IPv6 Address IPv6-адрес вашей стороны туннеля Адрес туннельного интерфейса
Server IPv6 Address IPv6-адрес удаленной стороны туннеля IPv6 gateway, next hop
Routed /64 или Routed /48 Префикс для домашней сети LAN prefix, delegated prefix, IPv6 prefix
Ваш WAN IPv4 Публичный IPv4 роутера Local IPv4, source IPv4, endpoint

Главная логика простая. Client IPv6 Address живет только на самом туннеле. Внутрь домашней сети идет Routed Prefix. Если перепутать два этих поля, туннель может подняться, а клиенты в LAN так и останутся без рабочего IPv6.

Шаг 1. Создайте туннель у брокера

  1. Откройте личный кабинет брокера и нажмите Create Regular Tunnel.
  2. В поле IPv4 Endpoint введите текущий белый WAN IPv4 вашего роутера.
  3. Выберите ближайший сервер.
  4. Откройте Tunnel Details.
  5. Сохраните пять значений: Server IPv4 Address, Client IPv6 Address, Server IPv6 Address, Routed Prefix и Tunnel ID, если роутер умеет автообновление endpoint.

Если сервис пишет, что endpoint недоступен, проблема обычно не в сервисе. Чаще всего виноваты firewall на WAN, запрет ICMP или серый адрес вместо белого.

Шаг 2. Поднимите туннель на роутере

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

OpenWrt, пошагово

У OpenWrt интерфейс и названия полей могут слегка гулять между сборками LuCI, но общая логика не меняется. Актуальная инструкция OpenWrt для такого сценария требует установить пакеты 6in4 и luci-proto-ipv6.

  1. Зайдите в роутер по веб-интерфейсу.
  2. Откройте System → Software.
  3. Нажмите Update lists.
  4. Установите пакеты 6in4 и luci-proto-ipv6.
  5. Перейдите в Network → Interfaces.
  6. Нажмите Add new interface.
  7. Задайте имя, например wan6he.
  8. В списке Protocol выберите 6in4.
  9. В качестве базового физического интерфейса привяжите туннель к вашему WAN.
  10. В поле удаленного сервера вставьте Server IPv4 Address.
  11. В поле локального IPv4 endpoint укажите WAN IPv4, если LuCI просит ввести адрес вручную. Если прошивка умеет брать адрес автоматически, оставьте auto.
  12. В поле IPv6 address вставьте Client IPv6 Address.
  13. В поле routed prefix или local routed IPv6 prefix вставьте Routed Prefix.
  14. Если у вас динамический белый IPv4 и интерфейс поддерживает обновление endpoint, добавьте Tunnel ID, логин и update key от брокера.
  15. Сохраните настройки.

Что должно получиться на этом этапе. В списке интерфейсов у нового 6in4-интерфейса должен появиться статус up или connected. Если статус есть, а трафика нет, не радуйтесь раньше времени. Для 6in4 состояние up еще не означает, что пакет доходит до сервера.

Как раздать префикс в LAN на OpenWrt

  1. Откройте Network → Interfaces → LAN.
  2. Проверьте, что IPv6 assignment length включен. Для обычного routed /64 обычно раздают именно этот /64 в один LAN-сегмент. Если у вас delegated /48, можно делить на несколько /64.
  3. Включите Router Advertisements.
  4. Включите SLAAC для автоматической адресации клиентов.
  5. При необходимости включите DHCPv6, если хотите раздавать не только адреса, но и дополнительные параметры.
  6. Сохраните настройки.

Контрольная точка. После переподключения устройства в домашней сети должны получить глобальный IPv6-адрес. Если видите только fe80::, туннель на роутере жив, а LAN-префикс не раздается как надо.

Что проверить на OpenWrt, если не взлетело

  • В интерфейсе 6in4 не перепутан Client IPv6 Address и Routed Prefix.
  • На WAN действительно белый IPv4, а не адрес после NAT.
  • В логах нет жалоб на update endpoint, если у вас динамический IPv4.
  • На LAN включены RA и SLAAC.

Keenetic, пошагово

У Keenetic есть нормальная официальная инструкция. В ней отдельно сказано, что для работы нужен установленный компонент IPv6, туннель создается в разделе IPv6 in IPv4 Tunnels, а начиная с KeeneticOS 4.0 нужно еще поднять приоритет IPv6-подключения на странице Connection priorities. Официальная документация это показывает довольно прямо.

  1. Откройте веб-интерфейс Keenetic.
  2. Перейдите в General System Settings.
  3. Откройте Component options.
  4. Проверьте, что компонент IPv6 установлен. Если нет, установите и дождитесь завершения.
  5. Перейдите на страницу Other Connections.
  6. В разделе IPv6 in IPv4 Tunnels нажмите Create connection.
  7. Включите галку Use for accessing the Internet.
  8. В поле Connection name введите понятное имя, например HE IPv6.
  9. В поле IPv4 address вставьте Server IPv4 Address.
  10. В поле IPv6 address вставьте Client IPv6 Address без суффикса /64.
  11. В поле IPv6 prefix вставьте routed prefix, который выдал брокер. В инструкции Keenetic фигурирует Routed /48, но смысл поля тот же. Если у вас обычный Routed /64, вставляйте его.
  12. Нажмите Save.
  13. Вернитесь на страницу Other Connections и переведите переключатель туннеля в состояние On.

Если у вас KeeneticOS 4.0 или новее, на этом еще не конец.

  1. Перейдите в Policy Configuration.
  2. Откройте Connection priorities.
  3. Поднимите IPv6 over IPv4-туннель выше, чтобы система реально использовала его как рабочий IPv6-маршрут.
  4. Сохраните изменения.

Теперь проверка.

  1. Перейдите в Diagnostics.
  2. В блоке Network Connection Test включите режим Ping IPv6.
  3. Запустите тест.

Контрольная точка. В нормальном сценарии потерь быть не должно. Если диагностика не проходит, сначала смотрите WAN IPv4 и наличие белого адреса, потом уже копайтесь в самом туннеле.

Где в Keenetic чаще всего ошибаются

  • Вставляют Client IPv6 Address вместе с /64, хотя поле просит адрес без маски.
  • Забывают включить Use for accessing the Internet.
  • На KeeneticOS 4.x не поднимают приоритет туннеля в Policy Configuration.
  • Ждут, что серый IPv4 magically подойдет для 6in4. Не подойдет.

MikroTik RouterOS, пошагово

У MikroTik нужный механизм живет в интерфейсе 6to4. Для tunnel broker схема официально описана у MikroTik через remote-address, local-address и отдельный routed /64 для bridge-local. Это не «классический автоматический 6to4» из старых схем, а обычный управляемый IPv6 over IPv4-туннель до сервера брокера. Официальная страница дает готовый пример именно для Hurricane Electric.

Ниже два варианта. Сначала путь через WinBox или WebFig, потом эквивалентные команды.

MikroTik через WinBox или WebFig

  1. Зайдите в роутер.
  2. Откройте Interfaces → 6to4.
  3. Нажмите плюс и создайте новый интерфейс.
  4. В Name задайте имя, например sit1.
  5. В Local Address укажите ваш WAN IPv4.
  6. В Remote Address вставьте Server IPv4 Address.
  7. В MTU для начала поставьте 1280, как в примере MikroTik. Потом при желании можно экспериментировать.
  8. Сохраните интерфейс.

Теперь адрес самого туннеля.

  1. Откройте IPv6 → Addresses.
  2. Нажмите плюс.
  3. В Address вставьте Client IPv6 Address с маской /64.
  4. В Interface выберите sit1.
  5. Выключите advertise для этого адреса.
  6. Сохраните.

Теперь маршрут по умолчанию для IPv6.

  1. Откройте IPv6 → Routes.
  2. Нажмите плюс.
  3. В Dst. Address укажите 2000::/3.
  4. В Gateway вставьте Server IPv6 Address.
  5. Сохраните.

Теперь префикс для домашней сети.

  1. Откройте IPv6 → Addresses.
  2. Нажмите плюс.
  3. В Address вставьте Routed Prefix, добавив адрес роутера внутри этого префикса, обычно ::1/64.
  4. В Interface выберите ваш LAN bridge, обычно bridge или bridge-local.
  5. Включите advertise.
  6. Сохраните.

Теперь раздача DNS по сети.

  1. Откройте IPv6 → ND.
  2. В дефолтной записи включите advertise-dns.
  3. Зайдите в IP → DNS.
  4. Включите allow-remote-requests.
  5. Добавьте IPv6 DNS-серверы. Можно использовать адрес HE 2001:470:20::2 или другие публичные DNS.

Контрольная точка. После этих шагов сам роутер должен уметь ходить в IPv6, а устройства в LAN должны получить глобальные IPv6-адреса из Routed Prefix.

MikroTik через CLI

/interface 6to4
 add name=sit1 local-address=ВАШ_WAN_IPV4 remote-address=SERVER_IPV4 mtu=1280
 
 /ipv6 address
 add address=CLIENT_IPV6/64 interface=sit1 advertise=no
 
 /ipv6 route
 add dst-address=2000::/3 gateway=SERVER_IPV6
 
 /ipv6 address
 add address=ROUTED_PREFIX::1/64 interface=bridge advertise=yes
 
 /ipv6 nd set [ find default=yes ] advertise-dns=yes
 
 /ip dns set allow-remote-requests=yes servers=2001:470:20::2

Где в MikroTik чаще всего ломается картина

  • Забыли повесить Routed Prefix на bridge, поэтому сам роутер в IPv6 выходит, а клиенты нет.
  • Добавили адрес туннеля с advertise=yes, хотя раздавать надо не его, а routed prefix.
  • Прописали Server IPv4 Address в gateway вместо Server IPv6 Address.

Как понять, что все реально заработало

  1. Сам роутер должен пинговать IPv6-адреса в интернете.
  2. Клиент в локальной сети должен получить глобальный IPv6-адрес, а не только fe80::.
  3. С клиента должны открываться IPv6-ресурсы.
  4. После переподключения клиента адрес не должен пропадать сразу же.

Если роутер пингует IPv6, а клиенты нет, проблема почти всегда в LAN-раздаче префикса. Если не работает даже сам роутер, проблема почти всегда раньше. Белый IPv4, ICMP до endpoint, protocol 41, неправильно вставленные адреса или сломанный маршрут по умолчанию.

Типовые ошибки, из-за которых все валится

Симптом Причина Что делать
Туннель не создается у брокера WAN IPv4 недоступен по ICMP Проверить белый адрес и firewall
Интерфейс выглядит живым, но трафика нет Режется IP protocol 41 Проверить провайдера, NAT и правила роутера
Роутер в IPv6 выходит, клиенты нет Не раздается Routed Prefix Проверить RA, SLAAC, advertise, bridge
После смены WAN IPv4 все пропало У брокера остался старый endpoint Обновить endpoint вручную или включить автообновление
Часть сайтов открывается, часть зависает Проблема с MTU Начать с 1280 или 1480, потом смотреть поведение

Где совет не сработает

Если провайдер выдал только серый IPv4, если интернет приходит через мобильную сеть, если роутер старый и не умеет 6in4, если провайдер режет protocol 41, то классический tunnel broker не ваш путь. Тут проблема не в одной галочке. Тут просто не подходит сама транспортная схема.

В таком случае уже нужен другой подход, обычно отдельный сервер и туннель поверх UDP. Но это уже не «настроить внешний 6in4 на роутере за десять минут», а отдельная сетевая история.

Практический вывод

Нормальная рабочая последовательность выглядит так. Сначала проверяете белый IPv4. Потом создаете туннель у брокера. Затем заносите в роутер Server IPv4 Address, Client IPv6 Address, Server IPv6 Address и Routed Prefix. После этого отдельно включаете раздачу префикса в LAN. На OpenWrt чаще всего забывают про RA и SLAAC, на Keenetic про приоритет соединения в новых версиях ОС, на MikroTik про Routed Prefix на bridge.

Если хотите реально без боли, сначала смотрите не на экзотические поля в форме, а на три вещи. Белый WAN IPv4, правильный Routed Prefix и включенная раздача IPv6 в LAN. Именно на этих трех точках валится большинство домашних настроек.

FAQ

Подойдет ли динамический белый IPv4?
Да, но после смены адреса endpoint у брокера нужно обновлять. На части роутеров это можно автоматизировать.

Можно ли раздать один routed /64 на обычную домашнюю сеть?
Да, для одного LAN-сегмента этого достаточно. Если хотите делить сеть на несколько IPv6-сегментов, удобнее иметь delegated /48.

Почему устройство получило IPv6, но сайты не открываются?
Сначала проверьте default route, потом MTU, потом DNS по IPv6.

Почему роутер пишет up, хотя ничего не работает?
У 6in4 нет нормального keepalive-уровня. Состояние up не гарантирует, что сервер реально доступен.

Какой роутер проще всего для такой схемы?
С практической точки зрения проще всего обычно OpenWrt, Keenetic или MikroTik. У них хотя бы есть понятные механизмы для 6in4 и IPv6-раздачи в LAN.

ipv6 keenetic mikrotik openwrt брокер роутер туннель
Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.
GIS
Газинформ
Сервис
SafeERP
Полный контроль безопасности 1С
Мониторинг платформы и анализ кода в едином интерфейсе
Подробнее
Реклама. 18+ ООО «Газинформсервис»
ОГРН 1047833006099

Техноретроградка

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