IPV4 IPV6 mixed on local network dns fail IPV6

OpenWrt 23.05.0
IPV6 via SLAAC on local network
No ISP IPV6

This may in fact not be a Openwrt issue but here we go

If I add an IPV6 address and host via LUCI -> Network -> Hostnames
I can ping,nslookup,host and dig the hostname on my Linux box .

On my android device I can enter the IPV6 address in a URL (I have a local Apache) in the browser and its works

However I cannot get the browser on the android device (Firefox or Chrome) to resolve the IPV6 host name .

Is this a configuration error on my part or a Google/Android 'issue'

I turned on SLAAC since it seems Google/Android dont do DHCPV6

Hi

maybe you miss to announce your OpenWRT box as DNS server?

interface->DHCP Server->IPv6 Settings->Local IPv6 DNS server checkbox
and in
->IPv6 RA Settings->RA Flags
i think you need both, managed(M) and other(O)

1 Like

Local IPV6 DNS all ready checked
The RA flag is set to O but does it do anything ? DHCPv6 is turned of since I enabled SLAAC . I can understand why you cant lookup a SLAAC address since the client creates it but I dont understand why a manually configured host entry cant be found

well, since your OWRT running as it should, you could resolve v6 dns on your own router, only thing what is left is ... android
look like your android does not honor DNS SERVER entry from dhcp lease
maybe it using 8.8.8.8 or similar for DNS ?
if they use OWRT as DNS, then it should return valid AAAA from OWRT

All the ipv4 addresses I add manually into hostnames resolve . Its just the ipv6 that dont

sorry ... but for me, it is working in production

owrt

ping from OWRT

root@r1.wrt.dtv:~# ping6 ntp.vlan76.dtv
PING ntp.vlan76.dtv (fd00:25:76::1): 56 data bytes
64 bytes from fd00:25:76::1: seq=0 ttl=64 time=0.094 ms
64 bytes from fd00:25:76::1: seq=1 ttl=64 time=0.062 ms

ping from debian using OWRT as DNS

root@file.srv.dtv:~# ping6 ntp.vlan76.dtv
PING ntp.vlan76.dtv(ntp.vlan76.dtv (fd00:25:76::1)) 56 data bytes
64 bytes from ntp.vlan76.dtv (fd00:25:76::1): icmp_seq=1 ttl=64 time=0.766 ms
64 bytes from ntp.vlan76.dtv (fd00:25:76::1): icmp_seq=2 ttl=64 time=0.270 ms
^C

so, problem is somewhere in owrt->android

and wget is working too

root@file.srv.dtv:~# wget -6 http://ntp.vlan76.dtv
--2024-03-28 17:09:08--  http://ntp.vlan76.dtv/
Resolving ntp.vlan76.dtv (ntp.vlan76.dtv)... fd00:25:76::1
Connecting to ntp.vlan76.dtv (ntp.vlan76.dtv)|fd00:25:76::1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 780 [text/html]
Saving to: ‘index.html’

index.html                                         100%[===============================================================================================================>]     780  --.-KB/s    in 0s      

2024-03-28 17:09:08 (183 MB/s) - ‘index.html’ saved [780/780]

turning on dns logging shows that the android device asks for an 'A' record and gets 'NODATA-IPv4' and then gives up .

the Linux box on the other hand asks for an 'AAAA' record after the 'NODATA-IPv4' response and this succeeds

havent found any way to change androids behavior

1 Like