Windows11配置基于EUI-64的SLAAC IPv6地址
Windows系统的IPv6默认使用随机生成的IPv6地址,并添加一个或多个临时地址,存在临时地址的时候访问网络优先使用临时地址,当遇到服务端需要设置IP白名单并且用户IPv6前缀无法保持不变的时候就不能使用这种临时地址与随机地址了,这时候要把系统的IPv6配置为基于EUI-64生成的固定后缀地址来方便服务端配置防火墙。
首先使用管理员权限打开PowerShell,输入Get-NetIPv6Protocol回车可以看到当前的IPv6设置,使用Set-NetIPv6Protocol可以修改设置。
PS C:\Users\xxx> Get-NetIPv6Protocol
DefaultHopLimit : 128
NeighborCacheLimit(Entries) : 256
RouteCacheLimit(Entries) : 4096
ReassemblyLimit(Bytes) : 267974176
IcmpRedirects : Enabled
SourceRoutingBehavior : DontForward
DhcpMediaSense : Enabled
MediaSenseEventLog : Disabled
MldLevel : All
MldVersion : Version2
MulticastForwarding : Disabled
GroupForwardedFragments : Disabled
RandomizeIdentifiers : Enabled
AddressMaskReply : Disabled
UseTemporaryAddresses : Enabled
MaxTemporaryDadAttempts : 3
MaxTemporaryValidLifetime : 7.00:00:00
MaxTemporaryPreferredLifetime : 1.00:00:00
TemporaryRegenerateTime : 00:00:05
MaxTemporaryDesyncTime : 00:10:00
DeadGatewayDetection : Enabled
可以看到RandomizeIdentifiers与UseTemporaryAddresses默认为启用状态,也就是生成随机地址与使用临时地址,需要禁用掉这两个选项才能使用基于EUI-64的IPv6地址。
PS C:\Users\xxx> Set-NetIPv6Protocol -UseTemporaryAddresses Disabled
PS C:\Users\xxx> Set-NetIPv6Protocol -RandomizeIdentifiers Disabled
执行完上面两条命令后可以再次执行Get-NetIPv6Protocol看看修改是否生效,生效后断开网络连接重连即可看到系统当前就只有基于EUI-64生成的IPv6地址了。