配置 DHCPv6、客户端地址设置、SLAAC.note
一、配置 DHCP v6:
1、配置 下发 DHCP v6地址:

DHCPv6只能够下发 /64 前缀的IP

这里指定的是排除地址的范围,题目没有要求就不要指定(或者手动排除已经存在的同网段IP):

点击下一步,点击完成
·(重要)现在客户端还无法获取地址,需要在 DHCPv6 服务器上开启 RA通告:
开启了之后,所有同网段的机器都会自动 SLAAC 获取一个地址
netsh interface ipv6 set interface "Ethernet0" forwarding=enabled advertise=enabled managedaddress=enabled otherstateful=enabled
# 重分发默认路由:
netsh interface ipv6 set interface "Ethernet0" forwarding=enabled advertise=enabled advertisedefaultroute=enabled
## powershell:
Set-NetIPInterface -InterfaceAlias Ethernet0 -AddressFamily IPv6 -Forwarding Enabled -Advertising Enabled -AdvertiseDefaultRoute Enabled客户端获取地址:
这里客户端会获取到三个地址,一个 dhcp、一个 SLAAC、一个临时地址


1)如果只想让客户端获取 DHCPv6地址,不想让机器SLAAC获取地址:
netsh interface ipv6 set interface "Ethernet0" forwarding=enabled advertise=enabled managedaddress=enabled otherstateful=enabled
netsh interface ipv6 add route 2001:db8:10::/64 "Ethernet0" publish=no //如果条目不存在就 add(默认不存在)
netsh interface ipv6 set route 2001:db8:10::/64 "Ethernet0" publish=no //如果条目存在就 set
# 参数解析:
forwarding=enabled //让Windows 剧本IPv6路由器行为
advertise=enabled //开启RA通告
managedaddress=enabled //RA里 M flag 设置为 1,让客户端通告DHCPv6获取地址
otherstateful=enabled //RA里 O flag 设置为 1,让客户端通告DHCPv6获取 Option(DNS、域名)如果客户端已经获取了SLAAC地址,就需要重启机器
客户端获取地址:

# 但是这样配置之后,客户端确实是能够获取到单个DHCP地址,但是会无法ping通任何机器:
这里是因为服务器关闭了RA通告,这样客户端确实不会进行SLAAC了,但是RA通告中携带的网关路由也没了
# 解决方法,需要手动添加路由:
netsh interface ipv6 add route ::/0 Ethernet0
2)关闭隐私地址:
netsh interface ipv6 set privacy state=disabled2、配置 Options 选项:
DHCPv6 默认不会设置 DNS optionts,需要手动设置
DHCPv6 无法下发网关

1)DNS Server(Option 23):

2)Domain Search(Option 24):

3、设置网关:
DHCPv6 无法直接下发网关,只能通告RA,但是一般DHCPv6都不是网关,因此需要在网关上配置 RA,下发默认路由
1)本地手动指定:
netsh interface ipv6 add route ::/0 Ethernet0 2001:db8:10::fffe
# 删除:
netsh interface ipv6 delete route ::/0 Ethernet0 2001:db8:10::ffferoute print

2)在网关机器上配置 RA下发默认路由:
netsh interface ipv6 set interface "Ethernet0" forwarding=enabled advertise=enabled managedaddress=enabled otherstateful=enabled advertisedefaultroute=enabled
forwarding=enabled //让Windows 剧本IPv6路由器行为
advertise=enabled //开启RA通告
managedaddress=enabled //RA里 M flag 设置为 1,让客户端通告DHCPv6获取地址
otherstateful=enabled //RA里 O flag 设置为 1,让客户端通告DHCPv6获取 Option(DNS、域名)
advertisedefaultroute=enabled //下发默认路由(将自身设置为客户端的IPv6默认网关)route print

4、配置 分配固定地址:
IPv6 固定地址与IPv4不一样,需要 Duid、Iaid
1)查看客户端 Duid、laid:
# 先让客户端获取一次DHCPv6地址,然后之际查看租约:
get-dhcpserverv6lease -prefix 2001:db8:10:: | fl //因为太长了不会完全显示,需要加一个 fl
根据IP找到 属于客户端的 Duid、Iaid
2)配置 分配固定地址:
图形化有点问题,输入正确但是添加不成功,直接使用命令行添加
## ClientDuid 必须要引号包裹
Add-DhcpServerv6Reservation -Prefix 2001:db8:10:: -IPAddress 2001:db8:10::1000 -ClientDuid "00-01-00-01-31-a8-c4-66-00-0c-29-96-1f-54" -Iaid 100666409 -Name Client1
# 删除:
Remove-DhcpServerv6Reservation -IPAddress 2001:db8:10::1000 //不建议图形化删除,图形化删除后命令行无法再添加回来·客户端重新获取地址:
ipconfig /release6
ipconfig /renew6
5、如果要排除配置地址:
排除 2001:db8:10::1 ~ 2001:db8:10::3

排除 单个地址:

或者这样写也可以:

二、配置 SLAAC:
# advertisedefaultroute=enabled 表示是否下发默认路由
netsh interface ipv6 set interface "Ethernet0" forwarding=enabled advertise=enabled advertisedefaultroute=enabled
# 一般都是用set,因为接口已经有这个地址,已经有了这个路由:
Set-NetRoute -DestinationPrefix "2001:db8:12::/64" -InterfaceAlias "Ethernet2" -Publish Yes
# New-NetRoute -DestinationPrefix "2001:db8:12::/64" -InterfaceAlias "Ethernet2" -Publish Yes三、DHCPv6中继(rras):
需要额外这个配置:
将 这个值改为0
