CN102752414B - 释放IPv6地址的实现方法及设备 - Google Patents

释放IPv6地址的实现方法及设备 Download PDF

Info

Publication number
CN102752414B
CN102752414B CN201210244756.1A CN201210244756A CN102752414B CN 102752414 B CN102752414 B CN 102752414B CN 201210244756 A CN201210244756 A CN 201210244756A CN 102752414 B CN102752414 B CN 102752414B
Authority
CN
China
Prior art keywords
message
dhcpv6
client
server
dhcpv6 server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210244756.1A
Other languages
English (en)
Other versions
CN102752414A (zh
Inventor
潘芳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201210244756.1A priority Critical patent/CN102752414B/zh
Publication of CN102752414A publication Critical patent/CN102752414A/zh
Application granted granted Critical
Publication of CN102752414B publication Critical patent/CN102752414B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种释放IPv6地址的实现方法及设备,其中,该方法包括:记录DHCPv6客户端与DHCPv6服务器之间交互的IPv6地址申请报文及其应答报文中的信息;获取该DHCPv6客户端选中的DHCPv6服务器的标识;根据记录的信息以及获取到的该DHCPv6客户端选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器;通知未被选中的DHCPv6服务器释放为该DHCPv6客户端分配的IPv6地址。本发明解决了DHCPv6快速地址分配和confirm报文申请地址时存在的地址浪费问题。

Description

释放IPv6地址的实现方法及设备
技术领域
本发明涉及网络技术领域,特别涉及一种释放IPv6地址的实现方法及设备。
背景技术
随着网络规模的不断扩大、网络复杂度的不断提高,网络配置也变得越来越复杂,在计算机经常移动(如便携机或无线网络)和计算机的数量超过可分配的IP(Internet Protocol,互联网协议)地址等情况下,为方便用户快速地接入和退出网络、提高IP地址资源的利用率,一种自动进行IP地址的分配机制——DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)应运而生。DHCP采用客户端/服务器的通信模式。所有的IP网络配置参数都由DHCP服务器集中管理,并负责处理客户端的DHCP请求;而客户端则会使用服务器分配的IP网络参数进行通信。
DHCPv6(DHCP for IPv6,支持IPv6的DHCP)是针对IPv6(InternetProtocol Version6)编址方案设计的动态主机配置协议,能够为主机分配IPv6前缀、IPv6地址和其他网络配置参数。在DHCPv6协议中,DHCPv6服务器(server)负责为DHCPv6客户端(client)分配IPv6地址、IPv6前缀和其他网络配置参数。
在DHCPv6中,IPv6地址的快速申请过程如下:
如图1所示,DHCPv6客户端(以下简称为客户端)向DHCPv6服务器(以下简称为服务器)发送用于请求服务器为其分配IPv6地址/前缀和网络配置参数的solicit(请求)报文,该报文中携带了rapid commit(快速回复)选项,用于表示客户端希望DHCPv6服务器能够快速地为其分配地址/前缀和网络配置参数。接收到该solicit报文的服务器考虑自身的本地配置,确定自己是否能为客户端分配地址,并直接返回reply(应答)报文,其中包含自己所能提供的地址。
当接收到了多个服务器返回的reply报文时,客户端依据reply报文的内容选择一个最合适的服务器(通常是按照优先级,如果优先级相同的话,则使用最快响应的服务器),使用所选择的服务器返回的reply报文中的地址自行配置,并进行地址冲突检测,检测通过后,客户端就可以使用该地址进行后续通信了。
以上快速申请过程存在一个问题:当网络中存在多个服务器时,客户端会接收到多个reply报文,客户端仅选择一个最合适的服务器返回的reply报文中的地址进行配置,这样,那些没有被选中的服务器为其分配的地址就被浪费了。
后续,当客户端重启、从sleep(休眠)状态唤醒、或者无线客户端更换接入点时,都有可能使客户端迁移至新的链路。客户端在迁移至新的链路之后,必须发起一次confirm(确认)/Reply报文交互,确定发生链路迁移的接口下的IP地址在新的链路中是否仍然可用。即,向服务器组播发送一个confirm报文,该报文的目的地址为All_DHCP_Relay_Agents_and_Servers组播地址,报文中携带发生链路迁移的接口下的IP地址。
服务器收到客户端发起的confirm报文后,测试confirm报文中包含的IP地址在客户端迁移至的新的链路上是否可用。如果confirm报文中的所有IP地址都能通过测试(即在新的链路上适用),服务器会回应一个状态码(status_code)为success(成功)的reply报文,通知客户端当前IP地址在新的链路中可用。如果其中任意一个IP地址不能通过测试(即在新的链路上不可用),服务器会回应一个状态码为NotOnLink(不在同一链路)的reply报文,通知客户端当前IP不能使用。如果服务器不能完成测试,则不允许回应任何reply报文。客户端如果收到带有success状态码的Reply报文,则将使用该报文中的地址进行配置,通常还会进行地址冲突检测,检测通过后,客户端可以使用该地址进行通信。
上述的confirm/reply报文交互过程也存在一个问题:当网络中存在多个服务器时,有些服务器在接收到客户端的confirm报文,对该报文中包含的IP地址进行测试后认为这些IP地址在新的链路上不可用,向该客户端返回带有NotOnLink状态码的reply报文;而可能有些服务器认为是可用的,向该客户端返回带有success状态码的reply报文。该客户端可能在最先接收到带有NotOnLink状态码的reply报文后,就重新申请新的IP地址,使得当前配置的IP地址就被浪费了。
综上,当网络中存在多个服务器时,在客户端通过快速地址分配和confirm报文申请IPv6地址的过程中,都存在地址浪费的问题。
发明内容
本发明提供了一种释放IPv6地址的实现方法及设备,以解决当网络中存在多个服务器时,在客户端通过快速地址分配和confirm报文申请IPv6地址的过程中,存在的地址浪费的问题。
本发明的技术方案如下:
一方面,提供了一种释放IPv6地址的实现方法,包括:记录DHCPv6客户端与DHCPv6服务器之间交互的IPv6地址申请报文及其应答报文中的信息;获取该DHCPv6客户端选中的DHCPv6服务器的标识;根据记录的信息以及获取到的该DHCPv6客户端选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器;通知未被选中的DHCPv6服务器释放为该DHCPv6客户端分配的IPv6地址。
另一方面,还提供了一种释放IPv6地址的实现方法,包括:DHCPv6客户端接收数据转发设备发来的重配置报文,其中,重配置报文中携带有特定值,该特定值用于表示请求告知DHCPv6客户端选中的DHCPv6服务器的标识;该DHCPv6客户端针对该重配置报文,回复携带有该DHCPv6客户端选中的DHCPv6服务器的标识的更新报文,以便:数据转发设备根据该更新报文中携带的选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器,并通知未被选中的DHCPv6服务器释放为该DHCPv6客户端分配的IPv6地址。
又一方面,还提供了一种数据转发设备,包括:记录模块,用于记录支持IPv6的动态主机配置协议DHCPv6客户端与DHCPv6服务器之间交互的IPv6地址申请报文及其应答报文中的信息;获取模块,用于获取该DHCPv6客户端选中的DHCPv6服务器的标识;确定模块,用于根据记录模块记录的信息以及获取模块获取到的该DHCPv6客户端选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器;通知模块,用于通知确定模块所确定的未被选中的DHCPv6服务器,释放为该DHCPv6客户端分配的IPv6地址。
又一方面,还提供了一种DHCPv6客户端,包括:接收模块,用于接收数据转发设备发来的reconfigure报文,其中,reconfigure报文中携带有特定值,该特定值用于表示请求告知DHCPv6客户端选中的DHCPv6服务器的标识;发送模块,用于针对接收模块接收到的reconfigure报文,回复携带有该DHCPv6客户端选中的DHCPv6服务器的标识的renew报文,以便数据转发设备根据renew报文中携带的选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器,并通知未被选中的DHCPv6服务器释放为该DHCPv6客户端分配的IPv6地址。
本发明的技术方案中,通过监听并记录DHCPv6客户端与DHCPv6服务器在IPv6地址申请过程中交互的IPv6地址申请报文及其应答报文中的信息,并向该DHCPv6客户端获取其选中的DHCPv6服务器的标识,可以利用获取到的选中的DHCPv6服务器的标识以及记录的应答报文中的信息即可确定出未被选中的DHCPv6服务器,从而可以通知未被选中的服务器释放为该DHCPv6客户端分配的IPv6地址,有效解决了DHCPv6快速地址分配和confirm报文申请地址时存在的地址浪费问题,未被选中的DHCPv6服务器可以将释放的IPv6地址分配给其他的DHCPv6客户端使用,提高了地址使用效率。
附图说明
图1是相关技术的IPv6地址的快速申请过程的示意图;
图2是根据本发明的实施例一的释放IPv6地址的实现方法的流程图;
图3是根据本发明的实施例一的option request option的格式的示意图;
图4是根据本发明的实施例二的应用了DHCP snooping的网络示意图;
图5是根据本发明的实施例二的利用了DHCP snooping的释放IPv6地址的实现方法的流程图;
图6是根据本发明的实施例三的数据转发设备的一种结构示意图;
图7是根据本发明的实施例三的数据转发设备的另一种结构示意图;
图8是根据本发明的实施例三的DHCPv6客户端的结构示意图。
具体实施方式
为了便于理解,下面首先对一些相关的技术术语进行解释:
1、DUID(DHCPv6 Unique ID,DHCPv6唯一标识):DHCPv6参与节点的唯一标识符,每一个DHCPv6客户端和DHCPv6服务器都有一个全局唯一的DUID。
2、IA(Identity Association,标识联合):用于管理分配给DHCPv6客户端的一组地址和前缀等信息,通过IAID标识。
3、IAID:IA的标识符,每一个IA都有一个IAID,由DHCPv6客户端选取,对于分配给该DHCPv6客户端的每一个IA,相对于该DHCPv6客户端的所有其他IA来说,其IAID是唯一的。
4、All_DHCP_Relay_Agents_and_Servers(FF02::1:2):DHCPv6客户端用于与位于同一链路的DHCPv6服务器或中继代理通信的本地链路多播地址,所有的DHCPv6的服务器或中继代理都属于这个多播组。
5、transaction-id(交互标识):用于匹配DHCPv6客户端发出的请求和DHCPv6服务器的回应消息的一个值,一般transaction-id由DHCPv6客户端根据随机数生成。
6、DHCP snooping(监听):是DHCP的一种安全特性,具有如下功能:(1)保证客户端从合法的服务器获取IP地址;(2)记录客户端的IP地址与MAC地址的对应关系。
实施例一
图2是本发明的实施例一的释放IPv6地址的实现方法的流程图,该方法可以应用于DHCPv6技术中。如图2所示,该方法包括以下步骤:
步骤S202,记录DHCPv6客户端与DHCPv6服务器在IPv6地址申请过程中交互的IPv6地址申请报文及其应答报文中的信息;
在DHCPv6客户端通过快速地址分配方式申请IPv6地址的过程中,DHCPv6客户端与DHCPv6服务器之间会交互携带有rapid commit选项的solicit报文和reply报文,具体参见背景技术部分,这里不再赘述。同样,在DHCPv6客户端通过confirm报文申请IPv6地址的过程中,DHCPv6客户端与DHCPv6服务器之间也会交互用于确定发生链路迁移的接口下的IPv6地址在新的链路中是否可用的confirm报文和携带的status-code(状态码)为success的reply报文,具体参见背景技术部分,这里不再赘述。以上将携带有rapid commit选项的solicit报文和confirm报文统称为IPv6地址申请报文。
在实际应用中,可以对DHCPv6客户端与DHCPv6服务器交互的报文进行监听,当监听到IPv6地址申请报文和/或IPv6地址申请报文的应答报文时,就记录下报文中的信息。
IPv6地址申请报文中的信息可以包括:报文的源MAC(Media AccessControl,介质访问控制)地址、DHCPv6客户端的标识(即DHCPv6客户端的DUID)、DHCPv6客户端的IAID、transaction-id和报文入端口等;IPv6地址申请报文的应答报文中的信息可以包括:回复该应答报文的DHCPv6服务器的地址、DHCPv6服务器的标识(即DHCPv6服务器的DUID)和DHCPv6服务器为DHCPv6客户端分配的租约等,其中,租约中包含有IPv6地址及其有效生命期。
步骤S204,向DHCPv6客户端获取该DHCPv6客户端选中的DHCPv6服务器的标识;
为了提高工作效率,在实际应用中,在IPv6地址申请报文为携带有rapidcommit选项的solicit报文,应答报文为DHCPv6服务器针对该solicit报文回复的reply报文的情况下,也可以在确定了针对DHCPv6客户端发出的一个携带有rapid commit选项的solicit报文的reply报文有至少两个之后,再执行步骤S204;或者,在IPv6地址申请报文为confirm报文,应答报文为DHCPv6服务器针对该confirm报文回复的携带的status-code为success的reply报文的情况下,也可以在确定了针对DHCPv6客户端发出的一个confirm报文的上述reply报文有至少一个之后,再执行步骤S204。这样,在确定了针对该DHCPv6客户端发出的一个solicit报文的应答报文有至少两个、或者针对该DHCPv6客户端发出的一个confirm报文的应答报文有至少一个之后,再向该DHCPv6客户端获取该DHCPv6客户端选中的DHCPv6服务器的标识。从而在快速地址分配过程中,可以在确定了有多个DHCPv6服务器为该DHCPv6客户端分配了IPv6地址之后,才执行后续的步骤S204~S208,以及在confirm报文申请IPv6地址的过程中,可以在确定了有至少一个DHCPv6服务器为该DHCPv6客户端分配了IPv6地址之后,才执行后续的步骤S204~S208。
确定针对该DHCPv6客户端的一个IPv6地址申请报文的应答报文的数量的方式可以为:在接收到一个应答报文后,记录该应答报文中的信息,并可以将该应答报文中的信息与记录的该应答报文所针对的IPv6地址申请报文中的信息进行关联。与一个Pv6地址申请报文中的信息相关联的应答报文信息的项数即为针对该Pv6地址申请报文的应答报文的数量。当与一个携带有rapid commit选项的solicit报文中的信息相关联的应答报文信息有多项(即至少两项)时,即说明针对该solicit报文的应答报文有至少两个,也就是说明有多个DHCPv6服务器为发出该solicit报文的DHCPv6客户端分配了地址;或者,当与一个confirm报文中的信息相关联的应答报文信息有至少一项时,即说明针对该confirm报文的携带的status-code为success的应答报文有至少一个,也就是说明有一个或多个DHCPv6服务器为发出该confirm报文的DHCPv6客户端分配了地址,在confirm报文申请IPv6地址的过程中,只有一个DHCPv6服务器为DHCPv6客户端分配了地址时,也可能存在地址浪费的问题。
在步骤S204中,可以模拟服务器向该DHCPv6客户端发送reconfigure报文,以获取该DHCPv6客户端选中的DHCPv6服务器的标识。在接收到该DHCPv6客户端针对该reconfigure报文回复的renew(更新)报文之后,即可从该renew报文中获取到该DHCPv6客户端选中的DHCPv6服务器的标识。
由于在步骤S202中已经记录了该IPv6地址申请报文的源MAC地址和报文入端口,因此,在发送reconfigure报文给该DHCPv6客户端时,可以通过单播的方式进行发送,即,该reconfigure报文是单播报文,从而不会带来过多的网络流量。
为了能够让reconfigure报文可以指示出“请求告知DHCPv6客户端选中的DHCPv6服务器的标识”的含义,本发明实施例新定义了一个option-code(选项码),当该option-code的值为特定值(该特定值可用X表示)时,表示向DHCPv6客户端请求其选中的DHCPv6服务器的DUID(选中的DHCPv6服务器即为DHCPv6客户端所选择的服务器,并使用该服务器回复的reply报文中的IPv6地址进行地址配置)。X的值可以是未被RFC定义使用的符合RFC标准的任意值。为了与现有协议兼容,该option-code的格式与RFC通用的DHCP option格式相同。
将该新定义了的option-code赋值为X之后,将该option-code填充在reconfigure报文中的option request option(请求选项)中的一个requested-option-code(请求选项码)域中。如图3所示,option request option中的requested-option-code域有多个,如 requested-option-code-1、requested-option-code-2等,可以在任意一个requested-option-code域中携带该新定义的option-code。
那么,相应地,在DHCPv6客户端那一侧:DHCPv6客户端接收到reconfigure报文之后,根据其中一个requested-option-code域的值为特定值,回复renew报文,并在该renew报文中携带自己所选择的DHCPv6服务器的DUID。
或者,本发明实施例也可以不对现有的DHCPv6客户端做任何改动,DHCPv6客户端仍然可以按照现有的处理流程,在接收到reconfigure报文之后,发起renew/reply报文交互过程,回复renew报文,该renew报文中携带有自己选择的DHCPv6服务器的DUID、以及上述特定值(Option Requestoption中包含一个requested-option-code域为X)。DHCPv6服务器在接收到该renew报文后,通过其中的特定值,即可知道该renew报文是DHCPv6客户端针对自己发出的携带了该特定值的reconfigure报文所回复的,可以在本地处理(提取其中携带的DHCPv6客户端选择的DHCPv6服务器的DUID)后即行丢弃,无需转发给DHCPv6服务器。
步骤S206,根据在步骤S202中记录的信息以及在步骤S204中获取到的该DHCPv6客户端选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器;
确定未被选中的DHCPv6服务器时,由于在步骤S202中已经记录了一个DHCPv6客户端发出的一个IPv6地址申请报文所得到的所有应答报文中的信息,该信息中包含有发出该应答报文的DHCPv6服务器的DUID,也即,记录了所有为该DHCPv6客户端分配了IPv6地址的DHCPv6服务器的DUID,这样,在获得了该DHCPv6客户端选中的DHCPv6服务器的DUID之后,就能够获知未被该DHCPv6客户端选中的DHCPv6服务器的DUID。
具体的,可以采用以下方式进行:将记录的针对该IPv6地址申请报文的应答报文中的DHCPv6服务器的DUID与获取到的选中的DHCPv6服务器的DUID进行比较;若不相同,则确定该记录的DHCPv6服务器的DUID所指示的DHCPv6服务器为未选中的DHCPv6服务器;否则,该记录的DHCPv6服务器的DUID所指示的DHCPv6服务器就是选中的DHCPv6服务器。
步骤S208,通知在步骤S206中所确定的未被选中的DHCPv6服务器释放为该DHCPv6客户端分配的IPv6地址。
由于在步骤S202中已经从应答报文中得到并记录了DHCPv6服务器的地址等信息,因此,在实际应用中,可以使用单播的方式通知DHCPv6服务器释放租约,这样,不会增加过多的网络流量。
在实际应用中,上述方法可以由位于DHCPv6客户端和DHCPv6服务器之间的、负责转发它们之间交互的报文的交换机、路由器等数据转发设备来执行,本发明对此不做限定。
通过监听并记录DHCPv6客户端与DHCPv6服务器在IPv6地址申请过程中交互的IPv6地址申请报文及其应答报文中的信息,并向DHCPv6客户端获取其选中的DHCPv6服务器的标识,可以利用获取到的选中的DHCPv6服务器的标识以及记录的应答报文中的信息即可确定出未被选中的DHCPv6服务器,从而可以通知未被选中的服务器释放为该DHCPv6客户端分配的IPv6地址,有效解决了DHCPv6快速地址分配和confirm报文申请地址时存在的地址浪费问题,未被选中的DHCPv6服务器可以将释放的IPv6地址分配给其他的DHCPv6客户端使用,提高了地址使用效率。
实施例二
在DHCP的应用中,出于安全考虑,往往会在客户端和服务器之间的负责转发报文的数据转发设备,如交换机上部署DHCP snooping,即在数据转发设备上开启DHCP snooping功能。当数据转发设备开启了DHCP snooping后,会对所有的DHCP报文进行侦听(或监听),并可以从接收到的DHCP报文中提取并记录IP地址和MAC地址等信息。另外,DHCP snooping允许将某个物理端口设置为信任端口或不信任端口。信任端口可以正常接收并转发DHCP报文,而不信任端口会将接收到的DHCP报文丢弃。这样,可以完成数据转发设备对假冒的DHCP服务器的屏蔽作用,确保客户端从合法的DHCP服务器获取IP地址。
本发明实施例中,可以利用DHCP snooping可以对DHCP报文进行监听,并可以从接收到的DHCP报文中提取并记录相关信息的功能,来实现实施例一中的方法。如图4所示,可以在DHCPv6客户端和DHCPv6服务器之间的交换机上开启DHCP snooping,由该DHCP snooping来执行实施例一中的方法。DHCP snooping可以按照以下流程进行操作:
步骤S502,DHCP snooping监听交换机接收到的所有DHCP报文,并记录携带有rapid commit选项的solicit报文及其reply报文、以及confirm报文及其携带的status-code为success的reply报文中的信息;
具体的,当监听到携带有rapid commit选项的solicit报文时,记录该报文中携带的源MAC地址、DHCPv6客户端的DUID、DHCPv6客户端的IAID、transaction-id和收取该报文的交换机的端口(即报文的入端口)等信息,然后向DHCPv6服务器转发该报文;当监听到针对该solicit报文的reply报文时,记录该报文中携带的发送该reply报文的DHCPv6服务器的地址、DHCPv6服务器的DUID,DHCPv6服务器分配的租约(租约包含IPv6地址及其有效生命期)等信息,然后向DHCPv6客户端转发该reply报文;然后,将该reply报文中的信息与该solicit报文中的信息进行关联。
另外,当监听到confirm报文时,记录报文中携带的源MAC地址、DHCPv6客户端的DUID、DHCPv6客户端的IAID、transaction-id和收取该报文的交换机的端口等信息,然后向DHCPv6服务器转发该报文;当监听到针对该confirm报文的reply报文时,若该reply报文中携带的status-code为success,则记录该报文中携带的发送该reply报文的DHCPv6服务器的地址、DHCPv6服务器的DUID和DHCPv6服务器分配的租约(租约包含IPv6地址及其有效生命期)等信息,然后向DHCPv6客户端转发该报文;然后,将该reply报文中的信息与该confirm报文中的信息进行关联。
步骤S504,当与一个携带有rapid commit选项的solicit报文信息关联的reply报文信息有多个时,或者,当与一个confirm报文信息关联的reply报文信息有至少一个时,即,针对一个solicit报文的reply报文有多个,或者,针对一个confirm报文的reply报文有一个或多个时,DHCP snooping模拟DHCPv6服务器向DHCPv6客户端发送reconfigure报文;
显然,在步骤S504中,也可以不确定与一个携带有rapid commit选项的solicit报文信息关联的reply报文信息有多个,或者,与一个confirm报文信息关联的reply报文信息有至少一个,就直接模拟DHCPv6服务器向DHCPv6客户端发送reconfigure报文。
通过指定该reconfigure报文中的reconfigure message option(配置报文选项)中的msg-type(报文类型),来触发DHCPv6客户端发起renew/reply报文交互;并且,在reconfigure报文中的option request option(请求选项)中的一个requested-option-code(请求选项码)域中填充X。
步骤S506,DHCPv6客户端接收到该reconfigure报文之后,通过其中的requested-option-code(请求选项码)域的值为X,可以知道对端请求自己选中的DHCPv6服务器的DUID,以及通过其中的msg-type可以知道需要回复renew报文,从而,DHCPv6客户端回复携带有自己选中的DHCPv6服务器的DUID的renew报文;
步骤S508,DHCP snooping接收到DHCPv6客户端发送的option requestoption中包含的一个requested-option-code域为X的renew报文时,记录该报文中携带的DHCPv6服务器的DUID为DHCPv6客户端选定的DHCPv6服务器的DUID,然后丢弃该报文;然后,DHCP snooping模拟DHCPv6服务器向DHCPv6客户端发送一个不带有任何选项信息的reply报文来结束此次renew/reply报文交互。
步骤S510,DHCP snooping将在步骤S502中记录的reply报文中的信息与在步骤S508中获取的选定服务器的DUID进行比较,即,将所有为该DHCPv6客户端分配了地址的DHCPv6服务器的DUID与选中的服务器的DUID进行比较,若记录的DHCPv6服务器的DUID与选定服务器的DUID不匹配,则根据记录的reply报文中的信息(如服务器的地址)模拟客户端通知服务器释放所记录的租约。
类似的,本发明实施例中,还可以在DHCP中继(DHCP Relay)设备上对DHCP报文进行监听,并利用其可以从接收到的DHCP报文中提取并记录相关信息的功能,来实现实施例一中的方法,为节约篇幅,此处不再赘述。
实施例三
针对上述实施例一和二的方法,本发明实施例三提供了一种数据转发设备,该设备可以执行实施例一和二中的方法,并且,该数据转发设备可以位于DHCPv6客户端与DHCPv6服务器之间,转发两者之间交互的数据报文。如图6所示,该设备包括以下模块:记录模块102、获取模块104、确定模块106和通知模块108,其中:
记录模块102,用于记录DHCPv6客户端与DHCPv6服务器之间交互的IPv6地址申请报文及其应答报文中的信息;
其中,IPv6地址申请报文可以为:DHCPv6客户端发给DHCPv6服务器的携带有快速回复rapid commit选项的请求solicit报文,则应答报文为:DHCPv6服务器针对solicit报文回复的应答reply报文;或
IPv6地址申请报文可以为:DHCPv6客户端发给DHCPv6服务器的确认confirm报文,其中,confirm报文用于确定发生链路迁移的接口下的IPv6地址在新的链路中是否可用,则,应答报文为:DHCPv6服务器针对confirm报文回复的携带的状态码status-code为成功success的reply报文。
获取模块104,用于向DHCPv6客户端获取该DHCPv6客户端选中的DHCPv6服务器的标识;
为了向DHCPv6客户端获取其选中的DHCPv6服务器的标识,如图7所示,获取模块104可以进一步包括:发送模块1042,用于向该DHCPv6客户端发送reconfigure报文,其中,reconfigure报文中的option request option中的一个requested-option-code字段填充为特定值;接收模块1044,用于接收该DHCPv6客户端针对reconfigure报文回复的renew报文,在所述更新报文中携带有所述特定值时,提取所述更新报文中携带的该DHCPv6客户端选中的DHCPv6服务器的标识。
确定模块106,用于根据记录模块102记录的信息以及获取模块104获取到的该DHCPv6客户端选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器;
应答报文中携带的信息可以包括:发送该报文的DHCPv6服务器的标识;则,如图7所示,确定模块106可以进一步包括:比较模块1062以及结果确定模块1064。比较模块1062将记录模块102记录的针对该IPv6地址申请报文的应答报文中的DHCPv6服务器的标识与获取模块104获取到的选中的DHCPv6服务器的标识进行比较,若比较模块1062的比较结果为不相同,则结果确定模块1064确定该记录的DHCPv6服务器的标识所指示的DHCPv6服务器为未选中的DHCPv6服务器,否则,确定该记录的DHCPv6服务器的标识所指示的DHCPv6服务器就是DHCPv6客户端选中的DHCPv6服务器。
通知模块108,用于通知确定模块106所确定的未被选中的DHCPv6服务器,释放为该DHCPv6客户端分配的IPv6地址。
图6和7中的确定模块还可以用于在IPv6地址申请报文为请求报文,应答报文为DHCPv6服务器针对请求报文回复的reply报文时,确定针对该DHCPv6客户端发出的一个请求报文所记录的reply报文有至少两个,或者,在IPv6地址申请报文为确认报文,应答报文为DHCPv6服务器针对确认报文回复的携带的状态码为成功的reply报文时,确定针对该DHCPv6客户端发出的一个确认报文所记录的reply报文有至少一个。这样,在确定模块确定了针对该DHCPv6客户端发出的一个请求报文的应答报文有至少两个、或者针对该DHCPv6客户端发出的一个确认报文的应答报文有至少一个之后,获取模块再向该DHCPv6客户端获取该DHCPv6客户端选中的DHCPv6服务器的标识。从而在快速地址分配过程中,可以在确定了有多个DHCPv6服务器为该DHCPv6客户端分配了IPv6地址之后,才执行后续的步骤,以及在confirm报文申请IPv6地址的过程中,可以在确定了有至少一个DHCPv6服务器为该DHCPv6客户端分配了IPv6地址之后,才执行后续的步骤,可以提高工作效率。
在实际应用中,该数据转发设备可以为使能了DHCP snooping功能的数据转发设备,从而利用DHCP snooping的功能模块来执行上述实施例一和二中的方法,那么DHCP snooping的功能模块中可以包含上述的记录模块、获取模块、确定模块和通知模块。
相应地,本发明实施例还提供了一种DHCPv6客户端,该客户端可以配合如图6和7中所示的数据转发设备,实现IPv6地址的释放。如图8所示,该DHCPv6客户端包括如下模块:接收模块202和发送模块204,其中:
接收模块202,用于接收数据转发设备发来的reconfigure报文,其中,reconfigure报文中携带有特定值,该特定值用于表示请求告知DHCPv6客户端选中的DHCPv6服务器的标识;
发送模块204,用于针对接收模块202接收到的reconfigure报文,回复携带有该DHCPv6客户端选中的DHCPv6服务器的标识的renew报文,以便数据转发设备根据renew报文中携带的选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器,并通知未被选中的DHCPv6服务器释放为该DHCPv6客户端分配的IPv6地址。
其中,reconfigure报文中的option request option中的一个requested-option-code字段填充为上述特定值。具体可以参见实施例一,这里不再赘述。
综上,本发明的以上实施例可以达到以下技术效果:本发明的技术方案中,通过监听并记录DHCPv6客户端与DHCPv6服务器在IPv6地址申请过程中交互的IPv6地址申请报文及其应答报文中的信息,并向DHCPv6客户端获取其选中的DHCPv6服务器的标识,可以利用获取到的选中的DHCPv6服务器的标识以及记录的应答报文中的信息即可确定出未被选中的DHCPv6服务器,从而可以通知未被选中的服务器释放为该DHCPv6客户端分配的IPv6地址,有效解决了DHCPv6快速地址分配和confirm报文申请地址时存在的地址浪费问题,未被选中的DHCPv6服务器可以将释放的IPv6地址分配给其他的DHCPv6客户端使用,提高了地址使用效率。
此外,reconfigure报文以及通知DHCPv6服务器释放地址的报文都可以通过单播的方式发送,不会增加过多的网络流量。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (13)

