DHCPv6_Client测试实操(信而泰原创文章)

一、DHCPv6原理

DHCPv6简介

DHCPv6概述

(1)DHCPv6

Dynamic Host Configuration Protocol for IPv6

支持IPv6的动态主机配置协议

(2)RFC3315, 2003.7

(3)模式: Client/Server模式

(4)目标

自动协商网络参数, 不需要用户手工配置

 

DHCPv6基本架构

img1

DHCPv6基本协议架构中,主要包括以下三种角色:

1DHCPv6 Client:

DHCPv6客户端,通过与DHCPv6服务器进行交互,获取IPv6地址/前缀和网络配置信息,完成自身的地址配置功能

2DHCPv6 relay:

DHCPv6中继代理,负责转发来自客户端方向或者服务器方向的DHCPv6报文,协助客户端和服务器完成自身地址配置功能(不是必须存在的角色)v6里面中继出现的场景是客户端和服务器不在同一个共享的网络里面

3DHCPv6 Server:

DHCPv6服务器,负责处理来自客户端或中继代理的地址分配、地址续租、地址释放等请求,为客户端分配IPv6地址/前缀和其他网络配置信息

 

IPv6地址分配类型

1IPv6协议具有地址空间巨大的特点,但同时长达128比特的IPv6地址又要求高效合理的地址自动分配和管理策略

2目前IPv6地址的分配方法有以下几种:

手动配置 手动配置IPv6地址/前缀及其他网络配置参数(DNS、NIS、SNTP服务器地址等参数)

无状态自动地址分配 由接口ID生成链路本地地址,再根据路由通告报文RA(Router Advertisement)包含的前缀信息自动配置本机地址

有状态自动地址分配 即DHCPv6方式。DHCPv6又分为如下两种:

·DHCPv6有状态自动分配。DHCPv6服务器自动分配IPv6地址/PD前缀及其他网络配置参数(DNS、NIS、SNTP服务器地址等参数)

·DHCPv6无状态自动分配。主机IPv6地址仍然通过路由通告方式自动生成,DHCPv6服务器只分配除IPv6地址以外的配置参数,包括DNS、NIS、SNTP服务器等参数

 

DHCPv6优点

与其他IPv6地址分配方式(手工配置、通过路由器通告消息中的网络前缀无状态自动配置等)相比,DHCPv6具有以下优点:

·更好地控制IPv6地址的分配。DHCPv6方式不仅可以记录为IPv6主机分配的地址,还可以为特定的IPv6主机分配特定的地址,以便于网络管理

·DHCPv6支持为网络设备分配IPv6前缀,便于全网络的自动配置和网络层次性管理

·除了为IPv6主机分配IPv6地址/前缀外,还可以分配DNS服务器IPv6地址等网络配置参数

 

DHCPv6基本概念-1

组播地址

·在DHCPv6协议中,客户端不用配置DHCPv6 Server的IPv6地址,而是发送目的地址为组播地址的Solicit报文来定位DHCPv6服务器

·在DHCPv4协议中,客户端发送广播报文来定位服务器。为避免广播风暴,在IPv6中,已经没有了广播类型的报文,而是采用组播报文。DHCPv6用到的组播地址有两个:

FF02::1:2(All DHCP Relay Agents and Servers):所有DHCPv6服务器和中继代理的组播地址,这个地址是链路范围的,用于客户端和相邻的服务器及中继代理之间通信。所有DHCPv6服务器和中继代理都是该组的成员

FF05::1:3(All DHCP Servers):所有DHCPv6服务器组播地址,这个地址是站点范围的,用于中继代理和服务器之间的通信,站点内的所有DHCPv6服务器都是此组的成员

 

DHCPv6基本概念-2

1UDP端口号

·DHCPv6报文承载在UDPv6上

·客户端侦听的UDP目的端口号是546

·服务器、中继代理侦听的UDP端口号是547

 

2DHCP唯一标识符(DUID)

·DHCP设备唯一标识符DUID(DHCPv6 Unique Identifier),每个服务器或客户端有且只有一个唯一标识符,服务器使用DUID来识别不同的客户端,客户端则使用DUID来识别服务器

·客户端和服务器DUID的内容分别通过DHCPv6报文中的Client Identifier和Server Identifier选项来携带。两种选项的格式一样,通过option-code字段的取值来区分是Client Identifier还是Server Identifier选项

 

DHCPv6基本概念-3

身份联盟(IA) 身份联盟IA(Identity Association)是使得服务器和客户端能够识别、分组和管理一系列相关IPv6地址的结构。每个IA包括一个IAID和相关联的配置信息

·客户端必须为它的每一个要通过服务器获取IPv6地址的接口关联至少一个IA。客户端用给接口关联的IA来从服务器获取配置信息。每个IA必须明确关联到一个接口

·IA的身份由IAID唯一确定,同一个客户端的IAID不能出现重复。IAID不应因为设备的重启等因素发生丢失或改变

·IA中的配置信息由一个或多个IPv6地址以及T1和T2生存期组成。IA中的每个地址都有首选生存期和有效生存期

