Hi, thanks for the explanation. I disabled ULA for now. If the IPv6 is set up correctly, I should be able to communicate using global addresses anyway.
I ran tcpdump and got the following:
~# tcpdump -n -vvv -i pppoe-wan ip6
tcpdump: listening on pppoe-wan, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
00:53:58.251918 IP6 (hlim 255, next-header ICMPv6 (58) payload length: 8) fe80::e917:8581:95e2:6902 > ff02::2: [icmp6 sum ok] ICMP6, router solicitation, length 8
00:54:02.294867 IP6 (class 0xe0, hlim 255, next-header ICMPv6 (58) payload length: 88) fe80::207:dff:fe91:701b > ff02::1: [icmp6 sum ok] ICMP6, router advertisement, length 88
hop limit 64, Flags [none], pref medium, router lifetime 1800s, reachable time 0s, retrans time 0s
mtu option (5), length 8 (1): 1452
0x0000: 0000 0000 05ac
prefix info option (3), length 32 (4): 2a02:ac62:352:500::/64, Flags [onlink, auto], valid time 2592000s, pref. time 604800s
0x0000: 40c0 0027 8d00 0009 3a80 0000 0000 2a02
0x0010: 0ab8 0201 0600 0000 0000 0000 0000
prefix info option (3), length 32 (4): fd00:1:0:a1::/64, Flags [onlink, auto], valid time 2592000s, pref. time 604800s
0x0000: 40c0 0027 8d00 0009 3a80 0000 0000 fd00
0x0010: 0001 0000 00a1 0000 0000 0000 0000
00:54:02.329971 IP6 (hlim 1, next-header Options (0) payload length: 36) fe80::e917:8581:95e2:6902 > ff02::16: HBH (rtalert: 0x0000) (padn) [icmp6 sum ok] ICMP6, multicast listener report v2, 1 group record(s) [gaddr ff02::2 to_ex { }]
00:54:02.370111 IP6 (hlim 1, next-header UDP (17) payload length: 110) fe80::e917:8581:95e2:6902.546 > ff02::1:2.547: [udp sum ok] dhcp6 solicit (xid=5aa921 (elapsed-time 1520) (option-request SIP-servers-domain SIP-servers-address DNS-server DNS-search-list SNTP-servers NTP-server AFTR-Name opt_67 opt_82 opt_83 opt_94 opt_95 opt_96) (client-ID hwaddr type 1 c05627748a7b) (reconfigure-accept) (Client-FQDN) (IA_NA IAID:1 T1:0 T2:0) (IA_PD IAID:1 T1:0 T2:0))
00:54:03.089939 IP6 (hlim 1, next-header Options (0) payload length: 36) fe80::e917:8581:95e2:6902 > ff02::16: HBH (rtalert: 0x0000) (padn) [icmp6 sum ok] ICMP6, multicast listener report v2, 1 group record(s) [gaddr ff02::2 to_ex { }]
00:54:18.351263 IP6 (class 0xe0, hlim 255, next-header ICMPv6 (58) payload length: 88) fe80::207:dff:fe91:701b > ff02::1: [icmp6 sum ok] ICMP6, router advertisement, length 88
hop limit 64, Flags [none], pref medium, router lifetime 1800s, reachable time 0s, retrans time 0s
mtu option (5), length 8 (1): 1452
0x0000: 0000 0000 05ac
prefix info option (3), length 32 (4): 2a02:ac62:352:500::/64, Flags [onlink, auto], valid time 2592000s, pref. time 604800s
0x0000: 40c0 0027 8d00 0009 3a80 0000 0000 2a02
0x0010: 0ab8 0201 0600 0000 0000 0000 0000
prefix info option (3), length 32 (4): fd00:1:0:a1::/64, Flags [onlink, auto], valid time 2592000s, pref. time 604800s
0x0000: 40c0 0027 8d00 0009 3a80 0000 0000 fd00
0x0010: 0001 0000 00a1 0000 0000 0000 0000
00:54:18.849988 IP6 (hlim 1, next-header UDP (17) payload length: 110) fe80::e917:8581:95e2:6902.546 > ff02::1:2.547: [udp sum ok] dhcp6 solicit (xid=5aa921 (elapsed-time 3168) (option-request SIP-servers-domain SIP-servers-address DNS-server DNS-search-list SNTP-servers NTP-server AFTR-Name opt_67 opt_82 opt_83 opt_94 opt_95 opt_96) (client-ID hwaddr type 1 c05627748a7b) (reconfigure-accept) (Client-FQDN) (IA_NA IAID:1 T1:0 T2:0) (IA_PD IAID:1 T1:0 T2:0))
To me it seems like my provider doesn't support DHCPv6-PD. To be honest, its a small austrian buisness provider. They support net neutrality though, that's why I mainly chose them.
~# ifstatus wan6
{
"up": true,
"pending": false,
"available": true,
"autostart": true,
"dynamic": false,
"uptime": 907,
"l3_device": "pppoe-wan",
"proto": "dhcpv6",
"device": "pppoe-wan",
"metric": 0,
"delegation": true,
"ipv4-address": [
],
"ipv6-address": [
{
"address": "2a02:ac62:352:500:e917:8581:95e2:6902",
"mask": 64,
"preferred": 604758,
"valid": 2591958
},
{
"address": "fd00:1:0:a1:e917:8581:95e2:6902",
"mask": 64,
"preferred": 604758,
"valid": 2591958
}
],
"ipv6-prefix": [
],
"ipv6-prefix-assignment": [
],
"route": [
{
"target": "2a02:ac62:352:500::",
"mask": 64,
"nexthop": "::",
"metric": 256,
"valid": 2591958,
"source": "::\/0"
},
{
"target": "fd00:1:0:a1::",
"mask": 64,
"nexthop": "::",
"metric": 256,
"valid": 2591958,
"source": "::\/0"
},
{
"target": "::",
"mask": 0,
"nexthop": "fe80::207:dff:fe91:701b",
"metric": 512,
"valid": 1758,
"source": "2a02:ac62:352:500:e917:8581:95e2:6902\/64"
},
{
"target": "::",
"mask": 0,
"nexthop": "fe80::207:dff:fe91:701b",
"metric": 512,
"valid": 1758,
"source": "fd00:1:0:a1:e917:8581:95e2:6902\/64"
}
],
...
}
As far as I can tell, ipv6-prefix would not be empty if the prefix delegation worked correctly here.
~# ifstatus lan
{
"up": true,
"pending": false,
"available": true,
"autostart": true,
"dynamic": false,
"uptime": 1589,
"l3_device": "br-lan",
"proto": "static",
"device": "br-lan",
"updated": [
"addresses"
],
"metric": 0,
"delegation": true,
"ipv4-address": [
{
"address": "192.168.1.1",
"mask": 24
}
],
"ipv6-address": [
],
"ipv6-prefix": [
],
"ipv6-prefix-assignment": [
],
"route": [
],
...
}
Also, ipv6-prefix-assignment would not be empty in lan status as well.
When trying to switch over relay mode (SLACC it's called?) it wouldn't work until I replaced the wan6 dhcp config interface option from 'wan6' to 'wan'.
/etc/config/dhcp
config dhcp 'lan'
option interface 'lan'
option start '100'
option leasetime '24h'
option limit '100'
option dhcpv6 'disabled'
option ra 'relay'
option ndp 'relay'
config dhcp 'wan'
option interface 'wan'
option ignore '1'
config dhcp 'wan6'
option interface 'wan'
option dhcpv6 'disabled'
option ra 'relay'
option ndp 'relay'
option master '1'
That's when I finally ended up having a global IPv6 on my lan.
~# ip addr show
...
6: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether c0:56:27:74:8a:7b brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 brd 192.168.1.255 scope global br-lan
valid_lft forever preferred_lft forever
inet6 fd00:1:0:a1:e1fb:10c2:53f6:90a7/64 scope global noprefixroute dynamic
valid_lft 2591995sec preferred_lft 604795sec
inet6 2a02:ac62:352:500:e1fb:10c2:53f6:90a7/64 scope global noprefixroute dynamic
valid_lft 2591995sec preferred_lft 604795sec
inet6 fe80::c256:27ff:fe74:8a7b/64 scope link
valid_lft forever preferred_lft forever
...
9: pppoe-wan: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1452 qdisc fq_codel state UNKNOWN group default qlen 3
link/ppp
inet /my/public/ipv4 peer 112.52.16.32/32 scope global pppoe-wan
valid_lft forever preferred_lft forever
inet6 fd00:1:0:a1:e1fb:10c2:53f6:90a7/64 scope global noprefixroute dynamic
valid_lft 2591995sec preferred_lft 604795sec
inet6 2a02:ac62:352:500:e1fb:10c2:53f6:90a7/64 scope global noprefixroute dynamic
valid_lft 2591995sec preferred_lft 604795sec
inet6 fe80::e1fb:10c2:53f6:90a7/10 scope link
valid_lft forever preferred_lft forever
My phone (Android) now gets assigned 2 global addresses and 2 ULAs, while my workstation (Windows 8.1) seems not to get any.
What does the noprefixroute keyword tell us?
Btw, when I asked my ISP to activate a /64 IPv6 block for me, they said they assigned me a /60 block, but pppoe would connect to a /64 block. What does that mean? Should I simply ask them to extend my block to /62 or /60?