Настройки 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 адрес роутера или провайдера.
Лирика. (для тех, кто наступит на те же грабли, переходя со старой прошивки на новую)
Потратил несколько дней вникая в понятия 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”.
Меню > 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 и проверяем наши добавленные правила.
Проблемы и их решения:
Исправлено в прошивке 6.15
Теперь DNS адреса IPv4 и IPv6 по DHCP получает раздельно, не затирая настройки друг друга.
2.
Исправлено в прошивке 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 адрес роутера или провайдера.
Комментарии
Спасибо!!!