Настройки IPv6 на Mikrotik (DHCP Client)

Все ниже перечисленное не является утверждением, а лишь моим личным опытом и мнением.

Лирика. (для тех, кто наступит на те же грабли, переходя со старой прошивки на новую)
Потратил несколько дней вникая в понятия IPv6 и попытки настроить свой Mikrotik RB951G для работы в среде IPv6. При тестировании понял, что на прошивке 5-ой версии DNSv6 у меня вообще не получает. Перешел на прошивку v6.10 (последняя на сегодня). При первом запуске все вроде заработало, но потом все пинги встали колом. IPv6 получаю, DNSv6 получаю, маршруты появляются в таблице, но трафик ни в какую не шел. Было принято решение сделать полный сброс.
После полного сброса и быстрой настройки для тестирования IPv6, все заработало.
Настроил интерфейсы, IPv4, IPv6, импортировал необходимые разделы настроек из старой прошивки. Кусками импорт прошел успешно (Firewall, IGMP, DHCPv4 Server) и связь прекрасно сохранилась.

Практика.
Мой провайдер мне выдает настройки по DHCP с привязкой по MAC адресу, с этой "колокольни" я и буду рассматривать все дальнейшие манипуляции.
В IPv4 используется привязка адреса к MAC-адресу сетевого интерфейса.
В IPv6 используется привязка адреса к DUID-адресу. DUID – это уникальный идентификатор устройства, он один на все порты.
Он состоит из двух частей, в моем случае первая часть состоит из блока цифр "00030001" (похоже, что этот же блок встречается на многих устройствах, независимо от производителя), а вторая из MAC адреса одного из портов.
При каждом сбросе Mikrotik до заводских настроек генерирует новый DUID.
В Mikrotik пока нет возможности изменить DUID. Но есть возможность изменить MAC адрес.
А так как провайдер выдает настройки только после авторизации клиента по MAC для выдачи IPv4 и DUID для выдачи IPv6, нам нужно узнать DUID своего Mikrotik, и посмотреть какой MAC в нем используется.
И поставить этот MAC адрес на порт, на котором висит провайдер (у меня он назван WAN1).

Запускаем WinBox, подключаемся к Mikrotik, поехали.
Проверяем наличие IPv6 в Меню, если есть, идем к пункту 1.
Если его нет, то идем на сайт Mikrotik, скачиваем All packages текущей прошивки вашего Mikrotik, распаковываем, берем пакет ipv6 и перетаскиваем в окно WinBox. Проверяем в Меню > System > Packages. Перезагружаем Mikrotik.




1. Меню > IPv6 > DHCP Client – Добавляем клиента.
Interface: WAN1 (порт куда подключен провайдер)
Pool Name: planeta (произвольное название, этот пул мы будем использовать в будущем)
Pool Prefix Length: 64 (префикс сети по умолчанию, так и оставляем)
Use Peer DNS: включаем (чтобы получить и записать DNSv6 сервера)
Add Default Route: включаем (автоматически добавит маршрут)
ОК.

Если DUID окончание совпадает с MAC адресом порта WAN1, то практически сразу увидим получение IPv6 пула адресов. Если так и случилось, переходим к пункту 3 - добавление адреса.
В противном случае будет висеть статус "Searching”.


2. Меняем MAC адрес WAN1 порта в соответствии с DUID.
Меню > New Terminal и выполняем:
/ipv6 dhcp-client print detail
Ищем в результате строку: duid="00030001000c1234abc1", где последние 12 символов "000c1234abc1" – и есть нужный нам MAC адрес (у вас он будет свой). Этот MAC адрес нужно установить на порт WAN1.
Но перед этим нужно посмотреть какому порту он принадлежит, и внести изменения, чтобы не было двух портов с одним MAC адресом.
В окне Terminal выполняем:
/interface ethernet print
получаем в ответ:
[admin@MikroTik] > /interface ethernet print 
Flags: X - disabled, R - running, S - slave 
 #    NAME         MTU MAC-ADDRESS           ARP          MASTER-PORT       SWITCH      
 0 RS LAN1        1500 00:0C:12:34:AB:C1     enabled    none              switch1     
 1 RS LAN2        1500 00:0C:12:34:AB:C2     enabled    LAN1              switch1     
 2 RS LAN3        1500 00:0C:12:34:AB:C3     enabled    LAN1              switch1     
 3 RS LAN4        1500 00:0C:12:34:AB:C4     enabled    LAN1              switch1     
 4 R  WAN1        1500 00:0C:12:34:AB:C5     enabled    none              switch1
Видим, что это порт LAN1, меняем ему MAC адрес, например, на "00:0C:12:34:AB:C0"
В окне Terminal выполняем:
/interface ethernet set LAN1 mac-address=00:0C:12:34:AB:C0
Теперь можно присвоить нужный нам MAC (00:0C:12:34:AB:C1) порту WAN1
В окне Terminal выполняем:
/interface ethernet set WAN1 mac-address=00:0C:12:34:AB:C1
Теперь MAC порта WAN1 соответствует DUID.
Идем в Меню > IPv6 > DHCP Client и смотрим статус. После регистрации нового MAC адреса (подключение нового компьютера) у провайдера, на получение IPv6 адреса может уйти какое-то время, у моего провайдера уходит до 20 минут. (IPv4 при этом получает практически сразу)

