Привет всем, я только что купил RouterBOARD 751G-2HnD, который планирую использовать в качестве домашнего шлюза. Работает на RouterOS 6.0beta2 (ранее пробовал 5.19 — не решило ни одной из моих проблем). Настройка не сложная: интерфейс ether1-gateway (WAN) подключен к кабельному модему, предоставленному моим интернет-провайдером, а устройства в локальной сети подключаются к default bridge-local, который состоит из других проводных интерфейсов и беспроводного. Для IPv4 все заработало сразу. Для IPv6, однако, я до сих пор не смог заставить это работать корректно из-за ряда проблем:
Проблема 1: RouterOS не обрабатывает ICMPv6-объявления моего интернет-провайдера (также не отправляет Router Solicitations при подключении WAN-интерфейса). В результате не изучается маршрут по умолчанию, а значит, оно не подключено к интернету в каком-либо полезном виде. Настройки в /ipv6 nd кажутся мне относящимися только к передаче Router Advertisements (что оно, очевидно, должно делать на интерфейсе LAN), но я не смог понять, где настроить получение Router Advertisements на интерфейсе WAN. В качестве обходного пути можно жестко закодировать статический маршрут до link-local адреса CMTS моего интернет-провайдера, но я бы лучше избежал этого, если возможно.
Проблема 2: DHCPv6-клиент RouterOS не запрашивает lease типа IA_NA (одиночный адрес) для своего порта WAN. Поскольку мой интернет-провайдер использует только DHCPv6 для назначения адресов (Managed-flag установлен в 1 в их Router Advertisements и нет A-flag/SLAAC), это означает, что порт WAN получает свой собственный глобальный IPv6-адрес. Это не большая проблема для пересылки трафика в и из локальной сети, но в идеале ему следовало бы иметь свой собственный IPv6-адрес на интерфейсе WAN, который он должен был использовать для своей собственной IPv6-коммуникации с интернетом.
Проблема 3: DHCPv6-клиент не запрашивает опцию DNS Recursive Name Server (RFC 3646) у DHCPv6-сервера. Поскольку это единственный способ, которым мой интернет-провайдер рекламирует своим клиентам свои IPv6-DNS-серверы, это означает, что RouterOS вообще их не изучает. /ip dns print показывает только их IPv4-DNS-серверы. Я мог бы жестко закодировать их, но опять же, я бы предпочёл заставить это работать корректно, если возможно.
Проблема 4: Назначение IPv6-адреса интерфейсу локальной сети не получает часть сети адреса из пула префиксов, полученного от моего интернет-провайдера с помощью DHCPv6 Prefix Delegation (IA_PD). На объяснен синтаксис, но он просто не работает. Ниже приведены все команды, которые я вводил с момента сброса RouterOS к конфигурации по умолчанию, и, как видите, приобретение префикса с помощью DHCPv6-PD работает достаточно хорошо, и выделенный pd-from-isp пул инициализируется, но определение IPv6-адреса на интерфейсе bridge-local, кажется, просто игнорирует опцию from-pool:
[admin@MikroTik] > /ipv6 dhcp-client add interface=ether1-gateway pool-name=pd-from-isp pool-prefix-length=64
[admin@MikroTik] > /ipv6 dhcp-client print detail
Flags: D - dynamic, X - disabled, I - invalid
0 interface=ether1-gateway pool-name="pd-from-isp" pool-prefix-length=64 status=bound prefix=2a02:fe0:cf16:d0::/60 expires-after=1w6d23h59m45s
duid="00030001d4ca6d4c47c3"
[admin@MikroTik] > /ipv6 pool print detail
Flags: D - dynamic
0 D name="pd-from-isp" prefix=2a02:fe0:cf16:d0::/60 prefix-length=64 expire-time=1w6d23h59m13s
[admin@MikroTik] > /ipv6 address add interface=bridge-local from-pool=pd-from-isp address=::1/64 advertise=yes
[admin@MikroTik] > /ipv6 address print detail where interface=bridge-local
Flags: X - disabled, I - invalid, D - dynamic, G - global, L - link-local
4 DL address=fe80::d6ca:6dff:fe4c:47bf/64 interface=bridge-local actual-interface=bridge-local eui-64=no advertise=no
7 G address=::1/64 interface=bridge-local actual-interface=bridge-local eui-64=no advertise=yes
На моем Linux-хосте, подключенном к Wi-Fi, можно увидеть результат - RouterOS рекламирует этот фиктивный префикс ::/64 в локальной сети с установленным A-flag (вызывая SLAAC/autoconf), что приводит к добавлению совершенно фиктивных IPv6-адресов на хосте:
linux-laptop$ ip -6 address list scope global dev wlan0
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 ::25e7:acdd:a7cf:493b/64 scope global temporary dynamic
valid_lft 604569sec preferred_lft 85569sec
inet6 ::21c:bfff:fe02:f2a5/64 scope global dynamic
valid_lft 2591856sec preferred_lft 604656sec
Я новичок в RouterOS, поэтому вполне возможно, что я что-то упустил. У кого-нибудь есть предложения, как решить вышеуказанные проблемы?
Тор
Проблема 1: RouterOS не обрабатывает ICMPv6-объявления моего интернет-провайдера (также не отправляет Router Solicitations при подключении WAN-интерфейса). В результате не изучается маршрут по умолчанию, а значит, оно не подключено к интернету в каком-либо полезном виде. Настройки в /ipv6 nd кажутся мне относящимися только к передаче Router Advertisements (что оно, очевидно, должно делать на интерфейсе LAN), но я не смог понять, где настроить получение Router Advertisements на интерфейсе WAN. В качестве обходного пути можно жестко закодировать статический маршрут до link-local адреса CMTS моего интернет-провайдера, но я бы лучше избежал этого, если возможно.
Проблема 2: DHCPv6-клиент RouterOS не запрашивает lease типа IA_NA (одиночный адрес) для своего порта WAN. Поскольку мой интернет-провайдер использует только DHCPv6 для назначения адресов (Managed-flag установлен в 1 в их Router Advertisements и нет A-flag/SLAAC), это означает, что порт WAN получает свой собственный глобальный IPv6-адрес. Это не большая проблема для пересылки трафика в и из локальной сети, но в идеале ему следовало бы иметь свой собственный IPv6-адрес на интерфейсе WAN, который он должен был использовать для своей собственной IPv6-коммуникации с интернетом.
Проблема 3: DHCPv6-клиент не запрашивает опцию DNS Recursive Name Server (RFC 3646) у DHCPv6-сервера. Поскольку это единственный способ, которым мой интернет-провайдер рекламирует своим клиентам свои IPv6-DNS-серверы, это означает, что RouterOS вообще их не изучает. /ip dns print показывает только их IPv4-DNS-серверы. Я мог бы жестко закодировать их, но опять же, я бы предпочёл заставить это работать корректно, если возможно.
Проблема 4: Назначение IPv6-адреса интерфейсу локальной сети не получает часть сети адреса из пула префиксов, полученного от моего интернет-провайдера с помощью DHCPv6 Prefix Delegation (IA_PD). На объяснен синтаксис, но он просто не работает. Ниже приведены все команды, которые я вводил с момента сброса RouterOS к конфигурации по умолчанию, и, как видите, приобретение префикса с помощью DHCPv6-PD работает достаточно хорошо, и выделенный pd-from-isp пул инициализируется, но определение IPv6-адреса на интерфейсе bridge-local, кажется, просто игнорирует опцию from-pool:
[admin@MikroTik] > /ipv6 dhcp-client add interface=ether1-gateway pool-name=pd-from-isp pool-prefix-length=64
[admin@MikroTik] > /ipv6 dhcp-client print detail
Flags: D - dynamic, X - disabled, I - invalid
0 interface=ether1-gateway pool-name="pd-from-isp" pool-prefix-length=64 status=bound prefix=2a02:fe0:cf16:d0::/60 expires-after=1w6d23h59m45s
duid="00030001d4ca6d4c47c3"
[admin@MikroTik] > /ipv6 pool print detail
Flags: D - dynamic
0 D name="pd-from-isp" prefix=2a02:fe0:cf16:d0::/60 prefix-length=64 expire-time=1w6d23h59m13s
[admin@MikroTik] > /ipv6 address add interface=bridge-local from-pool=pd-from-isp address=::1/64 advertise=yes
[admin@MikroTik] > /ipv6 address print detail where interface=bridge-local
Flags: X - disabled, I - invalid, D - dynamic, G - global, L - link-local
4 DL address=fe80::d6ca:6dff:fe4c:47bf/64 interface=bridge-local actual-interface=bridge-local eui-64=no advertise=no
7 G address=::1/64 interface=bridge-local actual-interface=bridge-local eui-64=no advertise=yes
На моем Linux-хосте, подключенном к Wi-Fi, можно увидеть результат - RouterOS рекламирует этот фиктивный префикс ::/64 в локальной сети с установленным A-flag (вызывая SLAAC/autoconf), что приводит к добавлению совершенно фиктивных IPv6-адресов на хосте:
linux-laptop$ ip -6 address list scope global dev wlan0
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 ::25e7:acdd:a7cf:493b/64 scope global temporary dynamic
valid_lft 604569sec preferred_lft 85569sec
inet6 ::21c:bfff:fe02:f2a5/64 scope global dynamic
valid_lft 2591856sec preferred_lft 604656sec
Я новичок в RouterOS, поэтому вполне возможно, что я что-то упустил. У кого-нибудь есть предложения, как решить вышеуказанные проблемы?
Тор
