Adguard messing around with IPv6 settings

tox1c90

Beta Tester
Hi!

Every time Adguard is started, the following DWORD value in registry is changed:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents
-> is always set back to (0x28) by Adguard

That means the following:
0x08 - Teredo disabled (which is ok, because Teredo is useless and bad if you have a real IPv6 connection)
0x20 - Prefer IPv4 over IPv6 (which is NOT OK)

I got aware of this because I checked my internet connection via ipv6-test.com and it says that my browser is always preferring IPv4 over IPv6 which is not the default behavior of Windows and really bad.

So what I did is running the Fix-It from Microsoft which changes IPv6 behavior back to default: https://support.microsoft.com/en-us/help/929852/how-to-disable-ipv6-or-its-components-in-windows

After this, DisabledComponents is set to 0x8 and the IPv6 prefix policies show native IPv6 with highest priority and ipv6-test.com reports that I'm using IPv6 as preferred protocol. Problem is, after restarting Windows, it is set back to 0x28 and preferring IPv4 again. By stopping and restarting Adguard only I found out that this change of settings is indeed caused by Adguard, so my question is why?

Is there any reason for Adguard to change Windows behavior to prefer IPv4? I did a few tests with default settings (IPv6 preferred) and it looked like everything including Adguard is working just fine.

Edit:
Ok, it looks like this is a misbehavior of Adguards setting "Block Teredo if WFP driver is used" (or similar in English, I'm using the German Adguard....).
If I switch this off, DisabledComponents reverts to 0x00, which is Teredo enabled and IPv6 preferred.
But if I switch it on, you do not only disable Teredo but also prefer IPv4 by setting it to 0x28.
Just to disable Teredo, "0x8" would be the right setting.

Edit2:
Just for clarification why this is important: In Germany, most providers don't give out public IPv4 adresses anymore because they don't have enough. You only get a native IPv6 connection, all IPv4 connections are tunneled via a Carrier-grade-NAT (technique is called Dual Stack Lite) which causes additional latencies. So you want to use IPv6 as much as you can and avoid IPv4 connections. Thus, setting Windows to prefer IPv4 is the worst thing you can do in this situation.
 
Last edited:

avatar

Administrator
Staff member
Administrator
Top