I'm testing a IPv6 setup using Hyper-V on 2008 R2.
I've setup one VM as a DC, with 2008 R2 Standard Edition, AD, DNS and DHCP. I've got one VM as Windows 7 RTM x64, as a domain member.
IPv4 connectivity works fine, no problems here. IPv6 on the other hand is acting strange. DHCPv6 works without a problem, the client gets an IPv6 address assigned and the DNS Server address is delivered as well. But once I ping using Ping -6 I get "PING: transmit failed. General failure". If I ping from the DC to the workstation I get a "Request timed out".
Since this is a test network I've disabled the firewalls, but this does not change the situation. I use fd48:5884:e6ae:e8e9::/64 as a prefix, fd48:5884:e6ae:e8e9::1 is the DNS server, the workstation has a dynamic address assigned by DHCPv6.
Resetting the IP stack on the workstation ("netsh int ip reset" and "netsh int ipv6 reset") doesn't help either.
Edit: It seems that the route isn't added on the client. Pinging link-local addresses works, from server to client and vice-versa. It also seems that I have to some router advertising with netsh. I'll look into this and will post a follow-up.
Edit 2: It seems that router advertisements are needed to publish a route on the network. Besides that, the "Managed" and "Otherstateful" flags need to be activated to enable DHCPv6.
I've now got IPv6 running, the only issue I face is that somehow the client gets 4 IPv6 addresses. 2 normal addresses, one temporary and one link-local. The 2 normal addresses probably means that one of the 2 is done via auto-configuration.
Is this the usual idea when using DHCPv6, or am I missing something?
Thanks in advance.
Making virtual networks "work" in Hyper-V. (Note: Same principles apply to IPV4)
I'm guessing the network is Public and you can't simply turn off the firewall for this type of network.
Before you start: Be sure you have the same IPV6 subnet prefix length on all machines and be sure that the associated adapters are all set to the same virtual network.
Make your virtual network is Private.
The "right" way to allocate an IPv6 address is autoconf with router advertisements. Getting DHCPv6 to work for address allocation is a 'mare that I wouldn't recommend.
You still want DHCPv6 - you need it to allocate DNS server addresses, but the IP address and the default route should come from RADV.
Everything in IPv6 has a link-local and a global (well, ULA in this case, but comes to the same thing) address so don't stress over that. Having two global IPv6s suggests that it's getting one via autoconf and the other via DHCPv6 - try setting DHCP to work with your RADV instead of overriding it.
In a home lab I have setup a windows RRAS server that is doing ipv6 routing. Enabled routing in RRAS, same goes for setting the prefix, and setting it to advertise doesn't work. You still need to run these commands below. Goes more in depth. I skipped most of the commands except for the two below, since RRAS was already set to do routing for IPv6. https://rakhesh.com/windows/enabling-ipv6-router-advertisements-on-windows/
netsh interface ipv6 set interface "Ethernet" routerdiscovery=enabled advertise=enabled
netsh interface ipv6 set interface "Ethernet" forwarding=enabled
netsh interface ipv6 set route 2001:db8:1::/64 "Local Area Connection" publish=yes (this is network you want to advertise)
What frustrates me is in RRAS prefix is set, advertisements is set, and it is enabled for routing. However I still needed to run those commands so DHCPv6 clients could ping IP's such as static 2001:db8:1::2 of a DC VM.
The interesting observation I had is a client with static IPv6 on tracert doesn't hit any default gateway when pinging a LAN IPv6. However the DHCPv6 clients go through the IPv6 router as a hop. This is so weird as you would think they should be able to just ping without taking a hop. What ended up being the issue is the fe80 link local network was being advertised as a route to other clients. After I ran the third cmd I mentioned (publish=yes), pings weren't taking a hop to destination.