3. Теперь нужно добавит IPv6 адрес роутеру и объявить IPv6 зону в локальную сеть.
Меню > IPv6 > Addresses – добавляем новый адрес
Address: ::/64 (можно назначить адрес из пула выделенного нам провайдером, в данном примере мы оставляем поле как есть.)
From Pool: planeta (выбираем пул из списка, он появится в списке после получения настроек от провайдера в IPv6 - DHCP Client)
Interface: LAN1 (выбираем интерфейс-порт локальной сети, я привел пример LAN1, у вас это может быть bridge1)
EUI64: выключен (будет присвоен первый адрес из пула, если включим - адрес будет сгенерирован на основе MAC и доп. алгоритмов)
Advertise: включаем (объявить подсеть, чтобы компьютеры локальной сети (Interface: LAN1) могли автоматически получить IPv6 адреса из пула)
ОК.


После этого трафик должен успешно бегать по IPv6 как из терминала, так и из локальной сети.
Из терминала можно проверить с помощью команды:
/ping [resolve ipv6.google.com]
/ping [resolve ipv6.yandex.ru]
С компьютера из локальной сети можно протестировать
http://test-ipv6.com/ - тестирование работоспособности IPv6
https://mebsd.com/ipv6-ping-and-traceroute - проверить входящий ping на свои адреса

4. Защита локальной сети с белыми IPv6 адресами от нежелательного входящего трафика.
Тут все на ваше усмотрение, мне легче контролировать входящий трафик на роутере, чем на каждом компьютере в локальной сети.
В окне Terminal пишем:
/ipv6 firewall filter
add chain=forward comment="Web, Torrent" dst-address=2a02:17d0:1234:abcd::1/128 dst-port=80,62562 protocol=tcp
add chain=forward comment="Incoming ICMP - Ping" protocol=icmpv6
add chain=forward comment="DHCPv6 Client" dst-port=546 in-interface=WAN1 protocol=udp
add chain=forward comment="Current traffic" connection-state=established
add chain=forward connection-state=related
add action=drop chain=forward comment="Block any other traffic" in-interface=WAN1
где 2a02:17d0:1234:abcd::1/128 – IPv6 адрес вашего компьютера в локальной сети.
Открываем Меню > IPv6 > Firewall > Вкладка Filter Rules и проверяем наши добавленные правила.



Проблемы и их решения:
1. DNS сервера сбрасываются на роутере.
После успешного получения всех настроек по IPv6 на прошивке 6.10 заметил одну особенность. К сожалению, Mikrotik не в состоянии разделять понятия DNS IP4 и IP6, для него это одно и то же, а также - кто последний тот и "папа".
Делаем сброс (Release, Renew) на интерфейсе IPv4 (DHCPv4 Client) – теряем все прошлые записи DNS и получаем новые IPv4 серверов.
Делаем сброс (Release, Renew) на интерфейсе IPv6 (DHCPv6 Client) – теряем все прошлые записи DNS и получаем новые IPv6 серверов.
Решение: Получаем по очереди все записи, и прописываем их вручную в IP - DNS, сначала IPv4, потом IPv6. После этого, я думаю, можно отключить автоматическое получение настроек DNS серверов для IPv6 интерфейса (IPv6 - DHCP Client - снять галочку "Use Peer DNS").
Исправлено в прошивке 6.15
Теперь DNS адреса IPv4 и IPv6 по DHCP получает раздельно, не затирая настройки друг друга.

2. Связь по IPv6 пропадает после изменения некоторых настроек.
Тоже очень странная и не понятная мне особенность.
Все настроили – все работает. Компьютеры в сети получили IPv6 адреса, трафик у них забегал, Ping-и идут. Берем и делаем в Mikrotik сброс DHCP Client (Release, Renew) на любом интерфейсе (IPv4 или IPv6). Mikrotik получает те же настройки что и были ранее, те же маршруты. Трафик на нем начинает бегать, все как и должно быть. А вот на клиентах в сети, трафик по IPv6 встает. Ping не идет даже до IPv6 Mikrotik. При этом IPv4 весь трафик прекрасно ходит.
Решение: После всех настроек, сбросов и т.п. идем в меню IPv6 – Addresses – выключаем и включаем основной адрес полученный от провайдера (пул которого объявлен в локальную сеть). На клиентах в локальной сети трафик тут же начинает бегать.
Благо при перезагрузке Mikrotik такой проблемы нет. Самопроизвольно эта проблема у меня пока не проявлялась.
Исправлено в прошивке 6.15 
Теперь после смены настроек адресов на интерфейсе связь сохраняется.


3. DHCPv6 Server не раздает IPv6 адреса Windows клиентам локальной сети.
Каких попыток только не предпринимал, сколько не google-ил, сколько не читал wiki и статей, так и не смог его настроить. Windows не получал IPv6 настроек от роутера.
Решение: Не использовать IPv6 - DHCP Server. В меню IPv6 – Addresses – в настройках адреса (префикса) провайдера, ставим галочку "Advertise" (Объявить) и выбираем интерфейс локальной сети. После этого в локальной сети Windows клиенты получат белые IPv6 адреса и маршрут.
К сожалению, организовать привязку в локальной сети IPv6 – Компьютер (MAC, DUID) в этом случае не представляется возможным. Все компьютера будут автоматически получать IPv6 сгенерированный на основе префикса и MAC адреса.
Остается возможность использовать ручную настройку IPv6 у клиента локальной сети. В этом случае можно использовать любой адрес из пула.

4. Mikrotik не раздает полноценно клиентам локальной сети DNS сервера IPv6.
Клиенты локальной сети получают все реквизиты для работы в среде IPv6 кроме DNSv6. Для разрешения имен используется как правило локальный адрес маршрутизатора DNSv4.
Решение: Смириться с DNS сервером IPv4 или прописать ручками на стороне клиента DNSv6 адрес роутера или провайдера.

Комментарии

cyuru написал(а)…
супер
Max написал(а)…
Отличное объяснение!
Спасибо!!!