主机在运行IPv6时,可以通过使用无状态地址自动配置或DHCPv6协议来获取IPv6地址。IPv6动态主机配置协议DHCPv6(Dynamic Host Configuration Protocol for IPv6)采用了客户端/服务器通信模式,是针对IPv6编址方案设计的、为主机分配IPv6地址和其他网络配置参数的协议。
什么是DHCPv6
DHCPv6能够为主机分配IPv6地址以及其他网络配置参数,并能够实现这些参数的集中管理。
主机在运行IPv6时,可以通过使用无状态地址自动配置或DHCPv6协议来获取IPv6地址。
主机使用无状态地址自动配置方案来获取IPv6地址时,路由器并不记录主机的IPv6地址信息,可管理性差;另外,IPv6主机无法获取DNS服务器地址等网络配置信息,在可用性上也存在一定的缺陷。
DHCPv6属于一种有状态地址自动配置协议。在有状态地址配置过程中,DHCPv6服务器为主机分配一个完整的IPv6地址,并提供DNS服务器地址等其他配置信息。此外,DHCPv6服务器还可以对已经分配的IPv6地址和客户端进行集中管理。
DHCPv6服务器与客户端之间使用UDP协议来交互DHCPv6报文,客户端使用的UDP端口号是546,服务器使用的UDP端口号是547。
DHCPv6基本协议架构中,主要包括以下三种角色:
DHCPv6客户端:通过与DHCPv6服务器进行交互,获取IPv6地址/前缀和网络配置信息,完成自身的地址配置功能。
DHCPv6中继:负责转发来自客户端方向或服务器方向的DHCPv6报文,协助DHCPv6客户端和DHCPv6服务器完成地址配置功能。只有当DHCPv6客户端和DHCPv6服务器不在同一链路范围内,或者DHCPv6客户端和DHCPv6服务器无法单播交互的情况下,才需要DHCPv6中继的参与。
DHCPv6服务器:负责处理来自客户端或中继的地址分配、地址续租、地址释放等请求,为客户端分配IPv6地址/前缀和其他网络配置信息。
客户端发送DHCPv6请求报文来获取IPv6地址等网络配置参数,使用的源地址为客户端接口的链路本地地址,目的地址为ff02::1:2。ff02::1:2表示的是所有DHCPv6服务器和中继,这个地址是链路范围的。
DHCP设备唯一标识符DUID(DHCPv6 Unique Identifier)用来标识一台DHCPv6服务器或客户端。每个DHCPv6服务器或客户端有且只有一个DUID。
DUID采用以下两种方式生成:
基于链路层地址(LL):即采用链路层地址方式来生成DUID。
基于链路层地址与时间组合(LLT):即采用链路层地址和时间组合方式来生成DUID。
DHCPv6分配地址时又分为:
DHCPv6有状态自动分配:DHCPv6服务器为客户端分配IPv6地址及其他网络配置参数(如DNS、NIS、SNTP服务器地址等)。
DHCPv6无状态自动分配:主机的IPv6地址仍然通过路由通告方式自动生成,DHCPv6服务器只分配除IPv6地址以外的配置参数(如DNS、NIS、SNTP服务器等)。
DHCPv6客户端在向DHCPv6服务器发送请求报文之前,会发送RS报文,在同一链路范围的路由器接收到此报文后会回复RA报文。在RA报文中包含管理地址配置标记(M)和有状态配置标记(O)。当M取值为1时,启用DHCPv6有状态地址配置,即DHCPv6客户端需要从DHCPv6服务器获取IPv6地址,取值为0则启用IPv6无状态地址自动分配方案。当O取值为1时,用来定义客户端需要通过有状态的DHCPv6来获取其它网络配置参数,如DNS、NIS、SNTP服务器地址等,取值为0则启用IPv6无状态地址自动分配方案。
DHCPV6有状态下发:
IPV6 enable #开启IPV6功能。
Vlan 996 #创建vlan。
interface Vlan996 #进入vlan。
ipv6 address 2001::1/64 #配置IPV6地址。
no ipv6 nd suppress-ra #配置三层接口RA报文的TAG标记。
ipv6 nd managed-config-flag
ipv6 nd other-config-flag
ipv6 dhcp server dhcpv6 preference 80 #下发地址池。
Interface Ethernet1/0/23
switchport access vlan 996 #划分到接口。
#创建地址池,地址池范围,排除地址,dns。
#PC获取到IP地址。
#PING网关。