
Вступление
Если у вас:
Имеется маршрутизатор Mikrotik,
Белый IP адрес, любезно предоставленный Вашим провайдером,
Есть желание смотреть Youtube на нормальной скорости,
Присутствую амбициозные планы на модернизацию домашней сети,
то приступим к борьбе за свободу скорости.
Целью статьи является:
рассказать о создании и настройке IPv6 туннеля,
продемонстрировать настройку на сайте IPv6 брокера
показать настройку маршрутизатора (проброс пула в локальную сеть, настройку брандмауэра, DNS)
продемонстрировать работоспособность IPv6 подключения.
Поехали.
Выбираем брокера и заводим аккаунт
Не так давно я провёл время за изучением официального руководства Mikrotik, где наткнулся на создание IPv6 инкапсуляции. Там же был предложен туннельный брокер IPv6 Hurricane Electric.
Скрытый текст
В интернете можно найти и других IPv6 брокеров. Не тестировал, поэтому пока ничего сказать не готов.
Готовый на эксперименты, я перешёл на сайт и попытался зарегистрироваться. Первая проблема. которая меня ждала, что указанный мною почтовый домен не поддерживается (предположительно поле проверяется на такие слова как gmail, yandex, mail)

Перепробовал несколько доменов и пришёл к тому, что проще использовать адрес на домене etlgr.me. Для этого нужен бот в Telegram etlgr_bot, где создаём новый ящик или используем ящик, созданный по умолчанию.
После регистрации и подтверждения электронного адреса переходим на сайт, где нажимаем: Create Regular Tunnel. Указываем Ваш IP адрес, выбираем туннельный сервер по вкусу:

Скрытый текст
Необходимо в Firewall маршрутизатора выше запрещающих правил категории input создать разрешающее правило:
/ip firewall filter
add action=accept chain=input protocol=icmp src-address=66.220.2.74


Затем в окне браузера появятся конфигурации туннеля. Здесь Routed IPv6 Prefixes - это адреса, которые будут прокинуты в локальную сеть.

Для удобства конфигурирования маршрутизатора можно использовать вкладку Example Configurations. Там выбрать Mikrotik. Затем скопировать и вставить код для конфигурирования в терминал маршрутизатора:

Скрытый текст
Переходим на вкладку Advanced и ползунком выставляем рекомендуемое значение для Вашего типа подключения. Если не работает, уменьшить.
Хочу обратить внимание на то, что в стандартной конфигурации для маршрутизатора предлагается MTU 1280, а на сервере настроено 1480.
Рекомендую как на маршрутизаторе для созданного интерфейса sit1, так и на сайте указать одинаковое значение MTU, чтобы не было проблем со скоростью и стабильностью подключения.
Настройки локального интерфейса на маршрутизаторе
В IPv6 адресация выполняется следующим образом: адрес условно бьётся на две части:
первую часть выдаёт провайдер
вторая часть генерируется на конечном устройстве на основе MAC:
Например, в адресе 2000:aaaa:aaaa:aaaa:ffff:ffff:ffff:ffff часть 2000:aaaa:aaaa:aaaa выдана провайдером, вторая часть: ffff:ffff:ffff:ffff определена устройством.

На маршрутизаторе необходимо для локального интерфейса определить ранее выданную нам подсеть. Выбираем IPv6 → Adresses. Вставляем скопированный с сайта IPv6 префикс. Выбираем интерфейс. Установлен чекбокс: Advertise. Применяем настройки.
Скрытый текст
необходимо выбрать подсеть, выделенную именно в блоке Routed IPv6 Prefixes

Необходимо проверить и подправить настройки IPv6 → ND (Neighbor Discovery). Здесь можно либо создать отдельное правило для локального интерфейса, либо использовать по умолчанию, заправив по вкусу.
Сюда добавляем DNS Servers либо Google (2001:4860:4860::8888), либо локального интерфейса (в нашем примере 2001:470:1f08:1e8::2 интерфейса sit1)
В IP → DNS и добавляем один или несколько IPv6 DNS, если мы хотим использовать в качестве DNS сервера наш маршрутизатор.
Скрытый текст
Ниже представлены примеры DNS адресов.
Google DNS 2001:4860:4860::8888, 2001:4860:4860::8844
Hurricane Electric 2001:470:20::2
Можно поискать в интернете публичные IPv6 адреса.

Изюминка на тортике: IPv6 → Settings.
Disable IPv6 отключаем, IPv6 Forwarding включаем, как на изображении. И сохраняем. После чего основная миссия выполнена.
А если я не хочу светить IP адреса своих устройств?
В таком случае в локальную сеть можно выдавать произвольный пул /64 локальных IP адресов из подсети fc00::/7 (адреса fc00:: - fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff)

В Winbox переходим к IPv6 → Adresses. Нажимая плюс, добавляем новую запись, в которой выбираем произвольный пул для локального интерфейса. Например, пул fc00:aaaa:bbbb:cccc::/64 для интерфейса vlan11_guest.

Не забываем о маскараде (подмене локального IP адреса на глобальный). Переходим в IPv6 → Firewall → NAT. Создаём запись как на снимке экрана. В качестве Src. Address указываем: fc00::/7 (вся локальная сеть). Dst. Address: 2000::/3 (весь внешний интернет). Это универсальное правило позволит подменять запросы только с интерфейсов, которым назначены локальные IP адреса.
Скрытый текст
/ipv6 firewall nat
add action=masquerade chain=srcnat dst-address=2000::/3 out-interface-list=WAN src-address=fc00::/7
Проверка
Для тестирования можно использовать специализированные сайты. Здесь лишь пример сайтов:


Не забываем о безопасности
Так как все устройства получают внешний IPv6 адрес (можно убедиться, выполнив проверку с каждого устройства по отдельности), их (включая маршрутизатор) следует оградить от внешнего мира:
/ipv6 firewall filter
add action=accept chain=input connection-state=established,related,untracked
add action=drop chain=input connection-state=invalid
add action=drop chain=input in-interface-list=!LAN
add action=accept chain=forward connection-state=established,related,untracked
add action=drop chain=forward connection-state=invalid
add action=accept chain=forward in-interface-list=LAN out-interface-list=WAN
add action=accept chain=forward in-interface-list=!WAN protocol=icmpv6
add action=drop chain=forward
Здесь подразумевается, что интерфейс sit1 я уже добавил в существующий interface list WAN. А локальный интерфейс находится в список интерфейсов LAN.
Заключение
Был рассмотрен один из вариантов борьбы с ограничением скорости Youtube, а именно процесс создания 6in4 туннеля. Практика показала, что скорость загрузки видео осталась на высоком уровне как с телефона, так и с компьютера.
В будущей статье постараюсь рассказать, как делал проброс IPv6 пула на другой маршрутизатор через Wireguard, через EoIP-туннель, а также проброс и настройку Wireguard клиентов на компьютере, смартфоне, через которые маршрутизируется IPv6 трафик.