Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

isp:domru:mikrotik-howto [2020-05-12 17:02 UTC]
rm удалено
isp:domru:mikrotik-howto [2024-03-29 21:47 UTC] (текущий)
rm
Строка 1: Строка 1:
====== IPv6 от Дом.ru (ЭР-Телеком) на Mikrotik ====== ====== IPv6 от Дом.ru (ЭР-Телеком) на Mikrotik ======
 +//Автор инструкции [[https://t.me/OxFFFE|@koozz]]//
 +**Для пользователей РосТелекома сразу переходите к шагу 2. У вас подключение выполнено по IPoE и первый шаг не нужен!.\\**
 +===== Перед началом =====
 +Нужно убедиться, что:
 +  - пакет IPv6 установлен и включен (для RouterOS 6);
 +  - поддержка IPv6 не отключена (для RouterOS 7);
 +  - подключение(PPPoE) к Дом.ru поднято;
 +  - в личном кабинете Дом.ru, в разделе "Сервиcные настройки" включен "Протокол IPv6".
 +
 +
 +===== 1. Тюнинг PPPoE подключения =====
 +Ключевое, руками выключить ненужное чтобы избегать лишнего времени при подключении и принудительно включить "Use ipv6".\\
 +Внимание!, практика показывает что лучше выключить правило "Change TCP MSS" и прописать его самостоятельно!
 +
 +{{:isp:domru:ppp_profile1.png|}}{{:isp:domru:ppp_profile2.png|}}
 +
 +Через CLI:
 +<code>/ppp profile
 +add change-tcp-mss=no name=ppp-domru only-one=yes use-compression=no use-encryption=no use-mpls=no use-upnp=no</code>
 +
 +Теперь сам профиль подключения. Тут вручную приподнимаем MTU(заголовок PPP всего 8 байт) и указываем использование профиля
 +
 +{{:isp:domru:ppp_interface1.png|}}{{:isp:domru:ppp_interface2.png|}}
 +
 +Через CLI:
 +<code>/interface pppoe-client
 +add add-default-route=yes disabled=no interface=ether1-domru keepalive-timeout=disabled max-mtu=1492 name=dom.ru-PPPoE profile=ppp-domru user=DOMRULOGIN password=DOMRUPASSWORD</code>
 +
 +Как итог соединение будет подниматься чуть быстрее, и MTU чуть больше. В статусе обязательно должны появиться link-local адреса ipv6
 +
 +{{:isp:domru:ppp_interface_status.png|}}
 +
 +Последнее, надо руками создать правило для MSS.\\
 +В IP->Firewall->Mangle добавить новое правило:
 +
 +{{:isp:domru:v4_mss1.png|}}{{:isp:domru:v4_mss2.png|}}{{:isp:domru:v4_mss3.png|}}
 +
 +На всякий случай добавить аналогичное но для OUTPUT.
 +
 +Через CLI:
 +<code>/ip firewall mangle
 +add action=change-mss chain=forward comment=mss new-mss=clamp-to-pmtu out-interface=dom.ru-PPPoE passthrough=yes protocol=tcp tcp-flags=syn
 +add action=change-mss chain=output comment=mss new-mss=clamp-to-pmtu out-interface=dom.ru-PPPoE passthrough=yes protocol=tcp tcp-flags=syn</code>
 +
 +
 +===== 2. Firewall =====
 +Да, именно фаирволл так как в предыдущей инструкции были допущены ошибки, в том числе фатальные. Кроме того это позволит дебажить подключение, в том числе абонентам РосТелекома.\\
 +Список правил с нумерацией, далее буду ссылаться на номера:
 +
 +{{:isp:domru:firewall.png|}}
 +
 +В лист WAN интерфейса входит "dom.ru-PPPoE"\\
 +0 - правило для !просмотра! что dhcp-client шлет запросы в сторону провайдера\\
 +5 - правило разрешающее отвечать dhcp-server'у провайдера нашему dhcp-clien'у\\
 +Из важного, icmp надо обязательно разрешать, !"это очень важная часть протокола IPv6"!. Также очень важно, избегайте "drop" правил и применяйте "reject", это также важно в IPv6.
 +
 +Остальные правила дежурные.\\
 +Добавить правила через CLI:\\
 +<code>/ipv6 firewall filter
 +add action=passthrough chain=output comment="accept dhcpv6 request from domru" dst-port=547 out-interface-list=WAN protocol=udp src-port=546
 +add action=drop chain=input comment="Drop (invalid)" connection-state=invalid
 +add action=accept chain=input comment="Accept (established, related)" connection-state=established,related in-interface-list=WAN
 +add action=accept chain=input comment="Accept external ICMP (10/sec)" in-interface-list=WAN limit=10,20:packet protocol=icmpv6
 +add action=drop chain=input comment="Drop external ICMP (>10/sec)" in-interface-list=WAN protocol=icmpv6
 +add action=accept chain=input comment="accept dhcpv6 answer from domru" dst-port=546 in-interface-list=WAN protocol=udp src-address=fe80::/10 src-port=547
 +add action=accept chain=input comment="Accept internal" in-interface-list=!WAN
 +add action=reject chain=input comment="Reject everything else" reject-with=icmp-port-unreachable
 +add action=accept chain=forward comment="Accept external ICMP (20/sec)" in-interface-list=WAN limit=20,50:packet protocol=icmpv6
 +add action=drop chain=forward comment="Drop external ICMP (>20/sec)" in-interface-list=WAN protocol=icmpv6
 +add action=accept chain=forward comment="Accept (established, related) to lan" connection-state=established,related in-interface-list=WAN
 +add action=accept chain=forward comment="Accept to wan" out-interface-list=WAN
 +add action=reject chain=forward comment="Reject everything else" reject-with=icmp-port-unreachable</code>
 +
 +Как в случае с фаирволом IPv4 создаем тут правила для MSS:\\
 +<code>/ipv6 firewall mangle
 +add action=change-mss chain=forward dst-prefix=::/0 in-interface-list=!WAN new-mss=clamp-to-pmtu passthrough=yes protocol=tcp src-prefix=::/0 tcp-flags=syn
 +add action=change-mss chain=output new-mss=clamp-to-pmtu out-interface=dom.ru-PPPoE protocol=tcp tcp-flags=syn</code>
 +
 +
 +===== 3. DHCPv6 Client =====
 +**Для РосТелекома длинна префикса будет 56, кроме того нужно поставить галочку запроса address и "Add default route".**\\  
 +Добавляем клиента, запрашиваем префикс, снимаем галочку "Add default route", длина префикса 64.
 +
 +{{:isp:domru:dhcpv6_client.png|}}
 +
 +Дефолтный роут на самом деле уже был установлен еще на этапе PPPoE подключения, там есть такая же галочка и она добавляет дефолт для IPv4 и IPv6.\\
 +Проверить уходят ли запросы и приходят ли ответы можно в фаирволе счетчиком пакетов у правил 0 и 5.
 +
 +===== 4. Раздача адресов по SLAAC =====
 +
 +
 +==== 4.1. IPv6 Addresses роутера ====
 +  * Элемент списка«Address» вводим ::/64;
 +  * «From Pool» выбираем название заданное в п.1 («Pool Name»);
 +  * «Interface» выбираем интерфейс(или бридж) смотрящий в локальную сеть;
 +  * ставим галочку «Advertise» (это нужно для SLAAC)
 +  * ставим галочку «EUI64» (чтобы взять адрес из MAC, тоже лучше так для SLAAC)
 +
 +{{:isp:domru:ipv6_slaac_address.png|}}
 +
 +В случае Дом.ru, из-за всего одного префикса /64, сеть получится раздать только одну.
 +
 +Для Ростелекома с префиксом /56, можно раздать сети и адреса в другие сегменты, к примеру в гостевой WiFi и прочее, делается это с указанием того же pool'a. Mikrotik сам возьмёт другую свободную подсеть. Для справки, префикс /56 -- это 256 префиксов длиной /64.
 +
 +
 +==== 4.2. IPv6 Address роутера ====
 +Микротик по умолчанию использует очень большие значения таймаутов, передаваемых клиентам через Route Advertisements. По умолчанию, в локальную сеть будут рассылаться анонсы подсети с Valid lifetime в 30 дней и Preferred lifetime 7 дней. Это очень долго, и абсолютно недопустимо долго, в случае, если провайдер предоставляет динамические подсети IPv6. Для такого случая рекомендуем выставить значения 1 час и 5 минут соответственно.
 +
 +{{:isp:domru:nd_defaults.png|}}
 +
 +
 +==== 4.3. ND . Непосредственно SLAAC ====
 +
 +  * Выбрать Interface куда будем вещать
 +  * RA Interval уменьшаем если префикс динамический, для статики можно оставить по умолчанию
 +  * DNS Servers тут добавим IP адрес DNS сервера. Фишка появилась после совсем недавно (есть баг, нельзя добавить более одного адреса! )
 +  * Advertise DNS разрешаем анонсить DNS прописанный выше
 +
 +{{:isp:domru:nd_interface.png|}}
 +
 +===== 5. Раздача адресов статикой с дроблением 64 префикса =====
 +Актуально только для статичного префикса, с динамикой это не пройдет!
 +
 +==== 5.1. IPv6 Address роутера ====
 +Для примера я разобью свой /64 на /112\\
 +Один /112 это 65,536 адресов\\
 +000a:000b:000c:000d::/64 префикс от домру\\
 +Первая сеть 000a:000b:000c:000d:0000:0000:0001:0000 - 000a:000b:000c:000d:0000:0001:0000:ffff\\
 +Вторая сеть 000a:000b:000c:000d:0000:0000:0002:0000 - 000a:000b:000c:000d:0000:0002:0000:ffff\\
 +Сокращенный записи:\\
 +Первая сеть a:b:c:d::1:/112 - a:b:c:d::1:ffff/112\\
 +Вторая сеть a:b:c:d::2:/112 - a:b:c:d::2:ffff/112\\
 +
 +  * Элемент списка«Address» вводим a:b:c:d::1:1/112;
 +  * «Interface» выбираем интерфейс(или бридж) смотрящий в локальную сеть;
 +
 +{{:isp:domru:ipv6_static_address.png|}}
 +
 +Теперь на всех устройствах внутри этого бриджа\интерфейса вручную прописываем статикой адреса из сети a:b:c:d::1:/112 и шлюз a:b:c:d::1:1\\
 +Для других сетей аналогично, к примеру на клиентов vpn и прочее.
 +
 +===== 6. Замечания =====
 +
 +Возможно еще необходимо подкрутить MTU для ipv6, но лично я проблем не испытывал.\\
 +Для математики:\\
 +IPv4\\
 +L2=1500 байт\\
 +PPPoE=8 байт\\
 +Итого MTU = 1500-8=1492\\
 +TCP=20 байт\\
 +IP=20 байт\\
 +TCP MSS=1492-20-20=1452\\
 +
 +IPv6\\
 +L2=1500\\
 +PPPoE=8 байт\\
 +Итого MTU = 1500-8=1492\\
 +TCP=20 байт\\
 +IP=40 байт\\
 +TCP MSS=1492-40-20=1432\\

isp/domru/mikrotik-howto.1589302935.txt.gz · Последние изменения: 2020-05-12 17:02 UTC От rm
Personal Tools