IPV6 Assigned on router and client but no internet

Hey all,

Just got my first OpenWRT router. The router is directly connected to the ONT from my ISP. IPV4 works flawlessly but IPV6 not so much.

I can see that the router has an IPV6 assigned to it and an IPV6-PD but running commands like curl, ping etc to IPV6 addresses do not work.
This is what the OpenWRT UI shows under interfaces.

Similar story for a client directly connected to the router via ethernet, I can see IPV6 has been assigned to it but that is as far as I understand IPV6 configuration and whatnot. Windows network details:

Here's the nework file /etc/config/network:


config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd00:ab:cd::/48'

config device
        option name 'eth2'
        option macaddr '0a:c2:58:73:58:ab'

config interface 'wan'
        option device 'eth2'
        option proto 'dhcp'

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

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth1'
        list ports 'eth0'

config device
        option name 'eth1'
        option macaddr '0a:c2:58:73:58:ac'

config device
        option name 'eth0'
        option macaddr '0a:c2:58:73:58:ac'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.2.1'
        option netmask '255.255.255.0'
        option ip6assign '64'

Any help is greately appreciated!

In /etc/config/dhcp check if you have the following configurations:

config dhcp 'lan'
(...)
        option ra 'server'
        option dhcpv6 'server'
        list ra_flags 'managed-config'
        list ra_flags 'other-config'

Yes, all those are present, here's the full config file:

config dnsmasq
        option domainneeded '1'
        option localise_queries '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
        option localservice '1'
        option ednspacket_max '1232'
        option confdir '/tmp/dnsmasq.d'
        option cachesize '1000'
        option rebind_protection '0'
        option port '54'
        list server '192.168.10.1'
        option noresolv '0'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option dhcpv6 'server'
        option ra 'server'
        list ra_flags 'managed-config'
        list ra_flags 'other-config'
        list dhcp_option '6,192.168.10.1'
        list dhcp_option '3,192.168.10.1'
        list dns 'fd00:ab:cd::1'
        list dns '2a01:4b00:e06f:f600::1'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'

config odhcpd 'odhcpd'
        option maindhcp '0'
        option leasefile '/tmp/hosts/odhcpd'
        option leasetrigger '/usr/sbin/odhcpd-update'
        option loglevel '4'

config host
        option dns '1'
        option mac '90:75:BC:29:9F:41'
        option name 'wifi'
        option ip '192.168.10.10'

This is a default configuration connected to what appears to be a standards-compliant ISP-- except for tinkering with the DNS. It's not really clear what the 192.168.10.0 network and the ULA are doing. So the first thing would be to separate if it is a DNS problem or a general routing problem by trying to ping some numeric IPs from a LAN client PC. If well-known numeric IPs like Google DNS at 2001:4860:4860::8844 go through, the custom DNS is suspect.

I've already tried pinging direct IPs already. Both from the router itself and from a client, both timeout and never ping.

I tried pinging both Google IPs and Cloudflare IPs

This is the information printed by running ip route show table all

default via IPV4-Gateway dev eth2 proto static src Public-IPV4
Public IPV4/29 dev eth2 proto kernel scope link src Public-IPV4
192.168.10.0/24 dev br-lan proto kernel scope link src 192.168.10.1
broadcast 127.0.0.0 dev lo table local proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo table local proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo table local proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo table local proto kernel scope link src 127.0.0.1
broadcast 137.220.126.248 dev eth2 table local proto kernel scope link src Public-IPV4
local Public-IPV4 dev eth2 table local proto kernel scope host src Public-IPV4
broadcast 137.220.126.255 dev eth2 table local proto kernel scope link src Public-IPV4
broadcast 192.168.10.0 dev br-lan table local proto kernel scope link src 192.168.10.1
local 192.168.10.1 dev br-lan table local proto kernel scope host src 192.168.10.1
broadcast 192.168.10.255 dev br-lan table local proto kernel scope link src 192.168.10.1
default from IPV6-router via fe80::a616:e7ff:fe57:c9bb dev eth2 proto static metric 512 pref medium
default from IPV6-PD::/56 via fe80::a616:e7ff:fe57:c9bb dev eth2 proto static metric 512 pref medium
IPV6-PD::/64 dev br-lan proto static metric 1024 pref medium
unreachable IPV6-PD::/56 dev lo proto static metric 2147483647 pref medium
fd00:ab:cd::/64 dev br-lan proto static metric 1024 pref medium
unreachable fd00:ab:cd::/48 dev lo proto static metric 2147483647 pref medium
fe80::/64 dev eth2 proto kernel metric 256 pref medium
fe80::/64 dev br-lan proto kernel metric 256 pref medium
local ::1 dev lo table local proto kernel metric 0 pref medium
local IPV6-router dev eth2 table local proto kernel metric 0 pref medium
anycast IPV6-PD:: dev br-lan table local proto kernel metric 0 pref medium
local IPV6-PD::1 dev br-lan table local proto kernel metric 0 pref medium
anycast fd00:ab:cd:: dev br-lan table local proto kernel metric 0 pref medium
local fd00:ab:cd::1 dev br-lan table local proto kernel metric 0 pref medium
anycast fe80:: dev eth2 table local proto kernel metric 0 pref medium
anycast fe80:: dev br-lan table local proto kernel metric 0 pref medium
local fe80::8c2:58ff:fe73:58ab dev eth2 table local proto kernel metric 0 pref medium
local fe80::8c2:58ff:fe73:58ac dev br-lan table local proto kernel metric 0 pref medium
multicast ff00::/8 dev eth2 table local proto kernel metric 256 pref medium
multicast ff00::/8 dev br-lan table local proto kernel metric 256 pref medium

Can you verify if the packets go out of the wan interface?
opkg update; opkg install tcpdump; tcpdump -i eth2 -vn ip6
Then try to ping an ipv6 server like dns.google and paste the output here.

1 Like