DNS leak


A DNS leak refers to a security flaw that allows DNS requests to be revealed to ISP DNS servers, despite the use of a VPN service to attempt to conceal them.
Although primarily of concern to VPN users, it is also possible to prevent it for proxy and direct internet users.

Process

The vulnerability allows an ISP, as well as any on-path eavesdroppers, to see what websites a user may be visiting. This is possible because the browser's DNS requests are sent to the ISP DNS server directly, and not sent through the VPN.
This only occurs with certain types of VPNs, e.g. "split-tunnel" VPNs, where traffic can still be sent over the local network interface even when the VPN is active.
Starting with Windows 8, Microsoft has introduced the "Smart Multi-Homed Named Resolution". This altered the way Windows 8 handled DNS requests, by ensuring that a DNS request could travel across all available network interfaces on the computer. While there is general consensus that this new method of domain name resolution accelerated the time required for a DNS look-up to be completed, it also exposed VPN users to DNS leaks when connected to a VPN endpoint, because the computer would no longer use only the DNS servers assigned by the VPN service. Instead the DNS request would be sent through all available interfaces, thus the DNS traffic would travel out of the VPN tunnel and expose the user's default DNS servers.

Prevention

Websites exist to allow testing to determine whether a DNS leak is occurring. DNS leaks can be addressed in a number of ways:
It may not always be so easy to know whether the one is using set DNS, and whether there are any DNS leaks.
The safest way to verify a DNS leak is using more than one online DNS leak tests.
Sometimes ISP may already be using one of public DNS servers by default, and setting it to same public one may not show any difference because servers are same, but ISP may be collecting data too. In such case, it is safest to change to different DNS than test for DNS leaks. For example if ISP was using google public DNS and we are using the same, it may be wise to try cloudflare DNS, then to see if there are any leaks to Google DNS.