Assigned IPv6 DNS on IPv4 network

Hi, I have strange problem. Some apps on Android 8.0 does not work (Telegram can't upload images, Flipboard can't download content, etc) when I'm connected on my home WiFi. I do not use IPv6 so I tried it disable completely, but for some reason my Android device get IPv6 DNS server. I think, this is the main reason why it does not work. On my wife device with Android 5.1 is everything ok.
This is output from Android getprop | grep dns
Screenshot is outdated, I have tried different configuration, and then returned dns to 192.168.2.5. Important is net.dns1

And I got this IPv6 DNS: http://v6decode.com/#address=fe80%3A%3A76ea%3A3aff%3Afedb%3Af20c%25wlan0

When I connect to my work WiFi, or with mobile data, everything is ok .

These are my settings:
root@gw:~# cat /etc/config/network

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

config globals 'globals'

config interface 'lan'
        option type 'bridge'
        option proto 'static'
        option netmask '255.255.255.0'
        option ipaddr '192.168.2.1'
        option broadcast '192.168.2.255'
        option _orig_ifname 'eth0.1 radio0.network1'
        option _orig_bridge 'true'
        option ifname 'eth0.2'
        option stp '1'
        option metric '1'
        option dns '192.168.2.5'

config interface 'wan'
        option _orig_ifname 'eth0.2'
        option _orig_bridge 'false'
        option ifname 'eth0.1'
        option proto 'dhcp'
        option dns '192.168.2.5'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'
        option enable_vlan4k '1'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '0 1t 5t'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '1t 2 3 4 5t'

config interface 'vpn0'
        option ifname 'tun0'
        option proto 'none'

root@gw:~# cat /etc/config/dhcp

config dnsmasq
        option noresolv '1'
        option domainneeded '1'
        option localise_queries '1'
        option rebind_protection '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 localservice '1'
        option nonwildcard '0'
        option sequential_ip '1'
        option filterwin2k '1'
        option strictorder '1'
        list server '192.168.2.5'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '50'
        option leasetime '24h'
        option force '1'
        list dhcp_option '6,192.168.2.5'

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'

config host
        option name 'stb'
        option mac '00:1e:a0:00:65:42'
        option ip '192.168.2.7'

... and more static assignments 

I have this router with this version:

Hostname: gw
Model: TP-Link TL-WR1043N/ND v1
Architecture: Atheros AR9132 rev 2
Firmware Version: OpenWrt 18.06.1 r7258-5eb055306f / LuCI openwrt-18.06 branch (git-18.298.56913-463fb04)
Kernel Version: 4.9.120

I would appreciate any help.

Thank You.

If your screenshot is of the Android, it's not using the DNS servers you specified in OpenWrt.

Yes, it is from android, and sorry, I have tried different configurations, and changed DNS to Cloudflare. But important is that assigned IPv6 DNS on net.dns1.

I guess you're missing me...your photo is of the Android...

The OpenWrt does not possess the configuration that appears to be causing your issue, the Android does.

In fact, you even hand out a local IP as DNS server:

try removeing option filterwin2k '1' (or set it to 0).

also

  • list dhcp_option '6,192.168.2.5'
  • option strictorder '1'

should not be needed

Android holds higher priority for IPv6, so net.dns1 always sticks to IPv6.
The only way to override it is preventing dnsmasq from listening IPv6.

2 Likes

ok,
part of the problem is solved, IPv6 DNS was assigned from second OpenWRT device (only AP, not router). Now I see only IPv4 DNS on my devices, but the main problem is not solved. Still can't upload images to Telegram, download content from Flipboard, etc.. My first opinion, that the problem is IPv6 DNS was wrong.

Verify your gateway is the router, and not your AP.

Yes, I have only one gateway, and 2 another OpenWRT APs. Overlay system on usb is installed on GW. Something more about this issue. I can send messages over telegram, download pictures, but can't upload. I don't know what is the reason why it does not work. Now it affects all mobile devices on network. They can't upload images. Today I'm going to flash new image and configuring it from scratch (not restoring backup). I'll post results.

I have builded new image from dev snapshot, but problem still exist. I don't know how to continue.

Now I'm pretty sure, that it is problem of my ISP. When I make tunnel to my public server, and route whole traffic trough it, everything works.

Please close this thread.

Thank you.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.