Incorrect DNS resolution in iOS 14

Our WebView app is hosted on an on-premise web server, and the devices connect to this server over WiFi, and the DNS of the device is manually set to the IP of the on-premise server.

A same DNS entry is hosted on the internet with a static web page for hosting the AASA file.

When the on-premise server is connected to the Internet, the webpage served in the webview is the one hosted on the public internet (static page) even though the device's DNS is set to the on-premise server's IP address.

This behavior has only been seen in iOS 14. All previous versions of iOS worked fine, and connected to the on-premise server (with/without internet) and served the page hosted on the on-premise server.

Replies

I am having the same issue as well on all iOS 14 devices, they seem unable to resolve using a custom internal DNS server obtained via DHCP. In my case it resolves to the outside domain as well, which isn't good because a lot of internal systems aren't working at home.

I'm using Synology DNS & Pi Hole. Issue is only with iOS 14 devices, DHCP server is a Ubiquiti UDMP.

Any fixes known for know? Would love to hear!
This is to do with how iOS handles sending DNS requests after version 14. Now DNS requests are encrypted using HTTPS in a “Type 65” request rather than your standard port 53 DNS request. Depending on how your DNS server handles type 65 requests (I know dnsmasq and by extension Pihole has trouble with this) the server may not match it to a local record and just automatically forward the request to the upstream servers. iOS does actually follow up the type 65 request with a regular request for comparability sake, however most the time the device will get back the forwarded (public) response before the local response due to the time between requests, and resolve the FQDN to the public address.

As of now there is no firm solution as we need to wait for an updated version of the dns server and encrypted DNS can not be turned off in iOS.

The only work around is if your have a firewall between your device and DNS server, block HTTPS traffic and only allow UDP 53. Resolve times will be slower due to the time between DNS requests but it will resolve properly.

Any resolution to this? I'm having the exact same issue... Can't access local hosts with a FQDN because somehow iOS is bypassing local DNS altogether and retrieving the 'public' IP from public DNS... Super frustrating when I can't access hosts on my iPhone or iPad

Add a Comment