IPv6 или противостояние занижению скорости Youtube

в 18:53, , рубрики: hurricane electric, IPv6, mikrotik, routeros, YouTube
IPv6 или противостояние занижению скорости Youtube - 1

Вступление

Если у вас:

  1. Имеется маршрутизатор Mikrotik,

  2. Белый IP адрес, любезно предоставленный Вашим провайдером,

  3. Есть желание смотреть Youtube на нормальной скорости,

  4. Присутствую амбициозные планы на модернизацию домашней сети,

то приступим к борьбе за свободу скорости.

Целью статьи является:

  • рассказать о создании и настройке 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
Для адреса (протокол ICMP)

Для адреса (протокол ICMP)
Разрешаем доступ

Разрешаем доступ

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

Tunnel details

Tunnel details

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

Пример настроек конфигурирования

Пример настроек конфигурирования
Не забываем правильно выставить MTU (ещё одна проблема)

Переходим на вкладку Advanced и ползунком выставляем рекомендуемое значение для Вашего типа подключения. Если не работает, уменьшить.

Хочу обратить внимание на то, что в стандартной конфигурации для маршрутизатора предлагается MTU 1280, а на сервере настроено 1480.

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

Настройки локального интерфейса на маршрутизаторе

В IPv6 адресация выполняется следующим образом: адрес условно бьётся на две части:

  1. первую часть выдаёт провайдер

  2. вторая часть генерируется на конечном устройстве на основе MAC:

Например, в адресе 2000:aaaa:aaaa:aaaa:ffff:ffff:ffff:ffff часть 2000:aaaa:aaaa:aaaa выдана провайдером, вторая часть: ffff:ffff:ffff:ffff определена устройством.

Добавляем подсеть /64 для локального интерфейса vlan10_local

Добавляем подсеть /64 для локального интерфейса vlan10_local

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

Чтобы не наступать на мои грабли

необходимо выбрать подсеть, выделенную именно в блоке Routed IPv6 Prefixes

Neighbor Discovery

Neighbor Discovery

Необходимо проверить и подправить настройки 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

Глобальные настройки IPv6

Изюминка на тортике: IPv6 → Settings.

Disable IPv6 отключаем, IPv6 Forwarding включаем, как на изображении. И сохраняем. После чего основная миссия выполнена.

А если я не хочу светить IP адреса своих устройств?

В таком случае в локальную сеть можно выдавать произвольный пул /64 локальных IP адресов из подсети fc00::/7 (адреса fc00:: - fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff)

Пример выдачи пула в гостевой VLAN

Пример выдачи пула в гостевой VLAN

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

Настройка правила NAT

Настройка правила NAT

Не забываем о маскараде (подмене локального 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 подключение
Куда без старого доброго PING?

Куда без старого доброго PING?

Не забываем о безопасности

Так как все устройства получают внешний 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

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js