·一个接口至少关联一个IA,一个IA可以包含一个或多个地址信息

 

DHCPv6协商流程

DHCPv6有状态自动分配

1IPv6主机通过有状态DHCPv6方式获取IPv6地址和其他配置参数(例如DNS服务器的IPv6地址等)

2DHCPv6服务器为客户端分配地址/前缀的过程分为两类

·DHCPv6四步交互分配过程

·DHCPv6两步交互快速分配过程

 

DHCPv6四步交互1

1四步交互常用于网络中有多个DHCPv6服务器的情况。DHCPv6客户端首先通过组播发送Solicit报文来定位可以为其提供服务的DHCPv6服务器,在收到多个DHCPv6服务器的Advertise报文后,根据DHCPv6服务器的优先级选择一个为其分配地址和配置信息的服务器,接着通过Request/Reply报文交互完成地址申请和分配过程

2DHCPv6服务器端如果没有配置使能两步交互,无论客户端报文中是否包含Rapid Commit选项,服务器都采用四步交互方式为客户端分配地址和配置信息

 

DHCPv6四步交互-2

img2

 

DHCPv6四步交互地址分配过程如下:

·DHCPv6客户端发送Solicit报文,请求DHCPv6服务器为其分配IPv6地址和网络配置参数

·如果Solicit报文中没有携带Rapid Commit选项,或Solicit报文中携带Rapid Commit选项,但服务器不支持快速分配过程,则DHCPv6服务器回复Advertise报文,通知客户端可以为其分配的地址和网络配置参数

·如果DHCPv6客户端接收到多个服务器回复的Advertise报文,则根据Advertise报文中的服务器优先级等参数,选择优先级最高的一台服务器,并向所有的服务器发送Request组播报文,该报文中携带已选择的DHCPv6服务器的DUID

·DHCPv6服务器回复Reply报文,确认将地址和网络配置参数分配给客户端使用

 

DHCPv6两步交互-1

1两步交互常用于网络中只有一个DHCPv6服务器的情况。DHCPv6客户端首先通过组播发送Solicit报文来定位可以为其提供服务的DHCPv6服务器,DHCPv6服务器收到客户端的Solicit报文后,为其分配地址和配置信息,直接回应Reply报文,完成地址申请和分配过程

2两步交换可以提高DHCPv6过程的效率,但在有多个DHCPv6服务器的网络中,多个DHCPv6服务器都可以为DHCPv6客户端分配IPv6地址,回应Reply报文,但是客户端实际只可能使用其中一个服务器为其分配的IPv6地址和配置信息。为了防止这种情况的发生,管理员可以配置DHCPv6服务器是否支持两步交互地址分配方式

·DHCPv6服务器端如果配置使能了两步交互,并且客户端报文中也包含Rapid Commit选项,服务器采用两步交互方式为客户端分配地址和配置信息

·如果DHCPv6服务器不支持快速分配地址,则采用四步交互方式为客户端分配IPv6地址和其他网络配置参数

 

DHCPv6两步交互-2

img3

DHCPv6两步交互地址分配过程如下:

·DHCPv6客户端在发送的Solicit报文中携带Rapid Commit选项,标识客户端希望服务器能够快速为其分配地址和网络配置参数

·DHCPv6服务器接收到Solicit报文后,将进行如下处理:

如果DHCPv6服务器支持快速分配地址,则直接返回Reply报文,为客户端分配IPv6地址和其他网络配置参数,Replay报文中也携带Rapid Commit选项

如果DHCPv6服务器不支持快速分配过程,则采用四步交互方式为客户端分配IPv6地址/前缀和其他网络配置参数

 

DHCPv6无状态自动分配

IPv6节点可以通过DHCPv6无状态方式获取配置参数(包括DNS、SIP、SNTP等服务器配置信息,不包括IPv6地址)

img4

DHCPv6无状态工作过程如下:

·DHCPv6客户端以组播方式向DHCPv6服务器发送Information-Request报文,该报文中携带Option Request选项,指定DHCPv6客户端需要从DHCPv6服务器获取的配置参数

·DHCPv6服务器收到Information-Request报文后,为DHCPv6客户端分配网络配置参数,并单播发送Reply报文,将网络配置参数返回给DHCPv6客户端。DHCPv6客户端根据收到Reply报文提供的参数完成DHCPv6客户端无状态配置

 

DHCPv6报文格式

DHCPv6报文格式

 DHCPv6的报文格式

img5

DHCPv6报文中各个字段的含义

字段

长度

含义

msg-type

1字节

表示报文的类型,取值为1~13,具体请参见DHCPv6报文类型

transaction-ID

3字节

DHCPv6交互ID,也叫事务ID,用来标识一个来回的DHCPv6报文交互。例如Solicit/Advertise报文为一个交互。Request/Reply报文为另外一个交互,两者有不同的事务ID。 交互ID特点如下: 

交互ID是DHCPv6客户端生成的一个随机值,DHCPv6客户端应当保证交互ID具有一定的随机性。

