释放IPv6地址的实现方法及设备的制作方法

文档序号:7855960阅读:571来源:国知局
专利名称:释放IPv6地址的实现方法及设备的制作方法
技术领域
本发明涉及网络技术领域,特别涉及一种释放IPv6地址的实现方法及设备。
背景技术
随着网络规模的不断扩大、网络复杂度的不断提高,网络配置也变得越来越复杂,在计算机经常移动(如便携机或无线网络)和计算机的数量超过可分配的IP (InternetProtocol,互联网协议)地址等情况下,为方便用户快速地接入和退出网络、提高IP地址资
源的利用率,一种自动进行IP地址的分配机制-DHCP (Dynamic Host Configuration
Protocol,动态主机配置协议)应运而生。DHCP采用客户端/服务器的通信模式。所有的 IP网络配置参数都由DHCP服务器集中管理,并负责处理客户端的DHCP请求;而客户端则会使用服务器分配的IP网络参数进行通信。DHCPv6 (DHCP for IPv6,支持 IPv6 的 DHCP)是针对 IPv6 (Internet ProtocolVersion6)编址方案设计的动态主机配置协议,能够为主机分配IPv6前缀、IPv6地址和其他网络配置参数。在DHCPv6协议中,DHCPv6服务器(server)负责为DHCPv6客户端(client)分配IPv6地址、IPv6前缀和其他网络配置参数。在DHCPv6中,IPv6地址的快速申请过程如下如图I所示,DHCPv6客户端(以下简称为客户端)向DHCPv6服务器(以下简称为服务器)发送用于请求服务器为其分配IPv6地址/前缀和网络配置参数的solicit (请求)报文,该报文中携带了 rapid commit (快速回复)选项,用于表示客户端希望DHCPv6服务器能够快速地为其分配地址/前缀和网络配置参数。接收到该solicit报文的服务器考虑自身的本地配置,确定自己是否能为客户端分配地址,并直接返回reply (应答)报文,其中包含自己所能提供的地址。当接收到了多个服务器返回的reply报文时,客户端依据r印Iy报文的内容选择一个最合适的服务器(通常是按照优先级,如果优先级相同的话,则使用最快响应的服务器),使用所选择的服务器返回的reply报文中的地址自行配置,并进行地址冲突检测,检测通过后,客户端就可以使用该地址进行后续通信了。以上快速申请过程存在一个问题当网络中存在多个服务器时,客户端会接收到多个reply报文,客户端仅选择一个最合适的服务器返回的reply报文中的地址进行配置,这样,那些没有被选中的服务器为其分配的地址就被浪费了。后续,当客户端重启、从Sle印(休眠)状态唤醒、或者无线客户端更换接入点时,都有可能使客户端迁移至新的链路。客户端在迁移至新的链路之后,必须发起一次confirm(确认)/R印Iy报文交互,确定发生链路迁移的接口下的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客户端使用,提高了地址使用效率。


