我正在 2008 R2 上使用 Hyper-V 测试 IPv6 设置。
我已经将一台虚拟机设置为 DC,带有 2008 R2 标准版、AD、DNS 和 DHCP。作为域成员,我有一个作为 Windows 7 RTM x64 的 VM。
IPv4 连接工作正常,这里没有问题。另一方面,IPv6 表现得很奇怪。DHCPv6 工作没有问题,客户端获得分配的 IPv6 地址,并且 DNS 服务器地址也被传递。但是,一旦我使用 Ping -6 进行 ping,我得到“ PING:传输失败。一般失败”。如果我从 DC ping 到工作站,我会收到“请求超时”。
由于这是一个测试网络,我已经禁用了防火墙,但这并没有改变这种情况。我使用fd48:5884:e6ae:e8e9::/64作为前缀,fd48:5884:e6ae:e8e9::1是DNS服务器,工作站有DHCPv6分配的动态地址。
重置工作站上的 IP 堆栈(“netsh int ip reset”和“netsh int ipv6 reset”)也无济于事。
编辑:客户端上似乎没有添加路由。ping 链接本地地址有效,从服务器到客户端,反之亦然。看来我还得用 netsh 做一些路由器广告。我会对此进行调查,并将发布后续内容。
编辑 2:似乎需要路由器广告才能在网络上发布路由。除此之外,需要激活“Managed”和“Otherstateful”标志以启用 DHCPv6。
我现在已经运行了 IPv6,我面临的唯一问题是客户端以某种方式获得了 4 个 IPv6 地址。2 个普通地址,1 个临时地址和 1 个本地链接地址。2 个正常地址可能意味着 2 个地址之一是通过自动配置完成的。
这是使用 DHCPv6 时的常见想法,还是我遗漏了什么?
提前致谢。
使虚拟网络在 Hyper-V 中“工作”。(注:同样的原则适用于 IPV4)
我猜网络是公共的,你不能简单地关闭这种网络的防火墙。
开始之前:确保所有计算机上的 IPV6 子网前缀长度相同,并确保关联的适配器都设置为相同的虚拟网络。
使您的虚拟网络是私有的。
分配 IPv6 地址的“正确”方式是带有路由器通告的 autoconf。让 DHCPv6 用于地址分配是我不推荐的“母马”。
您仍然需要 DHCPv6 - 您需要它来分配 DNS 服务器地址,但 IP 地址和默认路由应该来自 RADV。
IPv6 中的所有内容都有一个本地链接地址和一个全局地址(在这种情况下是 ULA,但涉及到同样的事情)地址,所以不要强调这一点。拥有两个全局 IPv6 表明它通过 autoconf 获得一个,另一个通过 DHCPv6 获得 - 尝试将 DHCP 设置为与您的 RADV 一起工作,而不是覆盖它。
在一个家庭实验室中,我设置了一个执行 ipv6 路由的 Windows RRAS 服务器。在 RRAS 中启用路由,设置前缀也是如此,将其设置为广告不起作用。您仍然需要在下面运行这些命令。更深入。我跳过了除了下面两个之外的大部分命令,因为 RRAS 已经设置为为 IPv6 进行路由。https://rakhesh.com/windows/enabling-ipv6-router-advertisements-on-windows/
netsh 接口 ipv6 设置接口“以太网”路由器发现=启用广告=启用
netsh interface ipv6 set interface "Ethernet" forwarding=enabled
netsh interface ipv6 set route 2001:db8:1::/64 "Local Area Connection" publish=yes (这是您要宣传的网络)
令我沮丧的是设置了 RRAS 前缀,设置了广告,并启用了路由。但是我仍然需要运行这些命令,以便 DHCPv6 客户端可以 ping IP,例如 DC VM 的静态 2001:db8:1::2。
我有一个有趣的观察结果是,在 ping LAN IPv6 时,tracert 上具有静态 IPv6 的客户端没有命中任何默认网关。然而,DHCPv6 客户端作为一个跃点通过 IPv6 路由器。这太奇怪了,因为你会认为他们应该能够在不跳一跳的情况下直接 ping。最终的问题是 fe80 链接本地网络被宣传为通往其他客户端的路由。在我运行我提到的第三个 cmd (publish=yes) 之后,ping 并没有跳到目的地。