Вступление
Если у вас:
-
Имеется маршрутизатор 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 адрес, выбираем туннельный сервер по вкусу:
Если возникает ошибка: IP is not ICMP pingable
Необходимо в Firewall маршрутизатора выше запрещающих правил категории input создать разрешающее правило:
/ip firewall filter
add action=accept chain=input protocol=icmp src-address=66.220.2.74
Затем в окне браузера появятся конфигурации туннеля. Здесь Routed IPv6 Prefixes - это адреса, которые будут прокинуты в локальную сеть.
Для удобства конфигурирования маршрутизатора можно использовать вкладку Example Configurations. Там выбрать Mikrotik. Затем скопировать и вставить код для конфигурирования в терминал маршрутизатора:
Не забываем правильно выставить MTU (ещё одна проблема)
Переходим на вкладку 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 Serers либо Google (2001:4860:4860::8888), либо локального интерфейса (в нашем примере 2001:470:1f08:1e8::2 интерфейса sit1)
В IP → DNS и добавляем один или несколько IPv6 DNS, если мы хотим использовать в качестве DNS сервера наш маршрутизатор.
Примеры DNS
Ниже представлены примеры DNS адресов.
-
Google DNS 2001:4860:4860::8888, 2001:4860:4860::8844
-
ddddddddddddddddddddddddddddddddddddddddddddddHurricane 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 трафик.
Автор: Nazar_Kam