12-DHCPv6配置
本章节下载: 12-DHCPv6配置 (1.11 MB)
-1目 录
2.6 配置接口工作在DHCPv6服务器模式,并配置地址/前缀分配方式
2.7 配置DHCPv6策略动态分配IPv6地址、前缀和其他参数
2.8 配置DHCPv6服务器发送DHCPv6报文的DSCP优先级
2.13 开启DHCPv6服务器记录的地址租约表项转化为IP Source Guard动态表项的功能
2.16 配置当IPv6地址池可分配的资源耗尽或资源恢复时,系统生成日志信息
3.4.1 指定DHCPv6中继对应的DHCPv6服务器地址
3.5 配置DHCPv6中继为DHCPv6客户端分配的网关地址
3.7 通过smart-relay功能指定DHCPv6报文中填充的中继地址
3.8 配置DHCPv6中继发送DHCPv6报文的DSCP优先级
3.9 配置DHCPv6中继支持的Interface ID选项填充模式
3.10 开启DHCPv6中继支持添加Option 37选项功能
3.11 开启DHCPv6中继支持添加Option 79选项功能
3.15.2 配置清除用户表项时通知DHCPv6服务器释放租约
3.16 开启DHCPv6中继对Confirm请求报文的Reply报文的检查功能
3.17 配置DHCPv6中继丢弃从VXLAN隧道收到的DHCP请求报文
3.18 配置DHCPv6中继支持按照MAC地址表转发DHCPv6应答报文
4.5 配置DHCPv6客户端获取IPv6地址和网络配置参数
4.6 配置DHCPv6客户端获取IPv6前缀和网络配置参数
4.7 配置DHCPv6客户端同时获取IPv6地址、IPv6前缀和网络配置参数
4.8 配置DHCPv6客户端获取除地址/前缀外的其他网络配置参数
4.9 配置DHCPv6客户端发送DHCPv6报文的DSCP优先级
4.11.3 DHCPv6客户端同时申请地址、前缀及网络参数配置举例
5.1.1 保证客户端从合法的服务器获取IPv6地址或IPv6前缀
5.1.2 记录DHCPv6客户端IPv6地址与MAC地址的对应关系
5.1.3 记录DHCPv6客户端IPv6前缀与端口的对应关系
5.1.4 M-LAG组网下的DHCPv6 Snooping功能
5.4.1 在普通组网中配置DHCPv6 Snooping基本功能
5.4.2 在VXLAN组网中配置DHCPv6 Snooping基本功能
5.5 配置DHCPv6 Snooping支持Option 18功能
5.6 配置DHCPv6 Snooping支持Option 37功能
5.8 配置接口动态学习DHCPv6 Snooping表项的最大数目
5.10.1 开启DHCPv6 Snooping的DHCPv6请求方向报文检查功能
5.10.2 开启DHCPv6 Snooping报文阻断功能
5.11 开启DHCPv6 Snooping的轻量级DHCPv6中继功能
5.12 开启DHCPv6 Snooping的Relay-Forward报文检查功能
5.13 开启DHCPv6 Snooping的用户下线探测功能
5.14.1 开启DHCPv6 Snooping日志信息功能
5.14.2 开启DHCPv6 Snooping报文丢弃告警功能
5.17.1 DHCPv6 Snooping基本组网配置举例
5.17.2 按VLAN开启DHCPv6 Snooping配置举例
DHCPv6(Dynamic Host Configuration Protocol for IPv6,支持IPv6的动态主机配置协议)针对IPv6编址方案设计,用来为主机分配IPv6前缀、IPv6地址和其他网络配置参数。
与其他IPv6地址分配方式(包括手工配置、通过路由器公告消息中的网络前缀无状态自动配置等,关于这两种形式的配置,请参见“三层技术-IP业务配置指导”中的“IPv6基础”)相比,DHCPv6具有以下优点:
· 更好地控制地址的分配。通过DHCPv6不仅可以记录为主机分配的地址,还可以为特定主机分配特定的地址,以便于网络管理。
· 为客户端分配前缀,以便于全网络的自动配置和管理。
· 除了IPv6前缀、IPv6地址外,还可以为主机分配DNS服务器、域名后缀等网络配置参数。
DHCPv6服务器为客户端分配地址/前缀的过程分为两类:
· 交互两个消息的快速分配过程
· 交互四个消息的分配过程
图1-1 地址/前缀快速分配过程
如图1-1所示,地址/前缀快速分配过程为:
(1) DHCPv6客户端在向DHCPv6服务器发送的Solicit消息中携带Rapid Commit选项,标识客户端希望服务器能够快速为其分配地址/前缀和其他网络配置参数。
(2) 如果DHCPv6服务器支持快速分配过程,则直接返回Reply消息,为客户端分配IPv6地址/前缀和其他网络配置参数。如果DHCPv6服务器不支持快速分配过程,则采用“1.2.2 交互四个消息的分配过程”为客户端分配IPv6地址/前缀和其他网络配置参数。
交互四个消息的分配过程如图1-2所示。
交互四个消息分配过程的简述如表1-1。
步骤 |
发送的消息 |
说明 |
(1) |
Solicit |
DHCPv6客户端发送该消息,请求DHCPv6服务器为其分配IPv6地址/前缀和网络配置参数 |
(2) |
Advertise |
如果Solicit消息中没有携带Rapid Commit选项,或Solicit消息中携带Rapid Commit选项,但服务器不支持快速分配过程,则DHCPv6服务器回复该消息,通知客户端可以为其分配的地址/前缀和网络配置参数 |
(3) |
Request |
如果DHCPv6客户端接收到多个服务器回复的Advertise消息,则根据消息接收的先后顺序、服务器优先级等,选择其中一台服务器,并向该服务器发送Request消息,请求服务器确认为其分配地址/前缀和网络配置参数 |
(4) |
Reply |
DHCPv6服务器回复该消息,确认将地址/前缀和网络配置参数分配给客户端使用 |
DHCPv6服务器分配给客户端的IPv6地址/前缀具有一定的租借期限,该租借期限称为租约。租借期限由有效生命期决定。地址/前缀的租借时间到达有效生命期后,DHCPv6客户端不能再使用该地址/前缀。在有效生命期到达之前,如果DHCPv6客户端希望继续使用该地址/前缀,则需要申请延长地址/前缀租约。
图1-3 通过Renew更新地址/前缀租约
如图1-3所示,地址/前缀租借时间到达时间T1(推荐值为首选生命期的一半)时,DHCPv6客户端会向为它分配地址/前缀的DHCPv6服务器发送Renew报文,以进行地址/前缀租约的更新。如果客户端可以继续使用该地址/前缀,则DHCPv6服务器回应续约成功的Reply报文,通知DHCPv6客户端已经成功更新地址/前缀租约;如果该地址/前缀不可以再分配给该客户端,则DHCPv6服务器回应续约失败的Reply报文,通知客户端不能获得新的租约。
图1-4 通过Rebind更新地址/前缀租约
如图1-4所示,如果在T1时发送Renew请求更新租约,但是未收到DHCPv6服务器的回应报文,则DHCPv6客户端会在T2(推荐值为首选生命期的0.8倍)时,向所有DHCPv6服务器组播发送Rebind报文请求更新租约。如果客户端可以继续使用该地址/前缀,则DHCPv6服务器回应续约成功的Reply报文,通知DHCPv6客户端已经成功更新地址/前缀租约;如果该地址/前缀不可以再分配给该客户端,则DHCPv6服务器回应续约失败的Reply报文,通知客户端不能获得新的租约;如果DHCPv6客户端未收到服务器的应答报文,则到达有效生命期后,客户端停止使用该地址/前缀。有效生命期和首选生命期的详细介绍请参见“三层技术-IP业务配置指导”中的“IPv6基础”。
DHCPv6服务器可以为已经具有IPv6地址/前缀的客户端分配其他网络配置参数,该过程称为DHCPv6无状态配置。
DHCPv6客户端通过地址无状态自动配置功能成功获取IPv6地址后,即DHCPv6客户端根据路由器发现/前缀发现所获取的信息自动配置IPv6地址后,如果接收到的RA(Router Advertisement,路由器通告)报文中M标志位(Managed address configuration flag,被管理地址配置标志位)取值为0、O标志位(Other stateful configuration flag,其他配置标志位)取值为1,则DHCPv6客户端会自动启动DHCPv6无状态配置功能,以获取除地址/前缀外的其他网络配置参数。
图1-5 DHCPv6无状态配置工作过程
如图1-5所示,DHCPv6无状态配置的具体过程为:
(1) 客户端以组播的方式向DHCPv6服务器发送Information-request报文,该报文中携带Option Request选项,指定客户端需要从服务器获取的配置参数。
(2) 服务器收到Information-request报文后,为客户端分配网络配置参数,并单播发送Reply报文将网络配置参数返回给客户端。
(3) 客户端检查Reply报文中提供的信息,如果与Information-request报文中请求的配置参数相符,则按照Reply报文中提供的参数进行网络配置;否则,忽略该参数。如果接收到多个与请求相符的Reply报文,客户端将选择最先收到的Reply报文,并根据该报文中提供的参数完成客户端无状态配置。
Option 18称为接口ID选项(Interface ID),设备接收到DHCPv6客户端发送的DHCPv6请求报文后,在该报文中添加Option 18选项,并转发给DHCPv6服务器。服务器可根据Option 18选项中的客户端信息选择合适的地址池为DHCPv6客户端分配IPv6地址。图1-6为Option 18选项格式。
图1-6 Option 18选项格式
各字段的解释如下:
· Option code:Option编号,取值为18。
· Option length:Option字段长度。
· Port index:DHCPv6设备收到客户端请求报文的端口索引。
· VLAN ID:第一层VLAN信息。
· Second VLAN ID:第二层VLAN信息。选项格式中的Second VLAN ID字段为可选,如果DHCPv6报文中不含有Second VLAN,则Option 18中也不包含Second VLAN ID内容。
· DUID:DHCPv6客户端的DUID信息。
Option 37称为远程ID选项(Remote ID),设备接收到DHCPv6客户端发送的DHCPv6请求报文后,在该报文中添加Option 37选项,并转发给DHCPv6服务器。服务器可根据Option 37选项中的信息对DHCPv6客户端定位,为分配IPv6地址提供帮助。图1-7为Option 37选项格式。
图1-7 Option 37选项格式
各字段的解释如下:
· Option code:Option编号,取值为37。
· Option length:Option字段长度。
· Enterprise number:企业编号。
· Port index:DHCPv6设备收到客户端请求报文的端口索引。
· VLAN ID:第一层VLAN信息。
· Second VLAN ID:第二层VLAN信息。选项格式中的Second VLAN ID字段为可选,如果DHCPv6报文中不含有Second VLAN,则Option 37中也不包含Second VLAN ID内容。
· DUID:系统的DUID信息。用户可以使用ipv6 dhcp relay remote-id duid命令修改DUID信息。
Option 79称为客户端链路地址选项(Client link layer address)。DHCPv6请求报文经过第一个DHCPv6中继时,该DHCPv6中继会学习报文中的DHCPv6客户端的MAC地址。DHCPv6中继生成和请求报文对应的Relay-Forward报文时,会将学到的MAC地址添加到报文的Option 79选项中,再将该报文转发给DHCPv6服务器。DHCPv6服务器可根据Option 79选项中的信息学习DHCPv6客户端的MAC地址,为IPv6地址/IPv6前缀分配或客户端合法性认证提供帮助。图1-8为Option 79选项格式。
图1-8 Option 79选项格式
各字段的解释如下:
· Option code:Option编号,取值为79。
· Option length:Option字段长度。
· Link-layer type:客户端链路层地址类型。
· Link-layer address:客户端链路层地址。
与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
· RFC 6939:Client Link-Layer Address Option in DHCPv6
DHCPv6服务器可以为客户端分配IPv6地址/前缀和其他网络配置参数。
图2-1 DHCPv6服务器为客户端分配IPv6地址和其他网络配置参数应用环境
如图2-1所示,为了便于集中管理IPv6地址,简化网络配置,DHCPv6服务器可以用来为DHCPv6客户端提供诸如IPv6地址、域名后缀、DNS服务器地址等网络配置参数。DHCPv6客户端根据服务器分配的参数来实现主机的配置。
DHCPv6服务器为客户端分配的IPv6地址分为以下两类:
· 临时IPv6地址:在短期内经常变化且不用续约的地址;
· 非临时IPv6地址:正常使用,可以进行续约的地址。
图2-2 DHCPv6服务器前缀分配应用组网图
如图2-2所示,为了便于集中管理IPv6地址,简化网络配置,DHCPv6服务器可以用来为DHCPv6客户端分配IPv6前缀。DHCPv6客户端获取到IPv6前缀后,向所在网络组播发送包含该前缀信息的RA消息,以便网络内的主机根据该前缀自动配置IPv6地址。
DHCPv6采用组播地址FF05::1:3来表示站点本地范围内所有的DHCPv6服务器;采用组播地址FF02::1:2来表示链路本地范围内所有的DHCPv6服务器和中继。
DUID(DHCP Unique Identifier,DHCP唯一标识符)是一台DHCPv6设备(包括客户端、服务器和中继)的唯一标识。在DHCPv6报文交互过程中,DHCPv6客户端、服务器和中继通过在报文中添加DUID来标识自己。
目前,设备采用RFC 3315规定的DUID-LL(DUID Based on Link-layer Address,基于链路层地址的DUID)作为DHCPv6设备的标识。DUID-LL的结构如图2-3所示:
· DUID type:DUID类型。设备支持的DUID类型为DUID-LL,取值为0x0003。
· Hardware type:硬件类型。设备支持的硬件类型为以太网,取值为0x0001。
· Link layer address:链路层地址。取值为设备的桥MAC地址。
IA(Identity Association,标识联盟)用于管理分配给客户端的一组地址和前缀等信息,通过IAID标识。一个客户端可以有多个IA,如客户端的每个接口拥有一个IA,IA用来管理该接口获取的地址和前缀等信息。
IAID是IA的标识符,由客户端选择。在一个客户端上不同IA的IAID不能相同。
PD(Prefix Delegation,前缀授权)是DHCPv6服务器为分配的前缀创建的前缀绑定信息,前缀绑定信息中记录了IPv6前缀、客户端DUID、IAID、有效时间、首选时间、租约过期时间、申请前缀的客户端的IPv6地址等信息。
每个DHCPv6地址池都拥有一组可供分配的IPv6地址、IPv6前缀和网络配置参数。DHCPv6服务器从地址池中为客户端选择并分配IPv6地址、IPv6前缀及其他参数。
· 静态绑定IPv6地址:通过将客户端DUID和IAID与IPv6地址绑定的方式,实现为特定的客户端分配特定的IPv6地址;
· 动态选择IPv6地址:在地址池中指定可供分配的IPv6地址范围,当收到客户端的IPv6地址申请时,从该地址范围中动态选择IPv6地址,分配给该客户端。
在DHCPv6地址池中指定可供分配的IPv6地址范围时,需要:
(1) 指定动态分配的IPv6地址网段。
(2) 将该网段划分为非临时地址范围和临时地址范围。每个地址范围内的地址必须属于该网段,否则无法分配。
采用动态选择IPv6地址方式时,如果接收到客户端的地址申请,则DHCPv6服务器选择一个合适的地址池,并按照客户端申请的地址类型(非临时地址或临时地址),从该地址池对应的地址范围(非临时地址范围或临时地址范围)中选择合适的IPv6地址分配给客户端。
DHCPv6地址池的前缀管理方式有以下几种:
· 静态绑定IPv6前缀:通过将客户端DUID和IAID与IPv6前缀绑定的方式,实现为特定的客户端分配特定的IPv6前缀;
· 动态选择IPv6前缀:在地址池中指定可供分配的IPv6前缀范围,当收到客户端的IPv6前缀申请时,从该前缀范围中动态选择IPv6前缀,分配给该客户端。
在DHCPv6地址池中指定可供分配的IPv6前缀范围时,需要:
(1) 创建前缀池,指定前缀池中包括的IPv6前缀范围。
(2) 在地址池中指定动态分配的IPv6地址网段。
(3) 在地址池中引用前缀池。
DHCPv6服务器为客户端分配IPv6地址或前缀时,按照如下顺序选择地址池:
(1) 如果存在将客户端DUID、IAID与IPv6地址或前缀静态绑定的地址池,则选择该地址池,并将静态绑定的IPv6地址或前缀、及该地址池中的网络参数分配给客户端。
(2) 如果配置了DHCPv6策略,则DHCPv6客户端匹配某个DHCPv6用户类时,DHCPv6服务器选择与该DHCPv6用户类关联的DHCPv6地址池;DHCPv6客户端未匹配到DHCPv6用户类时,若配置了默认DHCPv6地址池,则选择该DHCPv6地址池;若未配置默认DHCPv6地址池或DHCPv6默认地址池不存在可供分配的IPv6地址或前缀时,IPv6地址、前缀或其他参数分配失败。
(3) 如果接收到DHCPv6请求报文的接口引用了某个地址池,则选择该地址池,从该地址池中选取IPv6地址或前缀、及网络配置参数分配给客户端。
(4) 如果上述条件均不满足,则使用以下方法选择DHCPv6地址池:
¡ 如果客户端与服务器在同一网段,则将接收到DHCPv6请求报文的接口的IPv6地址与所有地址池配置的网段进行匹配,并选择最长匹配的网段所对应的地址池。
¡ 如果客户端与服务器不在同一网段,即客户端通过DHCPv6中继获取IPv6地址或前缀,则将离DHCPv6客户端最近的DHCPv6中继接口的IPv6地址与所有地址池配置的网段进行匹配,并选择最长匹配的网段所对应的地址池。
配置地址池动态分配的网段和IPv6地址范围时,请尽量保证与DHCPv6服务器接口或DHCPv6中继接口的IPv6地址所在的网段一致,以免分配错误的IPv6地址。
DHCPv6服务器为客户端分配IPv6地址/前缀的优先次序如下:
(1) DUID、IAID与客户端DUID、IAID匹配,且与客户端期望地址/前缀匹配的静态绑定地址/前缀;
(2) DUID、IAID与客户端DUID、IAID匹配的静态绑定地址/前缀;
(3) DUID与客户端的DUID匹配,且与客户端期望地址/前缀匹配的静态绑定地址/前缀,该地址/前缀中未指定客户端的IAID;
(4) DUID与客户端DUID匹配的静态绑定地址/前缀,该地址/前缀中未指定客户端的IAID;
(5) 当配置了DHCPv6地址池按照EUI-64方式分配IPv6地址时,地址池会使用客户端的MAC地址按照EUI-64方式生成的地址;
(6) 地址池/前缀池中与客户端期望地址/前缀匹配的空闲地址/前缀;
(7) 服务器记录的曾经分配给客户端的地址/前缀;
(8) 地址池/前缀池中的其他空闲地址/前缀;
(9) 如果未找到可用的地址/前缀,则依次查询租约过期地址/前缀、曾经发生过冲突的地址,如果找到则进行分配,否则将不予处理。
如果客户端的网段发生变化,服务器不会为客户端分配曾经分配给它的地址/前缀,而是从匹配新网段的地址池中重新选择地址/前缀等信息。
使用曾经发生过冲突的IPv6地址时,只有冲突状态超过一小时的地址租约才能够被服务器分配给新的DHCPv6客户端。
(1) 配置为DHCPv6客户端分配IPv6前缀、IPv6地址和其他网络参数
请至少选择以下一项任务进行配置:
(2) 修改DHCPv6服务器的地址池选择方式
请至少选择以下一项任务进行配置:
¡ 配置接口工作在DHCPv6服务器模式,并配置地址/前缀分配方式
¡ 配置DHCPv6策略动态分配IPv6地址、前缀和其他参数
(3) (可选)配置DHCPv6服务器发送DHCPv6报文的DSCP优先级
(4) (可选)配置DHCPv6服务器租约固化功能
(5) (可选)开启DHCPv6服务器发布前缀路由功能
(6) (可选)配置DHCPv6厂商自定义选项
(7) (可选)指定DHCPv6服务器上的地址池所属的VPN实例
(8) (可选)开启DHCPv6服务器记录的地址租约表项转化为IP Source Guard动态表项的功能
(9) (可选)配置DHCPv6服务器告警功能
(10) (可选)开启DHCPv6服务器的日志信息功能
(11) (可选)配置当IPv6地址池可分配的资源耗尽或资源恢复时,系统生成日志信息
可以通过以下两种方式配置DHCPv6服务器为DHCPv6客户端分配IPv6前缀:
· 在地址池中配置静态绑定前缀:指定DUID、IAID及前缀的静态绑定关系后,如果DHCPv6请求报文中的DUID、IAID与静态绑定的DUID、IAID都相同,则将静态绑定的前缀分配给此DHCPv6客户端。如果只指定了DUID和前缀的绑定关系,未指定静态绑定的IAID,则只要请求报文中的DUID与静态绑定的DUID相同,就将静态绑定的前缀分配给此DHCPv6客户端。
· 在地址池中引用包含一定前缀范围的前缀池:接收到DHCPv6客户端的前缀分配请求后,DHCPv6服务器从前缀范围中动态选择可用前缀,分配给客户端。
在实际组网中,某些前缀是保留前缀,不应该动态分配给客户端。通过配置不参与自动分配的前缀,可以避免DHCPv6服务器分配这些前缀。
配置为DHCPv6客户端分配IPv6前缀时,需要注意:
· 一个IPv6前缀只能与一个客户端绑定。不允许通过重复执行static-bind prefix命令的方式修改IPv6前缀与客户端的绑定关系、前缀的首选生命期和有效生命期。只有删除该IPv6前缀的静态绑定配置后,才能将该IPv6前缀与其他客户端绑定,或修改前缀的首选生命期和有效生命期。
· 一个地址池最多可以引用一个前缀池。地址池可以引用并不存在的前缀池,但是,此时设备无法从该地址池中动态选择前缀分配给客户端。只有创建该前缀池后,才能支持前缀的动态选择。
· 不允许通过重复执行prefix-pool命令的方式修改地址池引用的前缀池、前缀的首选生命期和有效生命期。只有取消当前地址池引用的前缀池后,才能引用其他的前缀池,或修改首选生命期和有效生命期。
(1) 进入系统视图。
system-view
(2) (可选)配置不参与自动分配的IPv6前缀。
ipv6 dhcp server forbidden-prefix start-prefix/prefix-len [ end-prefix/prefix-len ] [ vpn-instance vpn-instance-name ]
缺省情况下,DHCPv6前缀池中的所有IPv6前缀都参与自动分配。
如果通过ipv6 dhcp server forbidden-prefix命令将已经静态绑定的IPv6前缀配置为不参与自动分配的前缀,则该前缀仍然可以分配给静态绑定的用户。
(3) 创建前缀池。
ipv6 dhcp prefix-pool prefix-pool-number prefix { prefix-number | prefix/prefix-len } assign-len assign-len [ vpn-instance vpn-instance-name ]
仅在DHCPv6服务器为DHCPv6客户端动态分配IPv6前缀时需要进行本配置。
当配置前缀池引用前缀编号时,必须保证指定前缀号有对应的生效前缀,否则配置不生效。
(4) 创建DHCPv6地址池,并进入DHCPv6地址池视图。
ipv6 dhcp pool pool-name
(5) 配置动态分配的IPv6地址网段。
network { prefix/prefix-length | prefix prefix-number [ sub-prefix/sub-prefix-length ] } [ preferred-lifetime preferred-lifetime valid-lifetime valid-lifetime ]
缺省情况下,未配置动态分配的IPv6地址网段。
不能在不同地址池下使用network命令配置相同的地址网段。
不能在不同地址池下引用完全一致的前缀编号、子前缀和子前缀长度。
(6) 配置地址池引用前缀信息。请至少选择其中一项进行配置。
¡ 配置静态绑定前缀。
static-bind prefix prefix/prefix-len duid duid [ iaid iaid ] [ preferred-lifetime preferred-lifetime valid-lifetime valid-lifetime ]
缺省情况下,未配置地址池的静态绑定前缀。
重复执行static-bind prefix命令,可以配置多个静态绑定的IPv6前缀。
¡ 配置地址池引用前缀池。
prefix-pool prefix-pool-number [ preferred-lifetime preferred-lifetime valid-lifetime valid-lifetime ]
缺省情况下,未配置可动态分配的前缀。
可以通过以下两种方式配置DHCPv6服务器为DHCPv6客户端分配IPv6地址:
· 在地址池中配置静态绑定地址:指定DUID、IAID及地址的静态绑定关系后,如果DHCPv6请求报文中的DUID、IAID与静态绑定的DUID、IAID都相同,则将静态绑定的地址分配给此DHCPv6客户端。如果只指定了DUID和地址的绑定关系,未指定静态绑定的IAID,则只要请求报文中的DUID与静态绑定的DUID相同,就将静态绑定的地址分配给此DHCPv6客户端。
· 在地址池中配置动态分配的地址网段和地址范围:
¡ 在进行非临时地址分配时,如果未在地址池下通过address range命令配置动态分配的IPv6非临时地址范围,则network命令指定的网段内的单播地址都可以分配给DHCPv6客户端。如果配置了address range命令,则只会从该地址范围内分配IPv6非临时地址,即使该范围内的地址分配完毕,也不会从network命令指定的地址范围内分配IPv6非临时地址。
¡ 在进行临时地址分配时,如果未在地址池下通过temporary address range命令配置动态分配的IPv6临时地址范围,则地址池无法分配临时地址。如果配置了temporary address range命令,则只会从该地址范围内分配IPv6临时地址,不会从network或者address range命令配置的地址范围内分配临时地址。
在实际组网中,某些地址是服务器的地址或者是保留地址,不应该动态分配给客户端。通过配置不参与自动分配的地址,可以避免DHCPv6服务器分配这些地址。
配置为DHCPv6客户端分配IPv6地址,需要注意:
· 一个地址池下只能配置一个IPv6非临时地址范围和一个IPv6临时地址范围。
· address range命令和temporary address range命令配置的地址范围应该在network命令配置的网段内,否则地址不能被分配。
· 一个IPv6地址只能与一个客户端绑定。不允许通过重复执行static-bind address命令的方式修改IPv6地址与客户端的绑定关系、地址的首选生命期和有效生命期。只有删除该IPv6地址的静态绑定配置后,才能通过重新配置将该IPv6地址与其他客户端绑定,或修改地址的首选生命期和有效生命期。
· 每个DHCPv6地址池只能配置一个网段,在相同地址池中重复执行network命令,新的配置会覆盖已有配置。如果相邻两次network命令配置的地址网段相同而首选生命期和有效生命期不同,则新配置的首选生命期和有效生命期只能在新生成的绑定信息中生效,原有绑定信息不受影响。
(1) 进入系统视图。
system-view
(2) (可选)配置不参与自动分配的IPv6地址。
ipv6 dhcp server forbidden-address start-ipv6-address [ end-ipv6-address ] [ vpn-instance vpn-instance-name ]
缺省情况下,除DHCPv6服务器接口的IPv6地址外,DHCPv6地址池中的所有IPv6地址都参与自动分配。
如果通过ipv6 dhcp server forbidden-address命令将已经静态绑定的IPv6地址配置为不参与自动分配的地址,则该地址仍然可以分配给静态绑定的用户。
(3) 进入DHCPv6地址池视图。
ipv6 dhcp pool pool-name
(4) 配置动态分配的IPv6地址网段。
network { prefix/prefix-length | prefix prefix-number [ sub-prefix/sub-prefix-length ] } [ preferred-lifetime preferred-lifetime valid-lifetime valid-lifetime ]
缺省情况下,未配置动态分配的IPv6地址网段。
不能在不同地址池下使用network命令配置相同的地址网段。
不能在不同地址池下引用完全一致的前缀编号、子前缀和子前缀长度。
(5) (可选)配置动态分配的IPv6非临时地址范围。
address range start-ipv6-address end-ipv6-adddress [ preferred-lifetime preferred-lifetime valid-lifetime valid-lifetime ]
缺省情况下,未配置地址池中动态分配的IPv6非临时地址范围,整个网段内的单播地址都可以作为非临时地址分配给客户端。
(6) (可选)配置动态分配的IPv6临时地址范围。
temporary address range start-ipv6-address end-ipv6-adddress [ preferred-lifetime preferred-lifetime valid-lifetime valid-lifetime ]
缺省情况下,未配置动态分配的IPv6临时地址范围,不能分配IPv6临时地址。
(7) (可选)配置DHCPv6地址池按照EUI-64方式分配IPv6地址。
address-alloc-mode eui-64
缺省情况下,DHCPv6地址池不按照EUI-64方式分配IPv6地址。
配置本命令后,当DHCPv6服务器收到DHCPv6客户端的请求报文时,DHCPv6服务器会使用请求报文中的客户端MAC地址通过EUI-64方式生成IPv6地址,并将该IPv6地址分配给DHCPv6客户端。
(8) (可选)配置静态绑定的IPv6地址。
static-bind address ipv6-address/addr-prefix-length duid duid [ iaid iaid ] [ preferred-lifetime preferred-lifetime valid-lifetime valid-lifetime ]
缺省情况下,不存在静态绑定的IPv6地址。
重复执行static-bind address命令,可以配置多个静态绑定的IPv6地址。
除了分配IPv6地址和IPv6前缀外,DHCPv6地址池中还可以配置其他网络参数,如在一个地址池下最多可以配置8个DNS服务器地址、1个域名、8个SIP服务器地址和8个SIP服务器域名等。
可以通过如下方式配置为DHCPv6客户端分配的网络参数:
· 直接在DHCPv6地址池视图下配置网络参数。
· 在DHCPv6选项组中配置网络参数,并在DHCPv6地址池视图下指定引用的DHCPv6选项组。
直接在DHCPv6地址池视图下配置的网络参数的优先级高于DHCPv6选项组中配置的网络参数。
(1) 进入系统视图。
system-view
(2) 进入DHCPv6地址池视图。
ipv6 dhcp pool pool-name
(3) 配置动态分配的IPv6地址网段。
network { prefix/prefix-length | prefix prefix-number [ sub-prefix/sub-prefix-length ] } [ preferred-lifetime preferred-lifetime valid-lifetime valid-lifetime ]
缺省情况下,未配置动态分配的IPv6地址网段。
不能在不同地址池下使用network命令配置相同的地址网段。
不能在不同地址池下引用完全一致的前缀编号、子前缀和子前缀长度。
地址池引用前缀编号分配动态地址时必须保证前缀号有对应的生效前缀,否则配置不生效。
(4) 配置为客户端分配的DNS服务器地址。
dns-server ipv6-address
缺省情况下,未指定为客户端分配的DNS服务器地址。
(5) 配置为客户端分配的域名。
domain-name domain-name
缺省情况下,未指定为客户端分配的域名。
(6) 配置为客户端分配的SIP服务器地址或域名。
sip-server { address ipv6-address | domain-name domain-name }
缺省情况下,未指定为客户端分配的SIP服务器地址或域名。
(7) 配置DHCPv6自定义选项。
option code hex hex-string
缺省情况下,未配置DHCPv6自定义选项。
DHCPv6选项组的创建方法有以下几种:
· 通过ipv6 dhcp option-group命令手工创建静态DHCPv6选项组。
· 设备作为DHCPv6客户端获取IPv6地址、前缀和网络配置参数时,在DHCPv6客户端上根据获取的网络配置参数动态创建DHCPv6选项组。
手工创建的DHCPv6选项组优先级高于动态创建的DHCPv6选项组。本节只介绍手工创建静态DHCPv6选项组的方法,动态创建DHCPv6选项组的方法请参见“三层技术-IP业务配置指导”中的“DHCPv6客户端”。
(1) 进入系统视图。
system-view
(2) 手工创建静态DHCPv6选项组,并进入DHCPv6选项组视图。
ipv6 dhcp option-group option-group-number
(3) 配置为客户端分配的DNS服务器地址。
dns-server ipv6-address
缺省情况下,未指定为客户端分配的DNS服务器地址。
(4) 配置为客户端分配的域名后缀。
domain-name domain-name
缺省情况下,未指定为客户端分配的域名后缀。
(5) 配置为客户端分配的SIP服务器地址或域名。
sip-server { address ipv6-address | domain-name domain-name }
缺省情况下,未指定为客户端分配的SIP服务器地址或域名。
(6) 配置DHCPv6自定义选项。
option code hex hex-string
缺省情况下,未配置DHCPv6自定义选项。
(7) 退回系统视图。
quit
(8) 进入DHCPv6地址池视图。
ipv6 dhcp pool pool-name
(9) 配置DHCPv6地址池引用选项组。
option-group option-group-number
缺省情况下,DHCPv6地址池未引用选项组。
配置接口工作在DHCPv6服务器模式后,当接口未引用地址池时,接口收到DHCPv6客户端发来的DHCPv6报文时,服务器根据该接口的地址或DHCPv6中继接口的地址选择最长匹配的DHCPv6地址池,并从该地址池中选择IPv6地址或前缀分配给客户端。当接口引用地址池时,则从引用的地址池中选择IPv6地址或前缀分配给客户端。如果引用的地址池中不存在可供分配的IPv6地址或前缀,则设备将无法为客户端分配IPv6地址或前缀。
配置接口工作在DHCPv6服务器模式,并配置地址/前缀分配方式时,需要注意:
· 一个接口不能同时作为DHCPv6服务器和DHCPv6中继。
· 建议不要在一个接口上同时配置DHCPv6服务器和DHCPv6客户端功能。
· 接口可以引用并不存在的地址池,但是,此时该接口无法为客户端分配前缀等信息。只有创建该地址池后,才能为客户端分配前缀等信息。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口工作在DHCPv6服务器模式。
ipv6 dhcp select server
缺省情况下,接口未工作在DHCPv6服务器模式,也未工作在DHCPv6中继模式,接口接收到DHCPv6客户端发来的DHCPv6报文后,丢弃该报文。
(4) 配置地址池选择方式。请选择其中一项进行配置。
¡ 配置全局查找地址池,并指定全局查找DHCPv6地址池时地址或前缀分配方式。
ipv6 dhcp server { allow-hint | preference preference-value | rapid-commit } *
缺省情况下,支持接口全局查找DHCPv6地址池,但不支持期望地址/前缀分配和快速分配功能,且未指定服务器优先级。
¡ 配置接口引用DHCP地址池。
ipv6 dhcp server apply pool pool-name [ allow-hint | preference preference-value | rapid-commit ] *
创建DHCPv6策略,并在接口引用该策略后,该接口接收到DHCPv6请求报文时,则根据配置顺序逐个匹配DHCPv6策略中通过class pool命令指定的DHCPv6用户类。匹配情况如下:
· 若匹配DHCPv6用户类成功,当该DHCPv6用户类关联的DHCPv6地址池中存在可供分配的地址或前缀信息时,则从该DHCPv6地址池中分配IPv6地址、前缀或其他参数;当该DHCPv6用户类关联的DHCPv6地址池中不存在可供分配的地址或前缀信息时,IPv6地址、前缀或其他参数分配失败。
· 若匹配DHCPv6策略中的所有DHCPv6用户类失败,当配置了默认DHCPv6地址池时,则从该DHCPv6地址池中分配IPv6地址、前缀或网络参数;当未配置默认DHCPv6地址池或DHCPv6默认地址池不存在可供分配的IPv6地址或前缀时,IPv6地址、前缀或其他参数分配失败。
· 若接收DHCPv6请求报文的接口引用的DHCPv6策略不存在或匹配的DHCPv6用户类关联的DHCPv6地址池不存在,IPv6地址、前缀或其他参数分配失败。
· 匹配规则中不支持匹配DHCPv6设备添加的选项,比如Option 18或Option 37。
(1) 进入系统视图。
system-view
(2) 创建DHCPv6用户类,并进入DHCPv6用户类视图。
ipv6 dhcp class class-name
(3) 配置DHCPv6用户类的匹配规则。
if-match rule rule-number { option option-code [ ascii acsii-string [ offset offset | partial ] | hex hex-string [ mask mask | offset offset length length | partial ] ] | relay-agent gateway-ipv6-address }
缺省情况下,未配置DHCPv6用户类的匹配规则。
(4) 退回系统视图。
quit
(5) 创建DHCPv6策略,并进入DHCPv6策略视图。
ipv6 dhcp policy policy-name
DHCPv6策略需要在接口上引用才生效。
(6) 指定DHCPv6用户类关联的DHCPv6地址池。
class class-name pool pool-name
缺省情况下,未指定DHCPv6用户类关联的DHCPv6地址池。
(7) (可选)指定默认DHCPv6地址池。
default pool pool-name
缺省情况下,未指定默认DHCPv6地址池。
(8) 退回系统视图。
quit
(9) 进入接口视图。
interface interface-type interface-number
(10) 指定接口引用的DHCPv6策略。
ipv6 dhcp apply-policy policy-name
缺省情况下,接口未引用DHCPv6策略。
DSCP优先级用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定DHCPv6服务器发送的DHCPv6报文的DSCP优先级。
(1) 进入系统视图。
system-view
(2) 配置DHCPv6服务器发送DHCPv6报文的DSCP优先级。
ipv6 dhcp dscp dscp-value
缺省情况下,DHCPv6服务器发送的DHCPv6报文的DSCP优先级为56。
DHCPv6服务器重启后,设备上记录的租约信息将丢失,会影响DHCP服务器的正常业务。
DHCPv6服务器租约固化功能将DHCPv6服务器的核心运行数据(在用地址租约、冲突表项)保存到指定的文件中,DHCPv6服务器设备重启后,自动根据该文件恢复DHCPv6服务器的租约信息,从而保证DHCPv6服务器的租约信息不会丢失。
当DHCPv6服务器设备重启后,自动根据该文件恢复DHCPv6服务器的租约信息,租约恢复的过程中,DHCPv6服务器不能提供DHCPv6业务。所以当恢复过程出现问题导致恢复过程无法结束时,用户可配置ipv6 dhcp server database update stop命令终止当前的DHCPv6服务器表项恢复操作,以便DHCPv6服务器能及时提供DHCPv6服务。
(1) 进入系统视图。
system-view
(2) 指定存储DHCPv6 服务器表项的文件名称。
ipv6 dhcp server database filename { filename | url url [ username username [ password { cipher | simple } string ] ] }
缺省情况下,未指定存储文件名称。
执行本命令后,会立即触发一次表项备份。
(3) (可选)将当前的DHCPv6服务器表项保存到用户指定的文件中。
ipv6 dhcp server database update now
本命令只用来触发一次DHCPv6服务器表项的备份。
(4) (可选)配置刷新DHCPv6服务器表项存储文件的延迟时间。
ipv6 dhcp server database update interval interval
缺省情况下,若DHCPv6服务器表项不变化,则不刷新存储文件;若DHCPv6 服务器表项发生变化,默认在300秒之后刷新存储文件。
(5) (可选)终止当前的DHCPv6服务器表项恢复操作。
ipv6 dhcp server database update stop
本命令只用来触发一次终止DHCPv6服务器表项信息的恢复。
DHCPv6客户端获取到IPv6前缀后,通过该IPv6前缀为下行网络内的主机分配IPv6地址。此时,DHCPv6客户端与网络内的主机不在同一网段内,会导致主机无法与外界通信。为了解决这个问题,当DHCPv6服务器和DHCPv6客户端在同一个链路范围内时,需要在DHCPv6服务器上开启发布前缀路由功能。
(1) 进入系统视图。
system-view
(2) 开启DHCPv6服务器发布前缀路由功能。
ipv6 dhcp advertise pd-route
缺省情况下,DHCPv6服务器发布前缀路由功能处于关闭状态。
除了RFC规定的Option选项外,还有一部分Option选项可以通过手工定义的方式添加到DHCPv6服务器的属性列表中,这类选项被称为厂商自定义选项。DHCPv6服务器可以在应答报文中利用厂商自定义选项携带额外的网络配置信息(例如TFTP服务器名称、地址或设备的配置文件名等),DHCPv6客户端收到该应答报文后,通过解析自定义选项的填充内容获取需要的信息。
(1) 进入系统视图。
system-view
(2) 进入DHCPv6地址池视图。
ipv6 dhcp pool pool-name
(3) 配置DHCPv6厂商自定义选项,并进入厂商自定义模式视图。
vendor-specific vendor-id
缺省情况下,未配置DHCPv6厂商自定义选项。
(4) 配置DHCPv6厂商自定义子选项。
suboption suboption-code { address ipv6-address&<1-4> | ascii ascii-string | hex hex-string }
缺省情况下,未配置DHCPv6厂商自定义子选项。
当地址池绑定了VPN实例后,DHCPv6服务器可以将网络划分成公网和VPN私网。未配置VPN属性的地址池被划分到公网,配置了VPN属性的地址池被划分到相应的VPN私网,这样,对于处于公网或VPN私网中的客户端,服务器都能够选择合适的地址池来为客户端分配租约并且记录该客户端的状态信息。
DHCPv6服务器可以通过如下方式判断DHCPv6客户端所属的VPN实例:
· 认证模块用户接入时由AAA服务器授权VPN实例。
· DHCPv6服务器接收报文的接口绑定的VPN实例即为该客户端所属的VPN实例。
如果以上两种方式都可获取到DHCPv6客户端所属的VPN实例,则以认证模块为准。
设备作为MCE(Multi-VPN-instance Customer Edge,多VPN实例用户网络边界设备)时,在设备上配置DHCPv6服务器功能,不仅可以为公网上的DHCPv6客户端分配IPv6地址,还可以实现为私网内的DHCPv6客户端分配IPv6地址,但是公网和私网之间、不同私网之间的IPv6地址空间不能重叠。MCE的详细介绍,请参见“MPLS配置指导”中的“MCE”。
(1) 进入系统视图。
system-view
(2) 进入DHCPv6地址池视图。
ipv6 dhcp pool pool-name
(3) 指定DHCPv6服务器上的地址池所属的VPN实例。
vpn-instance vpn-instance-name
缺省情况下,未指定DHCPv6服务器上的地址池所属的VPN实例。
VXLAN组网环境中,VXLAN IP网关需要开启DHCPv6服务器功能,为终端用户分配IPv6地址,且将从DHCPv6服务器获取到IPv6地址的终端用户信息上报给控制器进行管理。由于上报控制器的终端用户信息目前只支持IP Source Guard表项形式,开启本功能后,DHCPv6服务器记录的地址租约表项会转化为IP Source Guard动态表项。控制器通过查询上报的IP Source Guard动态表项信息,对表项对应的终端用户进行定位和监控等操作。
IP Source Guard功能的详细介绍,请参见“安全配置指导”中的“IP Source Guard”。
如果设备存储空间不足,可以执行undo ipv6 dhcp server entry-convert enable命令关闭DHCPv6服务器记录的地址租约表项转化为IP Source Guard动态表项的功能,关闭本功能前转化的IP Source Guard动态表项不会被删除。
(1) 进入系统视图。
system-view
(2) 开启DHCPv6服务器记录的地址租约表项转化为IP Source Guard动态表项的功能。
ipv6 dhcp server entry-convert enable
缺省情况下,DHCPv6服务器记录的地址租约表项转化为IP Source Guard动态表项的功能处于关闭状态。
开启DHCPv6服务器的告警功能后,DHCPv6服务器会生成告警信息,用于报告DHCPv6服务器的重要事件。告警信息包括:
· 单个IPv6地址池的资源耗尽/恢复的告警信息。
· 单个IPv6地址池在采样时刻的资源使用率高于等于阈值或恢复到低于阈值的告警信息
生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
(1) 进入系统视图。
system-view
(2) 开启IPv6地址池资源耗尽/恢复的告警功能。
snmp-agent trap enable ipv6 dhcp server address-exhaust pd-exhaust
缺省情况下,IPv6地址池资源耗尽/恢复告警功能处于开启状态。
(3) 进入IPv6地址池视图。
ipv6 dhcp pool pool-name
(4) (可选)开启单个IPv6地址池资源耗尽告警功能。
exhaustion trap enable
缺省情况下,单个IPv6地址池资源耗尽告警功能处于开启状态。
(1) 进入系统视图。
system-view
(2) 开启DHCPv6服务器告警功能。
snmp-agent trap enable ipv6 dhcp server ip-in-use
缺省情况下,IPv6地址池地址使用率告警功能处于开启状态。
(3) 进入IPv6地址池视图。
ipv6 dhcp pool pool-name
(4) (可选)设置IPv6地址池使用率告警门限阈值。
ip-in-use threshold threshold-value
缺省情况下,IPv6地址池使用率告警门限阈值为100%。
(1) 进入系统视图。
system-view
(2) 开启DHCPv6服务器告警功能。
snmp-agent trap enable ipv6 dhcp server pd-in-use
缺省情况下,IPv6前缀使用率告警功能处于开启状态。
(3) 进入IPv6地址池视图。
ipv6 dhcp pool pool-name
(4) (可选)设置IPv6地址池前缀使用率告警门限阈值。
pd-in-use threshold threshold-value
缺省情况下,IPv6地址池前缀使用率告警门限阈值为100%。
DHCPv6服务器日志可以方便管理员定位问题和解决问题。设备生成DHCPv6日志信息会交给信息中心模块处理,信息中心模块的配置将决定日志信息的发送规则和发送方向。关于信息中心的详细描述请参见“网络管理和监控配置指导”中的“信息中心”。
大量DHCPv6客户端发生上下线操作时,DHCPv6服务器需要输出大量日志信息,这可能会降低设备性能,影响DHCPv6服务器分配IPv6前缀或IPv6地址的速度。为了避免该情况的发生,用户可以关闭DHCPv6服务器日志信息功能,使得DHCPv6服务器不再输出日志信息。
(1) 进入系统视图。
system-view
(2) 开启DHCPv6服务器日志信息功能。
ipv6 dhcp log enable
缺省情况下,DHCPv6服务器日志信息功能处于关闭状态。
开启本功能后,当IPv6地址池中可分配的资源耗尽或资源恢复时,系统将生成DHCPv6日志信息,并交给信息中心模块处理,信息中心模块的配置将决定日志信息的发送规则和发送方向。关于信息中心的详细描述请参见“网络管理和监控配置指导”中的“信息中心”。
IPv6地址池中资源使用率的计算方式如下:
· 地址使用率=(总地址数—未分配地址数)/总地址数;
· 前缀使用率=(总前缀数—未分配前缀数)/总前缀数。
关闭DHCPv6服务器日志信息功能后,本功能还可以正常运行。
如果通过ip-in-use threshold或pd-in-use threshold命令配置的地址或前缀使用率告警门限阈值为100%,则当IPv6地址池中的地址或前缀资源耗尽,或使用率重新下降到等于或低于90%时,系统只会生成告警信息,不会生成日志信息。
(1) 进入系统视图。
system-view
(2) 进入IPv6地址池视图。
ipv6 dhcp pool pool-name
(3) 配置当IPv6地址池可分配的资源耗尽或资源恢复时,系统生成日志信息。
exhaustion log enable
缺省情况下,当IPv6地址池可分配的资源耗尽或资源恢复时,系统不会生成日志信息。
在完成上述配置后,在任意视图下执行display命令可以显示配置后DHCPv6服务器的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除DHCPv6服务器的统计信息。
表2-1 DHCPv6服务器显示和维护
操作 |
命令 |
显示本设备的DUID |
display ipv6 dhcp duid |
显示DHCPv6选项组信息 |
display ipv6 dhcp option-group [ option-group-number ] |
显示DHCPv6地址池的信息 |
display ipv6 dhcp pool [ pool-name | vpn-instance vpn-instance-name ] |
显示前缀池的信息 |
display ipv6 dhcp prefix-pool [ prefix-pool-number ] [ vpn-instance vpn-instance-name ] |
显示接口上的DHCPv6服务器信息 |
display ipv6 dhcp server [ interface interface-type interface-number ] |
显示DHCPv6地址冲突信息 |
display ipv6 dhcp server conflict [ address ipv6-address ] [ vpn-instance vpn-instance-name ] |
显示DHCPv6服务器表项备份信息 |
display ipv6 dhcp server database |
显示租约过期的DHCPv6地址绑定信息 |
display ipv6 dhcp server expired [ [ address ipv6-address ] [ vpn-instance vpn-instance-name ] | pool pool-name ] |
显示DHCPv6地址绑定信息 |
display ipv6 dhcp server ip-in-use [ [ address ipv6-address ] [ vpn-instance vpn-instance-name ] | pool pool-name ] |
显示DHCPv6前缀绑定信息 |
display ipv6 dhcp server pd-in-use [ pool pool-name | [ prefix prefix/prefix-len ] [ vpn-instance vpn-instance-name ] ] |
显示DHCPv6服务器的报文统计信息 |
display ipv6 dhcp server statistics [ pool pool-name | vpn-instance vpn-instance-name ] |
清除DHCPv6地址冲突信息 |
reset ipv6 dhcp server conflict [ address ipv6-address ] [ vpn-instance vpn-instance-name ] |
清除租约过期的DHCPv6地址绑定信息 |
reset ipv6 dhcp server expired [ [ address ipv6-address ] [ vpn-instance vpn-instance-name ] | pool pool-name ] |
清除DHCPv6的正式地址绑定和临时地址绑定信息 |
reset ipv6 dhcp server ip-in-use [ [ address ipv6-address ] [ vpn-instance vpn-instance-name ] | pool pool-name ] |
清除DHCPv6正式前缀绑定和临时前缀绑定信息 |
reset ipv6 dhcp server pd-in-use [ pool pool-name | [ prefix prefix/prefix-len ] [ vpn-instance vpn-instance-name ] ] |
清除DHCPv6服务器的报文统计信息 |
reset ipv6 dhcp server statistics [ vpn-instance vpn-instance-name ] |
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.example.com。
· SIP服务器地址为2:2::4,域名为bbb.example.com。
图2-4 DHCPv6服务器配置组网图
(1) 配置DHCPv6服务器
# 配置VLAN接口2的IPv6地址。取消设备发布RA消息的抑制。配置被管理地址的配置标志位为1,即主机通过DHCPv6服务器获取IPv6地址。配置其他信息配置标志位为1,即主机通过DHCPv6服务器获取除IPv6地址以外的其他信息。
<Switch> system-view
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] ipv6 address 1::1/64
[Switch-Vlan-interface2] undo ipv6 nd ra halt
[Switch-Vlan-interface2] ipv6 nd autoconfig managed-address-flag
[Switch-Vlan-interface2] ipv6 nd autoconfig other-flag
[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::/64,与VLAN接口2地址所属的网段相同。
[Switch-dhcp6-pool-1] network 1::/64
# 配置地址池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.example.com。
[Switch-dhcp6-pool-1] domain-name aaa.example.com
# 配置为客户端分配的SIP服务器地址为2:2::4,域名为bbb.example.com。
[Switch-dhcp6-pool-1] sip-server address 2:2::4
[Switch-dhcp6-pool-1] sip-server domain-name bbb.example.com
[Switch-dhcp6-pool-1] quit
# 配置VLAN接口2工作在DHCPv6服务器模式,并在该接口使能期望前缀分配和前缀快速分配功能,并将优先级设置为最高。
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] ipv6 dhcp select server
[Switch-Vlan-interface2] ipv6 dhcp server allow-hint preference 255 rapid-commit
# 完成上述配置后,查看VLAN接口2上的DHCPv6服务器配置信息。
[Switch-Vlan-interface2] display ipv6 dhcp server interface vlan-interface 2
Using pool: global
Preference value: 255
Allow-hint: Enabled
Rapid-commit: Enabled
# 显示地址池1的信息。
[Switch-Vlan-interface2] display ipv6 dhcp pool 1
DHCPv6 pool: 1
Network: 1::/64
Preferred lifetime 604800 seconds, valid lifetime 2592000 seconds
Prefix pool: 1
Preferred lifetime 86400 seconds, valid lifetime 259200 seconds
Static bindings:
DUID: 00030001ca0006a40000
IAID: Not configured
Prefix: 2001:410:201::/48
Preferred lifetime 86400 seconds, valid lifetime 259200 seconds
DNS server addresses:
2:2::3
Domain name:
aaa.example.com
SIP server addresses:
2:2::4
SIP server domain names:
bbb.example.com
undo exhaustion log enable
IP-in-use threshold: 100
PD-in-use threshold: 100
exhaustion trap enable
# 显示前缀池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
Pool: 1
IPv6 prefix Type Lease expiration
2001:410:201::/48 Static(C) Jul 10 19:45:01 2019
# 其他客户端获取IPv6前缀后,显示前缀绑定信息。
[Switch-Vlan-interface2] display ipv6 dhcp server pd-in-use
Pool: 1
IPv6 prefix Type Lease expiration
2001:410:201::/48 Static(C) Jul 10 19:45:01 2019
2001:410::/48 Auto(C) Jul 10 20:44:05 2019
· 作为DHCPv6服务器的Switch A为网段1::1:0:0:0/96和1::2:0:0:0/96的客户端动态分配IPv6地址;
· Switch A的两个VLAN接口Vlan-interface10和Vlan-interface20的地址分别为1::1:0:0:1/96和1::2:0:0:1/96;
· 1::1:0:0:0/96网段内的地址租约时长为172800秒(2天),有效时长为345600秒(4天),域名后缀为aabbcc.com,DNS服务器地址为1::1:0:0:2/96;
· 1::2:0:0:0/96网段内的地址租约时长为432000秒(5天),有效时长为864000秒(10天),域名后缀为aabbcc.com,DNS服务器地址为1::2:0:0:2/96。
图2-5 DHCPv6组网图
(1) 配置DHCPv6 server各接口的IPv6地址。取消设备发布RA消息的抑制。配置被管理地址的配置标志位为1,即主机通过DHCPv6服务器获取IPv6地址。配置其他信息配置标志位为1,即主机通过DHCPv6服务器获取除IPv6地址以外的其他信息
<SwitchA> system-view
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] ipv6 address 1::1:0:0:1/96
[SwitchA-Vlan-interface10] undo ipv6 nd ra halt
[SwitchA-Vlan-interface10] ipv6 nd autoconfig managed-address-flag
[SwitchA-Vlan-interface10] ipv6 nd autoconfig other-flag
[SwitchA-Vlan-interface10] quit
[SwitchA] interface vlan-interface 20
[SwitchA-Vlan-interface20] ipv6 address 1::2:0:0:1/96
[SwitchA-Vlan-interface20] undo ipv6 nd ra halt
[SwitchA-Vlan-interface20] ipv6 nd autoconfig managed-address-flag
[SwitchA-Vlan-interface20] ipv6 nd autoconfig other-flag
[SwitchA-Vlan-interface20] quit
(2) 配置DHCPv6服务
# 配置接口Vlan-interface10和Vlan-interface20工作在DHCPv6服务器模式。
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] ipv6 dhcp select server
[SwitchA-Vlan-interface10] quit
[SwitchA] interface vlan-interface 20
[SwitchA-Vlan-interface20] ipv6 dhcp select server
[SwitchA-Vlan-interface20] quit
# 配置不参与自动分配的IPv6地址,以避免分配DNS服务器的地址。
[SwitchA] ipv6 dhcp server forbidden-address 1::1:0:0:2
[SwitchA] ipv6 dhcp server forbidden-address 1::2:0:0:2
# 配置DHCPv6地址池1,为1::1:0:0:0/96网段的客户端分配IPv6地址等参数。
[SwitchA] ipv6 dhcp pool 1
[SwitchA-dhcp6-pool-1] network 1::1:0:0:0/96 preferred-lifetime 172800 valid-lifetime 345600
[SwitchA-dhcp6-pool-1] domain-name aabbcc.com
[SwitchA-dhcp6-pool-1] dns-server 1::1:0:0:2
[SwitchA-dhcp6-pool-1] quit
# 配置DHCPv6地址池2,为1::2:0:0:0/96网段的客户端分配IPv6地址等参数。
[SwitchA] ipv6 dhcp pool 2
[SwitchA-dhcp6-pool-2] network 1::2:0:0:0/96 preferred-lifetime 432000 valid-lifetime 864000
[SwitchA-dhcp6-pool-2] domain-name aabbcc.com
[SwitchA-dhcp6-pool-2] dns-server 1::2:0:0:2
[SwitchA-dhcp6-pool-2] quit
配置完成后,1::1:0:0:0/96和1::2:0:0:0/96网段的客户端可以从DHCPv6服务器Switch A申请到相应网段的IPv6地址和网络配置参数。通过display ipv6 dhcp server ip-in-use命令可以查看DHCPv6服务器为客户端分配的IPv6地址。
DHCPv6客户端通常通过链路本地范围的组播地址与DHCPv6服务器通信,以获取IPv6地址和其他网络配置参数。如图3-1所示,服务器和客户端不在同一个链路范围内时,服务器和客户端无法直接通信,需要通过DHCPv6中继来转发报文。部署DHCPv6中继可以避免在每个链路范围内都部署DHCPv6服务器,既节省了成本,又便于进行集中管理。
图3-1 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中继配置任务如下:
(2) 指定DHCPv6服务器的地址
(3) (可选)配置DHCPv6中继为DHCPv6客户端分配的网关地址
(4) (可选)配置DHCPv6中继的DUID表项的老化时间
(5) (可选)通过smart-relay功能指定DHCPv6报文中填充的中继地址
(6) (可选)配置DHCPv6中继发送DHCPv6报文的DSCP优先级
(7) (可选)配置DHCPv6中继支持的Interface ID选项填充模式
(8) (可选)开启DHCPv6中继支持添加Option 37选项功能
(9) (可选)开启DHCPv6中继支持添加Option 79选项功能
(10) (可选)开启DHCPv6中继发布前缀路由功能
(11) (可选)开启DHCPv6中继发布地址路由功能
(12) (可选)配置DHCPv6中继报文填充指定源地址
(13) (可选)配置DHCPv6中继安全功能
(14) (可选)开启DHCPv6中继对Confirm请求报文的Reply报文的检查功能
(15) (可选)配置DHCPv6中继丢弃从VXLAN隧道收到的DHCP请求报文
(16) (可选)配置DHCPv6中继支持按照MAC地址表转发DHCPv6应答报文
建议不要在一个接口上同时配置DHCPv6中继和DHCPv6客户端功能。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口工作在DHCPv6中继模式。
ipv6 dhcp select relay
缺省情况下,接口未工作在DHCPv6中继模式。
工作在DHCPv6中继模式的接口接收到DHCPv6客户端发来的报文后,将其封装在Relay-forward报文中,并发送给指定的DHCPv6服务器,由DHCPv6服务器为客户端分配IPv6地址、IPv6前缀和其他网络配置参数。
· 通过多次执行ipv6 dhcp relay server-address命令可以指定多个DHCPv6服务器,一个接口下最多可以指定8个DHCPv6服务器。DHCPv6中继接收到DHCPv6客户端报文后,将其转发给所有的DHCPv6服务器。
· 如果指定的DHCPv6服务器地址为链路本地地址或组播地址,则必须通过ipv6 dhcp relay server-address命令的interface参数指定出接口,否则报文可能会无法到达服务器。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 指定DHCPv6中继对应的DHCPv6服务器地址。
ipv6 dhcp relay server-address ipv6-address [ interface interface-type interface-number ] [ public | vpn-instance vpn-instance-name ]
缺省情况下,未指定DHCPv6中继对应的DHCPv6服务器地址。
对于某些特定的用户接入方式,基于用户接入位置信息的不同,网络中存在大量不同类型的用户。为了使相同类型的用户可以从指定的DHCPv6服务器申请IPv6地址等网络参数,模块根据用户注册信息,使不同的用户选择不同的DHCPv6中继地址池,并从中继地址池下配置的DHCPv6服务器获取IPv6地址等网络参数。
一台DHCPv6中继的一个接口下可能连接不同类型的用户,当DHCPv6中继转发DHCPv6客户端请求报文给DHCPv6服务器时,不能再以中继接口的IPv6地址作为选择地址池的依据。为了解决这个问题,需要使用gateway-list命令指定某个类型用户所在的网段,并将该地址添加到转发给DHCPv6服务器的报文的Link-address字段中,为DHCPv6服务器选择地址池提供依据。
· 为了提高可靠性,一个DHCPv6中继地址池下最多可以配置8个DHCPv6服务器地址,当DHCPv6客户端匹配该中继地址池后,DHCPv6中继会将DHCPv6客户端发来的DHCPv6报文转发给该地址池对应所有的DHCPv6服务器。
(1) 进入系统视图。
system-view
(2) 创建DHCPv6中继地址池,并进入DHCPv6中继地址池视图。
ipv6 dhcp pool pool-name
(3) 指定匹配该地址池的DHCPv6客户端所在的网段地址。
gateway-list ipv6-address&<1-8>
缺省情况下,未指定匹配该地址池的DHCPv6客户端所在的网段地址。
(4) 指定中继地址池对应的DHCPv6服务器地址。
remote-server ipv6-address [ interface interface-type interface-number ]
缺省情况下,未指定中继地址池对应的DHCPv6服务器的地址。
当未开启该功能时,DHCPv6中继收到DHCPv6客户端的请求报文后,只能将接口的第一个IPv6添加到报文中,然后转发给DHCPv6服务器。对于某些特定需求,DHCPv6中继需要添加指定的地址到报文中,这时就需要配置此功能。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置DHCPv6中继为DHCPv6客户端分配的网关地址。
ipv6 dhcp relay gateway ipv6-address
缺省情况下,DHCPv6中继分配接口下的第一个IPv6地址作为DHCPv6客户端的网关地址。
DUID表项是DHCPv6中继功能记录的一个数据表项,记录的信息包括DHCPv6客户端的MAC地址、接口索引、表项的老化时间、Link address、使用该Link address转发Solicit报文的次数和首次使用该Link address转发Solicit报文的时间点等信息。
在smart-relay功能中,DUID表项用于协助判断是否要切换填充到Relay-forward报文中的IPv6地址。如果中继接口使用该Link address转发Solicit报文的次数达到了中继接口使用同一IPv6地址转发Solicit报文的最小次数,则计算中继接口使用该Link address转发Solicit报文的时间间隔(DHCPv6中继本次接收到Solicit报文是时间点减去首次使用该Link address转发Solicit报文的时间点)。如果时间间隔也满足要求,则切换填充到Relay-Forward报文中的IPv6地址。有关smart-relay功能的详细介绍,请参见“通过smart-relay功能指定DHCPv6报文中填充的中继地址”。
为保证smart-relay功能正常运行,请将DUID表项的老化时间设置的大于中继接口使用同一IPv6地址转发Solicit报文的时间。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置DHCPv6中继的DUID表项的老化时间。
ipv6 dhcp relay duid aging-time seconds
缺省情况下,DHCPv6中继的DUID表项老化时间为60秒。
当DHCPv6中继收到DHCPv6客户端发送的Solicit报文后,会使用中继接口的第一个IPv6全球单播地址(接口的IPv6全球单播地址由小到大排序)填充Relay-forward报文的Link address字段,DHCPv6服务器收到Relay-forward报文后,根据Link address字段取值为DHCPv6客户端分配IPv6地址/前缀。当DHCPv6服务器中该网段地址分配完毕后,不管DHCPv6服务器上是否存在其他网段的地址,都不会再为该DHCPv6中继下的DHCPv6客户端分配IPv6地址/前缀。
DHCPv6中继通过smart-relay解决上述问题。开启本功能后,DHCPv6中继可以使用中继接口下的其他IPv6全球单播地址来填充Relay-forward报文的Link address字段,从而使DHCPv6客户端可以获取到其它网段的IPv6地址/前缀。
当遇到如下两种情况时,DHCPv6中继再转发Solicit报文时,会使用下一个IPv6地址来填充Relay-forward报文的Link address字段:
· DHCPv6中继接收到DHCPv6服务器的Relay-reply报文,表明没有可分配的IPv6地址/前缀。
· DHCPv6中继转发大于等于M次Solicit报文,且与第一次转发Solicit报文时间间隔超过N秒,还未收到DHCPv6服务器的Relay-reply报文。缺省情况下,M的取值为3、N的取值为24,用户也可以使用ipv6 dhcp smart-relay命令修改这两个参数的取值。
DHCPv6中继使用完中继接口的所有IPv6全球单播地址填充Link address字段后,将重新使用第一个IPv6全球单播地址进入下一个循环。
开启本功能前,必须先执行ipv6 dhcp relay client-information record命令开启DHCPv6中继用户表项记录功能。开启DHCPv6中继用户表项记录功能后,DHCPv6中继能够记录上线用户的IPv6地址、MAC地址以及其申请IPv6地址或前缀时使用的Link address。当DHCPv6中继转发Renew、Rebind以及Release报文时,会查询中继用户表项,获取该用户对应的Link address。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) (可选)配置DHCPv6中继smart-relay功能参数。
ipv6 dhcp smart-relay { count count | time seconds } *
缺省情况下,DHCPv6中继开启smart-relay功能后,如果DHCPv6中继转发大于等于3次Solicit报文,且和第一次转发Solicit报文的时间间隔超过24秒,还未收到DHCPv6服务器的Relay-reply报文,则会使用接口的下一个IPv6地址转发Solicit报文。
(4) 开启DHCPv6中继支持smart-relay功能。
ipv6 dhcp smart-relay enable
缺省情况下,DHCPv6中继支持smart-relay功能处于关闭状态。
DSCP优先级用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定DHCPv6中继发送的DHCPv6报文的DSCP优先级。
(1) 进入系统视图。
system-view
(2) 配置DHCPv6中继发送DHCPv6报文的DSCP优先级。
ipv6 dhcp dscp dscp-value
缺省情况下,DHCPv6中继发送的DHCPv6报文的DSCP优先级为56。
如果配置了DHCPv6中继支持的Interface ID选项填充模式,当DHCPv6中继接收到客户端发送的DHCPv6报文后,会以配置的填充方式将DHCPv6客户端的位置信息填充Option 18选项,并把填充好的报文转发给DHCPv6服务器。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置DHCPv6中继支持的Interface ID选项填充模式。
ipv6 dhcp relay interface-id { bas | interface | user-mac }
缺省情况下,Interface ID选项的填充模式为接口索引信息。
Option 37选项中的信息标识了客户端的位置信息,这些信息可以作为DHCPv6服务器分配IPv6地址和网络参数的依据。开启DHCPv6中继支持添加Option 37选项功能后,DHCPv6中继从客户端接收到DHCPv6请求报文时,在报文中添加Option 37选项,然后再把该报文转发给DHCPv6服务器。支持Option 37功能的DHCPv6服务器接收到DHCPv6请求报文后,DHCPv6服务器可以根据报文中的Option 37信息给DHCPv6客户端分配IPv6地址和其它配置信息。
关于Option 37选项的详细介绍,请参见“1.5.2 Option 37”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCPv6中继支持添加Option 37选项功能。
ipv6 dhcp relay remote-id enable
缺省情况下,DHCPv6中继支持添加Option 37选项功能处于关闭状态。
(4) (可选)配置DHCPv6中继封装Option 37选项时使用的DUID。
ipv6 dhcp relay remote-id duid { ascii ascii-string | hex hex-string }
缺省情况下,DHCPv6中继使用本设备的DUID封装Option 37选项。
某些存在DHCPv6中继的组网中,DHCPv6服务器需要获取到DHCPv6客户端的MAC地址信息,进行DHCPv6客户端合法性认证或为DHCPv6客户端分配和MAC地址对应的IPv6地址、IPv6前缀或其他网络参数。为了满足上述需求,需要在DHCPv6客户端发出请求报文后经过的第一个DHCPv6中继上开启支持添加Option 79选项功能。开启本功能后,当DHCPv6中继收到DHCPv6请求报文时,会学习报文中的DHCPv6客户端的MAC地址。DHCPv6中继生成和请求报文对应的Relay-Forward报文时,会将学到的MAC地址添加到报文的Option 79选项中,再将该报文转发给DHCPv6服务器。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCPv6中继支持添加Option 79选项功能。
ipv6 dhcp relay client-link-address enable
缺省情况下,DHCPv6中继支持添加Option 79选项功能处于关闭状态。
DHCPv6客户端获取到IPv6前缀后,通过该IPv6前缀为下行网络内的主机分配IPv6地址。此时,DHCPv6客户端与网络内的主机不在同一网段内,会导致主机无法与外界通信。为了解决这个问题,需要在和DHCPv6客户端处于同一个链路范围内的DHCPv6中继上开启发布前缀路由功能。
(1) 进入系统视图。
system-view
(2) 开启DHCPv6中继发布前缀路由功能。
ipv6 dhcp advertise pd-route
缺省情况下,DHCPv6中继发布前缀路由功能处于关闭状态。
开启DHCPv6中继发布前缀路由功能前,需要先开启DHCPv6中继用户表项记录功能。
在某些禁用全球单播地址的ND功能的网络中,DHCPv6客户端通过DHCPv6获取到全球单播IPv6地址后,由于无法发起ND协商生成有效的ND表项,导致客户端无法收到目的地址为该IPv6地址的报文。为了解决此问题,可以在DHCPv6中继上开启发布地址路由功能。开启本功能后,当DHCPv6中继收到DHCPv6应答报文后,会根据报文中的IPv6地址发布一条路由信息,路由的目的地址是IPv6地址,下一跳为客户端的链路本地地址,出接口为转发报文的接口。中继设备收到目的报文为该IPv6地址的报文后,查找路由表确认下一跳地址。由于下一跳地址是客户端的链路本地地址,是可以进行ND解析的。中继根据路由表中的下一跳地址在ND表项中查到对应的客户端MAC地址,然后转发该报文。
开启DHCPv6中继发布地址路由功能前,需要先开启DHCPv6中继用户表项记录功能。
(1) 进入系统视图。
system-view
(2) 开启DHCPv6中继发布地址路由功能。
ipv6 dhcp advertise address-route
缺省情况下,DHCPv6中继发布地址路由功能处于关闭状态。
在某些组网中,DHCPv6中继接口到DHCPv6服务器没有可达路由,用户需要配置本命令选择DHCPv6中继设备上的另一个接口(一般选择的是Loopback口)的IPv6地址填充到转发给DHCPv6服务器的DHCPv6请求报文中的源地址字段。
DHCPv6中继上行报文源地址填充为用户指定的全球单播地址或指定接口的地址。
未配置该功能时,DHCPv6中继上行报文源地址默认填充为出接口的地址。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置指定源地址。
ipv6 dhcp relay source-address { ipv6-address | interface interface-type interface-number }
缺省情况下,DHCPv6中继自动选择向DHCPv6服务器转发报文出接口的一个全球单播地址作为DHCPv6中继向DHCPv6服务器转发报文的源地址。
如果指定接口作为源地址,但该接口未配置全球单播地址,则选择默认出接口地址。
DHCPv6中继用户表项记录功能用来防止非法主机手工配置一个IPv6地址并访问外部网络。
开启该功能后,当DHCPv6客户端通过DHCPv6中继从DHCPv6服务器获取到IPv6地址/前缀时,DHCPv6中继可以自动记录DHCPv6客户端的IPv6地址/前缀和硬件地址的绑定关系,生成DHCPv6中继用户表项。
该功能与其他IPv6地址安全功能(如IP Source Guard)配合后,可以实现只允许匹配DHCPv6中继用户表项的报文通过DHCPv6中继。从而,保证非法主机无法通过DHCPv6中继与外部网络通信。IP Source Guard的详细描述请参见“安全配置指导”中的“IP Source Guard”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCPv6中继用户表项记录功能。
ipv6 dhcp relay client-information record
缺省情况下,DHCPv6中继用户表项记录功能处于关闭状态。
未配置该功能时,删除DHCPv6中继用户表项时(如执行reset ipv6 dhcp relay client-information address命令)只会删除DHCPv6中继上保存的表项信息。
配置该功能后,删除DHCPv6中继用户表项时,DHCPv6中继会主动向DHCPv6服务器发送释放该表项对应IPv6租约的Release报文。DHCPv6服务器收到该报文后,会将该租约状态从已分配转化为过期。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置清除用户表项时通知DHCPv6服务器释放租约。
ipv6 dhcp relay release-agent
缺省情况下,清除用户表项时不会通知DHCPv6服务器释放租约。
开启DHCPv6中继用户下线探测功能后,DHCPv6中继可探测存在的ND表项状态。当ND表项老化后,DHCPv6中继认为该表项对应的用户已下线。这时,DHCPv6中继会删除与该ND表项对应的DHCPv6中继用户表项。ND的详细介绍请参见“三层技术-IP业务配置指导”中的“IPv6基础”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCPv6中继用户下线检测功能。
ipv6 dhcp client-detect
缺省情况下,DHCPv6中继用户下线检测功能处于关闭状态。
配置DHCPv6 Flood攻击防范功能后,DHCPv6中继会根据DHCPv6报文中的源MAC地址统计收到的DHCPv6报文数,并创建一个check状态的DHCPv6防Flood攻击表项。当收到某个MAC地址对应DHCPv6客户端发送的报文数在指定的时间内达到配置的最大报文数时,DHCPv6中继认为受到了该DHCPv6客户端的攻击,DHCPv6防Flood攻击表项状态从check状态变成restrain状态。在restrain状态的DHCPv6防Flood攻击表项老化前,DHCPv6中继会直接丢弃该DHCPv6客户端发送的DHCPv6报文。当某个MAC地址对应的DHCPv6 Flood攻击表项老化时间到达后,设备会删除此表项。之后DHCPv6中继再次收到源MAC地址为此MAC地址的DHCPv6请求报文时会重新统计接收到的报文数目。
目前,只能在VXLAN组网中配置DHCPv6防Flood攻击功能。关于VXLAN的详细介绍,请参见“VXLAN配置指导”中的“VXLAN”。
如果网络中包括DHCPv6服务器和DHCPv6中继,DHCPv6服务器收到的DHCPv6报文中源MAC地址是DHCPv6中继的MAC地址。针对这种组网环境DHCPv6防Flood攻击功能需要配置在DHCPv6中继的下行接口上。
(1) 进入系统视图。
system-view
(2) (可选)配置DHCPv6防Flood攻击报文速率阈值。
ipv6 dhcp flood-protection threshold packet-number milliseconds
缺省情况下,DHCPv6防Flood攻击检测的最大报文数为6,检测时间为5000毫秒。
(3) (可选)配置DHCPv6防Flood攻击表项老化时间。
ipv6 dhcp flood-protection aging-time time
缺省情况下,DHCPv6 Flood攻击检测表项老化时间为300秒。
(4) 进入VSI视图。
vsi vsi-name
(5) 开启DHCPv6防Flood攻击功能。
ipv6 dhcp flood-protection enable
缺省情况下,DHCPv6防Flood攻击功能处于关闭状态。
存在多台DHCPv6服务器的中继组网环境中,DHCPv6服务器A在收到DHCPv6客户端的请求报文后,会为客户端分配一个IPv6地址,客户端收到该IPv6地址后会以组播形式向组网中的所有DHCPv6服务器发送Confirm报文确认该IPv6地址是否可用。
服务器A收到Confirm报文后,回复Reply报文确认该IPv6地址可用。服务器B也收到Confirm报文后,且当服务器B的地址池网段内不包含该IPv6地址时,服务器B将回复地址分配失败的Reply报文。DHCPv6中继将地址分配成功和分配失败的两份Reply报文都转发给客户端后,可能导致客户端无法获得该IPv6地址。
为了避免出现以上问题,可以开启DHCPv6中继对Confirm请求报文的Reply报文的检查功能。
开启本功能后,单次Confirm请求交互中,DHCPv6中继将在收到每个客户端的第一个Reply报文时启动检测定时器(固定为0.5秒),并仅在检测定时器时长内检查收到的Reply报文,检测定时器超时后收到的Reply报文不做检查按原有流程转发。
本功能的实现机制如下:
· 如果中继收到的第一个Reply报文为确认成功报文,则将其转发给客户端,检测定时器时长内收到的确认失败报文直接丢弃,确认成功报文照常转发。
· 如果中继收到的第一个Reply报文为确认失败报文,则缓存该报文:
¡ 若检测定时器时长内中继没有收到确认成功报文,则转发该确认失败报文给客户端,检测时长内收到的其它确认失败报文直接丢弃。
¡ 若检测定时器时长内中继又收到了确认成功报文,则丢弃缓存的确认失败报文,将确认成功报文转发给客户端,检测时长内收到的确认失败报文直接丢弃,确认成功报文照常转发。
· 如果检测定时器时长内中继收到了客户端的DHCP请求报文(包括Confirm报文),则删除之前Confirm请求交互中缓存的Reply报文并关闭检测定时器。
· 如果中继在收到了Confirm报文后又收到客户端的其它DHCP请求报文,则认为客户端已开始新请求,不对此Confirm报文的Reply报文进行检查,直接转发给客户端。
(1) 进入系统视图。
system-view
(2) 开启DHCPv6中继对Confirm请求报文的Reply报文的检查功能。
ipv6 dhcp relay confirm-reply-check
缺省情况下,DHCPv6中继对Confirm请求报文的Reply报文的检查功能处于关闭状态。
在VXLAN组网中,用户可以在VTEP设备上的VSI虚接口上配置DHCPv6中继功能。
当从AC链路上收到DHCPv6请求报文时,DHCPv6中继此DHCPv6请求报文转发给DHCPv6服务器。同时,VTEP还会将该请求报文转发到其他的所有VTEP。其他VTEP如果配置了DHCPv6中继,则会在收到报文后,将其转发给其所连接的DHCPv6服务器。
当多台VTEP设备配置了DHCPv6中继功能后,为了避免在DHCPv6服务器上收到多了相同的DHCPv6请求报文,需要在DHCPv6客户端非直接相连的DHCPv6中继的VSI虚接口上配置本功能丢弃从VXLAN隧道收到DHCPv6请求报文。
(1) 进入系统视图。
system-view
(2) 进入VSI虚接口视图。
interface vsi-interface vsi-number
(3) 配置DHCPv6中继丢弃从VXLAN隧道收到的DHCPv6请求报文。
ipv6 dhcp relay request-from-tunnel discard
缺省情况下,DHCPv6中继转发从VXLAN隧道收到DHCPv6请求报文。
设备同时作为分布式VXLAN IP网关时,如需配置本功能,则分布式VXLAN IP网关和集中式VXLAN IP网关不要共用同一个VSI虚接口。
在分布式EVPN组网环境中,所有分布式EVPN网关设备的VSI接口的IPv6地址相同,分布式EVPN网关需要开启DHCPv6中继功能。客户端发送请求报文给对应的分布式网关后,网关记录该DHCPv6请求报文中DHCPv6客户端的MAC地址和中继出接口的对应关系,再将报文转发给DHCPv6服务器。如果另一台分布式网关收到DHCPv6服务器的应答报文后,就会发现该设备并未记录该DHCPv6应答报文中DHCPv6客户端的MAC地址和中继出接口的对应关系。缺省情况下,该设备会直接丢弃该DHCPv6应答报文,就会导致DHCPv6客户端无法获取到IPv6地址或IPv6前缀。在DHCPv6服务器接入的分布式EVPN网关上配置本功能后,如果设备发现并未记录收到的DHCPv6应答报文中DHCPv6客户端的MAC地址和中继出接口的对应关系,则根据客户端的MAC地址查询MAC地址表,在表项对应的出接口转发DHCPv6应答报文,保证DHCPv6客户端能够收到应答报文。
配置DHCPv6中继单播转发DHCPv6应答报文方式时,DHCPv6应答报文对应的DHCPv6客户端上行的DHCPv6中继收到DHCPv6应答报文,直接按照MAC地址转发该报文。因此DHCPv6中继无法感知到DHCPv6客户端上线,也就不会记录DHCPv6中继用户地址表项。指定了broadcast参数后,DHCPv6应答报文对应的DHCPv6客户端上行的DHCPv6中继收到的DHCPv6应答报文后,会上送CPU处理,在表项对应的出接口广播DHCP应答报文。如果DHCPv6客户端上行的DHCPv6中继开启了DHCPv6中继用户地址表项记录功能,就可以记录DHCPv6客户端的用户地址表项。
分布式EVPN组网环境中,DHCPv6服务器发送给DHCPv6中继的应答报文中必须携带客户端的MAC地址,在DHCPv6中继上配置的本功能才能生效。因此必须在DHCPv6中继上先通过ipv6 dhcp relay interface-id user-mac命令将客户端MAC地址填充到DHCPv6请求报文的Option 18选项中,DHCPv6服务器在回应报文时才会携带此选项,从而保证应答报文中包含客户端的MAC地址信息。
(1) 进入系统视图。
system-view
(2) 配置如果DHCPv6中继未记录收到的DHCPv6应答报文中DHCPv6客户端的MAC地址和中继出接口的对应关系,则根据客户端的MAC地址查询MAC地址表,在表项对应的出接口转发DHCPv6应答报文。
ipv6 dhcp relay mac-forward enable [ broadcast ]
缺省情况下,如果DHCPv6中继未记录收到的DHCPv6应答报文中DHCPv6客户端的MAC地址和中继出接口的对应关系,则直接丢弃该应答报文。
在完成上述配置后,在任意视图下执行display命令可以显示配置后DHCPv6中继的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除DHCPv6中继的统计信息。
表3-1 DHCPv6中继显示和维护
操作 |
命令 |
显示本设备DUID |
display ipv6 dhcp duid |
显示DHCPv6中继用户地址表项信息 |
display ipv6 dhcp relay client-information address [ interface interface-type interface-number | ipv6 ipv6-address ] [ vpn-instance vpn-instance-name ] |
显示DHCPv6中继用户前缀表项信息 |
display ipv6 dhcp relay client-information pd [ interface interface-type interface-number | prefix prefix/prefix-len ] [ vpn-instance vpn-instance-name ] |
显示DHCPv6中继记录的M-LAG接口信息 |
display ipv6 dhcp relay m-lag-status |
显示DHCPv6中继接口上指定的DHCPv6服务器地址信息 |
display ipv6 dhcp relay server-address [ interface interface-type interface-number ] |
显示DHCPv6中继的相关报文统计信息 |
display ipv6 dhcp relay statistics [ interface interface-type interface-number ] |
清除DHCPv6中继用户地址表项信息 |
reset ipv6 dhcp relay client-information address [ interface interface-type interface-number | ipv6 ipv6-address ] [ vpn-instance vpn-instance-name ] |
清除DHCPv6中继用户前缀表项信息 |
reset ipv6 dhcp relay client-information pd [ interface interface-type interface-number | prefix prefix/prefix-len ] [ vpn-instance vpn-instance-name ] |
清除DHCPv6中继的相关报文统计信息 |
reset ipv6 dhcp relay statistics [ interface interface-type interface-number ] |
· 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中继组网图
# 配置VLAN接口2和VLAN接口3的IPv6地址。取消设备发布RA消息的抑制。配置被管理地址的配置标志位为1,即主机通过DHCPv6服务器获取IPv6地址。配置其他信息配置标志位为1,即主机通过DHCPv6服务器获取除IPv6地址以外的其他信息
<SwitchA> system-view
[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
[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
# 配置VLAN接口3工作在DHCPv6中继模式,并指定DHCPv6服务器地址。
[SwitchA-Vlan-interface3] ipv6 dhcp select relay
[SwitchA-Vlan-interface3] ipv6 dhcp relay server-address 2::2
# 完成上述配置后,查看DHCPv6中继上指定的DHCPv6服务器地址信息。
[SwitchA-Vlan-interface3] display ipv6 dhcp relay server-address
Interface: Vlan-interface3
Server address Outgoing Interface Public/VRF name
2::2 --/--
# 查看DHCPv6中继相关报文的统计信息。
[SwitchA-Vlan-interface3] display ipv6 dhcp relay statistics
Packets dropped : 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获取IPv6地址和网络配置参数,IPv6地址作为开启DHCPv6客户端功能的接口地址,当设备开启DHCPv6服务器功能后,获取的网络配置参数用来自动创建DHCPv6选项组。
· 通过DHCPv6获取IPv6前缀和网络配置参数,IPv6前缀作为本地设备的IPv6前缀(本地设备根据该前缀生成IPv6地址);当设备开启DHCPv6服务器功能后,获取的网络配置参数用来自动创建DHCPv6选项组。
· 通过DHCPv6同时获取IPv6地址、IPv6前缀和网络配置参数,IPv6地址作为开启DHCPv6客户端功能的接口地址,IPv6前缀作为本地设备的IPv6前缀(本地设备根据该前缀生成IPv6地址);当设备开启DHCPv6服务器功能后,获取的网络配置参数用来自动创建DHCPv6选项组。
· 通过DHCPv6无状态配置获取除IPv6地址/前缀外的其他网络配置参数。DHCPv6客户端通过地址无状态自动配置功能成功获取IPv6地址后,如果接收到的RA报文中M标志位的取值为0、O标志位的取值为1,则设备会自动启动DHCPv6无状态配置功能,以获取除地址/前缀外的其他网络配置参数。否则DHCPv6客户端不会开启无状态配置过程。
建议不要在一个接口上同时配置DHCPv6客户端和DHCPv6服务器功能,也不要在一个接口上同时配置DHCPv6客户端和DHCPv6中继功能,否则会影响功能正常使用。
DHCPv6客户端配置任务如下:
(1) (可选)配置接口使用的DHCPv6客户端DUID
(2) 配置DHCPv6客户端获取IPv6地址、IPv6前缀和网络配置参数
请至少选择以下一项任务进行配置:
¡ 配置DHCPv6客户端同时获取IPv6地址、IPv6前缀和网络配置参数
¡ 配置DHCPv6客户端获取除地址/前缀外的其他网络配置参数
(3) (可选)配置DHCPv6客户端发送DHCPv6报文的DSCP优先级
DHCPv6客户端DUID用来填充DHCPv6报文的Option 1,作为识别DHCPv6客户端的唯一标识。DHCPv6服务器可以根据DHCPv6客户端DUID为特定的DHCPv6客户端分配特定的IPv6地址。用户可以通过三种方法指定DHCPv6客户端DUID:ASCII字符串、十六进制数或接口的MAC地址。
用户在指定客户端ID时,需要确保不同客户端的客户端ID不能相同。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口使用的DHCPv6客户端DUID。
ipv6 dhcp client duid { ascii ascii-string | hex hex-string | mac interface-type interface-number }
缺省情况下,根据设备的桥MAC地址生成DHCPv6客户端DUID。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口作为DHCPv6客户端,通过DHCPv6方式获取IPv6地址和其他网络配置参数。
ipv6 address dhcp-alloc [ option-group group-number | rapid-commit ] *
缺省情况下,接口不会作为DHCPv6客户端获取IPv6地址和网络配置参数。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口作为DHCPv6客户端,通过DHCPv6方式获取IPv6前缀和其他网络配置参数。
ipv6 dhcp client pd prefix-number [ option-group group-number | rapid-commit ]*
缺省情况下,接口不会作为DHCPv6客户端获取IPv6前缀和网络配置参数。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口作为DHCPv6客户端,通过DHCPv6方式同时获取IPv6地址、IPv6前缀和其他网络配置参数。
ipv6 dhcp client stateful prefix prefix-number [ option-group option-group-number | rapid-commit ] *
缺省情况下,接口不会作为DHCPv6客户端同时获取IPv6地址、IPv6前缀和网络配置参数。
DHCPv6客户端可通过如下方式获取除地址/前缀外的其他网络参数:
· 如果接口上只配置了ipv6 address auto命令,则接口会通过无状态自动配置方式生成全球单播地址,同时自动生成链路本地地址。只有接收到的RA报文中M标志位的取值为0、O标志位的取值为1时,设备才会自动启动DHCPv6无状态配置功能。
· 如果接口只配置了ipv6 dhcp client stateless enable命令,则接口开启了DHCPv6客户端功能,并从DHCPv6服务器获取除地址/前缀外的其他网络配置参数。
· 如果接口上同时配置了ipv6 address auto命令和ipv6 dhcp client stateless enable命令,则接口通过无状态生成全球单播地址,同时自动生成链路本地地址,且直接从DHCPv6服务器获取除地址/前缀外的其他网络配置参数。
ipv6 address auto命令的详细介绍请参见“三层技术-IP业务命令参考”中的“IPv6基础”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启无状态自动配置功能。请至少选择其中一项进行配置。
¡ 开启IPv6地址无状态自动配置功能。
ipv6 address auto
¡ 开启DHCPv6客户端无状态配置功能。
ipv6 dhcp client stateless enable
缺省情况下,接口不会作为DHCPv6客户端获取除地址/前缀外的其他网络配置参数。
DSCP优先级用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定DHCPv6客户端发送的DHCPv6报文的DSCP优先级。
(1) 进入系统视图。
system-view
(2) 配置DHCPv6客户端发送的DHCPv6报文的DSCP优先级。
ipv6 dhcp client dscp dscp-value
缺省情况下,DHCPv6客户端发送的DHCPv6报文的DSCP优先级为56。
在完成上述配置后,在任意视图下执行display命令可以显示配置后DHCPv6客户端的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除DHCPv6客户端的统计信息。
表4-1 DHCPv6客户端显示和维护
操作 |
命令 |
显示DHCPv6客户端的信息 |
display ipv6 dhcp client [ interface interface-type interface-number ] |
显示DHCPv6客户端的统计信息 |
display ipv6 dhcp client statistics [ interface interface-type interface-number ] |
清除DHCPv6客户端的统计信息 |
reset ipv6 dhcp client statistics [ interface interface-type interface-number ] |
DHCPv6客户端Switch从DHCPv6服务器获取IPv6地址,以及网络配置参数:DNS服务器地址、域名后缀、SIP服务器地址和SIP服务器域名。
DHCPv6客户端根据获取到的网络配置参数自动创建DHCPv6选项组1。
图4-1 DHCPv6客户端申请地址及网络参数配置组网图
进行下面的配置前,需要先完成DHCPv6服务器的配置。
# 配置VLAN接口2作为DHCPv6客户端获取IPv6地址及网络参数,配置DHCPv6客户端支持地址快速分配功能,并配置根据获取到的网络配置参数自动创建DHCPv6选项组1。
<Switch> system-view
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] ipv6 address dhcp-alloc rapid-commit option-group 1
[Switch-Vlan-interface2] quit
# 显示DHCPv6客户端的信息。可以看出DHCPv6客户端已经成功从DHCPv6服务器获取IPv6地址及网络参数。
[Switch] display ipv6 dhcp client
Vlan-interface2:
Type: Stateful client requesting address
State: OPEN
Client DUID: 0003000100e002000000
Preferred server:
Reachable via address: FE80::2E0:1FF:FE00:18
Server DUID: 0003000100e001000000
IA_NA: IAID 0x00000642, T1 50 sec, T2 80 sec
Address: 1:1::2/128
Preferred lifetime 100 sec, valid lifetime 200 sec
Will expire on Mar 27 2014 at 08:06:57 (198 seconds left)
DNS server addresses:
2000::FF
Domain name:
example.com
SIP server addresses:
2:2::4
SIP server domain names:
bbb.example.com
# 在DHCPv6客户端上开启DHCPv6服务器功能后,显示动态创建的DHCPv6选项组1的信息。
[Switch] display ipv6 dhcp option-group 1
DHCPv6 option group: 1
DNS server addresses:
Type: Dynamic (DHCPv6 address allocation)
Interface: Vlan-interface2
2000::FF
Domain name:
Type: Dynamic (DHCPv6 address allocation)
Interface: Vlan-interface2
example.com
SIP server addresses:
Type: Dynamic (DHCPv6 address allocation)
Interface: Vlan-interface2
2:2::4
SIP server domain names:
Type: Dynamic (DHCPv6 address allocation)
Interface: Vlan-interface2
bbb.example.com
# 查看获取到的IPv6地址。
[Switch] display ipv6 interface brief
*down: administratively down
(s): spoofing
Interface Physical Protocol IPv6 Address
Vlan-interface2 up up 1:1::2
DHCPv6客户端Switch从DHCPv6服务器获取IPv6前缀,以及网络配置参数:DNS服务器地址、域名后缀、SIP服务器地址和SIP服务器域名等。
DHCPv6客户端Switch根据获取到的前缀自动创建IPv6前缀1,根据获取到的网络配置参数自动创建DHCPv6选项组1。
图4-2 DHCPv6客户端申请前缀及网络参数配置组网图
进行下面的配置前,需要先完成DHCPv6服务器的配置。
# 在客户端连接到DHCPv6服务器的VLAN接口2上配置IPv6地址。
<Switch> system-view
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] ipv6 address 1::2/48
# 配置VLAN接口2作为DHCPv6客户端获取IPv6前缀及网络参数,配置根据获取到的前缀自动创建IPv6前缀1,根据获取到的网络配置参数自动创建DHCPv6选项组1,并配置DHCPv6客户端支持前缀快速分配功能。
[Switch-Vlan-interface2] ipv6 dhcp client pd 1 rapid-commit option-group 1
[Switch-Vlan-interface2] quit
# 显示DHCPv6客户端的信息。可以看出DHCPv6客户端已经成功从DHCPv6服务器获取IPv6前缀及网络参数。
[Switch] display ipv6 dhcp client
Vlan-interface2:
Type: Stateful client requesting prefix
State: OPEN
Client DUID: 0003000100e002000000
Preferred server:
Reachable via address: FE80::2E0:1FF:FE00:18
Server DUID: 0003000100e001000000
IA_PD: IAID 0x00000642, T1 50 sec, T2 80 sec
Prefix: 12:34::/48
Preferred lifetime 100 sec, valid lifetime 200 sec
Will expire on Feb 4 2014 at 15:37:20(80 seconds left)
DNS server addresses:
2000::FF
Domain name:
example.com
SIP server addresses:
2:2::4
SIP server domain names:
bbb.example.com
# 显示动态创建的IPv6前缀1的信息。
[Switch] display ipv6 prefix 1
Number: 1
Type : Dynamic
Prefix: 12:34::/48
Preferred lifetime 100 sec, valid lifetime 200 sec
# 在DHCPv6客户端上开启DHCPv6服务器功能后,显示动态创建的DHCPv6选项组1的信息。
[Switch] display ipv6 dhcp option-group 1
DHCPv6 option group: 1
DNS server addresses:
Type: Dynamic (DHCPv6 prefix allocation)
Interface: Vlan-interface2
2000::FF
Domain name:
Type: Dynamic (DHCPv6 prefix allocation)
Interface: Vlan-interface2
example.com
SIP server addresses:
Type: Dynamic (DHCPv6 prefix allocation)
Interface: Vlan-interface2
2:2::4
SIP server domain names:
Type: Dynamic (DHCPv6 prefix allocation)
Interface: Vlan-interface2
bbb.example.com
DHCPv6客户端Switch从DHCPv6服务器同时获取IPv6地址、IPv6前缀,以及网络配置参数:DNS服务器地址、域名后缀、SIP服务器地址和SIP服务器域名等。
DHCPv6客户端Switch根据获取到的前缀自动创建IPv6前缀1,根据获取到的网络配置参数自动创建DHCPv6选项组1。
图4-3 DHCPv6客户端同时申请地址、前缀及网络参数配置组网图
进行下面的配置前,需要先完成DHCPv6服务器的配置。
# 在客户端连接到DHCPv6服务器的VLAN接口2上配置IPv6地址。
<Switch> system-view
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] ipv6 address 1::2/48
# 配置VLAN接口2作为DHCPv6客户端获取IPv6前缀及网络参数,配置根据获取到的前缀自动创建IPv6前缀1,根据获取到的网络配置参数自动创建DHCPv6选项组1,并配置DHCPv6客户端支持前缀快速分配功能。
[Switch-Vlan-interface2] ipv6 dhcp client stateful prefix 1 rapid-commit option-group 1
[Switch-Vlan-interface2] quit
# 显示DHCPv6客户端的信息。可以看出DHCPv6客户端已经成功从DHCPv6服务器获取IPv6前缀及网络参数。
[Switch] display ipv6 dhcp client
Vlan-interface2:
Type: Stateful client requesting address and prefix
State: OPEN
Client DUID: 0003000100e002000000
Preferred server:
Reachable via address: FE80::2E0:1FF:FE00:18
Server DUID: 0003000100e001000000
IA_NA: IAID 0x00000642, T1 50 sec, T2 80 sec
Address: 1:1::2/128
Preferred lifetime 100 sec, valid lifetime 200 sec
Will expire on Mar 27 2014 at 08:02:00 (199 seconds left)
IA_PD: IAID 0x00000642, T1 50 sec, T2 80 sec
Prefix: 12:34::/48
Preferred lifetime 100 sec, valid lifetime 200 sec
Will expire on Mar 27 2014 at 08:02:00 (199 seconds left)
DNS server addresses:
2000::FF
Domain name:
example.com
SIP server addresses:
2:2::4
SIP server domain names:
bbb.example.com
# 查看获取到的IPv6地址。
[Switch] display ipv6 interface brief
*down: administratively down
(s): spoofing
Interface Physical Protocol IPv6 Address
Vlan-interface2 up up 1:1::2
# 显示动态创建的IPv6前缀1的信息。
[Switch] display ipv6 prefix 1
Number: 1
Type : Dynamic
Prefix: 12:34::/48
Preferred lifetime 100 sec, valid lifetime 200 sec
# 在DHCPv6客户端上开启DHCPv6服务器功能后,显示动态创建的DHCPv6选项组1的信息。
[Switch] display ipv6 dhcp option-group 1
DNS server addresses:
Type: Dynamic (DHCPv6 address and prefix allocation)
Interface: Vlan-interface2
2000::FF
Domain name:
Type: Dynamic (DHCPv6 address and prefix allocation)
Interface: Vlan-interface2
example.com
SIP server addresses:
Type: Dynamic (DHCPv6 address and prefix allocation)
Interface: Vlan-interface2
2:2::4
SIP server domain names:
Type: Dynamic (DHCPv6 address and prefix allocation)
Interface: Vlan-interface2
bbb.example.com
以上三条display命令可以看到客户端获取到的地址信息、前缀信息和网络参数。
· DHCPv6客户端Switch A通过DHCPv6无状态配置获取域名服务器、域名等信息;
· Switch B作为网关,周期性发布RA消息。
图4-4 DHCPv6无状态配置组网图
进行下面的配置前,需要先完成DHCPv6服务器的配置。
(1) 配置网关Switch B
# 配置VLAN接口2的IPv6地址。
<SwitchB> system-view
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] ipv6 address 1::1 64
# 配置RA消息中O标志位为1。
[SwitchB-Vlan-interface2] ipv6 nd autoconfig other-flag
# 配置允许发送RA消息。
[SwitchB-Vlan-interface2] undo ipv6 nd ra halt
(2) 配置DHCPv6客户端Switch A
# 在VLAN接口2上使能IPv6地址无状态自动配置功能。
<SwitchA> system-view
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] ipv6 address auto
执行此命令后,如果VLAN接口2下未配置地址,Switch A会自动生成链路本地地址,并主动发送RS(Router Solicitation,路由器请求)报文,请求网关Switch B立即回应RA报文。
如果收到的RA报文中M标志位为0、O标志位为1,Switch A就会启动DHCPv6客户端无状态配置。
# 可以通过display ipv6 dhcp client命令查看当前客户端的配置信息,如果从服务器成功获取了配置,将会有类似的显示信息。
[SwitchA-Vlan-interface2] display ipv6 dhcp client interface vlan-interface 2
Vlan-interface2:
Type: Stateless client
State: OPEN
Client DUID: 00030001000fe2ff0000
Preferred server:
Reachable via address: FE80::213:7FFF:FEF6:C818
Server DUID: 0003000100137ff6c818
DNS server addresses:
1:2:4::5
1:2:4::7
Domain name:
abc.example.com
# 可以通过display ipv6 dhcp client statistics命令查看当前客户端的统计信息。
[SwitchA-Vlan-interface2] display ipv6 dhcp client statistics
Interface : Vlan-interface2
Packets received : 1
Reply : 1
Advertise : 0
Reconfigure : 0
Invalid : 0
Packets sent : 5
Solicit : 0
Request : 0
Renew : 0
Rebind : 0
Information-request : 5
Release : 0
Decline : 0
DHCPv6 Snooping是DHCPv6的一种安全特性,用来保证客户端从合法的服务器获取IPv6地址或IPv6前缀,并可以记录DHCPv6客户端IPv6地址或IPv6前缀与MAC地址的对应关系。
网络中如果存在私自架设的非法DHCPv6服务器,则可能导致DHCPv6客户端获取错误的IPv6地址和网络配置参数,从而无法正常通信。为了使DHCPv6客户端能通过合法的DHCPv6服务器获取IPv6地址,DHCPv6 Snooping安全机制允许将端口设置为信任端口和不信任端口:
· 信任端口正常转发接收到的DHCPv6报文。
· 不信任端口接收到DHCPv6服务器发送的应答报文后,丢弃该报文。
如图5-1所示,在DHCPv6 Snooping设备上指向DHCPv6服务器方向的端口需要设置为信任端口,其他端口设置为不信任端口,从而保证DHCPv6客户端只能从合法的DHCPv6服务器获取地址,私自架设的非法DHCPv6服务器无法为DHCPv6客户端分配地址。
DHCPv6 Snooping通过监听DHCPv6报文,记录DHCPv6 Snooping表项,其中包括客户端的MAC地址、获取到的IPv6地址、与DHCPv6客户端连接的端口及该端口所属的VLAN等信息。网络管理员可以通过display ipv6 dhcp snooping binding命令查看客户端获取的IPv6地址信息,以便了解用户上网时所用的IPv6地址,并对其进行管理和监控。
DHCPv6 Snooping通过监听DHCPv6报文中的前缀和收到DHCPv6请求报文的端口信息,记录DHCPv6 Snooping前缀表项,其中包括客户端获取到的IPv6前缀、租约信息、与DHCPv6客户端连接的端口及该端口所属的VLAN等信息。网络管理员可以通过display ipv6 dhcp snooping pd binding命令查看客户端获取的IPv6前缀信息,以便了解用户上网时所用的IPv6前缀,并对其进行管理和监控。
在网络中,为了提高DHCPv6 Snooping设备的可靠性,可以配置M-LAG组网下的DHCPv6功能。将两台DHCPv6 Snooping设备在聚合层面虚拟成一台设备来实现跨设备链路聚合,从而提供设备级冗余保护和流量负载分担。管理员可以通过执行display ipv6 dhcp snooping m-lag-status命令和display ipv6 dhcp snooping m-lag-statistics命令查看M-LAG同步给DHCPv6 Snooping的状态信息和统计信息,来判断M-LAG组网环境中的DHCPv6 Snooping功能是否工作正常。
关于M-LAG的详细介绍,请参见“二层技术—以太网交换配置指导”中的“M-LAG”。
图5-2 M-LAG组网下的DHCPv6 Snooping功能组网图
设备只有位于DHCPv6客户端与DHCPv6服务器之间,或DHCPv6客户端与DHCPv6中继之间时,DHCPv6 Snooping功能配置后才能正常工作;设备位于DHCPv6服务器与DHCPv6中继之间时,DHCPv6 Snooping功能配置后不能正常工作。
为了使DHCPv6客户端能从合法的DHCPv6服务器获取IPv6地址,必须将与合法DHCPv6服务器相连的端口设置为信任端口,且设置的信任端口和与DHCPv6客户端相连的端口必须在同一个VLAN内。
如果二层以太网接口加入了聚合组,则加入聚合组之前和加入聚合组之后在该接口上进行的DHCPv6 Snooping相关配置不会生效;该接口退出聚合组后,DHCPv6 Snooping的配置才会生效。
DHCPv6 Snooping配置任务如下:
(2) (可选)配置DHCPv6 Snooping支持Option 18功能
(3) (可选)配置DHCPv6 Snooping支持Option 37功能
(4) (可选)配置DHCPv6 Snooping表项固化功能
(5) (可选)配置接口动态学习DHCPv6 Snooping表项的最大数目
(6) (可选)开启DHCPv6 Snooping报文限速功能
(7) (可选)配置DHCPv6 Snooping安全功能
(8) (可选)开启DHCPv6 Snooping的轻量级DHCPv6中继功能
(9) (可选)开启DHCPv6 Snooping的Relay-Forward报文检查功能
(10) (可选)开启DHCPv6 Snooping的用户下线探测功能
(11) (可选)开启DHCPv6 Snooping日志和告警功能
(12) (可选)关闭接口的DHCPv6 Snooping功能
在一台DHCPv6 Snooping设备上,如果全局开启了DHCPv6 Snooping功能,则设备上所有VLAN内的DHCPv6 Snooping功能也同时开启。
对于某些组网来说,管理员只需要在设备在某些特定VLAN内开启DHCPv6 Snooping功能,而不需要在整个设备上开启DHCPv6 Snooping功能。为了满足此需求,设备支持在指定VLAN内开启DHCPv6 Snooping功能,并在VLAN内配置DHCPv6 Snooping信任端口和开启端口的DHCPv6 Snooping表项记录功能。
在一台设备上,全局DHCPv6 Snooping功能和VLAN内的DHCPv6 Snooping功能关系如下:
· 如果全局开启了DHCPv6 Snooping基本功能(包括开启DHCPv6 Snooping功能、配置信任端口和配置DHCPv6 Snooping表项记录功能),只能使用对应的全局命令关闭功能,使用VLAN内的命令关闭功能不生效;
· 如果VLAN内开启了DHCPv6 Snooping基本功能(包括开启DHCPv6 Snooping功能、配置信任端口和配置DHCPv6 Snooping表项记录功能),只能使用对应的VLAN内命令关闭功能,使用全局命令关闭功能不生效。
(1) 进入系统视图。
system-view
(2) 开启DHCPv6 Snooping功能。
ipv6 dhcp snooping enable
缺省情况下,DHCPv6 Snooping功能处于关闭状态。
(3) 进入接口视图。
interface interface-type interface-number
此接口为连接DHCPv6服务器的接口。
(4) 配置DHCPv6 Snooping信任端口。
ipv6 dhcp snooping trust
缺省情况下,开启DHCPv6 Snooping功能后,设备的所有端口均为不信任端口。
(5) (可选)开启端口的DHCPv6 Snooping表项记录功能。
a. 退回系统视图。
quit
b. 进入接口视图。
interface interface-type interface-number
此接口为连接DHCP客户端的接口。
c. 开启端口的DHCPv6 Snooping表项记录功能。请至少选择其中一项进行配置。
- 开启端口的DHCPv6 Snooping地址表项记录功能。
ipv6 dhcp snooping binding record
缺省情况下,端口的DHCPv6 Snooping地址表项记录功能处于关闭状态。
- 开启端口的DHCPv6 Snooping前缀表项记录功能。
ipv6 dhcp snooping pd binding record
缺省情况下,端口的DHCPv6 Snooping前缀表项记录功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 在指定VLAN内开启DHCPv6 Snooping功能。
ipv6 dhcp snooping enable vlan vlan-id-list
缺省情况下,所有VLAN内的DHCPv6 Snooping功能处于关闭状态。
(3) 进入VLAN视图。
vlan vlan-id
该VLAN为开启了DHCPv6 Snooping功能的VLAN。
(4) 配置指定接口为VLAN下DHCPv6 Snooping功能的信任端口。
ipv6 dhcp snooping trust interface interface-type interface-number
缺省情况下,在开启DHCPv6 Snooping功能后,VLAN内的所有接口均为不信任端口。
(5) (可选)开启VLAN内的DHCPv6 Snooping表项记录功能。请至少选择其中一项进行配置。
¡ 开启VLAN内的DHCPv6 Snooping地址表项记录功能。
ipv6 dhcp snooping binding record
缺省情况下,VLAN内的DHCPv6 Snooping地址表项记录功能处于关闭状态。
¡ 开启VLAN内的DHCPv6 Snooping前缀表项记录功能。
ipv6 dhcp snooping pd binding record
缺省情况下,VLAN内的DHCPv6 Snooping前缀表项记录功能处于关闭状态。
用户可以设置DHCPv6 Snooping信任端口为VXLAN的AC链路或隧道接口。
当开启DHCPv6 Snooping功能的VTEP设备收到DHCPv6请求报文时,将DHCPv6请求报文从信任的链路或隧道接口转发出去。DHCPv6 Snooping会丢弃非信任链路或隧道接口收到DHCP应答报文。
如果DHCPv6服务器位于本地站点内,则需要配置连接DHCPv6服务器的AC链路为信任接口;如果DHCPv6服务器位于远端站点内,则需要配置隧道接口为信任接口。
(1) 进入系统视图。
system-view
(2) 开启DHCPv6 Snooping功能。
ipv6 dhcp snooping enable
缺省情况下,DHCPv6 Snooping功能处于关闭状态。
(3) 进入接口视图。
interface interface-type interface-number
(4) 进入以太网服务实例视图。
service-instance instance-id
(5) 配置AC链路为信任接口。
ipv6 dhcp snooping trust
缺省情况下,开启DHCPv6 Snooping功能后,设备的所有端口均为不信任接口。
(6) (可选)开启端口的DHCPv6 Snooping表项记录功能。
a. 退回接口视图。
quit
b. 退回系统视图
quit
c. 进入VSI视图
vsi vsi-name
d. 开启AC链路和隧道接口的DHCPv6 Snooping表项记录功能。
ipv6 dhcp snooping binding record
缺省情况下,AC链路和隧道接口的DHCPv6 Snooping表项记录功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 开启DHCPv6 Snooping功能。
ipv6 dhcp snooping enable
缺省情况下,DHCPv6 Snooping功能处于关闭状态。
(3) 进入VSI视图。
vsi vsi-name
(4) 配置隧道接口为信任接口。
ipv6 dhcp snooping trust tunnel
缺省情况下,开启DHCPv6 Snooping功能后,设备的所有端口均为不信任接口。
配置本功能后,VSI下的所有VXLAN隧道接口都会变成信任接口。
(5) (可选)开启AC链路和隧道接口的DHCPv6 Snooping表项记录功能。
ipv6 dhcp snooping binding record
缺省情况下,AC链路和隧道接口的DHCPv6 Snooping表项记录功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCPv6 Snooping支持Option 18功能。
ipv6 dhcp snooping option interface-id enable
缺省情况下,DHCPv6 Snooping支持Option 18功能处于关闭状态。
(4) (可选)配置Option 18选项中的填充内容。
ipv6 dhcp snooping option interface-id [ vlan vlan-id ] string interface-id
缺省情况下,Option 18选项中的填充内容为本设备的DUID。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCPv6 Snooping支持Option 37功能。
ipv6 dhcp snooping option remote-id enable
缺省情况下,DHCPv6 Snooping支持Option 37功能处于关闭状态。
(4) (可选)配置Option 37选项中的DUID。
ipv6 dhcp snooping option remote-id [ vlan vlan-id ] string remote-id
缺省情况下,Option 37选项中的DUID为本设备的DUID。
DHCPv6 Snooping设备重启后,设备上记录的DHCPv6 Snooping表项将丢失。如果DHCPv6 Snooping与其他特性(如IP Source Guard)配合使用,表项丢失会导致安全特性无法通过DHCPv6 Snooping获取到相应的表项,进而导致DHCPv6客户端不能顺利通过安全检查、正常访问网络。
DHCPv6 Snooping表项备份功能将DHCPv6 Snooping表项保存到指定的文件中,DHCPv6 Snooping设备重启后,自动根据该文件恢复DHCPv6 Snooping表项,从而保证DHCPv6 Snooping表项不会丢失。
· 执行undo ipv6 dhcp snooping enable命令关闭DHCPv6 Snooping功能后,设备会删除所有DHCPv6 Snooping表项,文件中存储的DHCPv6 Snooping表项也将被删除。
· 执行ipv6 dhcp snooping binding database filename命令后,会立即触发一次表项备份。
¡ 如果未配置ipv6 dhcp snooping binding database update interval命令,若表项发生变化,默认在300秒之后刷新存储文件;若表项未发生变化,则不再刷新存储文件。
¡ 如果配置了ipv6 dhcp snooping binding database update interval命令,若表项发生变化,则到达刷新时间间隔后刷新存储文件;若表项未发生变化,则不再刷新存储文件。
(1) 进入系统视图。
system-view
(2) 指定存储DHCPv6 Snooping表项的文件名称。
ipv6 dhcp snooping binding database filename { filename | url url [ username username [ password { cipher | simple } string ] ] }
缺省情况下,未指定存储文件名称。
(3) (可选)将当前的DHCPv6 Snooping表项保存到用户指定的文件中。
ipv6 dhcp snooping binding database update now
本命令只用来触发一次DHCPv6 Snooping表项的备份。
(4) (可选)配置刷新DHCPv6 Snooping表项存储文件的延迟时间。
ipv6 dhcp snooping binding database update interval interval
缺省情况下,若DHCPv6 Snooping表项不变化,则不刷新存储文件;若DHCPv6 Snooping表项发生变化,默认在300秒之后刷新存储文件。
通过本配置可以限制接口动态学习DHCPv6 Snooping表项的最大数目,以防止接口学习到大量DHCPv6 Snooping表项,占用过多的系统资源。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口动态学习DHCPv6 Snooping表项的最大数目。
ipv6 dhcp snooping max-learning-num max-number
缺省情况下,不限制接口动态学习DHCPv6 Snooping表项的数目。
为了避免非法用户发送大量的DHCPv6报文,对网络造成攻击,DHCPv6 Snooping支持报文限速功能,限制接口接收DHCPv6报文的速率。当接口接收的DHCPv6报文速率超过限制的最高速率时,DHCPv6 Snooping设备将丢弃超过速率限制的报文。
如果二层以太网接口加入了聚合组,则该接口采用对应二层聚合接口下的DHCPv6 Snooping的报文限速配置。如果二层以太网接口离开聚合组,则该接口采用二层以太网接口下的DHCPv6 Snooping的报文限速配置。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCPv6 Snooping的报文限速功能。
ipv6 dhcp snooping rate-limit rate
缺省情况下,DHCPv6 Snooping的报文限速功能处于关闭状态,即不限制接口接收DHCPv6报文的速率。
本功能用来检查DHCPv6-Renew、DHCPv6-Rebind、DHCPv6-Decline和DHCPv6-Release四种DHCPv6请求方向的报文,以防止非法客户端伪造这四种报文对DHCPv6服务器进行攻击。
伪造DHCPv6-Renew/DHCPv6-Rebind报文攻击是指攻击者冒充合法的DHCPv6客户端,向DHCPv6服务器发送伪造的DHCPv6-Renew/DHCPv6-Rebind报文,导致DHCPv6服务器和DHCPv6客户端无法按照自己的意愿及时释放IPv6地址租约。如果攻击者冒充不同的DHCPv6客户端发送大量伪造的DHCPv6-Renew/DHCPv6-Rebind报文,则会导致大量IPv6地址被长时间占用,DHCPv6服务器没有足够的地址分配给新的DHCPv6客户端。
伪造DHCPv6-Decline/DHCPv6-Release报文攻击是指攻击者冒充合法的DHCPv6客户端,向DHCPv6服务器发送伪造的DHCPv6-Decline/DHCPv6-Release报文,导致DHCPv6服务器错误终止IPv6地址租约。
在DHCPv6 Snooping设备上开启DHCPv6请求方向报文检查功能,可以有效地防伪造DHCPv6请求方向报文攻击。如果开启了该功能,则DHCPv6 Snooping设备接收到上述报文后,检查本地是否存在与请求方向报文匹配的DHCPv6 Snooping表项。若存在,则接收报文信息与DHCPv6 Snooping表项信息一致时,认为该报文为合法的DHCPv6请求方向报文,将其转发给DHCPv6服务器;不一致时,认为该报文为伪造的DHCPv6请求方向报文,将其丢弃。若不存在,则认为该报文合法,将其转发给DHCPv6服务器。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCPv6 Snooping的DHCPv6请求方向报文检查功能。
ipv6 dhcp snooping check request-message
缺省情况下,DHCPv6 Snooping的DHCPv6请求方向报文检查功能处于关闭状态。
在某些组网环境下,用户需要在DHCPv6 Snooping设备的某一端口上丢弃该端口收到的所有DHCPv6请求方向报文,而又不影响其他端口正常接收DHCPv6报文。这时,用户可以在该端口上开启DHCP Snooping报文阻断功能。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCPv6 Snooping报文阻断功能。
ipv6 dhcp snooping deny
缺省情况下,端口的DHCPv6 Snooping报文阻断功能处于关闭状态。
在端口上开启本功能后,DHCPv6 Snooping设备会丢弃该端口收到的所有DHCPv6请求方向报文,这将导致该端口上的DHCPv6客户端无法申请到IPv6地址或IPv6前缀。因此,本功能只能在未连接DHCPv6客户端的端口上开启。
对于某些DHCPv6服务器,只支持解析Relay-Forward报文中的Interface ID选项信息,进而为对应的DHCPv6客户端分配指定的IPv6地址或前缀。如果某些DHCPv6客户端和DHCPv6服务器之间不存在DHCPv6中继,则DHCPv6服务器就无法根据Interface ID选项为DHCPv6客户端分配指定的IPv6地址或前缀。
在DHCPv6 Snooping上开启本功能后,对应端口收到DHCPv6客户端的请求报文后,生成对应的Relay-Forward报文,并在Relay-Forward报文中添加Interface ID选项,再将报文发送给DHCPv6服务器。就能实现DHCPv6服务器为客户端分配指定地址或前缀的需求。
网络中可能存在多个轻量级中继级联的情况,如果存在非法的Relay-Forward报文,建议不配置trust参数;如果确保网络中不存在非法的Relay-Forward报文,建议配置trust参数。
配置本功能前,需要先配置ipv6 dhcp snooping enable命令开启DHCPv6 Snooping功能,否则本功能不生效。
同时配置了本功能和ipv6 dhcp snooping option interface-id enable命令,则本功能不生效。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCPv6 Snooping的轻量级DHCPv6中继功能。
ipv6 dhcp snooping relay-agent enable [ trust ]
缺省情况下,DHCPv6 Snooping的轻量级DHCPv6中继功能处于关闭状态。
当DHCPv6中继收到DHCPv6请求报文后,会生成和请求报文对应的Relay-Forward报文,且将客户端信息添加到报文的Option 79选项,再将该报文转发给DHCPv6服务器。DHCPv6 Snooping设备只有位于DHCPv6客户端与DHCPv6服务器之间,或DHCPv6客户端与DHCPv6中继之间时,才能正常工作。当DHCPv6 Snooping收到Relay-Forward报文时,表示DHCPv6 Snooping设备位于DHCPv6中继与DHCPv6服务器之间,DHCPv6 Snooping无法正常工作。开启本功能后,当DHCPv6 Snooping收到Relay-Forward报文时,直接丢弃该报文。当丢弃的报文数大于或等于阈值时,DHCPv6 Snooping会生成日志信息。管理员看到相关日志信息后,可以及时调整DHCPv6设备的位置,使DHCPv6 Snooping可以正常工作。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCPv6 Snooping的Relay-Forward报文检查功能。
ipv6 dhcp snooping check relay-forward
缺省情况下,DHCPv6 Snooping的Relay-Forward报文检查功能处于关闭状态。
当DHCPv6客户端非正常下线时,不会向DHCPv6服务器发送报文释放地址或前缀租约,这会使DHCPv6服务器上无法获知DHCPv6客户端下线,导致地址或前缀租约浪费。开启本功能后,当设备上的某条ND表项老化后,DHCPv6 Snooping就认为该表项对应的DHCPv6客户端已经下线,则DHCPv6 Snooping会删除对应的DHCPv6 Snooping表项,并构造Release报文通知DHCPv6服务器删除对应的地址或前缀租约。
(1) 进入系统视图。
system-view
(2) 开启DHCPv6 Snooping的用户下线探测功能。
(3) ipv6 dhcp snooping client-detect
缺省情况下,DHCPv6 Snooping的用户下线探测功能处于关闭状态。
DHCPv6 Snooping日志可以方便管理员定位问题和解决问题。DHCPv6 Snooping设备生成DHCPv6 Snooping日志信息会交给信息中心模块处理,信息中心模块的配置将决定日志信息的发送规则和发送方向。关于信息中心的详细描述请参见“网络管理和监控配置指导”中的“信息中心”。
当DHCPv6 Snooping设备输出大量日志信息时,可能会降低设备性能。为了避免该情况的发生,用户可以关闭DHCPv6 Snooping日志信息功能,使得DHCPv6 Snooping设备不再输出日志信息。
(1) 进入系统视图。
system-view
(2) 开启DHCPv6 Snooping日志信息功能。
ipv6 dhcp snooping log enable
缺省情况下,DHCPv6 Snooping日志信息功能处于关闭状态。
开启本功能后,当指定检查功能丢弃的报文数大于或等于通过ipv6 dhcp snooping alarm threshold命令指定的报文丢弃告警阈值后,设备就会生成相应的告警日志信息,并将日志信息交给信息中心模块处理,信息中心模块的配置将决定日志信息的发送规则和发送方向。关于信息中心的详细描述请参见“网络管理和监控配置指导”中的“信息中心”。
只有首先执行ipv6 dhcp snooping log enable命令开启DHCPv6 Snooping日志信息功能后,本功能才能生效。
(1) 进入系统视图。
system-view
(2) 开启DHCPv6 Snooping报文丢弃告警功能。
ipv6 dhcp snooping alarm { relay-forward | request-message } enable
缺省情况下,DHCPv6 Snooping报文丢弃告警功能处于关闭状态。
(3) 设置DHCPv6 Snooping报文丢弃告警阈值。
ipv6 dhcp snooping alarm { relay-forward | request-message } threshold threshold
缺省情况下,DHCPv6 Snooping报文丢弃告警阈值为100。
当管理员在设备或VLAN中开启DHCPv6 Snooping功能后,该设备或整个VLAN内的所有接口也都开启了DHCPv6 Snooping功能。为了灵活控制DHCPv6 Snooping功能生效的接口范围,用户可以通过本功能关闭某个接口上的DHCPv6 Snooping功能。
(1) 进入系统视图。
system-view
(2) 进入接口视图
interface interface-type interface-number
(3) 关闭接口的DHCPv6 Snooping功能。
ipv6 dhcp snooping disable
缺省情况下,若接口所在设备或VLAN上已经开启DHCPv6 Snooping功能,则接口的DHCPv6 Snooping功能处于开启状态;若接口所在设备或VLAN上未开启DHCPv6 Snooping功能,则接口的DHCPv6 Snooping功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示DHCPv6 Snooping的配置情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除DHCPv6 Snooping表项信息。
表5-1 DHCPv6 Snooping显示和维护
操作 |
命令 |
显示DHCPv6 Snooping地址表项信息 |
display ipv6 dhcp snooping binding [ address ipv6-address [ vlan vlan-id ] | interface interface-type interface-number ] |
显示DHCPv6 Snooping表项备份信息 |
display ipv6 dhcp snooping binding database |
显示M-LAG组网中DHCPv6 Snooping记录的同步表项统计信息 |
display ipv6 dhcp snooping m-lag-statistics |
显示DHCPv6 Snooping记录的M-LAG接口信息 |
display ipv6 dhcp snooping m-lag-status |
显示DHCPv6 Snooping设备上的DHCPv6报文统计信息 |
display ipv6 dhcp snooping packet statistics [ slot slot-number ] |
显示DHCPv6 Snooping前缀表项信息 |
display ipv6 dhcp snooping pd binding [ interface interface-type interface-number | prefix prefix/prefix-length [ vlan vlan-id ] ] |
显示DHCPv6 Snooping信任端口信息 |
display ipv6 dhcp snooping trust |
清除DHCPv6 Snooping地址表项信息 |
reset ipv6 dhcp snooping binding { all | address ipv6-address [ vlan vlan-id ] } |
清除DHCPv6 Snooping记录的M-LAG同步表项统计信息 |
reset ipv6 dhcp snooping m-lag-statistics |
清除DHCPv6 Snooping设备上的DHCPv6报文统计信息 |
reset ipv6 dhcp snooping packet statistics [ slot slot-number ] |
清除DHCPv6 Snooping前缀表项信息 |
reset ipv6 dhcp snooping pd binding { all | prefix prefix/prefix-length [ vlan vlan-id ] } |
Switch B通过以太网端口Twenty-FiveGigE1/0/1连接到合法DHCPv6服务器,通过以太网端口Twenty-FiveGigE1/0/3连接到非法服务器,通过Twenty-FiveGigE1/0/2连接到DHCPv6客户端。要求:
· 与合法DHCPv6服务器相连的端口可以转发DHCPv6服务器的响应报文,而其他端口不转发DHCPv6服务器的响应报文。
· 记录DHCPv6客户端IPv6地址及MAC地址的绑定关系。
图5-3 DHCPv6 Snooping组网示意图
# 开启DHCPv6 Snooping功能。
<SwitchB> system-view
[SwitchB] ipv6 dhcp snooping enable
# 配置Twenty-FiveGigE1/0/1端口为信任端口。
[SwitchB] interface twenty-fivegige 1/0/1
[SwitchB-Twenty-FiveGigE1/0/1] ipv6 dhcp snooping trust
[SwitchB-Twenty-FiveGigE1/0/1] quit
# 在Twenty-FiveGigE1/0/2上开启安全表项功能。
[SwitchB]interface twenty-fivegige 1/0/2
[SwitchB-Twenty-FiveGigE1/0/2] ipv6 dhcp snooping binding record
[SwitchB-Twenty-FiveGigE1/0/2] quit
配置完成后,DHCPv6客户端只能够从合法DHCPv6服务器获取IPv6地址和其他配置信息,非法DHCPv6服务器无法为DHCPv6客户端分配IPv6地址和其他配置信息。且使用display ipv6 dhcp snooping binding命令可以查看生成的DHCPv6 Snooping表项。
Switch B通过以太网端口Twenty-FiveGigE1/0/1连接到合法DHCPv6服务器,通过以太网端口Twenty-FiveGigE1/0/3连接到非法DHCPv6服务器,通过Twenty-FiveGigE1/0/2连接到DHCPv6客户端。要求:
· VLAN 100上与合法DHCPv6服务器相连的端口可以转发DHCPv6服务器的响应报文,而其他端口不转发DHCPv6服务器的响应报文。
· 记录DHCPv6客户端IPv6地址及MAC地址的绑定关系。
图5-4 按VLAN开启DHCPv6 Snooping配置组网示意图
# 配置端口Twenty-FiveGigE1/0/1、Twenty-FiveGigE1/0/2和Twenty-FiveGigE1/0/3为Access端口,允许VLAN 100通过。
<SwitchB> system-view
[SwitchB] vlan 100
[SwitchB-vlan100] port twenty-fivegige 1/0/1 to twenty-fivegige 1/0/3
[SwitchB-vlan100] quit
# 在VLAN100内开启DHCPv6 Snooping功能。
[SwitchB] ipv6 dhcp snooping enable vlan 100
# 指定端口Twenty-FiveGigE1/0/1为VLAN 100下DHCPv6 Snooping功能的信任端口。
[SwitchB] vlan 100
[SwitchB-vlan100] ipv6 dhcp snooping trust interface twenty-fivegige 1/0/1
# 在VLAN 100内开启DHCPv6 Snooping表项记录功能。
[SwitchB-vlan100] ipv6 dhcp snooping binding record
[SwitchB-vlan100] quit
配置完成后,DHCPv6客户端只能从合法DHCPv6服务器获取IPv6地址和其它配置信息,非法DHCPv6服务器无法为DHCPv6客户端分配IPv6地址和其他配置信息。且在Switch B上使用display ipv6 dhcp snooping binding可查询到获取到的DHCPv6 Snooping表项。
DHCPv6 guard功能可根据DHCPv6报文源地址、分配给用户的IPv6地址或DHCPv6服务器优先级等信息对DHCPv6应答报文进行过滤,保证DHCPv6客户端从指定的DHCPv6服务器上获取前缀、地址或其他参数。为了应对不同位置DHCPv6客户端的不同需求,管理员可在同一台设备上的不同VLAN或接口上引用不同的DHCPv6 guard策略。与DHCPv6 snooping功能相比,DHCPv6 guard功能可以对DHCPv6服务器进行更加精细地过滤。
设备收到DHCPv6请求方向报文后,DHCPv6 guard功能直接转发该报文;收到DHCPv6应答方向报文后,按照如下顺序过滤报文:
(1) 按照信任接口过滤报文:如果接口下或VLAN内所有接口下连接的都是符合要求的DHCPv6服务器,就需要在该接口或VLAN上引用的DHCPv6 guard策略中设置信任接口。否则,就不需要设置信任接口。DHCPv6 guard功能不检查信任接口收到的DHCPv6应答报文是否符合要求,直接转发这些报文。
(2) 按照设备角色过滤报文:
¡ 如图6-1所示,只有引用DHCPv6 guard策略的接口下未连接任何符合要求的DHCPv6服务器,管理员才能将DHCPv6 guard策略中的设备角色策略设置为DHCPv6客户端。从连接的设备角色为客户端的接口或VLAN收到DHCPv6应答方向报文后,DHCPv6 guard功能直接丢弃该报文。
¡ 如图6-2所示,只要引用DHCPv6 guard策略的接口下连接了符合要求的DHCPv6服务器,管理员就需要将DHCPv6 guard策略中的设备角色策略设置为DHCPv6服务器。从连接的设备角色为服务器的接口或VLAN收到DHCPv6应答方向报文后,DHCPv6 guard功能还支持按照如下DHCPv6 guard策略过滤报文:
- 对于Advertise报文,DHCPv6 guard功能既可根据ACL规则过滤掉不符合要求的DHCPv6服务器发送的应答报文;也可按照指定的DHCPv6服务器优先级过滤掉不符合要求的DHCPv6服务器发送的应答报文。
- 对于Reply报文,DHCPv6 guard功能可根据ACL规则过滤掉携带不符合要求的地址/前缀的DHCPv6应答报文。
DHCPv6应答报文只有通过所有DHCPv6 guard策略检查后,才能被转发给DHCPv6客户端。
配置了DHCPv6 guard功能的设备只有位于DHCPv6客户端与DHCPv6服务器之间,或DHCPv6客户端与DHCPv6中继之间时,DHCPv6 guard功能才能正常工作;设备位于DHCPv6服务器与DHCPv6中继之间时,DHCPv6 guard功能不能正常工作。
当DHCPv6 guard功能配置在DHCPv6 Snooping设备上时,DHCPv6 guard功能和DHCPv6 Snooping功能可以同时生效。只有从DHCPv6 Snooping的信任端口收到的DHCPv6应答报文,并通过DHCPv6 guard功能过滤后,才能被转发,否则报文会被直接丢弃。
DHCPv6 guard配置任务如下:
(1) 配置DHCPv6 guard策略
(2) 引用DHCPv6 guard策略。请至少选择其中一项进行配置。
如果接口和接口所在VLAN都引用了DHCPv6 guard策略,该接口使用接口引用的DHCPv6 guard策略。
(1) 进入系统视图。
system-view
(2) 创建DHCPv6 guard策略,并进入DHCPv6 guard策略视图。
ipv6 dhcp guard policy policy-name
(3) 设置引用DHCPv6 guard策略的接口或VLAN连接的设备角色。
device-role { client | server }
缺省情况下,引用DHCPv6 guard策略的接口或VLAN连接的设备角色为DHCPv6客户端。
(4) 设置DHCPv6 guard策略。请根据实际需求选择DHCPv6 guard策略。
¡ 设置DHCPv6服务器的匹配规则。
if-match server acl { acl-number | name acl-name }
缺省情况下,未设置DHCPv6服务器的匹配规则,DHCPv6 guard功能认为所有DHCPv6服务器都符合要求。
¡ 设置DHCPv6服务器分配地址/前缀的匹配规则。
if-match reply acl { acl-number | name acl-name }
缺省情况下,未设置DHCPv6服务器分配地址/前缀的匹配规则,DHCPv6 guard功能认为DHCPv6服务器分配的所有地址/前缀都符合要求。
¡ 设置DHCPv6服务器优先级的匹配范围。
preference { max max-value | min min-value } *
缺省情况下,未设置DHCPv6服务器优先级的匹配范围,优先级为1~255的DHCPv6服务器都符合要求。
¡ 设置信任接口。
trust port
缺省情况下,未设置信任接口。
system-view
(2) 进入二层接口视图。
interface interface-type interface-number
(3) 配置接口引用DHCPv6 guard策略。
ipv6 dhcp guard apply policy policy-name
缺省情况下,接口未引用DHCPv6 guard策略。
(1) 进入系统视图。
system-view
(2) 创建一个VLAN,并进入VLAN视图。
vlan vlan-number
(3) 配置VLAN引用DHCPv6 guard策略。
ipv6 dhcp guard apply policy policy-name
缺省情况下,VLAN未引用DHCPv6 guard策略。
在完成上述配置后,在任意视图下执行display命令可以显示DHCPv6 guard的配置情况,通过查看显示信息验证配置的效果。
表6-1 DHCPv6 guard显示和维护
操作 |
命令 |
显示DHCPv6 guard策略信息 |
display ipv6 dhcp guard policy [ policy-name ] |
Switch通过以太网端口Twenty-FiveGigE1/0/1、Twenty-FiveGigE1/0/2和Twenty-FiveGigE1/0/3分别连接到DHCPv6服务器1、DHCPv6服务器2和DHCPv6服务器3,通过以太网端口Twenty-FiveGigE1/0/4连接到DHCPv6客户端。所有DHCPv6服务器和DHCPv6客户端都在VLAN 100内。DHCPv6服务器1上可分配的地址段范围为2001::/64,DHCPv6服务器2上可分配的地址段范围为2001::/64,DHCPv6服务器3上可分配的地址段范围为2002::/64。要求:
· DHCPv6 guard转发服务器IPv6地址在FE80::/12范围内的DHCPv6服务器的响应报文,不转发服务器IPv6地址在FE80::/12范围外的DHCPv6服务器的响应报文。
· DHCPv6服务器只能为DHCPv6客户端分配前缀范围为2001::/16的IPv6地址。
图6-3 DHCPv6 guard组网示意图
进行下面的配置前,需要先完成所有DHCPv6服务器的配置。
# 创建VLAN100,并将接口Twenty-FiveGigE1/0/1、Twenty-FiveGigE1/0/2、Twenty-FiveGigE1/0/3和Twenty-FiveGigE1/0/4添加到VLAN100中。
<Switch> system-view
[Switch] vlan 100
[Switch-vlan100] port twenty-fivegige 1/0/1 to twenty-fivegige 1/0/4
[Switch-vlan100] quit
[Switch] acl ipv6 number 2001
# 创建规则1:仅允许源地址在FE80::/12网段的报文通过,拒绝源地址在其它网段的报文通过。
[Switch-acl-ipv6-basic-2001] rule 1 permit source fe80:: 12
[Switch-acl-ipv6-basic-2001] quit
# 创建一个编号为2002的IPv6基本ACL。
[Switch] acl ipv6 number 2002
# 创建规则1:仅允许源地址在2001::/16网段的报文通过,拒绝源地址在其它网段的报文通过。
[Switch-acl-ipv6-basic-2002] rule 1 permit source 2001:: 16
[Switch-acl-ipv6-basic-2002] quit
# 创建DHCPv6 guard策略p1。
[Switch] ipv6 dhcp guard policy p1
# 设置引用DHCPv6 guard策略的接口或VLAN连接的设备角色为DHCPv6服务器。
[Switch-dhcp6-guard-policy-p1] device-role server
# 设置DHCPv6服务器的ACL匹配规则编号为2001。
[Switch-dhcp6-guard-policy-p1] if-match server acl 2001
# 设置DHCPv6服务器分配地址/前缀的ACL匹配规则编号为2002。
[Switch-dhcp6-guard-policy-p1] if-match reply acl 2002
[Switch-dhcp6-guard-policy-p1] quit
# 配置DHCPv6 guard策略p2。
[Switch] ipv6 dhcp guard policy p2
# 设置引用DHCPv6 guard策略的接口或VLAN连接的设备角色为DHCPv6客户端。
[Switch-dhcp6-guard-policy-p2] device-role client
[Switch-dhcp6-guard-policy-p2] quit
# 在VLAN 100内引用DHCPv6 guard策略p1。
[Switch] vlan 100
[Switch-vlan100] ipv6 dhcp guard apply policy p1
[Switch-vlan100] quit
# 在接口Twenty-FiveGigE1/0/4上引用DHCPv6 guard策略p2。
[Switch]interface twenty-fivegige 1/0/4
[Switch-Twenty-FiveGigE1/0/4] ipv6 dhcp guard apply policy p2
[Switch-Twenty-FiveGigE1/0/4] quit
配置完成后,DHCPv6 guard功能只会将报文源地址在FE80::/12范围内,且分配地址的前缀在2001::/16范围内的DHCPv6应答报文转发给DHCPv6客户端,即只有DHCPv6服务器1发送的DHCPv6应答报文才会被转发给DHCPv6客户端,DHCPv6服务器2和DHCPv6服务器3发送的DHCPv6应答报文会被丢弃。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!