分享

DHCP for IPv6原理及工作过程(转载)

 gaoyuying815 2014-05-09

DHCP for IPv6原理及工作过程一

1 DHCPv6概述

    即插即用和自动配置是IPv6的一大优势,是目前研究的热点之一。与IPv4相对应,IPv6中的“被动”地址分配协议是动态主机配置协议DHCPv6。

   DHCPv6(Dynamic Host Configuration Protocol for IPv6,支持IPv6的动态主机配置协议)是针对IPv6编址方案设计的,为主机分配IPv6前缀、IPv6地址和其他网络配置参数的协议。

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

   1.不仅可以分配IPv6地址,还可以分配IPv6前缀,便于全网络的自动配置和管理。

   2.更好地控制地址的分配。通过DHCPv6不仅可以为主机分配的地址/前缀,还可以为特定主机分配特定的地址/前缀,以便于网络管理。

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

   因为DHCPv6利用了IPv6协议某些内在增强功能,所以与DHCPv4有一些显著的不同,概述如下:

   1.DHCP Client一经引导,就有了一个本地链路IP地址,DHCP Client可利用它与DHCP Server或DHCP Relay通信。

   2.DHCP Client用组播地址与DHCP Server通信,而不是广播地址。

   3.IPv6允许每个接口使用多个IP地址,所以DHCPv6在请求时可以提供多个地址。

   4.没有BOOTP兼容性要求。

   5.可以使用information-request/reply消息完成简单配置。

   6.Client可以发送多个互不相关请求给同一或不同的Server。

   7.Server使用reconfigure消息通知Client重配置网络参数。

DHCPv6协议的实现过程

2.1 DHCPv6地址/前缀分配过程

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

    -交互两个消息的快速分配过程

    -交互四个消息的分配过程

交互两个消息的快速分配过程

图2-1:地址/前缀快速分配过程

   (1)DHCPv6客户端在发送的Solicit消息中携带Rapid Commit选项,标识客户端希望服务器能够快速为其分配地址/前缀和网络配置参数;

   (2)如果DHCPv6服务器支持快速分配过程,则直接返回Reply消息,为客户端分配IPv6地址/前缀和其他网络配置参数。如果DHCPv6服务器不支持快速分配过程,则采用交互四个消息的分配过程为客户端分配IPv6地址/前缀和其他网络配置参数。

交互四个消息的分配过程

图2-2:交互四个消息的分配过程

   交互四个消息分配过程的简述如下表:

步骤

发送的消息

说明

1

Solicit

DHCPv6客户端发送该消息,请求DHCPv6服务器为其分配IPv6地址/前缀和网络配置参数。

2

Advertise

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

3

Request

如果DHCPv6客户端接收到多个服务器回复的Advertise消息,则根据消息接收的先后顺序、服务器优先级等,选择其中一台服务器,并向该服务器发送Request消息,请求服务器确认为其分配地址/前缀和网络配置参数。

4

Reply

DHCPv6服务器回复该消息,确认将地址/前缀和网络配置参数分配给客户端使用。

表2-1:交互四个消息分配过程

2.2 DHCPv6地址/前缀租约更新过程

    DHCPv6服务器分配给客户端的IPv6地址/前缀具有一定的租借期限。租借期限由有效生命期(Valid Lifetime)决定。地址/前缀的租借时间到达有效生命期后,DHCPv6客户端不能再使用该地址/前缀。在有效生命期到达之前,如果DHCPv6客户端希望继续使用该地址/前缀,则需要更新地址/前缀租约。


图2-3:通过Renew更新地址/前缀租约

    如图2-3所示,地址/前缀租借时间到达时间T1(推荐值为首选生命期Preferred Lifetime的一半)时,DHCPv6客户端会向为它分配地址/前缀的DHCPv6服务器单播发送Renew报文,以进行地址/前缀租约的更新。如果客户端可以继续使用该地址/前缀,则DHCPv6服务器回应续约成功的Reply报文,通知DHCPv6客户端已经成功更新地址/前缀租约;如果该地址/前缀不可以再分配给该客户端,则DHCPv6服务器回应续约失败的Reply报文,通知客户端不能获得新的租约。


