Различия

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

isp:domru:mikrotik-howto [2022-02-11 23:09 UTC]
rm
isp:domru:mikrotik-howto [2024-03-29 21:47 UTC] (текущий)
rm
Строка 1: Строка 1:
====== IPv6 от Дом.ru (ЭР-Телеком) на Mikrotik ====== ====== IPv6 от Дом.ru (ЭР-Телеком) на Mikrotik ======
-//Спасибо за помощь в подготовке инструкции [[https://t.me/jamakasi667|@Jamakasi]]//+//Автор инструкции [[https://t.me/OxFFFE|@koozz]]//
 +**Для пользователей РосТелекома сразу переходите к шагу 2. У вас подключение выполнено по IPoE и первый шаг не нужен!.\\**
===== Перед началом ===== ===== Перед началом =====
Нужно убедиться, что: Нужно убедиться, что:
-  - пакет IPv6 установлен и включен;+  - пакет IPv6 установлен и включен (для RouterOS 6); 
 +  - поддержка IPv6 не отключена (для RouterOS 7);
  - подключение(PPPoE) к Дом.ru поднято;   - подключение(PPPoE) к Дом.ru поднято;
-  - в [[https://lk.domru.ru/settings/services|личном кабинете, в разделе "Интернет" -> "Сервиcные настройки"]] включен "Протокол IPv6". +  - в личном кабинете Дом.ru, в разделе "Сервиcные настройки" включен "Протокол IPv6".
-{{:isp:domru:lk-domru-ipv6.jpg?600|}}+
-===== 1. DHCP Client ===== 
-Идём в пункт "IPv6" -> "DHCP Client"; жмём + (add). 
-{{:isp:domru:mk-dhcp-client.jpg?600|}}+===== 1. Тюнинг PPPoE подключения ===== 
 +Ключевое, руками выключить ненужное чтобы избегать лишнего времени при подключении и принудительно включить "Use ipv6".\\  
 +Внимание!, практика показывает что лучше выключить правило "Change TCP MSS" и прописать его самостоятельно!
-Выбираем "Interface" с именем вашего соединения PPPoE. +{{:isp:domru:ppp_profile1.png|}}{{:isp:domru:ppp_profile2.png|}}
-  * "Request" ставим галочку на "prefix"; +
-  * "Pool Name" вводим удобное имя пула для адресов; +
-  * "Pool prefix Length" вводим 64; +
-  * Ставим галочки "Rapid Commit" и "Add Default Route" (внимание: для версии 7.1 вторую необходимо наоборот, снять: [[https://forum.mikrotik.com/viewtopic.php?t=178547|1]], [[https://forum.mikrotik.com/viewtopic.php?f=1&t=178057|2]]).+
-{{:isp:domru:mk-dhcp.jpg|}}+Через 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>
-===== 2. ND Lifetimes ===== +Теперь сам профиль подключения. Тут вручную приподнимаем MTU(заголовок PPP всего 8 байт) и указываем использование профиля
-Микротик по умолчанию использует очень большие значения таймаутов, передаваемых клиентам через Route Advertisements. По умолчанию, в локальную сеть будут рассылаться анонсы подсети с Valid lifetime в 30 дней и Preferred lifetime 7 дней. Это очень долго, и абсолютно недопустимо долго, в случае, если провайдер предоставляет динамические подсети IPv6. Для такого случая рекомендуем выставить значения 1 час и 5 минут соответственно.+
-{{:isp:domru:mk-ra-timeouts.jpg|}}+{{:isp:domru:ppp_interface1.png|}}{{:isp:domru:ppp_interface2.png|}}
-При динамическом IPv6 стоит также уменьшить в настройках интерфейса RA Interval с дефолтных &quot;200-600&quot; секунд до 60-ти.+Через CLI: 
 +&lt;code&gt;/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>
-{{:isp:domru:mk-ra-int.jpg|}}+Как итог соединение будет подниматься чуть быстрее, и MTU чуть больше. В статусе обязательно должны появиться link-local адреса ipv6
 +{{:isp:domru:ppp_interface_status.png|}}
-===== 3. IPv6 Addresses ===== +Последнее, надо руками создать правило для MSS.\\  
-Идем в пункт &quot;IPv6"; -> "Addresses"; жмём + (add).+В IP-&gt;Firewall->Mangle добавить новое правило:
-{{:isp:domru:mk-addr.jpg?600|}}+{{:isp:domru:v4_mss1.png|}}{{:isp:domru:v4_mss2.png|}}{{:isp:domru:v4_mss3.png|}}
-  * "Address" вводим ::/64; +На всякий случай добавить аналогичное но для OUTPUT.
-  * "From Pool" выбираем название заданное в п.1 ("Pool Name"); +
-  * "Interface" выбираем интерфейс(или бридж) смотрящий в локальную сеть; +
-  * ставим галочку "Advertise".+
-===== 4. Firewall ===== +Через CLI: 
-**Важно**: сначала измените в нижеприведённом тексте "dom.ru PPPoE&quot; на имя вашего интерфейса с PPPoE.+<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&lt;/code>;
-Затем жмём кнопку "New Terminal" и вводим туда следующее:+ 
 +===== 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 <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=drop chain=input comment="Drop (invalid)" connection-state=invalid
-add action=accept chain=input comment="Accept (established, related)" connection-state=established,related +add action=accept chain=input comment="Accept (established, related)" connection-state=established,related in-interface-list=WAN 
-add action=accept chain=input comment="Accept DHCP (10/sec)" in-interface="dom.ru PPPoE" limit=10,20:packet protocol=udp src-port=547 +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 DHCP (>10/sec)" in-interface="dom.ru PPPoE" protocol=udp src-port=547 +add action=drop chain=input comment="Drop external ICMP (>10/sec)" in-interface-list=WAN protocol=icmpv6 
-add action=accept chain=input comment="Accept external ICMP (10/sec)" in-interface="dom.ru PPPoE" limit=10,20:packet 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=drop chain=input comment="Drop external ICMP (>10/sec)" in-interface="dom.ru PPPoE" protocol=icmpv6 +add action=accept chain=input comment="Accept internal" in-interface-list=!WAN 
-add action=accept chain=input comment="Accept internal ICMP" in-interface="!dom.ru ppoe" protocol=icmpv6 +add action=reject chain=input comment="Reject everything else" reject-with=icmp-port-unreachable 
-add action=drop chain=input comment="Drop external" in-interface="dom.ru PPPoE" +add action=accept chain=forward comment="Accept external ICMP (20/sec)" in-interface-list=WAN limit=20,50:packet protocol=icmpv6 
-add action=reject chain=input comment="Reject everything else" +add action=drop chain=forward comment="Drop external ICMP (>20/sec)" in-interface-list=WAN protocol=icmpv6 
-add action=accept chain=output comment="Accept all+add action=accept chain=forward comment="Accept (established, related) to lan" connection-state=established,related in-interface-list=WAN 
-add action=drop chain=forward comment="Drop (invalid)" connection-state=invalid +add action=accept chain=forward comment="Accept to wan" out-interface-list=WAN 
-add action=accept chain=forward comment="Accept (established, related)" connection-state=established,related +add action=reject chain=forward comment="Reject everything else" reject-with=icmp-port-unreachable&lt;/code&gt; 
-add action=accept chain=forward comment="Accept external ICMP (20/sec)" in-interface="dom.ru PPPoE" limit=20,50:packet protocol=icmpv6 + 
-add action=drop chain=forward comment="Drop external ICMP (>20/sec)" in-interface=&quot;dom.ru PPPoE&quot; protocol=icmpv6 +Как в случае с фаирволом IPv4 создаем тут правила для MSS:\\  
-add action=accept chain=forward comment="Accept internal" in-interface="!dom.ru PPPoE" +<code>/ipv6 firewall mangle 
-add action=accept chain=forward comment="Accept outgoing" out-interface="dom.ru PPPoE&quot+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=drop chain=forward comment="Drop external" in-interface="dom.ru PPPoE+add action=change-mss chain=output new-mss=clamp-to-pmtu out-interface=dom.ru-PPPoE protocol=tcp tcp-flags=syn&lt;/code>
-add action=reject chain=forward comment=";Reject everything else";<;/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. Замечания =====
-===== 5. DNS ===== +Возможно еще необходимо подкрутить MTU для ipv6, но лично я проблем не испытывал.\\  
-После предыдущих шагов интернет по IPv6 должен уже работать но, к сожалению, Дом.ru не раздает IPv6 DNS. Все запросы идут к DNS-серверам по IPv4. Поэтому в разделе "IP" -> "DNS" стоит добавить поля адресов и ввести IPv6-адреса серверов DNS. Здесь же можно добавить и статические записи DNS-имен.+Для математики:\\  
 +IPv4\\  
 +L2=1500 байт\\  
 +PPPoE=8 байт\\  
 +Итого MTU = 1500-8=1492\\  
 +TCP=20 байт\\  
 +IP=20 байт\\  
 +TCP MSS=1492-20-20=1452\\
-{{:isp:domru:mk-dns.jpg?600|}}+IPv6\\  
 +L2=1500\\  
 +PPPoE=8 байт\\  
 +Итого MTU = 1500-8=1492\\  
 +TCP=20 байт\\  
 +IP=40 байт\\  
 +TCP MSS=1492-40-20=1432\\

isp/domru/mikrotik-howto.1644620960.txt.gz · Последние изменения: 2022-02-11 23:09 UTC От rm
Personal Tools