1.一种释放IPv6地址的实现方法,其特征在于,包括:
记录支持IPv6的动态主机配置协议DHCPv6客户端与DHCPv6服务器之间交互的IPv6地址申请报文及其应答报文中的信息;
通过以下步骤获取该DHCPv6客户端选中的DHCPv6服务器的标识:向该DHCPv6客户端发送重配置reconfigure报文,接收该DHCPv6客户端针对所述重配置报文回复的更新renew报文,在所述更新报文中携带有特定值时,提取所述更新报文中携带的该DHCPv6客户端选中的DHCPv6服务器的标识;其中,所述重配置报文中的请求选项option request option中的一个请求选项码requested-option-code字段填充为特定值,所述特定值用于表示请求告知DHCPv6客户端选中的DHCPv6服务器的标识;
根据记录的信息以及获取到的该DHCPv6客户端选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器;
通知未被选中的DHCPv6服务器释放为该DHCPv6客户端分配的IPv6地址。
2.根据权利要求1所述的方法,其特征在于,
所述IPv6地址申请报文为:DHCPv6客户端发给DHCPv6服务器的携带有快速回复rapid commit选项的请求solicit报文,所述应答报文为:DHCPv6服务器针对所述请求报文回复的应答reply报文;或
所述IPv6地址申请报文为:DHCPv6客户端发给DHCPv6服务器的确认confirm报文,其中,所述确认报文用于确定发生链路迁移的接口下的IPv6地址在新的链路中是否可用,所述应答报文为:DHCPv6服务器针对所述确认报文回复的携带的状态码status-code为成功success的应答reply报文。
3.根据权利要求2所述的方法,其特征在于,
当所述IPv6地址申请报文为所述请求报文,所述应答报文为DHCPv6服务器针对所述请求报文回复的reply报文时,在所述获取该DHCPv6客户端选中的DHCPv6服务器的标识之前,还包括:确定针对该DHCPv6客户端发出的一个请求报文所记录的reply报文有至少两个;
当所述IPv6地址申请报文为所述确认报文,所述应答报文为DHCPv6服务器针对所述确认报文回复的携带的状态码为成功的reply报文时,在所述获取该DHCPv6客户端选中的DHCPv6服务器的标识之前,还包括:确定针对该DHCPv6客户端发出的一个确认报文所记录的reply报文有至少一个。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述应答报文中的信息包括:DHCPv6服务器的标识;则,所述根据记录的信息以及获取到的该DHCPv6客户端选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器包括:
将记录的针对该IPv6地址申请报文的应答报文中的DHCPv6服务器的标识与获取到的选中的DHCPv6服务器的标识进行比较;
若不相同,则确定该记录的DHCPv6服务器的标识所指示的DHCPv6服务器为未选中的DHCPv6服务器。
5.一种释放IPv6地址的实现方法,其特征在于,包括:
支持IPv6的动态主机配置协议DHCPv6客户端接收数据转发设备发来的重配置reconfigure报文,其中,所述重配置报文中携带有特定值,所述特定值用于表示请求告知DHCPv6客户端选中的DHCPv6服务器的标识;
所述DHCPv6客户端针对所述重配置报文,回复携带有该DHCPv6客户端选中的DHCPv6服务器的标识的更新renew报文,以便:所述数据转发设备根据所述更新报文中携带的选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器,并通知未被选中的DHCPv6服务器释放为该DHCPv6客户端分配的IPv6地址。
6.根据权利要求5所述的方法,其特征在于,所述重配置报文中的请求选项option request option中的一个请求选项码requested-option-code字段填充为所述特定值。
7.一种数据转发设备,其特征在于,包括:
记录模块,用于记录支持IPv6的动态主机配置协议DHCPv6客户端与DHCPv6服务器之间交互的IPv6地址申请报文及其应答报文中的信息;
获取模块,包括:发送模块和接收模块;所述发送模块,用于向该DHCPv6客户端发送重配置reconfigure报文,其中,所述重配置报文中的请求选项optionrequest option中的一个请求选项码requested-option-code字段填充为特定值;所述接收模块,用于接收该DHCPv6客户端针对所述重配置报文回复的更新renew报文,在所述更新报文中携带有所述特定值时,提取所述更新报文中携带的该DHCPv6客户端选中的DHCPv6服务器的标识;所述特定值用于表示请求告知DHCPv6客户端选中的DHCPv6服务器的标识;
确定模块,用于根据所述记录模块记录的信息以及所述获取模块获取到的该DHCPv6客户端选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器;
通知模块,用于通知所述确定模块所确定的未被选中的DHCPv6服务器,释放为该DHCPv6客户端分配的IPv6地址。
8.根据权利要求7所述的数据转发设备,其特征在于,所述数据转发设备为使能了DHCP监听snooping功能的数据转发设备。
9.根据权利要求7所述的数据转发设备,其特征在于,
所述IPv6地址申请报文为:DHCPv6客户端发给DHCPv6服务器的携带有快速回复rapid commit选项的请求solicit报文,所述应答报文为:DHCPv6服务器针对所述请求报文回复的应答reply报文;或
所述IPv6地址申请报文为:DHCPv6客户端发给DHCPv6服务器的确认confirm报文,其中,所述确认报文用于确定发生链路迁移的接口下的IPv6地址在新的链路中是否可用,所述应答报文为:DHCPv6服务器针对所述确认报文回复的携带的状态码status-code为成功success的应答reply报文。
10.根据权利要求9所述的数据转发设备,其特征在于,
所述确定模块还用于在所述IPv6地址申请报文为所述请求报文,所述应答报文为DHCPv6服务器针对所述请求报文回复的reply报文时,确定针对该DHCPv6客户端发出的一个请求报文所记录的reply报文有至少两个,之后通知所述获取模块获取该DHCPv6客户端选中的DHCPv6服务器的标识,或者,在所述IPv6地址申请报文为所述确认报文,所述应答报文为DHCPv6服务器针对所述确认报文回复的携带的状态码为成功的reply报文时,确定针对该DHCPv6客户端发出的一个确认报文所记录的reply报文有至少一个,之后通知所述获取模块获取该DHCPv6客户端选中的DHCPv6服务器的标识。
11.根据权利要求7至10中任一项所述的数据转发设备,其特征在于,所述应答报文中的信息包括:DHCPv6服务器的标识;则,所述确定模块包括:
比较模块,用于将所述记录模块记录的针对该IPv6地址申请报文的应答报文中的DHCPv6服务器的标识与所述获取模块获取到的选中的DHCPv6服务器的标识进行比较;
结果确定模块,用于在所述比较模块的比较结果为不相同时,确定该记录的DHCPv6服务器的标识所指示的DHCPv6服务器为未选中的DHCPv6服务器。
12.一种支持IPv6的动态主机配置协议DHCPv6客户端,其特征在于,包括:
接收模块,用于接收数据转发设备发来的重配置reconfigure报文,其中,所述重配置报文中携带有特定值,所述特定值用于表示请求告知DHCPv6客户端选中的DHCPv6服务器的标识;
发送模块,用于针对所述接收模块接收到的重配置报文,回复携带有该DHCPv6客户端选中的DHCPv6服务器的标识的更新renew报文,以便:所述数据转发设备根据所述更新报文中携带的选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器,并通知未被选中的DHCPv6服务器释放为该DHCPv6客户端分配的IPv6地址。
13.根据权利要求12所述的DHCPv6客户端,其特征在于,所述重配置报文中的请求选项option request option中的一个请求选项码requested-option-code字段填充为所述特定值。
CN201210244756.1A 2012-07-16 2012-07-16 释放IPv6地址的实现方法及设备 Active CN102752414B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210244756.1A CN102752414B (zh) 2012-07-16 2012-07-16 释放IPv6地址的实现方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210244756.1A CN102752414B (zh) 2012-07-16 2012-07-16 释放IPv6地址的实现方法及设备

