Windows

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地址了。