Вы находитесь здесь: version6.ru » Провайдеры с IPv6 » IPv6 от провайдера Дом.ru » IPv6 от Дом.ru (ЭР-Телеком) на Mikrotik
Различия
Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
isp:domru:mikrotik-howto [2020-05-12 21:15 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 установлен и включен; | + | - пакет 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). | ||
- | Выбираем "Interface" с именем вашего соединения PPPoE. | + | ===== 1. Тюнинг PPPoE подключения ===== |
- | * "Request" ставим галочку на "prefix" | + | Ключевое, руками выключить ненужное чтобы избегать лишнего времени при подключении и принудительно включить "Use ipv6".\\ |
- | * "Pool Name" вводим удобное имя пула для адресов | + | Внимание!, практика показывает что лучше выключить правило "Change TCP MSS" и прописать его самостоятельно! |
- | * "Pool prefix Lenghth" вводим 64 | + | |
- | * Ставим галочки "Rapid Commit" и "Add Default Route" dhcp-client 2.png | + | |
- | {{:isp:domru:mk-dhcp-client.jpg?600|}} | + | {{:isp:domru:ppp_profile1.png|}}{{:isp:domru:ppp_profile2.png|}} |
- | ===== 2. IPv6 Addresses ===== | + | Через CLI: |
- | Идем в пункт "IPv6" -> "Addresses"; жмём "+" (add). | + | <code>/ppp profile |
- | * "Address" вводим ::/64 | + | add change-tcp-mss=no name=ppp-domru only-one=yes use-compression=no use-encryption=no use-mpls=no use-upnp=no</code> |
- | * "From Pool" выбираем название заданное в п.3 ("Pool Name") | + | |
- | * "Interface" выбираем интерфейс(или бридж) смотрящий в локальную сеть. | + | |
- | * ставим галочку "Advertise" | + | |
- | ===== 3. Firewall ===== | + | Теперь сам профиль подключения. Тут вручную приподнимаем MTU(заголовок PPP всего 8 байт) и указываем использование профиля |
- | **Важно**: сначала измените в нижеприведённом тексте "dom.ru pppoe" на имя вашего интерфейса с PPPoE. | + | |
- | Затем жмём кнопку "New Terminal" и вводим туда следующее: | + | {{: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 | <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</code> |
- | 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="dom.ru pppoe" 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" | + | 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</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. Замечания ===== | ||
- | ===== 4. DNS ===== | + | Возможно еще необходимо подкрутить MTU для ipv6, но лично я проблем не испытывал.\\ |
- | После предыдущих шагов интернет по IPv6 должен уже работать но к сожалению, Дом.ru не раздает IPv6 DNS, все запросы идут к DNS-серверам по IPv4. | + | Для математики:\\ |
+ | IPv4\\ | ||
+ | L2=1500 байт\\ | ||
+ | PPPoE=8 байт\\ | ||
+ | Итого MTU = 1500-8=1492\\ | ||
+ | TCP=20 байт\\ | ||
+ | IP=20 байт\\ | ||
+ | TCP MSS=1492-20-20=1452\\ | ||
- | Поэтому в разделе "IP" -> "DNS" стоит добавить поля адресов и ввести IPv6-адреса серверов DNS. Здесь же можно добавить и статические записи DNS-имен. | + | IPv6\\ |
- | {{:isp:domru:mk-dns.jpg?600|}} | + | L2=1500\\ |
+ | PPPoE=8 байт\\ | ||
+ | Итого MTU = 1500-8=1492\\ | ||
+ | TCP=20 байт\\ | ||
+ | IP=40 байт\\ | ||
+ | TCP MSS=1492-40-20=1432\\ |
isp/domru/mikrotik-howto.1589318104.txt.gz · Последние изменения: 2020-05-12 21:15 UTC От rm