对于DHCPv6服务器响应报文和相应的请求报文,两者交互ID保持一致。

如果是DHCPv6服务器主动发起的会话报文,则交互ID为0。

Options

可变

表示DHCPv6的选项字段。此字段包含了DHCPv6服务器分配给IPv6主机的配置信息,如DNS服务器的IPv6地址等信息。 

 

 

DHCPv6报文抓包-Solicit报文(类型1)

DHCPv6客户端使用Solicit报文来确定DHCPv6服务器的位置

img6

 

DHCPv6报文抓包-Advertise报文(类型2)

DHCPv6服务器发送Advertise报文来对Solicit报文进行回应,宣告自己能够提供DHCPv6服务

img7

DHCPv6报文抓包-Request报文(类型3)

DHCPv6客户端发送Request报文来向DHCPv6服务器请求IPv6地址和其它配置信息

img8

 

DHCPv6报文抓包-Renew报文(类型5)

DHCPv6客户端向给其提供地址和配置信息的DHCPv6服务器发送Renew报文来延长地址的生存期并更新配置信息

img9

 

DHCPv6报文抓包-Rebind报文(类型6)

如果Renew报文没有得到应答,DHCPv6客户端向任意可达的DHCPv6服务器发送Rebind报文来延长地址的生存期并更新配置信息

img10

 

DHCPv6报文抓包-Reply报文(类型7)

DHCPv6服务器在以下场合发送Reply报文:DHCPv6服务器发送携带了地址和配置信息的Reply消息来回应从DHCPv6客户端收到的Solicit、Request、Renew、Rebind报文。DHCPv6服务器发送携带配置信息的Reply消息来回应收到的Information-Request报文。用来回应DHCPv6客户端发来的Confirm、Release、Decline报文

img11

 

DHCPv6报文抓包-Release(类型8)

DHCPv6客户端向为其分配地址的DHCPv6服务器发送Release报文,表明自己不再使用一个或多个获取的地址

img12

 

DHCPv6报文抓包-Reply-forw报文(类型12)

中继代理通过Relay-Forward报文来向DHCPv6服务器转发DHCPv6客户端请求报文

img13

 

DHCPv6报文抓包-Relay-reply报文(类型13)

DHCPv6服务器向中继代理发送Relay-Reply报文,其中携带了转发给DHCPv6客户端的报文

img14

 

DHCPv6报文类型

·目前DHCPv6定义了如下十三种类型报文,DHCPv6服务器和DHCPv6客户端之间通过这十三种类型的报文进行通信。

·下表是DHCPv6报文与DHCPv4报文比较

img15

 

IPv6地址/前缀的分配与更新原则

IPv6地址分配的优先次序

img16

 

DHCPv6地址租约更新

img17

 

DHCPv6 relay

DHCPv6中继工作原理

DHCPv6中继工作过程如下图所示。DHCPv6客户端通过DHCPv6中继转发报文,获取IPv6地址/前缀和其他网络配置参数(例如DNS服务器的IPv6地址等)

img18

 

 

测试用例

测试用例(测试仪作为客户端方式)

img191测试需求

如上图所示,测试仪与交换机在同一条链路上。通过部署测试仪作为DHCPv6客户端、交换机作为DHCPv6服务器,实现测试仪动态获取IPv6地址的需求。

2配置思路

·在交换机上,配置DHCPv6服务器,实现为DHCPv6客户端动态分配IPv6地址。具体配置包括:配置接口的IPv6地址、配置IPv6地址池、使能接口的DHCPv6服务器功能

·在测试仪上,配置DHCPv6客户端功能,实现通过DHCPv6服务器动态获取IPv6地址。具体配置包括:配置接口的IPv6功能、使能接口的DHCPv6客户端功能。

 

DUT配置

DHCPv6服务端配置

配置接口的IPv6地址

img20

配置IPv6地址池

img21

使能接口的DHCPv6服务器功能

img22

 

 

测试仪配置

Step1: 添加interface

步骤1-1: 添加Interface

img23

手工添加

img24

还可以通过wizard方式创建Interface

 

步骤1-2:修改接口参数

1、修改地址数量为200

2、vlan 跳变步长填0(vlan不要跳变)

img25

 

 

Step2: 配置DHCPv6

步骤2-1: 添加DHCPv6客户端

img26

 

步骤2-2: 将Interface和协议关联

Interface和协议关联

·向导创建 默认关联

·手工创建DHCP, 需要手工关联

img27

 

Step3: 开启DHCPv6

步骤3:开启DHCP客户端

DHCPv6块状态:Bound表示仿真客户端已获得分配的地址

img28

 

Step4: 验证

步骤4-1:选择对应流模板

img29

 

步骤4-2:测试仪查看分配的IP地址数

流统计查看,200个IP地址分配成功

img30

 

步骤4-3:DUT查看分配的IP地址数

执行命令display dhcpv6 pool pool1可以查看IPv6地址池pool1的配置

img31

执行命令display dhcpv6 pool pool1 allocated address可以看到服务器已经分配出去的IP地址    

img32

img33

2020年5月7日 17:45