CN102752414B - 释放IPv6地址的实现方法及设备 - Google Patents
释放IPv6地址的实现方法及设备 Download PDFInfo
- 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
Links
Abstract
本发明公开了一种释放IPv6地址的实现方法及设备,其中,该方法包括:记录DHCPv6客户端与DHCPv6服务器之间交互的IPv6地址申请报文及其应答报文中的信息;获取该DHCPv6客户端选中的DHCPv6服务器的标识;根据记录的信息以及获取到的该DHCPv6客户端选中的DHCPv6服务器的标识,确定未被选中的DHCPv6服务器;通知未被选中的DHCPv6服务器释放为该DHCPv6客户端分配的IPv6地址。本发明解决了DHCPv6快速地址分配和confirm报文申请地址时存在的地址浪费问题。
Description
技术领域
本发明涉及网络技术领域,特别涉及一种释放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字段填充为所述特定值。
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)
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)
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侦听设备 |
-
2012
- 2012-07-16 CN CN201210244756.1A patent/CN102752414B/zh active Active
Patent Citations (4)
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 |