@bitflow This is what I have got with Google fiber ISP (connected on WAN1 - sfp-sfpplus1, nothing’s connected on WAN2-Failover) - hope this helps you. The setup is on CCR-2004-1G-12S+2XS setup to work as gateway router with services : hotspot, CAPsMANv1, CAPsMANv2, VLANs, etc.
It’s working correctly as desired so far.
IPv6 SETTINGS:
/ipv6/settings/print
disable-ipv6: no
forward: yes
multipath-hash-policy: l3
accept-redirects: yes-if-forwarding-disabled
accept-router-advertisements: yes
accept-router-advertisements-on: all
disable-link-local-address: no
stale-neighbor-detect-interval: 30
stale-neighbor-timeout: 60
min-neighbor-entries: 4096
soft-max-neighbor-entries: 8192
max-neighbor-entries: 16384
allow-fast-path: yes
ipv6-fast-path-active: no
ipv6-fast-path-packets: 0
ipv6-fast-path-bytes: 0
ipv6-fasttrack-active: yes
ipv6-fasttrack-packets: 731772
ipv6-fasttrack-bytes: 972189037
IPv6 ADDRESSES:
/ipv6/address/print
Flags: X - DISABLED, I - INVALID; D - DYNAMIC; G - GLOBAL, L - LINK-LOCAL
Columns: ADDRESS, FROM-POOL, INTERFACE, VRF, ADVERTISE, VALID, PREFERRED
# ADDRESS FROM-POOL INTERFACE VRF ADVERTISE VALID PREFERRED
;;; PvtLAN IPv6 Address (WAN1)
0 G XXXX:XXXX:XXXX:XXXX::4/64 ipv6_wan1_pool vlan4-pvtlan main yes 23h25m12s 17h25m12s
;;; MGMT IPv6 Address (WAN1)
1 G XXXX:XXXX:XXXX:XXXX::99/64 ipv6_wan1_pool ether1 main yes 23h25m12s 17h25m12s
;;; address pool error: pool not found: ipv6_wan2_pool (4)
;;; PvtLAN IPv6 Address (WAN2)
2 I G ::204/64 ipv6_wan2_pool vlan4-pvtlan main yes
;;; address pool error: pool not found: ipv6_wan2_pool (4)
;;; MGMT IPv6 Address (WAN2)
3 I G ::299/64 ipv6_wan2_pool ether1 main yes
;;; address pool error: pool not found: ipv6_wan2_pool (4)
;;; IoTLAN IPv6 Address (WAN2)
4 I G ::212/64 ipv6_wan2_pool vlan16-iotlan main yes
;;; IoTLAN IPv6 Address (WAN1)
5 G XXXX:XXXX:XXXX:XXXX::12/64 ipv6_wan1_pool vlan16-iotlan main yes 23h25m12s 17h25m12s
;;; PvtLAN ULA
6 G fd04::1/128 ula-pool1-pvt vlan4-pvtlan main no
;;; GuestLAN ULA
7 X G ::1/128 ula-pool2-guest vlan8-guestlan main no
;;; VPNLAN ULA
8 G fd12::1/128 ula-pool3-vpn vlan12-vpnlan main no
;;; IoTLAN ULA
9 G fd16::1/128 ula-pool4-iot vlan16-iotlan main no
;;; MGMT ULA
10 G fd99::1/128 ula-pool5-mgmt ether1 main no
11 DL fe80::f91d:e50b:ff9d:3cbc/64 wg1-protonvpn main no
12 DL fe80::73ae:8a22:b34d:ecf0/64 wg2-protonvpn main no
13 DL fe80::b266:4f52:846f:fe80/64 wg3-protonvpn main no
14 D ::1/128 lo main no
15 DL fe80::f61e:57ff:fe34:f3ee/64 vlan4-pvtlan main no
16 DL fe80::f61e:57ff:fe34:f3ee/64 bridge1 main no
17 DL fe80::f61e:57ff:fe34:f3ee/64 vlan12-vpnlan main no
18 DL fe80::f61e:57ff:fe34:f3ee/64 vlan8-guestlan main no
19 DL fe80::f61e:57ff:fe34:f3ee/64 vlan16-iotlan main no
20 DL fe80::f61e:57ff:fe34:f3ef/64 sfp-sfpplus1 main no
21 DG XXXX:XXXX:XXXX:XXXX::1/128 sfp-sfpplus1 main no
IPv6 ND:
/ipv6/nd/print
Flags: X - disabled, I - invalid; * - default
0 X* interface=all ra-interval=3m20s-10m ra-delay=3s mtu=unspecified reachable-time=30m retransmit-interval=unspecified ra-lifetime=30m
ra-preference=medium hop-limit=unspecified advertise-mac-address=yes advertise-dns=yes managed-address-configuration=yes
other-configuration=no
1 interface=ether1 ra-interval=3m20s-10m ra-delay=3s mtu=unspecified reachable-time=30m retransmit-interval=unspecified ra-lifetime=30m
ra-preference=medium hop-limit=64 advertise-mac-address=yes advertise-dns=yes managed-address-configuration=yes
other-configuration=yes dns=fd99::1
2 interface=vlan4-pvtlan ra-interval=3m20s-10m ra-delay=3s mtu=unspecified reachable-time=30m retransmit-interval=unspecified
ra-lifetime=30m ra-preference=medium hop-limit=64 advertise-mac-address=yes advertise-dns=yes managed-address-configuration=yes
other-configuration=yes dns=fd04::1
3 X interface=vlan8-guestlan ra-interval=3m20s-10m ra-delay=3s mtu=unspecified reachable-time=30m retransmit-interval=unspecified
ra-lifetime=30m ra-preference=medium hop-limit=64 advertise-mac-address=yes advertise-dns=no managed-address-configuration=yes
other-configuration=yes dns=fd08::1
4 interface=vlan16-iotlan ra-interval=3m20s-10m ra-delay=3s mtu=unspecified reachable-time=30m retransmit-interval=unspecified
ra-lifetime=30m ra-preference=medium hop-limit=64 advertise-mac-address=yes advertise-dns=yes managed-address-configuration=yes
other-configuration=yes dns=fd16::1
5 interface=vlan12-vpnlan ra-interval=3m20s-10m ra-delay=3s mtu=unspecified reachable-time=30m retransmit-interval=unspecified
ra-lifetime=30m ra-preference=medium hop-limit=64 advertise-mac-address=yes advertise-dns=yes managed-address-configuration=yes
other-configuration=yes dns=fd12::1
See also attached screenshot of Winbox for PvtLAN ND setup for your reference.
IPv6 POOL:
/ipv6/pool/print
Flags: D - DYNAMIC
Columns: NAME, PREFIX, PREFIX-LENGTH, VALID-LIFETIME
# NAME PREFIX PREFIX-LENGTH VALID-LIFETIME
0 ula-pool1-pvt fd04::/64 128
1 ula-pool2-guest fd08::/64 128
2 ula-pool3-vpn fd12::/64 128
3 ula-pool4-iot fd16::/64 128
4 ula-pool5-mgmt fd99::/64 128
5 D ipv6_wan1_pool XXXX:XXXX:XXXX:XXXX::/56 64 23h47m35s
IPv6 DHCP-SERVER:
/ipv6/dhcp-server/print
Flags: X - DISABLED, I - INVALID
Columns: NAME, INTERFACE, ADDRESS-POOL, PREFIX-POOL, PREFERENCE, LEASE-TIME
# NAME INTERFACE ADDRESS-POOL PREFIX-POOL PREFERENCE LEASE-TIME
;;; PvtLAN IPv6 Server
0 ula-server1-pvt vlan4-pvtlan ula-pool1-pvt none 255 1d
;;; VPNLAN IPv6 Server
1 ula-server3-vpn vlan12-vpnlan ula-pool3-vpn none 255 1d
;;; GuestLAN IPv6 Server
2 X ula-server2-guest vlan8-guestlan ula-pool2-guest noney 255 1d
;;; IoTLAN IPv6 Server
3 ula-server4-iot vlan16-iotlan ula-pool4-iot none 255 1d
;;; MGMT IPv6 Server
4 I ula-server5-mgmt ether1 ula-pool5-mgmt none 255 1d
/ipv6/dhcp-server/option/print
Columns: NAME, CODE, VALUE
# NAME CODE VALUE
;;; PvtLAN Option 23
0 ula-dns-opt23-1-pvt 23 0xfd040000000000000000000000000001
;;; GuestLAN Option 23
1 ula-dns-opt23-2-guest 23 0xfd080000000000000000000000000001
;;; VPNLAN Option 23
2 ula-dns-opt23-3-VPN 23 0xfd120000000000000000000000000001
;;; Option 24 Domain List] [PvtLAN]
3 ula-domain-opt24-1-pvt 24 0x06'pvtlan'0x03'lan'0x0006'pvtlan'0x03'net'0x0006'pvtlan'0x05'local'0x00
;;; IoTLAN Option 23
4 ula-dns-opt23-4-iot 23 0xfd160000000000000000000000000001
;;; MGMT Option 23
5 ula-dns-opt23-5-mgmt 23 0xfd990000000000000000000000000001
;;; Option 24 Domain List] [GuestLAN]
6 ula-domain-opt24-2-guest 24 0x09'guestwifi'0x03'lan'0x0009'guestwifi'0x03'net'0x0009'guestwifi'0x05'local'0x00
;;; Option 24 Domain List] [VPNLAN]
7 ula-domain-opt24-3-vpn 24 0x06'vpnlan'0x03'lan'0x0006'vpnlan'0x03'net'0x0006'vpnlan'0x05'local'0x00
;;; Option 24 Domain List] [IoTLAN]
8 ula-domain-opt24-4-iot 24 0x06'iotlan'0x03'lan'0x0006'iotlan'0x03'net'0x0006'iotlan'0x05'local'0x00
;;; Option 24 Domain List] [MGMT]
9 ula-domain-opt24-5-mgmt 24 0x04'mgmt'0x03'lan'0x0004'mgmt'0x03'net'0x0004'mgmt'0x05'local'0x00
/ipv6/dhcp-server/option/sets/print
Columns: NAME, OPTIONS
# NAME OPTIONS
0 option-set-1-pvt ula-domain-opt24-1-pvt
1 option-set-2-guest ula-domain-opt24-2-guest
2 option-set-3-vpn ula-domain-opt24-3-vpn
3 option-set-4-iot ula-domain-opt24-4-iot
4 option-set-5-mgmt ula-domain-opt24-5-mgmt
IPv6 DHCP-CLIENT:
/ipv6/dhcp-client/print
Flags: I - INVALID
Columns: INTERFACE, STATUS, REQUEST, PREFIX, ADDRESS
# INTERFACE STATUS REQUEST PREFIX ADDRESS
;;; WAN1 [MAIN]
0 sfp-sfpplus1 bound address XXXX:XXXX:XXXX:XXXX::/56, 23h45m40s XXXX:XXXX:XXXX:XXXX::1, 23h45m40s
prefix
;;; WAN2 [FAIL-OVER]
1 I sfp-sfpplus2 stopped address
prefix
DNS SETTINGS:
/ip dns print
servers:
dynamic-servers:
use-doh-server: https://dns.nextdns.io/xxxxxx/Z-CCR2004-GWRouter
verify-doh-cert: yes
doh-max-server-connections: 50
doh-max-concurrent-queries: 500
doh-timeout: 10s
allow-remote-requests: yes
max-udp-packet-size: 4096
query-server-timeout: 5s
query-total-timeout: 10s
max-concurrent-queries: 1000
max-concurrent-tcp-sessions: 500
cache-size: 102400KiB
cache-max-ttl: 3d
address-list-extra-time: 0s
vrf: main
mdns-repeat-ifaces: vlan4-pvtlan
vlan12-vpnlan
ether1
cache-used: 39402KiB
/ip dns static print
Flags: D - DYNAMIC
Columns: NAME, REGEXP, TYPE, ADDRESS, TTL
# NAME REGEXP TYPE ADDRESS TTL
0 dns.nextdns.io AAAA 2a07:a8c0:: 1d
1 dns.nextdns.io AAAA 2a07:a8c1:: 1d
2 dns.nextdns.io A 45.90.28.0 1d
3 dns.nextdns.io A 45.90.30.0 1d
4 PvtLAN.lan A 192.168.4.1 1d
5 PvtLAN.net A 192.168.4.1 1d
6 PvtLAN.local A 192.168.4.1 1d
7 PvtLAN.lan AAAA fd04::1 1d
8 PvtLAN.net AAAA fd04::1 1d
9 PvtLAN.local AAAA fd04::1 1d
10 GuestWiFi.lan A 192.168.8.1 1d
11 GuestWiFi.local A 192.168.8.1 1d
12 GuestWiFi.lan AAAA fd08::1 1d
13 GuestWiFi.local AAAA fd08::1 1d
14 VPNLAN.lan A 192.168.12.1 1d
15 VPNLAN.net A 192.168.12.1 1d
16 VPNLAN.local A 192.168.12.1 1d
17 VPNLAN.lan AAAA fd12::1 1d
18 VPNLAN.net AAAA fd12::1 1d
19 VPNLAN.local AAAA fd12::1 1d
20 IoTLAN.net A 192.168.16.1 1d
21 IoTLAN.lan A 192.168.16.1 1d
22 IoTLAN.local A 192.168.16.1 1d
23 IoTLAN.net AAAA fd16::1 1d
24 IoTLAN.lan AAAA fd16::1 1d
25 IoTLAN.local AAAA fd16::1 1d
26 MGMT.net A 192.168.99.1 1d
27 MGMT.lan A 192.168.99.1 1d
28 MGMT.local A 192.168.99.1 1d
29 MGMT.net AAAA fd99::1 1d
30 MGMT.lan AAAA fd99::1 1d
31 MGMT.local AAAA fd99::1 1d
.....
.....
;;; PvtLAN (iPv4)
92 .*\\.pvtlan\\.(lan|net|local) A 192.168.4.1 1d
;;; PvtLAN (iPv6)
93 .*\\.pvtlan\\.(lan|net|local) AAAA fd04::1 1d
;;; GuestLAN (iPv4)
94 .*\\.guestwifi\\.(lan|local) A 192.168.8.1 1d
;;; GuestLAN (iPv6)
95 .*\\.guestwifi\\.(lan|local) AAAA fd08::1 1d
;;; VPN-LAN (iPv4)
96 .*\\.vpnlan\\.(lan|net|local) A 192.168.12.1 1d
;;; VPN-LAN (iPv6)
97 .*\\.vpnlan\\.(lan|net|local) AAAA fd12::1 1d
;;; IoTLAN (iPv4)
98 .*\\.iotlan\\.(lan|net|local) A 192.168.16.1 1d
;;; IoTLAN (iPv6)
99 .*\\.iotlan\\.(lan|net|local) AAAA fd16::1 1d
;;; MGMT (iPv4)
100 .*\\.mgmt\\.(lan|net|local) A 192.168.99.1 1d
;;; MGMT (iPv6)
101 .*\\.mgmt\\.(lan|net|local) AAAA fd99::1 1d
102 D GuestWiFi.net A 192.168.8.1 5m
NOTE: I have disabled ipv6 related stuff above such as dhcp-pool, nd, dhcp-server, addresses etc. on the vlan8-guestlan. I observed that enabling these negatively impacts the working of hotspot (captive portal) server.
CHECKS ON Arch Linux:
$ resolvectl status
Global
Protocols: LLMNR=resolve -mDNS DNSOverTLS=opportunistic DNSSEC=allow-downgrade/unsupported
resolv.conf mode: stub
Current DNS Server: 45.90.28.0#YYYYYY.dns.nextdns.io
DNS Servers: 2a07:a8c0::#YYYYYY.dns.nextdns.io 2a07:a8c1::#YYYYYY.dns.nextdns.io 45.90.28.0#YYYYYY.dns.nextdns.io
45.90.30.0#YYYYYY.dns.nextdns.io
Fallback DNS Servers: 9.9.9.9#dns.quad9.net 149.112.112.112#dns.quad9.net 2620:fe::9#dns.quad9.net 2620:fe::fe#dns.quad9.net
1.1.1.1#cloudflare-dns.com 1.0.0.1#cloudflare-dns.com 2606:4700:4700::1111#cloudflare-dns.com
2606:4700:4700::1001#cloudflare-dns.com 8.8.8.8#dns.google 8.8.4.4#dns.google 2001:4860:4860::8888#dns.google
2001:4860:4860::8844#dns.google
DNS Domain: ~.
.....
.....
.....
.....
Link 5 (wlan0)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
Protocols: +DefaultRoute LLMNR=resolve -mDNS DNSOverTLS=opportunistic DNSSEC=allow-downgrade/unsupported
Current DNS Server: 192.168.4.1
DNS Servers: 192.168.4.1 fd04::1
DNS Domain: ~. pvtlan.lan pvtlan.net pvtlan.local
Default Route: yes
$ resolvectl query pvtlan.net
pvtlan.net: 192.168.4.1 -- link: wlan0
fd04::1 -- link: wlan0
-- Information acquired via protocol DNS in 16.8ms.
-- Data is authenticated: no; Data was acquired via local or encrypted transport: no
-- Data from: network
$ resolvectl query google.com
google.com: 142.250.191.206 -- link: wlan0
2607:f8b0:4009:81a::200e -- link: wlan0
-- Information acquired via protocol DNS in 7.3ms.
-- Data is authenticated: no; Data was acquired via local or encrypted transport: no
-- Data from: network
$ nslookup pvtlan.net
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: pvtlan.net
Address: 192.168.4.1
Name: pvtlan.net
Address: fd04::1
$ nslookup google.com
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: google.com
Address: 142.250.191.206
Name: google.com
Address: 2607:f8b0:4009:81a::200e
$ ifconfig -a
.....
.....
.....
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.7.117 netmask 255.255.252.0 broadcast 192.168.7.255
inet6 fe80::cccc:cccc:cccc:cccc prefixlen 64 scopeid 0x20<link>
inet6 fd04::5 prefixlen 128 scopeid 0x0<global>
inet6 XXXX:XXXX:XXXX:XXXX:ZZZZ:ZZZZ:ZZZZ:c310 prefixlen 64 scopeid 0x0<global>
inet6 XXXX:XXXX:XXXX:XXXX:ZZZZ:ZZZZ:ZZZZ:fde5 prefixlen 64 scopeid 0x0<global>
inet6 XXXX:XXXX:XXXX:XXXX:ZZZZ:ZZZZ:ZZZZ:6769 prefixlen 64 scopeid 0x0<global>
ether MM:MM:MM:MM:MM:MM txqueuelen 1000 (Ethernet)
RX packets 228097 bytes 259135040 (247.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 85811 bytes 24432055 (23.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Love to see your feedback and try-out. Also, would appreciate critiques / comments on my setup, if any.
Thanks and good luck!