Publications (2)

Publication Number Publication Date
CN102752414A CN102752414A (zh) 2012-10-24
CN102752414B true CN102752414B (zh) 2015-03-18

Family

ID=47032311

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210244756.1A Active CN102752414B (zh) 2012-07-16 2012-07-16 释放IPv6地址的实现方法及设备

Country Status (1)

Country Link
CN (1) CN102752414B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104040985B (zh) * 2012-11-16 2016-12-28 华为技术有限公司 地址重配置方法、服务器和客户端
CN103002064A (zh) 2012-11-20 2013-03-27 中兴通讯股份有限公司 一种释放地址的方法、用户节点及远程接入服务器
CN104025490B (zh) * 2012-12-25 2017-06-20 华为技术有限公司 资源请求的方法、服务器及资源分配系统
CN104144229B (zh) * 2014-07-24 2017-11-14 新华三技术有限公司 一种释放快速分配IPv6地址的方法及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101447879A (zh) * 2009-01-13 2009-06-03 杭州华三通信技术有限公司 一种计费的方法及接入设备
CN101873320A (zh) * 2010-06-17 2010-10-27 杭州华三通信技术有限公司 一种基于DHCPv6中继的客户端信息确认方法及其装置
WO2010142201A1 (zh) * 2009-06-11 2010-12-16 华为技术有限公司 获取DHCPv6服务器IP地址的方法、DHCPv6服务器和DHCPv6通信系统
CN102325200A (zh) * 2011-09-22 2012-01-18 杭州华三通信技术有限公司 一种快速获取IPv6地址的方法和DHCP侦听设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101447879A (zh) * 2009-01-13 2009-06-03 杭州华三通信技术有限公司 一种计费的方法及接入设备
WO2010142201A1 (zh) * 2009-06-11 2010-12-16 华为技术有限公司 获取DHCPv6服务器IP地址的方法、DHCPv6服务器和DHCPv6通信系统
CN101873320A (zh) * 2010-06-17 2010-10-27 杭州华三通信技术有限公司 一种基于DHCPv6中继的客户端信息确认方法及其装置
CN102325200A (zh) * 2011-09-22 2012-01-18 杭州华三通信技术有限公司 一种快速获取IPv6地址的方法和DHCP侦听设备

