Why is my domain controller causing my router to send advertisements for Unique Local Addresses?
I'm currently evaluating Server 2012 to serve as a domain controller in a small heterogeneous network of Linux and Windows workstations and servers, all of which would eventually be joined to the domain. This is a 100% dual stack network; every device has IPv4 and IPv6 connectivity. The router is a Linux server running radvd 1.9.1 and various other necessities.
I have just installed the first domain controller; its domain name is ad.businessname.com
(where businessname.com
is handled by external DNS servers; the domain also has the public website, email etc. and these won't be joined to the domain at this time). It's a Server Core installed with AD DS and DNS roles. All seems well and I'm about ready to set up the second DC and start joining computers, but...
Now my network has extra IPv6 router advertisements on it, advertising Unique Local Addresses. It's also advertising the native IPv6 prefix that the actual router is advertising. At first I thought that these RAs were originating from the domain controller, since they disappeared when I shut it off, but after running Wireshark I see they came from my actual IPv6 router. Wireshark is showing that this version of the RA very shortly follows a Neighbor Solicitation for fd4a:e7ab:34a5::1 coming from the DC.
Strangely, the router is also sending the original route advertisement which it normally sends when the domain controller is not present on the network. This version of the RA matches /etc/radvd.conf
(a copy is below). A quick session with Wireshark confirmed that both versions of the router advertisement are coming from the MAC address of the Linux router running radvd
.
So far these seem harmless, as my IPv6 connectivity hasn't been interrupted by the presence of the extra RA. But since I have global IPv6 connectivity already, the ULAs seem unnecessary and unwanted.
I've spent much of last night and today scouring the Internet to try to figure out what's going on, but have found little to explain anything beyond a hint that it might have something to do with the IP Helper Service (and vague warnings to not turn it off). But as far as I have ever heard, it should be safe to disable this service when native IPv6 is available.
So my questions are:
- Why is Windows sending a Neighbor Solicitation for a ULA network?
- Why are these RAs being sent, apparently in response?
- Why do they advertise ULAs in addition to my native addresses?
- Isn't this going to cause a problem with IPv6 routing later on?
- Do I have to put up with this, or how can I make Windows and radvd behave?
Various configuration information follows:
Here is a captured RA that was sent (as shown by radvdump
which is IMO easier to read than wireshark's output). You can see that it is advertising both the ULA and the public prefix (obscured here). And when I shut down the domain controller, this version of the RA stops appearing on the network.
#
# radvd configuration generated by radvdump 1.9.1
# based on Router Advertisement from fe80::20c:29ff:fef4:66f1
# received by interface eth0
#
interface eth0
{
AdvSendAdvert on;
# Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump
AdvManagedFlag off;
AdvOtherConfigFlag on;
AdvReachableTime 0;
AdvRetransTimer 0;
AdvCurHopLimit 0;
AdvDefaultLifetime 1800;
AdvHomeAgentFlag off;
AdvDefaultPreference medium;
AdvSourceLLAddress on;
AdvLinkMTU 1500;
prefix fd4a:e7ab:34a5::/64
{
AdvValidLifetime 86400;
AdvPreferredLifetime 86400;
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
}; # End of prefix definition
prefix 2001:db8:16:bf::/64
{
AdvValidLifetime 86400;
AdvPreferredLifetime 86400;
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
}; # End of prefix definition
RDNSS fd4a:e7ab:34a5::1
{
AdvRDNSSLifetime 86400;
}; # End of RDNSS definition
DNSSL businessname.com
{
AdvDNSSLLifetime 1800;
}; # End of DNSSL definition
}; # End of interface definition
Here is the original router advertisement, which matches the router's /etc/radvd.conf
and is still being sent onto the network, alternating with the one above:
#
# radvd configuration generated by radvdump 1.9.1
# based on Router Advertisement from fe80::20c:29ff:fef4:66f1
# received by interface eth0
#
interface eth0
{
AdvSendAdvert on;
# Note: {Min,Max}RtrAdvInterval cannot be obtained with radvdump
AdvManagedFlag off;
AdvOtherConfigFlag off;
AdvReachableTime 0;
AdvRetransTimer 0;
AdvCurHopLimit 64;
AdvDefaultLifetime 1800;
AdvHomeAgentFlag off;
AdvDefaultPreference medium;
AdvSourceLLAddress on;
prefix 2001:db8:16:bf::/64
{
AdvValidLifetime 86400;
AdvPreferredLifetime 14400;
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr off;
}; # End of prefix definition
RDNSS 2001:4860:4860::8888 2001:4860:4860::8844
{
AdvRDNSSLifetime 600;
}; # End of RDNSS definition
}; # End of interface definition
The list of installed roles/features on the domain controller:
[dc1]: PS C:\Users\Administrator\Documents> Get-WindowsFeature | where {$_.InstallState -eq "Installed"}
Display Name Name Install State
------------ ---- -------------
[X] Active Directory Domain Services AD-Domain-Services Installed
[X] DNS Server DNS Installed
[X] File And Storage Services FileAndStorage-Services Installed
[X] File and iSCSI Services File-Services Installed
[X] File Server FS-FileServer Installed
[X] Storage Services Storage-Services Installed
[X] .NET Framework 4.5 Features NET-Framework-45-Fea... Installed
[X] .NET Framework 4.5 NET-Framework-45-Core Installed
[X] WCF Services NET-WCF-Services45 Installed
[X] TCP Port Sharing NET-WCF-TCP-PortShar... Installed
[X] Group Policy Management GPMC Installed
[X] Remote Server Administration Tools RSAT Installed
[X] Role Administration Tools RSAT-Role-Tools Installed
[X] AD DS and AD LDS Tools RSAT-AD-Tools Installed
[X] Active Directory module for Windows ... RSAT-AD-PowerShell Installed
[X] Windows PowerShell PowerShellRoot Installed
[X] Windows PowerShell 3.0 PowerShell Installed
[X] WoW64 Support WoW64-Support Installed
The IPv6 configuration of the Ethernet interface, as requested in chat:
[dc1]: PS C:\Users\Administrator\Documents> netsh interface ipv6 show interface interface=Ethernet
Interface Ethernet Parameters
----------------------------------------------
IfLuid : ethernet_7
IfIndex : 12
State : connected
Metric : 10
Link MTU : 1500 bytes
Reachable Time : 33500 ms
Base Reachable Time : 30000 ms
Retransmission Interval : 1000 ms
DAD Transmits : 1
Site Prefix Length : 64
Site Id : 1
Forwarding : disabled
Advertising : disabled
Neighbor Discovery : enabled
Neighbor Unreachability Detection : enabled
Router Discovery : enabled
Managed Address Configuration : disabled
Other Stateful Configuration : enabled
Weak Host Sends : disabled
Weak Host Receives : disabled
Use Automatic Metric : enabled
Ignore Default Routes : disabled
Advertised Router Lifetime : 1800 seconds
Advertise Default Route : disabled
Current Hop Limit : 64
Force ARPND Wake up patterns : disabled
Directed MAC Wake up patterns : disabled
ECN capability : application
Solution 1:
While I still don't know exactly why this happened (and would welcome explanations!) it seems to be fixed now.
I went over the networking configuration with a fine tooth comb, and discovered to my chagrin that the default gateway had a typo in it!
[dc1]: PS C:\Users\Administrator\Documents> Get-NetRoute -PolicyStore PersistentStore -AddressFamily IPv6
ifIndex DestinationPrefix NextHop RouteMetric PolicyStore
------- ----------------- ------- ----------- -----------
12 ::/0 2001:db8:116:bf::1 256 Persiste...
Um, oops! 116:bf
should be 16:bf
.
So I fixed the typo, and for good measure deleted the ULA address from the Ethernet interface, and voila, no more extra RAs, and my network is happy again.
[dc1]: PS C:\Users\Administrator\Documents> Remove-NetRoute -NextHop 2001:db8:116:bf::1
Confirm
Are you sure you want to perform this action?
Performing operation "Remove" on Target "NetRoute -DestinationPrefix ::/0 -InterfaceIndex 12 -NextHop 2001:db8:116:bf::1 -Store Active"
[Y] Yes [A] Yes to All [N] No [L] No to All [?] Help (default is "Y"): y
Confirm
Are you sure you want to perform this action?
Performing operation "Remove" on Target "NetRoute -DestinationPrefix ::/0 -InterfaceIndex 12 -NextHop 2001:db8:116:bf::1 -Store Persistent"
[Y] Yes [A] Yes to All [N] No [L] No to All [?] Help (default is "Y"): y
[dc1]: PS C:\Users\Administrator\Documents> New-NetRoute -NextHop 2001:db8:16:bf::1 -DestinationPrefix ::/0 -InterfaceIndex 12
ifIndex DestinationPrefix NextHop RouteMetric PolicyStore
------- ----------------- ------- ----------- -----------
12 ::/0 2001:db8:16:bf::1 256 ActiveStore
12 ::/0 2001:db8:16:bf::1 256 Persiste...
[dc1]: PS C:\Users\Administrator\Documents> Remove-NetIPAddress -AddressFamily IPv6 -IPAddress fd4a:e7ab:34a5:0:807e:e44a:7ffc:ea90 -PrefixLength 64
Confirm
Are you sure you want to perform this action?
Performing operation "Remove" on Target "NetIPAddress -IPv6Address fd4a:e7ab:34a5:0:807e:e44a:7ffc:ea90 -InterfaceIndex 12 -Store Active"
[Y] Yes [A] Yes to All [N] No [L] No to All [?] Help (default is "Y"): y
No further sign of ULAs in neighbor solicitations, router advertisements or anywhere else, says Wireshark.
Solution 2:
I cannot quite explain why your DC is sending routing advertisements, but you at least could try disabling them for the interface in question
netsh interface ipv6 set interface interface="Local Area Connection" advertise=disabled
Which should be the default setting according to the netsh help and seems not to make much sense any other way since your DC is presumably not meant to be a router.