图2-4:通过Rebind更新地址/前缀租约

    如图2-4所示,如果在T1时发送的Renew请求更新租约,但是没有收到DHCPv6服务器的回应报文,则DHCPv6客户端会在T2(推荐值为首选生命期的0.875倍)时,向所有DHCPv6服务器组播发送Rebind报文请求更新租约。如果客户端可以继续使用该地址/前缀,则DHCPv6服务器回应续约成功的Reply报文,通知DHCPv6客户端已经成功更新地址/前缀租约;如果该地址/前缀不可以再分配给该客户端,则DHCPv6服务器回应续约失败的Reply报文,通知客户端不能获得新的租约;如果DHCPv6客户端没有收到服务器的应答报文,则到达有效生命期后,客户端停止使用该地址/前缀。

2.3DHCPv6无状态配置过程

DHCPv6无状态配置简介

    DHCPv6可以向IPv6主机提供有状态的地址配置或无状态的配置设置。

    无状态地址自动配置用于对链接本地地址和其他非链接本地地址两者进行配置,方法是与相邻路由器交换路由器请求和路由器公告消息。

    有状态地址自动配置通过使用如DHCP的配置协议,用来配置非链接本地地址。

    IPv6主机自动执行无状态地址自动配置,并在相邻路由器发送的路由器公告消息中使用基于以下标记的配置协议(如DHCPv6):

    托管地址配置标记,也称为M标记。设置为1时,此标记指示主机使用配置协议来获取有状态地址。

    其他有状态配置标记,也称为O标记。设置为1时,此标记指示主机使用配置协议来获取其他配置设置。
结合M和O标记的值可以产生以下组合:

组合

意义

MO=00

此组合对应不具有DHCPv6基础结构的网络。主机使用非链接本地地址的路由器公告以及其他方法(如手动配置)来配置其他设置。

MO=11

DHCPv6用于这两种地址(链接本地地址和其他非链接本地地址)和其他配置设置。该组合称为DHCPv6有状态,其中DHCPv6将有状态地址分配给IPv6主机。

MO=01

DHCPv6不用于分配地址,仅用来分配其他配置设置。相邻路由器配置为通告非链接本地地址前缀,IPv6主机从中派生出无状态地址。此组合称为DHCPv6无状态:DHCPv6不为IPv6主机分配有状态地址,但分配无状态配置设置。

MO=10

在此组合中,DHCPv6用于地址配置,但不用于其他设置。因为IPv6主机通常需要使用其他设置(如域名系统(DNS)服务器的IPv6地址)进行配置,所以这是一种不太可能的组合。

表2-2:MO标记值的组合描述

    DHCPv6服务器可以为已经具有IPv6地址/前缀的客户端分配其他网络配置参数,该过程称为无状态配置。

    DHCPv6无状态配置是指设备通过地址无状态自动配置获取IPv6地址后,利用DHCPv6服务器获得除地址以外的其他网络配置参数,如DNS服务器、域名等。在DHCPv6无状态配置过程中,DHCPv6服务器不需要保存客户端的状态信息,因此称为DHCPv6无状态配置。

    设备通过地址无状态自动配置功能成功获取IPv6地址,且接收到的RA(Router Advertisement,路由器通告)报文中的M标志位(Managedaddress configuration flag,托管地址配置标志位)为0,O标志位(Other stateful configuration flag, 其他配置标志位)为1,则设备会自动启动DHCPv6无状态配置功能,以获取除地址以外的其他网络配置参数。

DHCPv6无状态配置过程

