我正在配置一个DHCP scope
,IPv6
但我的所有客户端都获得了IPv6
分配给该接口的两个或更多地址。
我使用fda8:6c3:ce53:a890:/64
作为前缀。范围是运行 Windows Server 2008 R2 的机器,但我还希望在 Server 2012 上推出它。
我的客户得到以下信息:
IPv6 地址. . . . . . . . . . . . . : 1024::1492:9288:7357:7d30(首选)
IPv6 地址. . . . . . . . . . . . : fda8:6c3:ce53:a890::1(首选)
IPv6 地址. . . . . . . . . . . : fda8:6c3:ce53:a890:1492:9288:7357:7d30(首选)
链路本地 IPv6 地址. . . . . . : fe80::1492:9288:7357:7d30%10(首选)
在这个例子中,没有DHCP scope
,并且机器有一个static IP
。fda8:6c3:ce53:a890::1
考虑到这一点,1024
地址和fda8:6c3:ce53:a890:1492:9288:7357:7d30
地址来自哪里?
答案1
DHCPv6 无需配置即可为网络分配 IPv6 地址。相反,每台机器都会为自己分配一个链路本地地址(在 内[FE80::]/16
),可选地基于其 MAC,但可能是随机的。然后,它会监听路由器通告,并根据通告的前缀,使用相同的逻辑为自己分配一个或多个地址。通常,主机会为自己分配一个或多个随机地址,用于启动连接,从而保护其隐私(例如,不向互联网上的所有主机披露其 MAC,也不保持一致的网络地址);它还会保持一致的 MAC,以便其他主机启动连接。主机在发现前缀后,将查询 DHCPv6 以找出其 DNS 服务器之类的信息。
这可能是额外地址的来源(您禁用路由器发现功能证实了这一点)。为了在 内为自己分配一个地址[1024::]/64
,网络上的某个路由器(运行路由器广告守护程序)必须广播该子网;网络捕获可以告诉您是哪个。数据包将显示为 ICMPv6 NDP 路由器广告。
答案2
在我看来,这些额外的地址就像隐私地址,在任何类型的商业环境中都应该禁用它们。尝试禁用 IPv6 隐私地址:
netsh interface ipv6 set privacy state=disabled store=active
netsh interface ipv6 set privacy state=disabled store=persistent
netsh interface ipv6 set global randomizeidentifiers=disabled store=active
netsh interface ipv6 set global randomizeidentifiers=disabled store=persistent
此配置更改需要重新启动。
不幸的是,据我所知没有组策略对象可以进行此更改,这是一个严肃的微软方面的疏忽。
答案3
1000::/4 未分配。我猜想它正在通过 ND 发现该地址。启动 wireshark,设置捕获过滤器,icmp6
然后查看本地主机是否正在传输前缀广告。