I am using an R7800 with openwrt 23.05.4. Trying to get an IPv6 prefix delegated from my ISP (init7). The router is connected to a media converter (TP Link MC220L) which is then connected to the OTO.
Currently, with a fresh install (flashing a sysupgrade.bin file without keeping the config), the router gets a /64 IPv6 address, but no IPv6 prefix, so clients don't get an IPv6 address and don't have IPv6 connectivity. But on the router I have IPv6 connectivity, I can do curl ipv6.icanhazip.com
for example.
Here are some things I've tried
- In Interfaces -> wan6. Set "Request IPv6-address" to force. After restarting wan6, it does not even get an IPv6 /64 anymore.
- In Interfaces -> wan6. Set "Request IPv6-prefix of length" to /48, because this the IPv6 prefix size my ISP gives.
- Tried
option noserverunicast '1'
in /etc/config/network for wan6 (as described https://blog.printk.io/2018/08/ipv6-renew-issue-with-fiber7-and-openwrt/), without success. After restarting the wan6 interface, no IPv6 prefix was obtained - I have an R7800 with 23.05.0 at another location with the same ISP, I've tried to downgrade to the same version and directly using the backed up config .tar.gz from that router. But still same thing, a /64 for the router, no IPv6 prefix and no IPv6 connectivity for clients.
- Weirdly enough enough if I configure the router as a dhcpv6 relay https://openwrt.org/docs/guide-user/network/ipv6/configuration#ipv6_relay, then the clients can obtain IPv6 addresses from the same
2a02:168:yyyy:yyyy
subnet, but then the router is still not getting an IPv6 prefix.
Here are some relevant outputs showing that the router isn't getting an IPv6 prefix.
ifstatus wan6
{
"up": true,
"pending": false,
"available": true,
"autostart": true,
"dynamic": false,
"uptime": 145,
"l3_device": "eth0.2",
"proto": "dhcpv6",
"device": "eth0.2",
"metric": 0,
"dns_metric": 0,
"delegation": true,
"ipv4-address": [
],
"ipv6-address": [
{
"address": "2a02:168:yyyy:yyyy:xxxx:xxxx:xxxx:xxxx",
"mask": 64,
"preferred": 604794,
"valid": 2591994
}
],
"ipv6-prefix": [
],
"ipv6-prefix-assignment": [
],
"route": [
{
"target": "2a02:168:yyyy:yyyy::",
"mask": 64,
"nexthop": "::",
"metric": 256,
"valid": 2591994,
"source": "::/0"
},
{
"target": "::",
"mask": 0,
"nexthop": "fe80::200:f7ff:fef7:256",
"metric": 384,
"valid": 1794,
"source": "2a02:168:yyyy:yyyy:xxxx:xxxx:xxxx:xxxx/64"
}
],
"dns-server": [
"2001:1620:2777:1::10",
"2001:1620:2777:2::20"
],
"dns-search": [
],
"neighbors": [
],
"inactive": {
"ipv4-address": [
],
"ipv6-address": [
],
"route": [
],
"dns-server": [
],
"dns-search": [
],
"neighbors": [
]
},
"data": {
}
}
ifstatus wan
{
"up": true,
"pending": false,
"available": true,
"autostart": true,
"dynamic": false,
"uptime": 269,
"l3_device": "eth0.2",
"proto": "dhcp",
"device": "eth0.2",
"updated": [
"addresses",
"routes",
"data"
],
"metric": 0,
"dns_metric": 0,
"delegation": true,
"ipv4-address": [
{
"address": "85.195.xxx.xxx",
"mask": 24
}
],
"ipv6-address": [
],
"ipv6-prefix": [
],
"ipv6-prefix-assignment": [
],
"route": [
{
"target": "0.0.0.0",
"mask": 0,
"nexthop": "85.195.240.1",
"source": "85.195.240.221/32"
}
],
"dns-server": [
"213.144.129.20",
"77.109.128.2"
],
"dns-search": [
],
"neighbors": [
],
"inactive": {
"ipv4-address": [
],
"ipv6-address": [
],
"route": [
],
"dns-server": [
],
"dns-search": [
],
"neighbors": [
]
},
"data": {
"dhcpserver": "82.197.188.234",
"hostname": "openwrt",
"leasetime": 4000,
"ntpserver": "82.197.188.130 82.197.164.46"
}
}
So why is IPv6 PD not working ? Ultimately, I will want to hand out at least two IPv6 subnets, one for lan and one for a wireguard interface, maybe more in the future. As I understand, IPv6 PD will be needed for this.