图I是相关技术的IPv6地址的快速申请过程的示意图;图2是根据本发明的实施例一的释放IPv6地址的实现方法的流程图;图3是根据本发明的实施例一的option request option的格式的示意图;图4是根据本发明的实施例二的应用了 DHCP snooping的网络示意图;图5是根据本发明的实施例二的利用了 DHCP snooping的释放IPv6地址的实现方法的流程图;图6是根据本发明的实施例三的数据转发设备的一种结构示意图;图7是根据本发明的实施例三的数据转发设备的另一种结构示意图;图8是根据本发明的实施例三的DHCPv6客户端的结构示意图。
具体实施例方式为了便于理解,下面首先对一些相关的技术术语进行解释UDUID (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的一种安全特性,具有如下功能(I)保证客户端从合法的服务器获取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报文,具体参见背景技术部分,这里不再赘述。以上将携带有rapidcommit选项的solicit报文和confirm报文统称为IPv6地址申请报文。在实际应用中,可以对DHCPv6客户端与DHCPv6服务器交互的报文进行监听,当监听到IPv6地址申请报文和/或IPv6地址申请报文的应答报文时,就记录下报文中的信息。IPv6地址申请报文中的信息可以包括报文的源MAC(Media Access Control,介质访问控制)地址、DHCPv6客户端的标识(即DHCPv6客户端的DUID )、DHCPv6客户端的IAID、transaction-id和报文入端口等;IPv6地址申请报文的应答报文中的信息可以包括回复该应答报文的DHCPv6服务器的地址、DHCPv6服务器的标识(即DHCPv6服务器的DUID)和DHCPv6服务器为DHCPv6客户端分配的租约等,其中,租约中包含有IPv6地址及其有效生命期。步骤S204,向DHCPv6客户端获取该DHCPv6客户端选中的DHCPv6服务器的标识;为了提高工作效率,在实际应用中,在IPv6地址申请报文为携带有rapid commit选项的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服务器为发出该so I i c i t报文的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客户端时,可以通过单播的方式进行发送,SP,该reconfigure报文是单播报文,从而不会带来过多的网络流量。为了能够让reconfigure报文可以指示出“请求告知DHCPv6客户端选中的DHCPv6服务器的标识”的含义,本发明实施例新定义了一个option-code (选项码),当该option-code的值为特定值(该特定值可用X表示)时,表示向DHCPv6客户端请求其选中的DHCPv6服务器的DUID (选中的DHCPv6服务器即为DHCPv6客户端所选择的服务器,并使用该服务器回复的i^ply报文中的IPv6地址进行地址配置)。X的值可以是未被RFC定义使用的符合RFC标准的任意值。为了与现有协议兼容,该option-code的格式与RFC通用的DHCP option格式相同。将该新定义了的option-code赋值为X之后,将该option-code填充在reconfigure报文中的option request option (请求选项)中的一个requested-option-code (请求选项码)域中。如图 3 所不,option requestoption 中的 requested-option-code 域有多个,如 requested-option-code-l、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 Request option 中包含一个requested-option-code 域为 XXDHCPv6服务器在接收到该renew报文后,通过其中的特定值,即可知道该renew报文是DHCPv6客户端针对自己发出的携带了该特定值的reconfigure报文所回复的,可以在本地处理(提取其中携带的DHCPv6客户端选择的DHCPv6服务器的DWD)后即行丢弃,无需转发给DHCPv6服务器。
步骤S206,根据在步骤S202中记录的信息以及在步骤S204中获取到的该DHCPv6客户端选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器;确定未被选中的DHCPv6服务器时,由于在步骤S202中已经记录了一个DHCPv6客户端发出的一个IPv6地址申请报文所得到的所有应答报文中的信息,该信息中包含有发出该应答报文的DHCPv6服务器的DMD,也即,记录了所有为该DHCPv6客户端分配了 IPv6地址的DHCPv6服务器的DWD,这样,在获得了该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,即在数据转发设备上开启DHCPsnooping功能。当数据转发设备开启了 DHCP snooping后,会对所有的DHCP报文进行侦听(或监听),并可以从接收到的DHCP报文中提取并记录IP地址和MAC地址等信息。另外,DHCP snooping允许将某个物理端口设置为信任端口或不信任端口。信任端口可以正常接收并转发DHCP报文,而不信任端口会将接收到的DHCP报文丢弃。这样,可以完成数据转发设备对假冒的DHCP服务器的屏蔽作用,确保客户端从合法的DHCP服务器获取IP地址。本发明实施例中,可以利用DHCP snooping可以对DHCP报文进行监听,并可以从接收到的DHCP报文中提取并记录相关信息的功能,来实现实施例一中的方法。如图4所示,可以在DHCPv6客户端和DHCPv6服务器之间的交换机上开启DHCP snooping,由该DHCPsnooping来执行实施例一中的方法。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 request option中包含的一个requested-option-code域为X的renew报文时,记录该报文中携带的DHCPv6服务器的DUID为DHCPv6客户端选定的DHCPv6服务器的DWD,然后丢弃该报文;然后,DHCP snooping模拟DHCPv6服务器向DHCPv6客户端发送一个不带有任何选项信息的reply报文来结束此次renew/reply报文交互。步骤S510,DHCP snooping将在步骤S502中记录的reply报文中的信息与在步骤S508中获取的选定服务器的DUID进行比较,即,将所有为该DHCPv6客户端分配了地址的DHCPv6服务器的DUID与选中的服务器的DUID进行比较,若记录的DHCPv6服务器的DUID与选定服务器的DUID不匹配,则根据记录的i^ply报文中的信息(如服务器的地址)模拟客户端通知服务器释放所记录的租约。类似的,本发明实施例中,还可以在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地址在新的链路中是否可用,贝1J,应答报文为DHCPv6服务器针对confirm报文回复的携带的状态码status-code为成功success的reply报文。获取模块104,用于向DHCPv6客户端获取该DHCPv6客户端选中的DHCPv6服务器的标识;为了向DHCPv6客户端获取其选中的DHCPv6服务器的标识,如图7所示,获取模块104可以进一步包括发送模块1042,用于向该DHCPv6客户端发送reconfigure报文,其中,reconfigure 报文中的 option request option 中的一yIv 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的功能模块来执行上述实施例一和二中的方法,那么DHCPsnooping的功能模块中可以包含上述的记录模块、获取模块、确定模块和通知模块。相应地,本发明实施例还提供了一种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服务器释放地址的报文都可以通过单播的方式发送,不会增加过多的网络流量。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种释放IPv6地址的实现方法,其特征在于,包括 记录支持IPv6的动态主机配置协议DHCPv6客户端与DHCPv6服务器之间交互的IPv6地址申请报文及其应答报文中的信息; 获取该DHCPv6客户端选中的DHCPv6服务器的标识; 根据记录的信息以及获取到的该DHCPv6客户端选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器; 通知未被选中的DHCPv6服务器释放为该DHCPv6客户端分配的IPv6地址。
2.根据权利要求I所述的方法,其特征在于, 所述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.根据权利要求I所述的方法,其特征在于,所述获取该DHCPv6客户端选中的DHCPv6服务器的标识包括 向该DHCPv6客户端发送重配置reconfigure报文,其中,所述重配置报文中的请求选项option request option中的一个请求选项码requested-option-code字段填充为特定值; 接收该DHCPv6客户端针对所述重配置报文回复的更新renew报文,在所述更新报文中携带有所述特定值时,提取所述更新报文中携带的该DHCPv6客户端选中的DHCPv6服务器的标识。
5.根据权利要求I至4中任一项所述的方法,其特征在于,所述应答报文中的信息包括DHCPv6服务器的标识;则,所述根据记录的信息以及获取到的该DHCPv6客户端选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器包括 将记录的针对该IPv6地址申请报文的应答报文中的DHCPv6服务器的标识与获取到的选中的DHCPv6服务器的标识进行比较; 若不相同,则确定该记录的DHCPv6服务器的标识所指示的DHCPv6服务器为未选中的DHCPv6服务器。
6.一种释放IPv6地址的实现方法,其特征在于,包括 支持IPv6的动态主机配置协议DHCPv6客户端接收数据转发设备发来的重配置reconfigure报文,其中,所述重配置报文中携带有特定值,所述特定值用于表示请求告知DHCPv6客户端选中的DHCPv6服务器的标识; 所述DHCPv6客户端针对所述重配置报文,回复携带有该DHCPv6客户端选中的DHCPv6服务器的标识的更新renew报文,以便所述数据转发设备根据所述更新报文中携带的选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器,并通知未被选中的DHCPv6服务器释放为该DHCPv6客户端分配的IPv6地址。
7.根据权利要求6所述的方法,其特征在于,所述重配置报文中的请求选项optionrequest option中的一个请求选项码requested-option-code字段填充为所述特定值。
8.一种数据转发设备,其特征在于,包括 记录模块,用于记录支持IPv6的动态主机配置协议DHCPv6客户端与DHCPv6服务器之间交互的IPv6地址申请报文及其应答报文中的信息; 获取模块,用于获取该DHCPv6客户端选中的DHCPv6服务器的标识; 确定模块,用于根据所述记录模块记录的信息以及所述获取模块获取到的该DHCPv6客户端选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器; 通知模块,用于通知所述确定模块所确定的未被选中的DHCPv6服务器,释放为该DHCPv6客户端分配的IPv6地址。
9.根据权利要求8所述的数据转发设备,其特征在于,所述数据转发设备为使能了DHCP监听snooping功能的数据转发设备。
10.根据权利要求8所述的数据转发设备,其特征在于, 所述IPv6地址申请报文为DHCPv6客户端发给DHCPv6服务器的携带有快速回复rapid commit选项的请求solicit报文,所述应答报文为DHCPv6服务器针对所述请求报文回复的应答reply报文;或 所述IPv6地址申请报文为DHCPv6客户端发给DHCPv6服务器的确认confirm报文,其中,所述确认报文用于确定发生链路迁移的接口下的IPv6地址在新的链路中是否可用,所述应答报文为DHCPv6服务器针对所述确认报文回复的携带的状态码status-code为成功success的应答reply报文。
11.根据权利要求10所述的数据转发设备,其特征在于, 所述确定模块还用于在所述IPv6地址申请报文为所述请求报文,所述应答报文为DHCPv6服务器针对所述请求报文回复的reply报文时,确定针对该DHCPv6客户端发出的一个请求报文所记录的reply报文有至少两个,之后通知所述获取模块获取该DHCPv6客户端选中的DHCPv6服务器的标识,或者,在所述IPv6地址申请报文为所述确认报文,所述应答报文为DHCPv6服务器针对所述确认报文回复的携带的状态码为成功的reply报文时,确定针对该DHCPv6客户端发出的一个确认报文所记录的reply报文有至少一个,之后通知所述获取模块获取该DHCPv6客户端选中的DHCPv6服务器的标识。
12.根据权利要求8所述的数据转发设备,其特征在于,所述获取模块包括 发送模块,用于向该DHCPv6客户端发送重配置reconfigure报文,其中,所述重配置报文中的请求选项option request option中的一个请求选项码requested-option-code字段填充为特定值; 接收模块,用于接收该DHCPv6客户端针对所述重配置报文回复的更新renew报文,在所述更新报文中携带有所述特定值时,提取所述更新报文中携带的该DHCPv6客户端选中的DHCPv6服务器的标识。
13.根据权利要求8至12中任一项所述的数据转发设备,其特征在于,所述应答报文中的信息包括DHCPv6服务器的标识;则,所述确定模块包括 比较模块,用于将所述记录模块记录的针对该IPv6地址申请报文的应答报文中的DHCPv6服务器的标识与所述获取模块获取到的选中的DHCPv6服务器的标识进行比较; 结果确定模块,用于在所述比较模块的比较结果为不相同时,确定该记录的DHCPv6服 务器的标识所指示的DHCPv6服务器为未选中的DHCPv6服务器。
14.一种支持IPv6的动态主机配置协议DHCPv6客户端,其特征在于,包括 接收模块,用于接收数据转发设备发来的重配置reconfigure报文,其中,所述重配置报文中携带有特定值,所述特定值用于表示请求告知DHCPv6客户端选中的DHCPv6服务器的标识; 发送模块,用于针对所述接收模块接收到的重配置报文,回复携带有该DHCPv6客户端选中的DHCPv6服务器的标识的更新renew报文,以便所述数据转发设备根据所述更新报文中携带的选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器,并通知未被选中的DHCPv6服务器释放为该DHCPv6客户端分配的IPv6地址。
15.根据权利要求14所述的DHCPv6客户端,其特征在于,所述重配置报文中的请求选项option request option中的一个请求选项码requested-option-code字段填充为所述特定值。
全文摘要
本发明公开了一种释放IPv6地址的实现方法及设备,其中,该方法包括记录DHCPv6客户端与DHCPv6服务器之间交互的IPv6地址申请报文及其应答报文中的信息;获取该DHCPv6客户端选中的DHCPv6服务器的标识;根据记录的信息以及获取到的该DHCPv6客户端选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器;通知未被选中的DHCPv6服务器释放为该DHCPv6客户端分配的IPv6地址。本发明解决了DHCPv6快速地址分配和confirm报文申请地址时存在的地址浪费问题。
文档编号H04L29/12GK102752414SQ20121024475
公开日2012年10月24日 申请日期2012年7月16日 优先权日2012年7月16日
发明者潘芳 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1