Это — старая версия документа!


IPv6 от Дом.ru (ЭР-Телеком) на Mikrotik

Автор инструкции @Jamakasi

Перед началом

Нужно убедиться, что:

  1. пакет IPv6 установлен и включен (для RouterOS 6);
  2. поддержка IPv6 не отключена (для RouterOS 7);
  3. подключение(PPPoE) к Дом.ru поднято;
  4. в личном кабинете Дом.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=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


isp/domru/mikrotik-howto.1683481587.txt.gz · Последние изменения: 2023-05-07 17:46 UTC От rm
Personal Tools