Also Published As

Publication number Publication date
CN102752414A (zh) 2012-10-24

Similar Documents

Publication Publication Date Title
CN103051740B (zh) 域名解析方法、dns服务器及域名解析系统
CN106412142B (zh) 一种资源设备地址获取方法及装置
CN102752152B (zh) 用于配置vrrp备份组的方法和装置
KR101526289B1 (ko) 동적 호스트 구성 프로토콜 버전 6 서버의 아이피 어드레스 획득 방법, 동적 호스트 구성 프로토콜 버전 6 서버 및 동적 호스트 구성 프로토콜 버전 6 통신 시스템
US20120324063A1 (en) Method, network device, and system for automatically configuring network device in ipv6 network
CN101582888B (zh) 一种创建邻居发现表项的方法和一种服务器
CN101465889A (zh) 网络地址转换设备及其响应地址解析协议请求的方法
CN102075591A (zh) 获取介质访问控制地址的方法、装置和系统
CN101873320B (zh) 一种基于DHCPv6中继的客户端信息确认方法及其装置
CN101577675A (zh) IPv6网络中邻居表保护方法及邻居表保护装置
CN102752414B (zh) 释放IPv6地址的实现方法及设备
CN105245629A (zh) 基于dhcp的主机通信方法及装置
CN104378455A (zh) Ip地址分配方法以及装置
CN101217477B (zh) 实现vrrp备份组中dhcp租约平滑切换的方法、装置和路由器
CN103384282A (zh) 一种获取ipv6nd地址的方法及bars
CN101577723B (zh) 一种防止邻居发现协议报文攻击的方法及装置
CN102325200A (zh) 一种快速获取IPv6地址的方法和DHCP侦听设备
CN103501355A (zh) 互联网协议地址冲突检测方法、装置及网关设备
CN102437960B (zh) 集群模式的检测处理方法、系统和网络设备
US20120008627A1 (en) Method and apparatus for assigning device identifier with collision avoidance
CN101018193A (zh) 负载分流的方法和系统及分配备份组虚ip地址的装置
CN102025797A (zh) 地址前缀处理方法、装置、系统及网络设备
CN103795581A (zh) 地址处理方法和设备
CN102201963A (zh) 媒体接入控制强制转发方法及功能单元
WO2018006684A1 (zh) 报文处理方法、装置及路由器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: Xinhua three Technology Co., Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: Huasan Communication Technology Co., Ltd.

CP03 Change of name, title or address