我正在 2008 R2 上使用 Hyper-V 测试 IPv6 设置。
我已经将一台虚拟机设置为 DC,配有 2008 R2 标准版、AD、DNS 和 DHCP。我有一个虚拟机作为 Windows 7 RTM x64,作为域成员。
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 个普通地址、一个临时地址和一个本地链路地址。2 个普通地址可能意味着其中一个是通过自动配置完成的。
这是使用 DHCPv6 时的通常想法吗,还是我遗漏了什么?
提前致谢。
答案1
使虚拟网络在 Hyper-V 中“工作”。 (注意:同样的原则也适用于 IPV4)
我猜测该网络是公共的,您不能简单地关闭此类网络的防火墙。
开始之前:确保所有机器上的 IPV6 子网前缀长度相同,并确保相关适配器都设置为同一个虚拟网络。
使您的虚拟网络成为私有网络。
- 转到网络和共享中心
- 在图形上,双击虚拟网络
- 单击结果页面顶部的横幅(“网络文件共享和...”
- 从结果列表中选择“打开网络发现和文件共享”
- 在弹出窗口中,选择“否,将我正在连接的网络设为私有网络……”
答案2
分配 IPv6 地址的“正确”方法是使用路由器通告进行自动配置。使用 DHCPv6 进行地址分配是一件很麻烦的事情,我不建议这么做。
您仍然需要 DHCPv6 - 您需要它来分配 DNS 服务器地址,但 IP 地址和默认路由应该来自 RADV。
IPv6 中的所有内容都有一个本地链接和一个全局(嗯,在本例中是 ULA,但意思是一样的)地址,所以不要为此感到压力。拥有两个全局 IPv6 表明它通过 autoconf 获取一个,通过 DHCPv6 获取另一个 - 尝试将 DHCP 设置为与您的 RADV 配合使用,而不是覆盖它。
答案3
在家庭实验室中,我设置了一个执行 IPv6 路由的 Windows RRAS 服务器。在 RRAS 中启用路由,设置前缀也是如此,将其设置为广告不起作用。您仍然需要运行下面的这些命令。更深入。我跳过了除下面两个命令之外的大多数命令,因为 RRAS 已经设置为执行 IPv6 路由。https://rakhesh.com/windows/enabling-ipv6-router-advertisements-on-windows/
netsh 接口 ipv6 设置接口“以太网”routerdiscovery=enabled advertise=enabled
netsh 接口 ipv6 设置接口“以太网”转发=启用
netsh 接口 ipv6 设置路由 2001:db8:1::/64 “本地连接” publish=yes (这是您想要宣传的网络)
让我沮丧的是,RRAS 前缀已设置,广告已设置,并且已启用路由。但是我仍然需要运行这些命令,以便 DHCPv6 客户端可以 ping 诸如 DC VM 的静态 2001:db8:1::2 之类的 IP。
我观察到一个有趣的现象:tracert 上静态 IPv6 的客户端在 ping LAN IPv6 时不会到达任何默认网关。但是 DHCPv6 客户端会通过 IPv6 路由器进行跳转。这很奇怪,因为您会认为它们应该能够直接 ping 而不进行跳转。最终的问题是 fe80 链接本地网络被宣传为其他客户端的路由。在我运行我提到的第三个命令(publish=yes)后,ping 不会跳转到目的地。