Привет! Я настраиваю новую домашнюю сеть с RB2011 в роли основного роутера. Это небольшая сеть, до 10 устройств (Linux-десктопы, Android-телефоны и т.п.). Провайдер — местный VDSL, RB2011 подключен к VDSL-модему через eth1, интернет работает через pppoe-client. Когда всё настроил, включил IPv6-пакет на RB2011 и добавил такую конфигурацию:
/interface pppoe-client
add add-default-route=yes disabled=no interface=ether1 max-mru=1480 max-mtu=1480 name=pppoe-vdsl password=adsl service-name=internet user=adsl
/ipv6 address
add address=::1 from-pool=IP6-pool interface=bridge
/ipv6 dhcp-client
add add-default-route=yes interface=pppoe-vdsl pool-name=IP6-pool request=prefix
/ipv6 nd
set [ find default=yes ] interface=bridge
Теперь главный роутер и все устройства в LAN имеют IPv6-адреса и могут подключаться к любым IPv6-серверам. Но есть одна большая проблема: некоторые сайты недоступны по IPv6 при использовании HTTPS. Например, — один из таких:
$ curl -v
* Rebuilt URL to:
* Trying 2a02:610:7501:1000::2...
* Connected to mikrotik.com (2a02:610:7501:1000::2) port 443 (#0)
* Operation timed out after 0 milliseconds with 0 out of 0 bytes received
* Closing connection 0
curl: (28) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
Если же заходить на этот сайт по IPv4 — никаких проблем:
$ curl -v
* Rebuilt URL to:
* Trying 159.148.147.196...
* Connected to mikrotik.com (159.148.147.196) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate: mikrotik.com
* Server certificate: DigiCert SHA2 Extended Validation Server CA
* Server certificate: DigiCert High Assurance EV Root CA
> GET / HTTP/1.1
> Host: mikrotik.com
> User-Agent: curl/7.43.0
> Accept: */*
>
< HTTP/1.1 200 OK
.....
У меня нет проблем с по IPv6 при обычном HTTP, да и пинг до mikrotik.com по IPv6 тоже проходит. Mikrotik.com — не единственный сайт, который не открывается по IPv6. Ещё один с такой же проблемой — .
Такая же ситуация на Macbook, подключённом к моей сети по Wi-Fi, и на Ubuntu-десктопе, подключённом напрямую к eth2 на RB2011. Даже Android-телефоны испытывают ту же проблему с — поэтому думаю, что проблема в основном роутере.
Что здесь происходит? Почему одни HTTPS-сайты по IPv6 работают, а другие — нет? Есть ли идеи, что не так с настройкой RouterOS или что можно изменить? Спасибо за любые идеи и комментарии. Уже несколько часов занимаюсь этим вопросом без успеха и прогресса.
Кстати, вот мои базовые IPv6 правила фаервола:
/ipv6 firewall address-list
add address=::/128 comment="defconf: unspecified address" list=bad_ipv6
add address=::1/128 comment="defconf: lo" list=bad_ipv6
add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6
add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6
add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6
add address=100::/64 comment="defconf: discard only " list=bad_ipv6
add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6
add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6
add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6
add address=::224.0.0.0/100 comment="defconf: other" list=bad_ipv6
add address=::127.0.0.0/104 comment="defconf: other" list=bad_ipv6
add address=::/104 comment="defconf: other" list=bad_ipv6
add address=::255.0.0.0/104 comment="defconf: other" list=bad_ipv6
/ipv6 firewall filter
add action=drop chain=input comment="defconf: rfc4890 drop ll if hop-limit!=255" dst-address=fe80::/10 hop-limit=not-equal:255 protocol=icmpv6
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid
add action=accept chain=input comment="defconf: accept ICMPv6" protocol=icmpv6
add action=accept chain=input comment="defconf: accept UDP traceroute" port=33434-33534 protocol=udp
add action=accept chain=input comment="defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=udp src-address=fe80::/16
add action=drop chain=input comment="defconf: drop everything else not coming from LAN" in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
add action=drop chain=forward comment="defconf: drop packets with bad src ipv6" src-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" hop-limit=equal:1 protocol=icmpv6
add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=icmpv6
add action=drop chain=forward comment="defconf: drop everything else not coming from LAN" in-interface-list=!LAN
/interface pppoe-client
add add-default-route=yes disabled=no interface=ether1 max-mru=1480 max-mtu=1480 name=pppoe-vdsl password=adsl service-name=internet user=adsl
/ipv6 address
add address=::1 from-pool=IP6-pool interface=bridge
/ipv6 dhcp-client
add add-default-route=yes interface=pppoe-vdsl pool-name=IP6-pool request=prefix
/ipv6 nd
set [ find default=yes ] interface=bridge
Теперь главный роутер и все устройства в LAN имеют IPv6-адреса и могут подключаться к любым IPv6-серверам. Но есть одна большая проблема: некоторые сайты недоступны по IPv6 при использовании HTTPS. Например, — один из таких:
$ curl -v
* Rebuilt URL to:
* Trying 2a02:610:7501:1000::2...
* Connected to mikrotik.com (2a02:610:7501:1000::2) port 443 (#0)
* Operation timed out after 0 milliseconds with 0 out of 0 bytes received
* Closing connection 0
curl: (28) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
Если же заходить на этот сайт по IPv4 — никаких проблем:
$ curl -v
* Rebuilt URL to:
* Trying 159.148.147.196...
* Connected to mikrotik.com (159.148.147.196) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate: mikrotik.com
* Server certificate: DigiCert SHA2 Extended Validation Server CA
* Server certificate: DigiCert High Assurance EV Root CA
> GET / HTTP/1.1
> Host: mikrotik.com
> User-Agent: curl/7.43.0
> Accept: */*
>
< HTTP/1.1 200 OK
.....
У меня нет проблем с по IPv6 при обычном HTTP, да и пинг до mikrotik.com по IPv6 тоже проходит. Mikrotik.com — не единственный сайт, который не открывается по IPv6. Ещё один с такой же проблемой — .
Такая же ситуация на Macbook, подключённом к моей сети по Wi-Fi, и на Ubuntu-десктопе, подключённом напрямую к eth2 на RB2011. Даже Android-телефоны испытывают ту же проблему с — поэтому думаю, что проблема в основном роутере.
Что здесь происходит? Почему одни HTTPS-сайты по IPv6 работают, а другие — нет? Есть ли идеи, что не так с настройкой RouterOS или что можно изменить? Спасибо за любые идеи и комментарии. Уже несколько часов занимаюсь этим вопросом без успеха и прогресса.
Кстати, вот мои базовые IPv6 правила фаервола:
/ipv6 firewall address-list
add address=::/128 comment="defconf: unspecified address" list=bad_ipv6
add address=::1/128 comment="defconf: lo" list=bad_ipv6
add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6
add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6
add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6
add address=100::/64 comment="defconf: discard only " list=bad_ipv6
add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6
add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6
add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6
add address=::224.0.0.0/100 comment="defconf: other" list=bad_ipv6
add address=::127.0.0.0/104 comment="defconf: other" list=bad_ipv6
add address=::/104 comment="defconf: other" list=bad_ipv6
add address=::255.0.0.0/104 comment="defconf: other" list=bad_ipv6
/ipv6 firewall filter
add action=drop chain=input comment="defconf: rfc4890 drop ll if hop-limit!=255" dst-address=fe80::/10 hop-limit=not-equal:255 protocol=icmpv6
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid
add action=accept chain=input comment="defconf: accept ICMPv6" protocol=icmpv6
add action=accept chain=input comment="defconf: accept UDP traceroute" port=33434-33534 protocol=udp
add action=accept chain=input comment="defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=udp src-address=fe80::/16
add action=drop chain=input comment="defconf: drop everything else not coming from LAN" in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
add action=drop chain=forward comment="defconf: drop packets with bad src ipv6" src-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" hop-limit=equal:1 protocol=icmpv6
add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=icmpv6
add action=drop chain=forward comment="defconf: drop everything else not coming from LAN" in-interface-list=!LAN