图2-5:DHCPv6无状态配置工作过程

   DHCPv6无状态配置的具体过程为:

   (1) 客户端以组播的方式向DHCPv6服务器发送information-request报文,该报文中携带Option request选项,指定客户端要从服务器获取的配置参数。

   (2) 服务器收到information-Request报文后,为客户端分配网络配置参数,并单播发送Reply报文将网络配置参数返回给客户端。

   (3) 客户端检查Reply报文中提供的信息,如果与information-Request报文中请求的配置参数相符,则按照Reply报文中提供的参数进行网络配置;否则,忽略该参数。如果接收到多个Reply报文,客户端将选择最先收到的Reply报文,并根据该报文中提供的参数完成客户端无状态配置。

2.4 DHCPv6中继工作过程

图2-6:DHCPv6中继的工作过程

    通过DHCPv6中继动态获取IPv6地址/前缀和其他网络配置参数的过程中,DHCPv6客户端与DHCPv6服务器的处理方式与不通过DHCPv6中继时的处理方式基本相同。图2-6中只说明DHCPv6中继的转发过程

    (1) DHCPv6客户端向所有DHCPv6服务器和中继的组播地址FF02::1:2发送请求;

   (2) DHCPv6中继接收到请求后,将其封装在Reply-forward报文的中继消息选项(Relay Message Option)中,并将Relay-forward报文发送给DHCPv6服务器;

   (3) DHCPv6服务器从Relay-forward报文中解析出客户端的请求,为客户端选取IPv6地址和其他参数,构造应答消息,将应答消息封装在Relay-reply报文的中继消息选项中,并将Relay-reply报文发送给DHCPv6中继;

   (4) DHCPv6中继从Relay-Reply报文中解析出服务器的应答,转发给DHCPv6客户端;

DHCPv6客户端根据DHCPv6服务器分配的IPv6地址/前缀和其他参数进行网络配置。

2.5 DHCPv6网络组成

   DHCPv6采用客户机/服务器(C/S-Client/Server)工作模式,因此,其基本组成为两部分,即DHCPv6 Server及DHCPv6 Client。但是,在某些场合,为了避免在每个通信子网都设置DHCPv6 Server而又能实现通信子网间的DHCPv6 Client客户实现动态配置,需要增加DHCPv6中继代理(DHCPv6 RELAY AGENT)来收集相关信息,并在DHCPv6服务器与客户机之间中继和回传(Echo)相关信息。相关协议规定:是否支持中继代理人功能是DHCPv6服务器的可选择的功能。

图2-7:DHCPv6网络组成

   1.DHCPv6 Server的功能

   DHCPv6 Server负责为DHCPv6客户端分配IPv6地址、IPv6前缀和其他网络配置参数的设备。DHCPv6服务器不仅可以为DHCPv6客户端分配IPv6地址,还可以为其分配IPv6前缀。如图2-2所示,DHCPv6服务器为DHCPv6客户端分配IPv6前缀后,DHCPv6客户端(当其为网络路由器时)向所在网络发送包含该前缀信息的RA(Router Advertisement)消息,以便网络内的主机根据该前缀自动配置IPv6地址。它遵照DHCPv6接受并响应客户的配置请求,完成地对IP地址与其他参数的分配及回收管理,对配置信息、安全信息等进行管理,完成对配置信息进行监视以及其它网络管理系统的协调工作。在选择支持DHCPv6中继代理选项时,还需要监视和接收中断信息,实现跨网配置。

   2.DHCPv6 Client的功能

   DHCPv6 Client是能动态获取IPv6地址、IPv6前缀或其他网络配置参数的设备。它遵照DHCPv6向Server组播配置请求,根据多个Server的应答,选择性地向某Server作肯定性确认,完成系统配置后利用新配置进行活动;对可重用配置信息,在使用期限到达后释放相应的资源。

   3.DHCPv6 RELAY的功能

   为了DHCPv6 Client使用别的子网上的DHCPv6 Server而设置的,在无DHCPv6 Server的子网中,它扮演服务器代理和配置信息中继设备的功能。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多