11-DHCPv6配置
本章节下载: 11-DHCPv6配置 (454.31 KB)
DHCPv6(Dynamic Host Configuration Protocol for IPv6,支持IPv6的动态主机配置协议)是针对IPv6编址方案设计的,为主机分配IPv6前缀、IPv6地址和其他网络配置参数的协议。
与其他IPv6地址分配方式(手工配置、通过路由器公告消息中的网络前缀无状态自动配置等)相比,DHCPv6具有以下优点:
· 更好地控制地址的分配。通过DHCPv6不仅可以记录为主机分配的地址,还可以为特定主机分配特定的地址,以便于网络管理。
· 为设备分配前缀,便于全网络的自动配置和管理。
· 除了IPv6前缀、IPv6地址外,还可以为主机分配DNS服务器、域名等网络配置参数。
DHCPv6中采用组播地址FF05::1:3来表示站点本地范围内所有的DHCPv6服务器;采用组播地址FF02::1:2来表示链路本地范围内所有的DHCPv6服务器和中继。
DUID(DHCP Unique Identifier,DHCP唯一标识符)是一台DHCPv6设备(包括客户端、服务器和中继)的唯一标识。在DHCPv6报文交互过程中,DHCPv6客户端、服务器和中继通过在报文中添加DUID来标识自己。
DUID的类型有多种。目前,设备只支持RFC 3315中规定的DUID-LL(DUID Based on Link-layer Address,基于链路层地址的DUID)类型的DUID。DUID-LL的结构如图1-1所示。
· DUID type:DUID类型。目前,设备只支持类型为DUID-LL的DUID,类型取值为0x0003。
· Hardware type:硬件类型。设备支持的硬件类型为以太网,取值为0x0001。
· Link layer address:链路层地址。取值为设备的桥MAC地址。
IA(Identity Association,标识联盟)用于管理分配给客户端的一组地址和前缀等信息,通过IAID标识。一个客户端可以有多个IA,如客户端的每个接口拥有一个IA,用来管理该接口获取的地址和前缀等信息。
IAID是IA的标识符,由客户端选择。在一个客户端上不同IA的IAID不能相同。
绑定是DHCPv6服务器上记录的为DHCPv6客户端分配的地址、前缀、网络参数等信息。绑定信息中包括IPv6地址或前缀、客户端DUID、IAID、有效生命期、首选生命期、租约过期时间等。
PD(Prefix Delegation,前缀授权)是DHCPv6服务器为分配的前缀创建的绑定信息。前缀绑定信息中包括IPv6前缀、客户端DUID、IAID、有效生命期、首选生命期、租约过期时间等信息。
DHCPv6服务器为客户端分配地址/前缀的过程分为两类:
· 交互两个消息的快速分配过程
· 交互四个消息的分配过程
交互两个消息的分配过程如图1-2所示。
图1-2 地址/前缀快速分配过程
交互两个消息分配过程的简述如表1-1。
步骤 |
发送的消息 |
说明 |
(1) |
携带Rapid Commit选项的Solicit |
DHCPv6客户端在发送的Solicit消息中携带Rapid Commit选项,标识客户端希望服务器能够快速为其分配地址/前缀和网络配置参数 |
(2) |
Reply |
如果DHCPv6服务器支持快速分配过程,则直接返回Reply消息,为客户端分配IPv6地址/前缀和其他网络配置参数。如果DHCPv6服务器不支持快速分配过程,则采用“1.3.2 交互四个消息的分配过程”为客户端分配IPv6地址/前缀和其他网络配置参数。 |
交互四个消息的分配过程如图1-3所示。
交互四个消息分配过程的简述如表1-2。
步骤 |
发送的消息 |
说明 |
(1) |
Solicit |
DHCPv6客户端发送该消息,请求DHCPv6服务器为其分配IPv6地址/前缀和网络配置参数 |
(2) |
Advertise |
如果Solicit消息中没有携带Rapid Commit选项,或Solicit消息中携带Rapid Commit选项,但服务器不支持快速分配过程,则DHCPv6服务器回复该消息,通知客户端可以为其分配的地址/前缀和网络配置参数 |
(3) |
Request |
如果DHCPv6客户端接收到多个服务器回复的Advertise消息,则根据消息接收的先后顺序、服务器优先级等,选择其中一台服务器,并向该服务器发送Request消息,请求服务器确认为其分配地址/前缀和网络配置参数 |
(4) |
Reply |
DHCPv6服务器回复该消息,确认将地址/前缀和网络配置参数分配给客户端使用 |
DHCPv6服务器分配给客户端的IPv6地址/前缀具有一定的租借期限,该租借期限称为租约。租约
由有效生命期(Valid Lifetime)决定。地址/前缀的租借时间到达有效生命期后,DHCPv6客户端不能再使用该地址/前缀。在有效生命期到达之前,如果DHCPv6客户端希望继续使用该地址/前缀,则需要更新地址/前缀租约。
图1-4 通过Renew更新地址/前缀租约
如图1-4所示,地址/前缀租借时间到达时间T1(推荐值为首选生命期Preferred Lifetime的一半)时,DHCPv6客户端会发送Renew报文,以进行地址/前缀租约的更新。如果客户端可以继续使用该地址/前缀,则DHCPv6服务器回应续约成功的Reply报文,通知DHCPv6客户端已经成功更新地址/前缀租约;如果该地址/前缀不可以再分配给该客户端,则DHCPv6服务器回应续约失败的Reply报文,通知客户端不能获得新的租约。
图1-5 通过Rebind更新地址/前缀租约
如图1-5所示,如果在T1时发送Renew请求更新租约,但是没有收到DHCPv6服务器的回应报文,则DHCPv6客户端会在T2(推荐值为首选生命期的0.8倍)时,向所有DHCPv6服务器组播发送Rebind报文请求更新租约。如果客户端可以继续使用该地址/前缀,则DHCPv6服务器回应续约成功的Reply报文,通知DHCPv6客户端已经成功更新地址/前缀租约;如果该地址/前缀不可以再分配给该客户端,则DHCPv6服务器回应续约失败的Reply报文,通知客户端不能获得新的租约;如果DHCPv6客户端没有收到服务器的应答报文,则到达有效生命期后,客户端停止使用该地址/前缀。
有效生命期和首选生命期的详细介绍请参见“三层技术-IP业务配置指导”中的“IPv6基础”。
与DHCPv6相关的协议规范有:
· RFC 3736:Stateless Dynamic Host Configuration Protocol (DHCP) Service for IPv6
· RFC 3315:Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
· RFC 2462:IPv6 Stateless Address Autoconfiguration
· RFC 3633:IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6
为了便于集中管理IPv6地址,简化网络配置,DHCPv6服务器可以用来为DHCPv6客户端分配IPv6地址、IPv6前缀和其他网络配置参数(如DNS服务器地址)。
图2-1 DHCPv6服务器分配前缀应用组网图
DHCPv6服务器为DHCPv6客户端分配IPv6前缀的典型组网,如图2-1所示。DHCPv6客户端获取到IPv6前缀后,可以向所在网络发送包含该前缀信息的RA消息,以便网络内的主机根据该前缀自动配置IPv6地址。
目前,设备作为DHCPv6服务器时,只能为DHCPv6客户端分配前缀,不能分配地址。
DHCPv6地址池用来保存可供分配的IPv6地址、IPv6前缀及DNS服务器地址等网络配置参数。DHCPv6服务器从地址池中选择IPv6地址、IPv6前缀及其他网络配置参数,分配给DHCPv6客户端。
DHCPv6地址池可以包括如下内容:
· 静态绑定的IPv6前缀:用来实现IPv6前缀的静态分配,即DHCPv6服务器为特定客户端分配固定的IPv6前缀。
· 引用的包含一定前缀范围的前缀池:用来实现IPv6前缀的动态分配,即DHCPv6服务器从该前缀范围中动态选择可用前缀分配给客户端。
· 静态绑定的IPv6地址:用来实现IPv6地址的静态分配,即DHCPv6服务器为特定客户端分配固定的IPv6地址。
· IPv6地址网段:用来实现IPv6地址的动态分配,即DHCPv6服务器从地址网段中动态选择可用地址分配给客户端。
· DNS服务器地址。
· 域名。
· SIP服务器地址或域名。
· AFTR(Address Family Transition Router,地址族转换路由器)地址。
配置DHCPv6服务器为DHCPv6客户端分配IPv6前缀时,必须在DHCPv6服务器的接口上指定引用的地址池。DHCPv6服务器从接口接收到客户端发送的请求分配前缀的报文后,首先在所有地址池中查找是否存在匹配的静态绑定前缀。若存在,则将该前缀及该前缀所在地址池的网络配置参数分配给客户端。若不存在,则从该接口引用的地址池中选择前缀和其他网络配置参数,分配给客户端。
DHCPv6服务器从接口接收到客户端发送的请求分配地址的报文后,地址选择过程为:
(1) 首先在所有地址池中查找是否存在匹配的静态绑定地址。若存在,则将该地址及该地址所在地址池的网络配置参数分配给客户端。
(2) 若不存在,则选择合适的地址池。如果在接口上指定了引用的DHCPv6地址池,则选取该接口引用的地址池;如果没有在接口上指定引用的DHCPv6地址池,则按照如下方式选择地址池:
· 若DHCPv6请求报文的源地址是链路本地地址,则表明客户端与收到请求报文的接口处在同一链路,选取与该接口的第一个IPv6地址最长匹配的网段所在的地址池;
· 若接收到的DHCPv6请求报文是由DHCPv6中继转发的,则选取与请求报文中的链路地址(link-address字段的值,即离DHCPv6客户端最近的DHCPv6中继地址)最长匹配的网段所在的地址池。
(3) 选择了合适的地址池后,DHCPv6服务器从该地址池中选择IPv6地址和其他网络配置参数,分配给客户端。
表2-1 DHCPv6服务器配置任务简介
配置任务 |
说明 |
详细配置 |
使能DHCPv6服务器功能 |
必选 |
|
配置为DHCPv6客户端分配IPv6前缀 |
根据实际情况选择其一 |
|
配置为DHCPv6客户端分配IPv6地址 |
||
在DHCPv6地址池中配置网络参数 |
可选 |
|
配置接口工作在DHCPv6服务器模式 |
必选 |
配置DHCPv6服务器功能之前,需要先执行ipv6命令使能IPv6报文收发功能。ipv6命令的详细介绍请参见“三层技术-IP业务命令参考”中的“IPv6基础”。
表2-2 使能DHCPv6服务器功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能DHCPv6服务器功能 |
ipv6 dhcp server enable |
必选 缺省情况下,DHCPv6服务器功能处于关闭状态 |
可以通过以下两种方式配置DHCPv6服务器为DHCPv6客户端分配IPv6前缀:
· 在地址池中配置静态绑定前缀:指定DUID、IAID及前缀的静态绑定关系后,如果DHCPv6请求报文中的DUID、IAID与静态绑定的DUID、IAID都相同,则将静态绑定的前缀分配给此DHCPv6客户端。如果只指定了DUID和前缀的绑定关系,没有指定静态绑定的IAID,则只要请求报文中的DUID与静态绑定的DUID相同,就将静态绑定的前缀分配给此DHCPv6客户端。
· 在地址池中引用包含一定前缀范围的前缀池:接收到DHCPv6客户端的前缀分配请求后,DHCPv6服务器从前缀范围中动态选择可用前缀,分配给客户端。
表2-3 配置为DHCPv6客户端分配IPv6前缀
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建前缀池 |
ipv6 dhcp prefix-pool prefix-pool-number prefix prefix/prefix-len assign-len assign-len |
DHCPv6服务器为DHCPv6客户端动态分配IPv6前缀时,为必选;其他情况下,不需要进行本配置 缺省情况下,设备上不存在任何前缀池 |
创建DHCPv6地址池,并进入DHCPv6地址池视图 |
ipv6 dhcp pool pool-number |
必选 缺省情况下,设备上不存在任何DHCPv6地址池 |
配置静态绑定前缀 |
static-bind prefix prefix/prefix-len duid duid [ iaid iaid ] [ preferred-lifetime preferred-lifetime valid-lifetime valid-lifetime ] |
二者至少选择其一 缺省情况下,没有指定地址池的静态绑定前缀和可动态分配的前缀 |
配置地址池引用前缀池 |
prefix-pool prefix-pool-number [ preferred-lifetime preferred-lifetime valid-lifetime valid-lifetime ] |
· 重复执行static-bind prefix命令,可以配置多个静态绑定的IPv6前缀。
· 一个IPv6前缀只能与一个客户端绑定。不允许通过重复执行static-bind prefix命令的方式修改IPv6前缀与客户端的绑定关系、前缀的首选生命期和有效生命期。只有删除该IPv6前缀的静态绑定配置后,才能将该IPv6前缀与其他客户端绑定,或修改前缀的首选生命期和有效生命期。
· 一个地址池最多可以引用一个前缀池。
· 地址池可以引用并不存在的前缀池,但是,此时设备无法从该地址池中动态选择前缀分配给客户端。只有创建该前缀池后,才能支持前缀的动态选择。
· 不允许通过重复执行prefix-pool命令的方式修改地址池引用的前缀池、前缀的首选生命期和有效生命期。只有取消当前地址池引用的前缀池后,才能引用其他的前缀池,或修改首选生命期和有效生命期。
可以通过以下两种方式配置DHCPv6服务器为DHCPv6客户端分配IPv6地址:
· 在地址池中配置静态绑定地址:指定DUID、IAID及地址的静态绑定关系后,如果DHCPv6请求报文中的DUID、IAID与静态绑定的DUID、IAID都相同,则将静态绑定的地址分配给此DHCPv6客户端。如果只指定了DUID和地址的绑定关系,没有指定静态绑定的IAID,则只要请求报文中的DUID与静态绑定的DUID相同,就将静态绑定的地址分配给此DHCPv6客户端。
· 在地址池中配置动态分配的地址网段:接收到DHCPv6客户端的地址分配请求后,DHCPv6服务器从地址网段中动态选择可用地址,分配给客户端。
表2-4 配置为DHCPv6客户端分配IPv6地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DHCPv6地址池,并进入DHCPv6地址池视图 |
ipv6 dhcp pool pool-number |
必选 缺省情况下,设备上不存在任何DHCPv6地址池 |
配置静态绑定地址 |
static-bind address ipv6-address/addr-prefix-length duid duid [ iaid iaid ] [ preferred-lifetime preferred-lifetime valid-lifetime valid-lifetime ] |
二者至少选择其一 缺省情况下,没有指定地址池的静态绑定地址和动态分配地址 |
配置动态分配的地址网段 |
network network-address/prefix-length [ preferred-lifetime preferred-lifetime valid-lifetime valid-lifetime ] |
· 重复执行static-bind address命令,可以配置多个静态绑定的IPv6地址。
· 一个IPv6地址只能与一个客户端绑定。不允许通过重复执行static-bind address命令的方式修改IPv6地址与客户端的绑定关系、地址的首选生命期和有效生命期。只有删除该IPv6地址的静态绑定配置后,才能通过重新配置将该IPv6地址与其他客户端绑定,或修改地址的首选生命期和有效生命期。
· 每个DHCPv6地址池只能配置一个网段,在相同地址池中重复执行network命令,新的配置会覆盖已有配置。如果相邻两次network命令配置的地址网段相同而首选生命期和有效生命期不同,则新配置的首选生命期和有效生命期只能在新生成的绑定信息中生效,原有绑定信息不受影响。
· 不能在不同地址池下使用network命令配置相同的地址网段。
除了分配的IPv6地址和IPv6前缀外,DHCPv6地址池中还可以配置其他网络参数,如DNS服务器地址、域名、SIP服务器地址、SIP服务器域名和AFTR(Address Family Transition Router,地址族转换路由器)地址。
表2-5 在DHCPv6地址池中配置网络参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DHCPv6地址池视图 |
ipv6 dhcp pool pool-number |
必选 缺省情况下,设备上不存在任何DHCPv6地址池 |
配置为客户端分配的DNS服务器地址 |
dns-server ipv6-address |
可选 缺省情况下,没有指定为客户端分配的DNS服务器地址 |
配置为客户端分配的域名 |
domain-name domain-name |
可选 缺省情况下,没有指定为客户端分配的域名 |
配置为客户端分配的SIP服务器地址或域名 |
sip-server { address ipv6-address | domain-name domain-name } |
可选 缺省情况下,没有指定为客户端分配的SIP服务器地址或域名 |
配置为客户端分配的AFTR地址 |
ds-lite address ipv6-address |
可选 缺省情况下,没有指定为客户端分配的AFTR地址 |
· 一个地址池下最多可以配置8个DNS服务器地址、1个域名、8个SIP服务器地址和8个SIP服务器域名。
· AFTR的详细介绍,请参见“三层技术-IP业务配置指导”中的“隧道”。
配置DHCPv6服务器为客户端分配IPv6前缀时,必须指定接口引用的地址池;配置DHCPv6服务器为客户端分配IPv6地址时,可以不指定接口引用的地址池。
表2-6 配置接口工作在DHCPv6服务器模式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口工作在DHCPv6服务器模式 |
ipv6 dhcp server [ allow-hint | apply pool pool-number | preference preference-value | rapid-commit ] * |
必选 缺省情况下,接口没有工作在DHCPv6服务器模式 |
· 一个接口不能同时作为DHCPv6服务器和DHCPv6中继。
· 建议不要在一个接口上同时配置DHCPv6服务器和DHCPv6客户端功能。
· 一个接口上最多只能引用一个地址池。
· 接口可以引用并不存在的地址池,但是,此时该接口无法为客户端分配前缀、地址等信息。只有创建该地址池后,才能为客户端分配前缀、地址等信息。
· 不允许通过重复执行ipv6 dhcp server命令的方式修改接口引用的地址池和服务器优先级等参数。只有取消当前接口工作在DHCPv6服务器模式后,才能修改参数。
在完成上述配置后,在任意视图下执行display命令可以显示配置后DHCPv6服务器的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除DHCPv6服务器的统计信息。
表2-7 DHCPv6服务器显示和维护
操作 |
命令 |
显示本设备DUID |
display ipv6 dhcp duid [ | { begin | exclude | include } regular-expression ] |
显示DHCPv6地址池的信息 |
display ipv6 dhcp pool [ pool-number ] [ | { begin | exclude | include } regular-expression ] |
显示前缀池的信息 |
display ipv6 dhcp prefix-pool [ prefix-pool-number ] [ | { begin | exclude | include } regular-expression ] |
显示接口上的DHCPv6服务器信息 |
display ipv6 dhcp server [ interface interface-type interface-number ] [ | { begin | exclude | include } regular-expression ] |
显示DHCPv6的地址冲突信息 |
display ipv6 dhcp server conflict { address ipv6-address | all | pool pool-number } [ | { begin | exclude | include } regular-expression ] |
显示租约过期的DHCPv6地址绑定信息 |
display ipv6 dhcp server expired { address ipv6-address | all | pool pool-number } [ | { begin | exclude | include } regular-expression ] |
显示DHCPv6地址绑定信息 |
display ipv6 dhcp server ip-in-use { address ipv6-address | all | pool pool-number } [ | { begin | exclude | include } regular-expression ] |
显示DHCPv6前缀绑定信息 |
display ipv6 dhcp server pd-in-use { all | pool pool-number | prefix prefix/prefix-len | prefix-pool prefix-pool-number } [ | { begin | exclude | include } regular-expression ] |
显示DHCPv6服务器的报文统计信息 |
display ipv6 dhcp server statistics [ | { begin | exclude | include } regular-expression ] |
清除DHCPv6地址冲突信息 |
reset ipv6 dhcp server conflict { address ipv6-address | all | pool pool-number } |
清除DHCPv6的正式地址绑定和临时地址绑定信息 |
reset ipv6 dhcp server ip-in-use { address ipv6-address | all | pool pool-number } |
清除DHCPv6的正式前缀绑定和临时前缀绑定信息 |
reset ipv6 dhcp server pd-in-use { all | pool pool-number | prefix prefix/prefix-len } |
清除DHCPv6服务器的报文统计信息 |
reset ipv6 dhcp server statistics |
DHCPv6客户端从DHCPv6服务器获取IPv6地址前缀,以及网络配置参数:DNS服务器地址、域名、SIP服务器地址和SIP服务器域名。其中:
· Switch作为DHCPv6服务器,地址为1::1/64。
· DHCPv6服务器为DUID为00030001CA0006A40000的客户端固定分配前缀2001:0410:0201::/48;为其他客户端分配2001:0410::/48~2001:0410:FFFF::/48之间除2001:0410:0201::/48外的前缀。
· DNS服务器地址为2:2::3。
· DHCPv6客户端所属域的域名为aaa.com。
· SIP服务器地址为2:2::4,域名为bbb.com。
在DHCPv6服务器上需要进行如下配置:
· 使能IPv6报文转发功能和DHCPv6服务器功能。
· 创建前缀池。为了满足为客户端分配2001:0410::/48~2001:0410:FFFF::/48范围的前缀这一需求,需要配置前缀池包含的前缀为2001:0410::/32,分配的前缀长度为48。
· 创建地址池。在地址池配置静态绑定前缀,引用前缀池,并配置DNS服务器地址等参数。
· 配置连接DHCPv6客户端的接口工作在DHCPv6服务器模式,并指定接口引用的地址池。
图2-2 DHCPv6服务器分配前缀及网络参数配置组网图
(1) 配置DHCPv6服务器
# 使能IPv6报文转发功能及DHCPv6服务器功能。
<Switch> system-view
[Switch] ipv6
[Switch] ipv6 dhcp server enable
# 配置VLAN接口2的IPv6地址。
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] ipv6 address 1::1/64
[Switch-Vlan-interface2] quit
# 配置前缀池1,包含的前缀为2001:0410::/32,分配的前缀长度为48。
[Switch] ipv6 dhcp prefix-pool 1 prefix 2001:0410::/32 assign-len 48
# 创建地址池1。
[Switch] ipv6 dhcp pool 1
# 配置地址池1引用已存在的前缀池1,并设置首选生命期为1天,有效生命期为3天。
[Switch-dhcp6-pool-1] prefix-pool 1 preferred-lifetime 86400 valid-lifetime 259200
# 在地址池1中配置静态绑定前缀:绑定的前缀为2001:0410:0201::/48,绑定的客户端DUID为00030001CA0006A40000,并设置首选生命期为1天,有效生命期为3天。
[Switch-dhcp6-pool-1] static-bind prefix 2001:0410:0201::/48 duid 00030001CA0006A40000 preferred-lifetime 86400 valid-lifetime 259200
# 配置为客户端分配的DNS服务器地址为2:2::3。
[Switch-dhcp6-pool-1] dns-server 2:2::3
# 配置为客户端分配的域名为aaa.com。
[Switch-dhcp6-pool-1] domain-name aaa.com
# 配置为客户端分配的SIP服务器地址为2:2::4,域名为bbb.com。
[Switch-dhcp6-pool-1] sip-server address 2:2::4
[Switch-dhcp6-pool-1] sip-server domain-name bbb.com
[Switch-dhcp6-pool-1] quit
# 配置VLAN接口2工作在DHCPv6服务器模式,引用地址池1,使能期望前缀分配和前缀快速分配功能,并将优先级设置为最高。
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] ipv6 dhcp server apply pool 1 allow-hint preference 255 rapid-commit
(2) 验证配置结果
# 完成上述配置后,查看VLAN接口2上的DHCPv6服务器配置信息。
[Switch-Vlan-interface2] display ipv6 dhcp server interface vlan-interface 2
Using pool: 1
Preference value: 255
Allow-hint: Enabled
Rapid-commit: Enabled
# 显示地址池1的信息。
[Switch-Vlan-interface2] display ipv6 dhcp pool 1
Pool: 1
Static bindings:
DUID: 00030001CA0006A40000
IAID: 0xA1A1A1A1
Prefix: 2001:410:201::/48
Preferred lifetime 86400, valid lifetime 2592000
Prefix pool: 1
Preferred lifetime 86400, valid lifetime 2592000
DNS server addresses:
2:2::3
Domain name:
aaa.com
SIP server addresses:
2:2::4
SIP server domain names:
bbb.com
# 显示前缀池1的信息。
[Switch-Vlan-interface2] display ipv6 dhcp prefix-pool 1
Prefix: 2001:410::/32
Assigned length: 48
Total prefix number: 65536
Available: 65535
In-use: 0
Static: 1
# DUID为00030001CA0006A40000的客户端获取IPv6前缀后,显示前缀绑定信息。
[Switch-Vlan-interface2] display ipv6 dhcp server pd-in-use all
Total number = 1
Prefix Type Pool Expiration time
2001:410:201::/48 Static(C) 1 Jul 10 2011 19:45:01
# 其他客户端获取IPv6前缀后,显示前缀绑定信息。
[Switch-Vlan-interface2] display ipv6 dhcp server pd-in-use all
Total number = 2
Prefix Type Pool Expiration time
2001:410:201::/48 Static(C) 1 Jul 10 2011 19:45:01
2001:410::/48 Auto(C) 1 Jul 10 2011 20:44:05
DHCPv6客户端从DHCPv6服务器获取IPv6地址。其中:
· Switch作为DHCPv6服务器,地址为1::1/64。
· DHCPv6服务器为DUID为FF00010006498D3322000102030405的客户端固定分配地址1::A/124,为DUID为00030001CA0006A40000的客户端固定分配地址1::B/124。
在DHCPv6服务器上需要进行如下配置:
· 使能IPv6报文转发功能和DHCPv6服务器功能。
· 创建地址池。为了满足DHCPv6服务器为特定客户端分配固定地址的要求,需要在地址池中配置相应的静态绑定地址。
· 配置连接DHCPv6客户端的接口工作在DHCPv6服务器模式。
图2-3 DHCPv6服务器静态分配地址配置组网图
(1) 配置DHCPv6服务器
# 使能IPv6报文转发功能及DHCPv6服务器功能。
<Switch> system-view
[Switch] ipv6
[Switch] ipv6 dhcp server enable
# 配置接口Vlan-interface 2的IPv6地址。
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] ipv6 address 1::1/64
[Switch-Vlan-interface2] quit
# 创建地址池1。
[Switch] ipv6 dhcp pool 1
# 在地址池1中配置静态绑定地址:地址1::A/124与DUID为FF00010006498D3322000102030405的客户端绑定;地址1::B/124与DUID为00030001CA0006A40000的客户端绑定。设置首选生命期为1天,有效生命期为3天。
[Switch-dhcp6-pool-1] static-bind address 1::A/124 duid FF00010006498D3322000102030405 preferred-lifetime 86400 valid-lifetime 259200
[Switch-dhcp6-pool-1] static-bind address 1::B/124 duid 00030001CA0006A40000 preferred-lifetime 86400 valid-lifetime 259200
[Switch-dhcp6-pool-1] quit
# 配置接口Vlan-interface 2工作在DHCPv6服务器模式,引用地址池1,使能期望地址分配和地址快速分配功能,并将优先级设置为最高。
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] ipv6 dhcp server apply pool 1 allow-hint preference 255 rapid-commit
(2) 验证配置结果
# 完成上述配置后,查看接口Vlan-interface 2上的DHCPv6服务器配置信息。
[Switch-Vlan-interface2] display ipv6 dhcp server Vlan-interface 2
Using pool: 1
Preference value: 255
Allow-hint: Enabled
Rapid-commit: Enabled
# 显示地址池1的信息。
[Switch-Vlan-interface2] display ipv6 dhcp pool 1
Pool: 1
Static bindings:
DUID: FF00010006498D3322000102030405
IAID: Not configured
Address: 1::A/124
Preferred lifetime 86400, valid lifetime 2592000
DUID: 00030001CA0006A40000
IAID: Not configured
Address: 1::B/124
Preferred lifetime 86400, valid lifetime 2592000
# 客户端获取IPv6地址后,显示地址绑定信息。
[Switch-Vlan-interface2] display ipv6 dhcp server ip-in-use address 1::A
Pool: 1
Client: FE80::A8FF:A1E0:FE19:0
Type: Static(C)
DUID: FF00010006498D3322000102030405
IAID: 0x1
Address: 1::A
Preferred lifetime 604800, valid lifetime 2592000
Expires at Dec 23 2010 13:47:52 (2588194 seconds left)
[Switch-Vlan-interface2] display ipv6 dhcp server ip-in-use address 1::B
Pool: 1
Client: FE80::18FE:31EF:EE49:0
Type: Static(C)
DUID: 00030001CA0006A40000
IAID: 0x1
Address: 1::B
Preferred lifetime 604800, valid lifetime 2592000
Expires at Dec 23 2010 13:47:52 (2588194 seconds left)
DHCPv6客户端从DHCPv6服务器获取IPv6地址。其中:
· Switch作为DHCPv6服务器。
· DHCPv6服务器为客户端Host A和Host B分配网段1:2::/32内的地址,为客户端Host C和Host D分配网段1:3::/32内的地址。
在DHCPv6服务器上需要进行如下配置:
· 使能IPv6报文转发功能和DHCPv6服务器功能。
· 在与Host A和Host B相连接的接口Vlan-interface 2上配置地址1:2::1/32,在与Host C和Host D相连接的接口Vlan-interface 3上配置地址1:3::1/32。
· 创建地址池。为了实现为客户端Host A和Host B分配1:2::/32范围的地址,需要配置包含网段1:2::/32的地址池;为了实现为客户端Host C和Host D分配1:3::/32范围的地址,需要配置包含网段1:3::/32的地址池。
· 配置连接DHCPv6客户端的两个接口工作在DHCPv6服务器模式。
图2-4 DHCPv6服务器动态分配地址配置组网图
(1) 配置DHCPv6服务器
# 使能IPv6报文转发功能及DHCPv6服务器功能。
<Switch> system-view
[Switch] ipv6
[Switch] ipv6 dhcp server enable
# 配置接口Vlan-interface 2和接口Vlan-interface 3的IPv6地址。
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] ipv6 address 1:2::1/32
[Switch-Vlan-interface2] quit
[Switch] interface vlan-interface 3
[Switch-Vlan-interface3] ipv6 address 1:3::1/32
[Switch-Vlan-interface3] quit
# 创建地址池1,在地址池1中配置网段1:2::/32,并设置首选生命期为1天,有效生命期为3天。
[Switch] ipv6 dhcp pool 1
[Switch-dhcp6-pool-1] network 1:2::/32 preferred-lifetime 86400 valid-lifetime 259200
[Switch-dhcp6-pool-1] quit
# 创建地址池2,在地址池2中配置网段1:3::/32,并设置首选生命期为1天,有效生命期为3天。
[Switch] ipv6 dhcp pool 2
[Switch-dhcp6-pool-2] network 1:3::/32 preferred-lifetime 86400 valid-lifetime 259200
[Switch-dhcp6-pool-2] quit
# 配置接口Vlan-interface 2工作在DHCPv6服务器模式,使能期望地址分配和地址快速分配功能,不引用任何地址池。
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] ipv6 dhcp server allow-hint rapid-commit
[Switch-Vlan-interface2] quit
# 配置接口Vlan-interface 3工作在DHCPv6服务器方式,使能期望前缀分配和前缀快速分配功能,不引用任何地址池。
[Switch] interface vlan-interface 3
[Switch-Vlan-interface3] ipv6 dhcp server allow-hint rapid-commit
[Switch-Vlan-interface3] quit
(2) 验证配置结果
# 查看接口Vlan-interface 2和Vlan-interface 3上的DHCPv6服务器配置信息。
[Switch] display ipv6 dhcp server interface Vlan-interface 2
Using pool: 1
Preference value: 0
Allow-hint: Enabled
Rapid-commit: Enabled
[Switch] display ipv6 dhcp server interface Vlan-interface 3
Preference value: 0
Allow-hint: Enabled
Rapid-commit: Enabled
# 显示地址池1的信息。
[Switch] display ipv6 dhcp pool 1
Pool: 1
Network: 1:2::/32
Preferred lifetime 86400, valid lifetime 259200
# 显示地址池2的信息。
[Switch] display ipv6 dhcp pool 2
Pool: 2
Network: 1:3::/32
Preferred lifetime 86400, valid lifetime 259200
# 客户端Host A和Host B成功获取地址后,显示地址绑定信息。
[Switch] display ipv6 dhcp server ip-in-use
Total number = 2
Address Type Pool Expiration time
1:2::2 Auto(C) 1 Jul 10 2011 19:45:01
1:2::3 Auto(C) 1 Jul 10 2011 19:45:01
# 客户端Host C和Host D获取IPv6地址后,显示地址绑定信息。
[Switch] display ipv6 dhcp server ip-in-use
Total number = 4
Address Type Pool Expiration time
1:2::2 Auto(C) 1 Jul 10 2011 19:45:01
1:2::3 Auto(C) 1 Jul 10 2011 19:45:01
1:3::2 Auto(C) 2 Jul 10 2011 19:47:01
1:3::3 Auto(C) 2 Jul 10 2011 19:47:01
图3-1 DHCPv6中继典型组网
DHCPv6客户端通常通过链路本地范围的组播地址与DHCPv6服务器通信,以获取IPv6地址和其他网络配置参数。如图3-1所示,服务器和客户端不在同一个链路范围内时,服务器和客户端无法直接通信,需要通过DHCPv6中继来转发报文。部署DHCPv6中继可以避免在每个链路范围内都部署DHCPv6服务器,既节省了成本,又便于进行集中管理。
图3-2 DHCPv6中继的工作过程
如图3-2所示,以交互两个消息的快速分配过程为例,DHCPv6客户端通过DHCPv6中继,从DHCPv6服务器获取IPv6地址和其他网络配置参数的过程为:
(1) DHCPv6客户端向所有DHCPv6服务器和中继的组播地址FF02::1:2发送携带Rapid Commit选项的Solicit消息;
(2) DHCPv6中继接收到Solicit消息后,将其封装在Relay-forward报文的中继消息选项(Relay Message Option)中,并将Relay-forward报文发送给DHCPv6服务器;
(3) DHCPv6服务器从Relay-forward报文中解析出客户端的Solicit消息,为客户端选取IPv6地址和其他参数,构造Reply消息,将Reply消息封装在Relay-reply报文的中继消息选项中,并将Relay-reply报文发送给DHCPv6中继;
(4) DHCPv6中继从Relay-reply报文中解析出服务器的Reply消息,转发给DHCPv6客户端,DHCPv6客户端根据DHCPv6服务器分配的IPv6地址和其他参数进行网络配置。
工作在DHCPv6中继模式的接口接收到DHCPv6客户端发来的报文后,将其封装在Relay-forward报文中,并发送给指定的DHCPv6服务器,由DHCPv6服务器为客户端分配IPv6地址和其他网络配置参数。
配置DHCPv6中继之前,需要通过ipv6命令使能IPv6报文的转发功能。关于IPv6的详细介绍请参见“三层技术-IP业务配置指导”中的“IPv6基础”。
表3-1 配置DHCPv6中继
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口工作在DHCPv6中继模式,并指定DHCPv6服务器的地址 |
ipv6 dhcp relay server-address ipv6-address [ interface interface-type interface-number ] |
必选 缺省情况下,接口未工作在DHCPv6中继模式,也未指定任何DHCPv6服务器 |
· 通过多次执行ipv6 dhcp relay server-address命令可以指定多个DHCPv6服务器,一个接口下最多可以指定8个DHCPv6服务器。DHCPv6中继接收到DHCPv6客户端报文后,将其转发给所有的DHCPv6服务器。
· 如果指定的DHCPv6服务器地址为链路本地地址或链路范围的组播地址,则必须通过ipv6 dhcp relay server-address命令的interface参数指定出接口,否则报文可能会无法到达服务器。
· 通过undo ipv6 dhcp relay server-address命令删除接口上指定的全部DHCPv6服务器后,该接口不再工作在DHCPv6中继模式。
· 一个接口不能同时作为DHCPv6中继和DHCPv6服务器。
在完成上述配置后,在任意视图下执行display命令可以显示配置后的DHCPv6中继的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除DHCPv6中继的统计信息。
表3-2 DHCPv6中继显示和维护
操作 |
命令 |
显示本设备DUID |
display ipv6 dhcp duid [ | { begin | exclude | include } regular-expression ] |
显示DHCPv6中继指定的DHCPv6服务器地址信息 |
display ipv6 dhcp relay server-address { all | interface interface-type interface-number } [ | { begin | exclude | include } regular-expression ] |
显示DHCPv6中继的报文统计信息 |
display ipv6 dhcp relay statistics [ | { begin | exclude | include } regular-expression ] |
清除DHCPv6中继的报文统计信息 |
reset ipv6 dhcp relay statistics |
缺省情况下,以太网接口、VLAN接口及聚合接口处于DOWN状态。如果要对这些接口进行配置,请先使用undo shutdown命令使接口状态处于UP状态。
· DHCPv6客户端所在网络地址为1::/64,DHCPv6服务器的地址为2::2/64。客户端和服务器不在同一个链路,需要通过DHCPv6中继转发报文。
· Switch A作为DHCPv6中继,为客户端和服务器转发报文。
· Switch A同时作为1::/64网络的网关设备,通过RA消息中的M标志位和O标志位指定该网络中的主机通过DHCPv6获取IPv6地址和其他网络配置参数。RA消息的详细介绍,请参见“三层技术-IP业务配置指导”中的“IPv6基础”。
图3-3 DHCPv6中继组网图
(1) 配置Switch A作为DHCPv6中继
# 使能IPv6报文转发功能。
<SwitchA> system-view
[SwitchA] ipv6
# 配置VLAN接口2和VLAN接口3的IPv6地址。
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] ipv6 address 2::1 64
[SwitchA-Vlan-interface2] quit
[SwitchA] interface vlan-interface 3
[SwitchA-Vlan-interface3] ipv6 address 1::1 64
# 配置VLAN接口3工作在DHCPv6中继模式,并指定DHCPv6服务器地址。
[SwitchA-Vlan-interface3] ipv6 dhcp relay server-address 2::2
(2) 配置Switch A作为网关
# 配置发布RA消息,并配置M和O标志位。
[SwitchA-Vlan-interface3] undo ipv6 nd ra halt
[SwitchA-Vlan-interface3] ipv6 nd autoconfig managed-address-flag
[SwitchA-Vlan-interface3] ipv6 nd autoconfig other-flag
(3) 验证配置结果
# 完成上述配置后,查看DHCPv6中继指定的DHCPv6服务器的地址信息。
[SwitchA-Vlan-interface3] display ipv6 dhcp relay server-address all
Interface: Vlan3
Server address(es) Output Interface
2::2
# 查看DHCPv6中继转发报文的统计信息。
[SwitchA-Vlan-interface3] display ipv6 dhcp relay statistics
Packets dropped : 0
Error : 0
Excess of rate limit : 0
Packets received : 14
SOLICIT : 0
REQUEST : 0
CONFIRM : 0
RENEW : 0
REBIND : 0
RELEASE : 0
DECLINE : 0
INFORMATION-REQUEST : 7
RELAY-FORWARD : 0
RELAY-REPLY : 7
Packets sent : 14
ADVERTISE : 0
RECONFIGURE : 0
REPLY : 7
RELAY-FORWARD : 7
RELAY-REPLY : 0
· 设备只有位于DHCPv6客户端与DHCPv6服务器之间,或DHCPv6客户端与DHCPv6中继之间时,DHCPv6 Snooping功能配置后才能正常工作;设备位于DHCPv6服务器与DHCPv6中继之间时,DHCPv6 Snooping功能配置后不能正常工作。
· DHCPv6 Snooping中对于接口的相关配置,目前只能在二层以太网接口或二层聚合接口上进行。关于聚合接口的详细介绍,请参见“二层技术-以太网交换配置指导”中的“以太网链路聚合”。
DHCPv6 Snooping是DHCPv6的一种安全特性,具有如下功能:
· 保证客户端从合法的服务器获取IPv6地址。
· 记录DHCPv6客户端IPv6地址与MAC地址的对应关系。
网络中如果存在私自架设的伪DHCPv6服务器,则可能导致DHCPv6客户端获取错误的IPv6地址和网络配置参数,无法正常通信。为了使DHCPv6客户端能通过合法的DHCPv6服务器获取IPv6地址,DHCPv6 Snooping安全机制允许将端口设置为信任端口(Trusted Port)和不信任端口(Untrusted Port):
· 信任端口正常转发接收到的DHCPv6报文。
· 不信任端口接收到DHCPv6服务器发送的应答报文后,丢弃该报文。
连接DHCPv6服务器、DHCPv6中继或其他DHCPv6 Snooping设备的端口需要设置为信任端口,其他端口设置为不信任端口,从而保证DHCPv6客户端只能从合法的DHCPv6服务器获取地址,私自架设的伪DHCPv6服务器无法为DHCPv6客户端分配地址。如图4-1中,将连接DHCPv6服务器的端口设置为信任端口,其他端口设置为非信任端口。
DHCPv6 Snooping通过监听DHCPv6报文,记录DHCPv6 Snooping表项,其中包括客户端的MAC地址、获取到的IPv6地址、与DHCPv6客户端连接的端口及该端口所属的VLAN等信息。网络管理员可以通过display ipv6 dhcp snooping user-binding命令查看客户端获取的IPv6地址信息,以便了解用户上网时所用的IPv6地址,并对其进行管理和监控。
使能DHCPv6 Snooping功能,必须首先在系统视图下全局使能DHCPv6 Snooping功能。全局使能DHCPv6 Snooping功能,并正确地配置信任端口和非信任端口后,可以保证客户端从合法的服务器获取IPv6地址。但是,此时不会记录DHCPv6 Snooping表项。
如果需要记录DHCPv6 Snooping表项,则需要在全局使能DHCPv6 Snooping功能的基础上,在VLAN视图下使能VLAN内的DHCPv6 Snooping功能。使能VLAN内的DHCPv6 Snooping功能,还可以实现DHCPv6 Snooping设备接收到该VLAN内客户端发送的请求报文后,只通过该VLAN内的信任端口转发该请求报文,不会通过其他非信任端口转发请求报文,以减轻网络负担。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
全局使能DHCPv6 Snooping功能 |
ipv6 dhcp snooping enable |
必选 缺省情况下,DHCPv6 Snooping功能处于关闭状态 |
进入VLAN视图 |
vlan vlan-id |
- |
在VLAN内使能DHCPv6 Snooping功能 |
ipv6 dhcp snooping vlan enable |
可选 缺省情况下,VLAN内DHCPv6 Snooping功能处于关闭状态 |
DHCPv6 Snooping将端口分为两种:
· 信任端口:正常转发接收到的DHCPv6报文。
· 不信任端口:接收到DHCPv6服务器发送的应答报文后,丢弃该报文。
使能VLAN内的DHCPv6 Snooping功能,DHCPv6 Snooping设备接收到该VLAN内客户端发送的请求报文后,只通过该VLAN内的信任端口转发该请求报文,不会通过其他非信任端口转发请求报文,以减轻网络负担。
表4-2 配置DHCPv6 Snooping信任端口
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置端口为信任端口 |
ipv6 dhcp snooping trust |
必选 缺省情况下,全局使能DHCPv6 Snooping功能后,设备的所有端口均为不信任端口 |
· 为了使DHCPv6客户端能从合法的DHCPv6服务器获取IPv6地址,必须将与合法DHCPv6服务器相连的端口设置为信任端口,且设置的信任端口和与DHCPv6客户端相连的端口必须在同一个VLAN内。
· 如果二层以太网接口加入了聚合组,则加入聚合组之前和加入聚合组之后在该接口上进行的DHCPv6 Snooping相关配置不会生效;该接口退出聚合组后,DHCPv6 Snooping的配置才会生效。
通过本配置可以限制接口动态学习DHCPv6 Snooping表项的最大数目,以防止接口学习到大量DHCPv6 Snooping表项,占用过多的系统资源。
表4-3 配置接口动态学习DHCPv6 Snooping表项的最大数目
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口动态学习DHCPv6 Snooping表项的最大数目 |
ipv6 dhcp snooping max-learning-num number |
可选 缺省情况下,不限制接口动态学习DHCPv6 Snooping表项的数目 |
在完成上述配置后,在任意视图下执行display命令可以显示DHCPv6 Snooping的配置情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除DHCPv6 Snooping表项信息。
表4-4 DHCPv6 Snooping显示和维护
操作 |
命令 |
显示DHCPv6 Snooping信任端口信息 |
display ipv6 dhcp snooping trust [ | { begin | exclude | include } regular-expression ] |
显示DHCPv6 Snooping表项信息 |
display ipv6 dhcp snooping user-binding { ipv6-address | dynamic } [ | { begin | exclude | include } regular-expression ] |
清除DHCPv6 Snooping表项 |
reset ipv6 dhcp snooping user-binding { ipv6-address | dynamic } |
缺省情况下,以太网接口、VLAN接口及聚合接口处于DOWN状态。如果要对这些接口进行配置,请先使用undo shutdown命令使接口状态处于UP状态。
Switch B通过以太网端口GigabitEthernet3/0/1连接到DHCPv6服务器,通过以太网端口GigabitEthernet3/0/2、GigabitEthernet3/0/3连接到DHCPv6客户端。GigabitEthernet3/0/1、 GigabitEthernet3/0/2、GigabitEthernet3/0/3都属于VLAN 2。
要求:
· 与DHCPv6服务器相连的端口可以转发DHCPv6服务器的响应报文,而其他端口不转发DHCPv6服务器的响应报文。
· 记录DHCPv6客户端IPv6地址及MAC地址的绑定关系。
图4-2 DHCPv6 Snooping组网示意图
# 全局使能DHCPv6 Snooping功能。
<SwitchB> system-view
[SwitchB] ipv6 dhcp snooping enable
# 将端口GigabitEthernet3/0/1、GigabitEthernet3/0/2、GigabitEthernet3/0/3加入VLAN 2。
[SwitchB] vlan 2
[SwitchB-vlan2] port GigabitEthernet3/0/1 GigabitEthernet3/0/2 GigabitEthernet3/0/3
# 在VLAN 2内使能DHCPv6 Snooping功能。
[SwitchB-vlan2] ipv6 dhcp snooping vlan enable
[SwitchB-vlan2] quit
# 配置GigabitEthernet3/0/1端口为信任端口。
[SwitchB] interface GigabitEthernet 3/0/1
[SwitchB-GigabitEthernet3/0/1] ipv6 dhcp snooping trust
# 验证配置结果。
配置完成后,通过GigabitEthernet3/0/2连接DHCPv6客户端、GigabitEthernet3/0/1连接DHCPv6服务器A,可以发现DHCPv6客户端从DHCPv6服务器Switch A获取到IPv6地址。通过display ipv6 dhcp snooping user-binding命令可以查看生成的DHCPv6 Snooping表项。GigabitEthernet3/0/3连接的伪DHCPv6服务器无法为DHCPv6客户端分配IPv6地址。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!