Assign Ipv6 to wifi client network

Hello all

I have this Openwrt router connected to my ISP router through Wifi with this tutorial.

It has been working quite well through the years with IPv4 but now there’s a need for IPv6 to come through too.

Tried creating a new DHCP6 interface on Luci and attach it to the ISP router wifi but it doesn’t work. It seems the Openwrt router assigns itself a IPv6 ip in the Luci panel but the ISP router doesn’t show on its admin panel a IPv6 for the Openwrt router connection, just IPv4.

Other devices like my phone do get a IPv6 on the ISP router when connected directly to their wifi.

I can ping -6 between the Openwrt LAN devices.

What can be done so the Openwrt wifi client connection gets assigned a IPv6 so the v6 traffic can flow?

/etc/config/network

config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.14.1'
option netmask '255.255.255.0'
option ip6assign '60'

config device
option name 'wan'
option macaddr '11:22:33:44:55:66'

config interface 'wan'
option device 'br-wan'
option proto 'dhcp'

config interface 'wan6'
option device 'wan'
option proto 'dhcpv6'

config interface 'wwan'
option proto 'dhcp'

config device
        option name 'br-wan'
        option type 'bridge'

config interface 'wwan6'
        option proto 'dhcpv6'
        option reqaddress 'try'
        option reqprefix 'auto'
        option norelease '1'
        option multipath 'off'
        option device 'phy2-sta0'

/etc/config/firewall

config defaults
        option syn_flood '1'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'

config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        list network 'lan'

config zone
        option name 'wan'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        list network 'wan'
        list network 'wan6'
        list network 'wwan'
        list network 'wwan6'

config forwarding
        option src 'lan'
        option dest 'wan'

config rule
        option name 'Allow-DHCP-Renew'
        option src 'wan'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option name 'Allow-DHCP-Renew'
        option src 'wan'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option name 'Allow-Ping'
        option src 'wan'
        option proto 'icmp'
        option icmp_type 'echo-request'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-IGMP'
        option src 'wan'
        option proto 'igmp'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-DHCPv6'
        option src 'wan6'
        option proto 'udp'
        option dest_port '546'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-MLD'
        option src 'wan'
        option proto 'icmp'
        option src_ip 'fe80::/10'
        list icmp_type '130/0'
        list icmp_type '131/0'
        list icmp_type '132/0'
        list icmp_type '143/0'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Input'
        option src 'wan6'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        list icmp_type 'router-solicitation'
        list icmp_type 'neighbour-solicitation'
        list icmp_type 'router-advertisement'
        list icmp_type 'neighbour-advertisement'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Forward'
        option src 'wan'
        option dest '*'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-IPSec-ESP'
        option src 'wan'
        option dest 'lan'
        option proto 'esp'
        option target 'ACCEPT'

config rule
        option name 'Allow-ISAKMP'
        option src 'wan'
        option dest 'lan'
        option dest_port '500'
        option proto 'udp'
        option target 'ACCEPT'

The Openwrt router does have a IPv6 assigned in the ISP router but no flow of IPv6 traffic to devices.

Does yours ISP's router support DHCPv6-PD (prefix delegation)?
Does your ISP give you prefix big enough to do prefix delegation?

In your openwrt:

ubus call network.interface.wan6 status
ubus call network.interface.lan status

reasonably redact the output

wwan6 should be an alias device. In the wwan6 block use
option device '@wwan'

I don't know how much you know about IPv6.

Here is a thing: even if your OpenWrt gets singular IPv6 address that's not enough.
Your OpenWrt needs to have whole prefix (a set of addresses) that can then distribute to its clients.
With IPv4 this is different: single address is all you need because NAT is used by default.
(Note that there is also NAT66 but that should be very last resort.)

If your ISP's router support DHCPv6-PD and your ISP gives you sufficient prefix (i.e. the prefix number is strictly smaller than 64), then everything should work automatically. Since it does not work for you I conclude that at least one of the condition is not true. You ISP's router does not support prefix delegation and/or you have prefix 64 (IMO assigning prefix 64 is criminal).

If you have sufficient prefix and your ISP's router just does not support prefix delegation there still might be hope for static configuration. If your ISP's router support static routers you can manually choose some prefix and route it to your OpenWrt router, and then set that chosen prefix in OpenWrt router for distribution.

If you have only 64 prefix you can try using relay mode.

Never really looked into IPv6 tbh. This is all new info for me.

I went searching and it seems this ISP doesn’t give ability for individuals to have ipv6 subnets in their networks, just for enterprises. So it is prefix 64 for any device.

I think I’ll try relay mode.

Question is: do you need the ISP's router in router mode? Cannot be it turned to "bridge" mode? (in that case ISP's box is basically just modem)

They don’t even allow bridge mode for individuals based on various ISP forum posts complaining about this through the years. I need the router in router mode too though.

Thanks for your and @mk24 help. It allowed to narrow down the issue and will try the proposed alternative of relay mode.