Вы находитесь здесь: version6.ru » Провайдеры с IPv6 » IPv6 от провайдера Дом.ru » IPv6 от Дом.ru (ЭР-Телеком) на Mikrotik
Это — старая версия документа!
IPv6 от Дом.ru (ЭР-Телеком) на Mikrotik
Спасибо за помощь в подготовке инструкции @Jamakasi
Перед началом
Нужно убедиться, что:
- пакет IPv6 установлен и включен (для RouterOS 6);
- поддержка IPv6 не отключена (для RouterOS 7);
- подключение(PPPoE) к Дом.ru поднято;
- в личном кабинете Дом.ru, в разделе «Сервиcные настройки» включен «Протокол IPv6».
1. Тюнинг PPPoE подключения
Ключевое, руками выключить ненужное чтобы избегать лишнего времени при подключении и принудительно включить «Use ipv6».
Внимание!, практика показывает что лучше выключить правило «Change TCP MSS» и прописать его самостоятельно!
Через CLI:
/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
Теперь сам профиль подключения. Тут вручную приподнимаем MTU(заголовок PPP всего 8 байт) и указываем использование профиля
Через CLI:
/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
Как итог соединение будет подниматься чуть быстрее, и MTU чуть больше. В статусе обязательно должны появиться link-local адреса ipv6
Последнее, надо руками создать правило для MSS.
В IP→Firewall→Mangle добавить новое правило:
На всякий случай добавить аналогичное но для OUTPUT.
Через CLI:
/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
2. Firewall
Да, именно фаирволл так как в предыдущей инструкции были допущены ошибки, в том числе фатальные. Кроме того это позволит дебажить подключение, в том числе абонентам РосТелекома.
Список правил с нумерацией, далее буду ссылаться на номера:
В лист WAN интерфейса входит «dom.ru-PPPoE»
0 - правило для !просмотра! что dhcp-client шлет запросы в сторону провайдера
5 - правило разрешающее отвечать dhcp-server'у провайдера нашему dhcp-clien'у
Из важного, icmp надо обязательно разрешать, !»это очень важная часть протокола IPv6»!. Также очень важно, не избегайте «drop» правил и применяйте «reject», это также важно в IPv6.
Остальные правила дежурные.
Добавить правила через CLI:
/ipv6 firewall filter add action=passthrough chain=output comment="accept dhcpv6 answer 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=accept chain=forward comment="www server" disabled=yes dst-address=2a03:1ac0:6dc3:1516:dea6:32ff:fe6c:6fe6/128 dst-port=80,443 protocol=tcp add action=accept chain=forward comment="transmission peering" disabled=yes dst-address=2a06:a003:501b:10::103/128 dst-port=51413 protocol=udp add action=accept chain=forward comment="transmission peering" disabled=yes dst-address=2a06:a003:501b:10:42:c0ff:fea8:5867/128 dst-port=51413 protocol=udp add action=reject chain=forward comment="Reject everything else" reject-with=icmp-port-unreachable
Как в случае с фаирволом IPv4 создаем тут правила для MSS:
/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
3. DHCPv6 Client
Добавляем клиента, запрашиваем префикс, снимаем галочку «Add default route», длина префикса 64.
Дефолтный роут на самом деле уже был установлен еще на этапе PPPoE подключения, там есть такая же галочка и она добавляет дефолт для IPv4 и IPv6.
Для РоссТелекома (по словам свидетелй в чате) все тоже самое но длинна префикса будет 56, кроме того нужно поставить галочку запроса address помимо префикса.
Проверить уходят ли запросы и приходят ли ответы можно в фаирволе счетчиком пакетов у правил 0 и 5.
4. Раздача адресов по SLAAC
4.1. IPv6 Addresses роутера
- Элемент списка«Address» вводим ::/64;
- «From Pool» выбираем название заданное в п.1 («Pool Name»);
- «Interface» выбираем интерфейс(или бридж) смотрящий в локальную сеть;
- ставим галочку «Advertise» (это нужно для SLAAC)
- ставим галочку «EUI64» (чтобы взять адрес из MAC, тоже лучше так для SLAAC)
Для РосТелекома надо взять 64 префикс из 56.
Для справки 56 префикс это 256 префиксов длинной 64.
4.2. IPv6 Address роутера
Микротик по умолчанию использует очень большие значения таймаутов, передаваемых клиентам через Route Advertisements. По умолчанию, в локальную сеть будут рассылаться анонсы подсети с Valid lifetime в 30 дней и Preferred lifetime 7 дней. Это очень долго, и абсолютно недопустимо долго, в случае, если провайдер предоставляет динамические подсети IPv6. Для такого случая рекомендуем выставить значения 1 час и 5 минут соответственно.
4.3. ND . Непосредственно SLAAC
- Выбрать Interface куда будем вещать
- RA Interval уменьшаем если префикс динамический, для статики можно оставить по умолчанию
- DNS Servers тут добавим IP адрес DNS сервера. Фишка появилась после совсем недавно (есть баг, нельзя добавить более одного адреса! )
- Advertise DNS разрешаем анонсить DNS прописанный выше
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» выбираем интерфейс(или бридж) смотрящий в локальную сеть;
Теперь на всех устройствах внутри этого бриджа\интерфейса вручную прописываем статикой адреса из сети 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