回收动态主机配置协议客户端的ip地址的方法及设备的利记博彩app
【专利摘要】本发明公开了回收DHCP客户端的IP地址的方法及设备。方法包括:当DHCP中继设备发现本地新增了ARP表项时,将该ARP表项添加到DHCP客户端IP地址缓存表中;当DHCP中继设备获得下线客户端的MAC地址时,根据该MAC地址,在DHCP客户端IP地址缓存表中查找对应的IP地址,将该IP地址携带在单播DHCP释放报文中发送给DHCP服务器,同时删除该IP地址对应的DHCP客户端IP地址缓存表项。本发明能够及时回收下线客户端的IP地址。
【专利说明】回收动态主机配置协议客户端的IP地址的方法及设备
【技术领域】
[0001] 本发明涉及地址分配【技术领域】,具体涉及回收动态主机配置协议(DHCP, Dynamic Host Configuration Protocol)客户端的因特网协议(IP,Internet Protocol)地址的方 法及设备。
【背景技术】
[0002] DHCP用来为网络设备动态地分配IP地址等网络配置参数。DHCP采用客户端/服 务器通信模式,由客户端向服务器提出配置申请,服务器返回为客户端分配的IP地址等相 应的配置信息,以实现IP地址等信息的动态配置。
[0003] 针对客户端的不同需求,DHCP提供三种IP地址分配策略:手工分配、自动分配和 动态分配,其中绝大多数客户端采用动态分配方式。动态分配地址,即DHCP服务器为客户 端分配具有一定有效期限的IP地址,到达使用期限后,客户端需要重新申请地址。
[0004] 在DHCP的典型应用中,对于比较简单的网络环境,一般包含一台DHCP服务器和 多台客户端(如PC和便携机),由于客户端获取IP地址过程中,DHCP报文都是广播发送的, 所以要求DHCP服务器和DHCP客户端属于同一网段。实际中对于稍大点的网络,并不能保 证DHCP服务器和DHCP客户端属于同一网段,DHCP服务器往往同时需要为多个不同网段的 DHCP客户端分配IP地址,因此又引入了 DHCP中继技术,完成跨网段情况下的IP地址动态 获取。
[0005] 现有的不包含DHCP中继设备的DHCP组网如图1所示,对应的IP地址获取过程如 图2所示,主要通过四个阶段进行:
[0006] (1)发现阶段,即DHCP客户端寻找DHCP服务器的阶段。客户端以广播方式发送 DHCP 发现(Discover)报文。
[0007] (2)提供阶段,即DHCP服务器提供IP地址的阶段。DHCP服务器接收到客户端的 DHCP Discover报文后,根据IP地址分配的优先次序选出一个IP地址,与其他参数一起通 过DHCP提供(Offer)报文发送给客户端。DHCP Offer报文的发送方式由DHCP Discover 报文中的标志(flag)字段决定。
[0008] (3)选择阶段,S卩DHCP客户端选择IP地址的阶段。如果有多台DHCP服务器向该 客户端发来DHCP Offer报文,客户端只接受第一个收到的DHCP Offer报文,然后以广播方 式发送DHCP请求(Request)报文,该报文中包含DHCP服务器在DHCP Offer报文中分配的 IP地址。
[0009] (4)确认阶段,S卩DHCP服务器确认IP地址的阶段。DHCP服务器收到DHCP客户端 发来的DHCP Request报文后,只有DHCP客户端选择的服务器会进行如下操作:如果确认将 地址分配给该客户端,则返回DHCP确认(ACK)报文;否则返回DHCP拒绝(NAK)报文,表明 地址不能分配给该客户端。
[0010] 现有的包含DHCP中继设备的DHCP组网如图3所示,对应的IP地址获取过程如图 4所示。其中,通过DHCP中继完成IP地址动态获取的过程中,DHCP客户端与DHCP服务器 的处理方式与不通过DHCP中继时的处理方式基本相同。下面只说明DHCP中继的转发过程, 具体如下:
[0011] (1) DHCP中继设备收到DHCP客户端以广播方式发送的DHCPDi scover或DHCP Request报文后,将报文中的网关IP地址(giaddr)字段填充为DHCP中继设备的IP地址, 并根据配置将报文单播转发给指定的DHCP服务器。
[0012] (2)DHCP服务器根据giaddr字段为客户端分配IP地址等参数,并通过DHCP中继 设备将配置信息转发给客户端,完成对客户端的动态配置。
[0013] 如果采用动态地址分配策略,则DHCP服务器分配给客户端的IP地址有一定的租 借期限,当租借期满后服务器会收回该IP地址。如果DHCP客户端希望继续使用该地址,需 要更新IP地址租约。具体来说,在DHCP客户端的IP地址租约期限达到一半时间时,DHCP 客户端会向为它分配IP地址的DHCP服务器单播发送DHCP Request报文,以进行IP地址 租约的更新。如果客户端可以继续使用此IP地址,则DHCP服务器回应DHCP ACK报文,通 知DHCP客户端已经获得新IP地址租约;如果此IP地址不可以再分配给该客户端,则DHCP 服务器回应DHCP NAK报文,通知DHCP客户端不能获得新的租约。如果在租约的一半时间 进行的续约操作失败,DHCP客户端会在租约期限达到7/8时,广播发送DHCP Request报文 进行续约。DHCP服务器的处理方式同上,不再赘述。
[0014] 当客户端下线后,需要及时收回IP地址,以便将该IP地址及时分配给其他客户 端。
[0015] 图5为现有的采用DHCP客户端-接入交换机-DHCP中继设备-DHCP服务器组网方 式的DHCP典型组网图,如图5所示,客户端PC连接到各自对应的接入层的二层交换机上, 然后二层交换机连接DHCP中继设备,DHCP中继设备同时作为网关,然后DHCP中继设备通 过中间网络连接DHCP服务器。
[0016] 以图5为例,目前比较常用的回收下线客户端的IP地址的技术有如下两种:
[0017] -种是通过在DHCP中继设备上开启DHCP窥探(Snooping)功能,通过监听和解 析经过的DHCP报文,最终会形成一张 DHCP Snooping安全特性表,表中记录了客户端的媒 体接入控制(MAC,Media Access Control)地址和动态获取的IP地址,即客户端的IP+MAC 地址表项。然后DHCP中继设备会定期探测客户端,例如发送Ping报文或地址解析协议 (ARP,Address Resolution Protocol)报文给客户端,看客户端是否有回应,来判断客户端 是否已经下线,若该客户端超时未响应探测报文则判定该客户端不在线,老化该客户端对 应的安全特性表;最后对于探测实际未在线的用户发送由DHCP中继设备构造关联该用户 的DHCP释放(Release)报文给DHCP服务器,来达到对DHCP服务器中相应IP地址释放的 目的。
[0018] 另外一种也是DHCP中继设备探测到客户端不在线后,代替客户端向DHCP服务器 发送对应IP地址的DHCP Release报文,以此来达到对DHCP服务器中相应IP地址释放的 目的。主要不同之处在于DHCP中继设备检测客户端是否已下线的方式不一样,DHCP中继 设备的用户下线检测功能以ARP表项老化功能为基础,ARP表项老化时认为该表项对应的 用户已经下线,会删除对应的用户DHCP Snooping安全特性表项。同时,DHCP中继设备还 会向DHCP服务器发送DHCP Release报文,释放下线用户的IP地址租约。
[0019] 上述第一种方法的主要缺点如下:
[0020] -、DHCP中继设备需要定期轮询后,才能发现客户端已不在线,进而通知DHCP服 务器释放对应的IP地址,这样会造成IP地址不能及时回收,当IP地址比较紧张时,可能会 导致其他客户端无法获取到IP地址。
[0021] 二、通过DHCP中继设备主动发送ARP或者ICMP报文,等待客户端回应的方式,有 时并不能有效地判断DHCP客户端已经下线,因为现在很多客户端会开启防火墙,对ICMP或 ARP报文不会回应,这样会造成:无法准确检测到客户端是否下线,从而也会造成IP地址不 能及时回收。
[0022] 三、DHCP中继设备需要通过窥探DHCP客户端和DHCP服务器之间的全部的DHCP交 互报文并提取报文中的关键字段,而后创建一张全新的安全特性表。为了维护安全特性表, 当轮询定时器到时,中继设备需要针对安全特性表中相应表项全部地发送ARP或因特网控 制消息协议(ICMP, Internet Control Message Protocol)报文进行用户在线探测。假使 下联客户端数量庞大,每次轮询的表项数量大时,安全特性表的探测定时器触发的瞬间可 能会对中继设备产生巨大压力。且按照上述方法,在接入层网络中将无时不充斥着大量ARP 或ICMP报文,不利于网络维护。
[0023] 上述第二种方法的主要缺点如下:
[0024] -、由于ARP表项的老化是需要一段时间的,一般默认是20分钟。这意味着客户端 下线之后,还要等待几十分钟的时间,才能探测到客户端已经下线,从而导致对应的IP地 址不能及时回收。
[0025] 二、由于ARP表项老化有时并不能代表客户端已经下线,假如客户端只是一段时 间没有和其他网络设备通信而已,这样DHCP中继设备作为网关,对应的ARP表项自然会老 化,但实际上客户端并没有下线,从而导致IP地址被过早回收。
【发明内容】
[0026] 本发明提供回收DHCP客户端的IP地址的方法及设备,以使得在DHCP客户端下线 后,DHCP服务器能够及时回收IP地址。
[0027] 本发明的技术方案是这样实现的:
[0028] -种回收动态主机配置协议DHCP客户端的IP地址的方法,应用于包含客户端、中 继设备及地址分配服务器的DHCP网络中的中继设备上,该方法包括:
[0029] 当中继设备发现本地新增了地址解析协议ARP表项时,将该ARP表项添加到本地 建立的客户端IP地址缓存表中,所述ARP表项包含:IP地址字段和媒体接入控制MAC地址 字段;
[0030] 当中继设备获得下线客户端的MAC地址时,在所述客户端IP地址缓存表中查找对 应的IP地址,将该IP地址携带在单播DHCP的IP地址释放报文中发送给地址分配服务器, 同时删除客户端IP地址缓存表中的对应表项;
[0031] 其中,所述下线客户端的MAC地址为:接入交换机或者中继设备上的关闭 shutdown端口所连接的客户端的MAC地址。
[0032] 当所述客户端通过接入交换机连接到所述中继设备时,所述中继设备获得下线客 户端的MAC地址为:
[0033] 中继设备接收接入交换机发来的下线客户端的MAC地址,其中,所述下线客户端 的MAC地址为:当接入交换机发现自身与客户端直连的端口关闭shutdown时,接入交换机 根据端口与MAC地址的绑定关系查找该端口对应的MAC地址,将查找到的MAC地址作为下 线客户端的MAC地址发送给中继设备。
[0034] 预先在所述中继设备与所述接入交换机上使能连通错误检测CFD的以太网告警 指示信号EAIS功能,并在接入交换机的CFD模块上注册端口关闭shutdown事件;
[0035] 且,所述中继设备接收接入交换机发来的下线客户端的MAC地址为:
[0036] 中继设备接收接入交换机发来的EAIS报文,该报文的扩展类型长度值TLV中携带 下线客户端的MAC地址;
[0037] 且所述中继设备接收接入交换机发来的下线客户端的MAC地址的同时进一步包 括:中继设备从接收端口返回一个EAIS报文。
[0038] 所述中继设备与所述接入交换机直连,所述中继设备接收接入交换机发来的下线 客户端的MAC地址为:中继设备接收接入交换机发来的链路层发现协议LLDP报文,该报文 的扩展类型长度值TLV中携带下线客户端的MAC地址,或者,
[0039] 所述中继设备与所述接入交换机直连或跨设备连接,且当跨设备连接时,将接入 交换机与中继设备间的各设备配置成服务桥,所述中继设备接收接入交换机发来的下线客 户端的MAC地址为:中继设备接收接入交换机发来的LLDP报文,该报文的扩展TLV中携带 下线客户端的MAC地址。
[0040] 当所述客户端以所述中继设备作为接入设备时,所述中继设备获得下线客户端的 MAC地址包括:
[0041] 当中继设备发现本地一 MAC地址表项老化时,将该表项放入本地建立的老化 MAC地址表副本中;中继设备实时监测自身与各客户端直连的端口,当发现一端口关闭 shutdown时,在本地MAC地址表和/或老化MAC地址表副本中查找该端口标识对应的MAC 地址,将查找到的MAC地址作为所述下线客户端的MAC地址,其中,当在老化MAC地址表副 本中查找到关闭端口标识对应的MAC地址时,删除老化MAC地址表副本中对应的表项。
[0042] 一种DHCP中继设备,该DHCP中继设备包括:
[0043] 客户端IP地址缓存模块:当发现本地新增了 ARP表项时,将该ARP表项添加到客 户端IP地址缓存表中;
[0044] 下线客户端IP地址查找模块:当获得下线客户端的MAC地址时,根据该MAC地址, 在客户端IP地址缓存表中查找对应的IP地址,将该IP地址携带在单播DHCP的IP地址释 放报文中发送给DHCP服务器,同时删除该IP地址对应的客户端IP地址缓存表项,其中,所 述下线客户端的MAC地址为:接入交换机或者本设备上的关闭shutdown端口所连接的客户 端的MAC地址。
[0045] 所述客户端通过接入交换机连接到本中继设备,所述下线客户端IP地址查找模 块通过接收接入交换机发来的包含下线客户端的MAC地址的报文的方式获得所述下线客 户端的MAC地址,其中,所述下线客户端的MAC地址为:当接入交换机发现自身与客户端直 连的端口关闭shutdown时,接入交换机根据端口与MAC地址的绑定关系查找该端口对应的 MAC地址,将查找到的MAC地址作为下线客户端的MAC地址发送给中继设备。
[0046] 所述下线客户端IP地址查找模块包括:
[0047] CFD模块:当接收到接入交换机发来的携带下线客户端的MAC地址的EAIS报文 时,从接收端口返回一个EAIS报文,将该下线客户端的MAC地址发送给查找处理模块; [0048] 查找处理模块:接收CFD模块发来的下线客户端的MAC地址,在客户端IP地址缓 存表中查找对应的IP地址,将该IP地址携带在单播DHCP的IP地址释放报文中发送给DHCP 服务器,同时删除该IP地址对应的客户端IP地址缓存表项。
[0049] 所述客户端以本中继设备作为接入设备,
[0050] 所述DHCP中继设备进一步包括:MAC地址表维护模块,当发现一 MAC地址表项老 化时,将该表项放入老化MAC地址表副本中;
[0051] 所述下线客户端IP地址查找模块进一步用于,实时监测本设备与各客户端直连 的端口,当发现一端口关闭shutdown时,在本地MAC地址表和/或老化MAC地址表副本中 查找该端口标识对应的MAC地址,将查找到的MAC地址作为所述下线客户端的MAC地址,其 中,当在老化MAC地址表副本中查找到关闭端口标识对应的MAC地址时,删除老化MAC地址 表副本中对应的表项。
[0052] -种接入交换机,DHCP客户端通过该接入交换机连接到DHCP中继设备,该接入交 换机包括:
[0053] MAC地址表维护模块:当发现一 MAC地址表项老化时,将该表项放入老化MAC地址 表副本中;
[0054] 端口监测模块:实时监测本交换机与各DHCP客户端直连的端口,当发现一端口关 闭shutdown时,在MAC地址表和/或老化MAC地址表副本中查找该端口标识对应的MAC地 址,将查找到的MAC地址作为下线客户端的MAC地址发送给DHCP中继设备,且当查找到的 是老化的MAC地址表项时,删除老化MAC地址表副本中对应的表项。
[0055] 所述端口监测模块进一步用于,将所述下线客户端的MAC地址封装到EAIS报文的 扩展TLV中,以便将该报文发送给DHCP中继设备。
[0056] 与现有技术相比,本发明在DHCP客户端下线后,能够及时检测到,并能够及时回 收客户端的MAC地址,同时减轻了 DHCP中继设备的负载压力。
【专利附图】
【附图说明】
[0057] 图1为现有的不包含DHCP中继设备的DHCP组网示意图;
[0058] 图2为在图1所示组网环境下的IP地址获取过程示意图;
[0059] 图3为现有的包含DHCP中继设备的DHCP组网示意图;
[0060] 图4为在图3所示组网环境下的IP地址获取过程示意图;
[0061] 图5为现有的采用DHCP客户端-接入交换机-DHCP中继设备-DHCP服务器组网 方式的DHCP典型组网图;
[0062] 图6为本发明实施例一提供的回收DHCP客户端的IP地址的方法流程图;
[0063] 图7为本发明实施例二提供的回收DHCP客户端的IP地址的方法流程图;
[0064] 图8为本发明实施例一提供的DHCP中继设备的组成示意图;
[0065] 图9为本发明实施例一提供的接入交换机的组成示意图;
[0066] 图10为本发明实施例二提供的DHCP中继设备的组成示意图。
【具体实施方式】
[0067] 下面结合附图及具体实施例对本发明再作进一步详细的说明。
[0068] 在实际应用中,包含DHCP中继设备的DHCP组网方式主要有如下两种:
[0069] 一、DHCP客户端-接入交换机-DHCP中继设备-DHCP服务器,其中,DHCP客户端与 接入交换机直连,接入交换机与DHCP中继设备直连或跨设备连接;
[0070] 二、DHCP客户端-DHCP中继设备-DHCP服务器,其中,DHCP中继设备兼具接入功 能,DHCP客户端与DHCP中继设备直连。
[0071] 以下针对上述两种组网方式分别给出具体实施例:
[0072] 本发明中,DHCP客户端的IP地址是DHCP服务器采用动态分配方式分配的。
[0073] 图6为本发明实施例一提供的回收DHCP客户端的IP地址的方法流程图,本实施 例针对的组网方式为:DHCP客户端-接入交换机-DHCP中继设备-DHCP服务器,如图6所 示,其具体步骤如下:
[0074] 步骤601 :在与客户端直连的接入交换机以及接入交换机连接的DHCP中继设备上 使能连通错误检测(CFD,Connectivity Fault Detection)的以太网告警指示信号(EAIS, Ethernet Alarm Indication Signal)功能,在 CFD 模块上注册端口关闭(shutdown)事件。
[0075] 在CFD模块上注册端口 shutdown事件后,CFD模块就会监测端口 shutdown事件。
[0076] 这里的CFD遵循电气和电子工程师协会(IEEE, Institute of Electrical and Electronics Engineers) 802. lag 的连通错误管理(CFM,Connectivity Fault Management)协议和国际电信联盟远程通信标准化组织(ITU-T,The ITU Telecommunication Standardization Sector)的 Υ· 1731 协议。它是一种二层链路上 基于虚拟局域网(VLAN, Virtual Local Area Network)的端到端操作、管理和维护(0ΑΜ, Operations, Administration and Maintenance)机制,主要用于在二层网络中检测链路连 通性,确认故障并确定故障发生的位置。
[0077] 当设备的端口发生了 down事件,便立刻开始周期性地发送EAIS报文以抑制故障 告警的上报;当该端口重新up后,会立刻停止发送EAIS报文。
[0078] 步骤602 :当与客户端直连的接入交换机发现本地一 MAC地址表项老化时,将该表 项放入本地建立的老化MAC地址表副本中。
[0079] 这里的MAC地址表即,用于支持二层报文转发的MAC地址表。
[0080] 老化MAC地址表副本可以在接入交换机启动时建立,也可以在第一条MAC地址表 项老化时建立,专门用于存放老化的MAC地址表项,初始为空。
[0081] 步骤603 :当与接入交换机连接的DHCP中继设备发现本地新增了一 ARP表项时, 以该ARP表项的IP地址查询本地建立的DHCP客户端IP地址缓存表,若查找到对应表项, 则不作处理;否则,将该ARP表项添加到DHCP客户端IP地址缓存表中。
[0082] DHCP客户端IP地址缓存表可在DHCP中继设备启动时建立,也可以在新增第一条 ARP表项时建立,初始为空。
[0083] 由于DHCP中继设备一般都兼做网关,所以最终所有客户端的IP+MAC地址信息都 会通过ARP表添加到DHCP客户端IP地址缓存表中。
[0084] 步骤604 :接入交换机上的CH)模块实时监测接入交换机与各DHCP客户端直连的 端口,当发现一端口关闭(shutdown)时,在本地MAC地址表中查找该端口号对应的MAC地 址,若未查找到,继续在本地老化MAC地址表副本中查找该端口号对应的MAC地址,将查找 到的MAC地址组装成类型长度值(TLV,Type Length Value),将该TLV提供给CFD模块,同 时,若该MAC地址是在老化MAC地址表副本中查找到的,则删除老化MAC地址表副本中该 MAC地址所在的老化MAC地址表项。
[0085] 在MAC地址表或老化MAC地址表副本中查找到的MAC地址即下线客户端的MAC地 址。
[0086] TLV中的类型字段的取值为现有技术未用过的值即可,如取值100,以用于标识 TLV的类型为下线客户端的MAC地址;TLV的长度字段的取值为MAC地址的长度,如6字节; TLV字段的值字段的取值为客户端的MAC地址值。
[0087] 步骤605 :接入交换机的CFD模块将该TLV扩展到即将发送的EAIS报文中,将该 报文发送给DHCP中继设备。
[0088] 这里,需要对现有的EAIS报文进行扩展,在其中增加 TLV字段。
[0089] CFD模块监测到端口 shutdown后,会自动持续发送EAIS报文给DHCP中继设备。 [0090] 步骤606 :DHCP中继设备解析接收到的EAIS报文中的扩展TLV,得到下线客户端 的MAC地址,并从接收端口返回一个EAIS报文。
[0091] 接入交换机收到DHCP中继设备返回的EAIS报文后,将受到抑制,不再发送EAIS 报文。
[0092] 步骤607 :DHCP中继设备根据下线客户端的MAC地址,在本地DHCP客户端IP地址 缓存表查找对应的IP地址,将该IP地址携带在单播DHCP Release报文中发送给DHCP服 务器,同时删除对应的DHCP客户端IP地址缓存表项。
[0093] 步骤608 :DHCP服务器接收该DHCP Release报文,从报文中解析出下线客户端的 IP地址,释放该IP地址。
[0094] 对于实施例一,需要说明的是,步骤605中,TLV还可通过链路层发现协议(LLDP, Link Layer Discovery Protocol)报文发送给DHCP中继设备。对应地,无需执行步骤601 ; 同时,步骤604中,无需采用CFD模块实时监测接入交换机与各DHCP客户端直连的端口,而 采用现有的端口监测技术来实现即可;同时,步骤604?605中,接入交换机组装完TLV后, 直接将该TLV封装到LLDP报文中发送给DHCP中继设备即可。这里,需要注意的是,若采用 旧版本的LLDP,则由于LLDP报文不能跨设备传递,因此无法支持接入交换机和DHCP中继设 备跨设备连接的组网方式;若采用最新版本的LLDP,则需要预先将接入交换机和DHCP中继 设备间的所有设备都配置成服务桥(Service Bridge),这样接入交换机和DHCP中继设备 就可通过LLDP最近客户桥(Nearest Customer Bridge)报文进行通信。
[0095] 图7为本发明实施例二提供的回收DHCP客户端的IP地址的方法流程图,本实施 例针对的组网方式为:DHCP客户端-DHCP中继设备-DHCP服务器,如图7所示,其具体步骤 如下:
[0096] 步骤701 :在与客户端直连的DHCP中继设备上使能CFD功能,在CFD模块上注册 端口 shutdown 事件。
[0097] 步骤702 :当DHCP中继设备发现本地一 MAC地址表项老化时,将该表项放入本地 建立的老化MAC地址表副本中。
[0098] 这里的MAC地址表即,用于支持二层报文转发的MAC地址表。
[0099] 老化MAC地址表副本可以在接入交换机启动时建立,也可以在第一条MAC地址表 项老化时建立,专门用于存放老化的MAC地址表项,初始为空。
[0100] 步骤703 :当DHCP中继设备发现本地新增了一 ARP表项时,以该ARP表项的IP地 址查询DHCP客户端IP地址缓存表,若查找到对应表项,则不作处理;否则,将该ARP表项添 力口到DHCP客户端IP地址缓存表中。
[0101] DHCP客户端IP地址缓存表可在DHCP中继设备启动时建立,也可以在新增第一条 ARP表项时建立,初始为空。
[0102] 由于DHCP中继设备一般都兼做网关,所以最终所有客户端的IP+MAC地址信息都 会通过ARP表添加到DHCP客户端IP地址缓存表中。
[0103] 步骤704 :DHCP中继设备上的CFD模块实时监测DHCP中继设备与各DHCP客户端 直连的端口,当发现一端口 shutdown时,在本地MAC地址表中查找该端口号对应的MAC地 址,若未查找到,继续在本地老化MAC地址表副本中查找该端口号对应的MAC地址。
[0104] 在MAC地址表或老化MAC地址表副本中查找到的MAC地址即下线客户端的MAC地 址。
[0105] 步骤705 :DHCP中继设备根据查找到的MAC地址,在DHCP客户端IP地址缓存表中 查找对应的IP地址,将该IP地址携带在单播DHCP Release报文中发送给DHCP服务器,同 时删除对应的DHCP客户端IP地址缓存表项,且,若该下线客户端的MAC地址是在老化MAC 地址表副本中查找到的,需要一并删除老化MAC地址表副本中该MAC地址所在的老化MAC 地址表项。
[0106] 步骤706 :DHCP服务器接收该DHCP Release报文,从报文中解析出下线客户端的 IP地址,释放该IP地址。
[0107] 对于图7所示实施例,DHCP中继设备也可以采用除CFD之外的现有方法来实时监 测DHCP中继设备与客户端直连的端口的状态。
[0108] 图8为本发明实施例一提供的DHCP中继设备的组成示意图,该DHCP中继设备通 过接入交换机与DHCP客户端连接,如图8所示,该DHCP中继设备主要包括:客户端IP地址 缓存模块81和下线客户端IP地址查找模块82,其中:
[0109] 客户端IP地址缓存模块81 :当发现本地新增了 ARP表项时,将该ARP表项添加到 DHCP客户端IP地址缓存表中。
[0110] 下线客户端IP地址查找模块82 :当接收到接入交换机发来的下线客户端的MAC 地址时,根据该MAC地址,在客户端IP地址缓存模块81维护的DHCP客户端IP地址缓存表 中查找对应的IP地址,将该IP地址携带在单播DHCP释放报文中发送给DHCP服务器,同时 删除该IP地址对应的DHCP客户端IP地址缓存表项,其中,下线客户端的MAC地址为:当接 入交换机发现自身与一 DHCP客户端直连的端口关闭时,在本地MAC地址表和/或老化MAC 地址表副本中查找该端口标识对应的MAC地址,将该MAC地址作为下线客户端的MAC地址 发送给DHCP中继设备的,该老化MAC地址表副本保存的是老化的MAC地址表项,且当接入 交换机根据关闭端口标识查找到一老化的MAC地址表项时,将老化MAC地址表副本中的该 表项删除。
[0111] 在实际应用中,下线客户端IP地址查找模块82可包括:CFD模块和查找处理模 块,其中:
[0112] CFD模块:当接收到接入交换机发来的携带下线客户端的MAC地址的EAIS报文 时,从接收端口返回一个EAIS报文,将该下线客户端的MAC地址发送给查找处理模块。
[0113] 查找处理模块:接收CFD模块发来的下线客户端的MAC地址,在客户端IP地址缓 存模块81维护的DHCP客户端IP地址缓存表中查找对应的IP地址,将该IP地址携带在单 播DHCP释放报文中发送给DHCP服务器,同时删除该IP地址对应的DHCP客户端IP地址缓 存表项。
[0114] 图9为本发明实施例一提供的接入交换机的组成示意图,DHCP客户端通过该接入 交换机连接到DHCP中继设备,如图9所示,该接入交换机主要包括:MAC地址表维护模块91 和端口监测模块92,其中:
[0115] MAC地址表维护模块91 :维护MAC地址表和老化MAC地址表副本,当发现一 MAC地 址表项老化时,将该表项放入老化MAC地址表副本中。
[0116] 端口监测模块92 :实时监测本交换机与各DHCP客户端直连的端口,当发现一端口 关闭时,在MAC地址表维护模块91维护的MAC地址表和/或老化MAC地址表副本中查找该 端口标识对应的MAC地址,将该MAC地址作为下线客户端的MAC地址发送给DHCP中继设备, 且当查找到的是老化的MAC地址表项时,将老化MAC地址表副本中的该表项删除。
[0117] 在实际应用中,端口监测模块92可将下线客户端的MAC地址封装到EAIS报文的 扩展TLV中发送给DHCP中继设备。
[0118] 图10为本发明实施例二提供的DHCP中继设备的组成示意图,该DHCP中继设备作 为DHCP客户端的接入设备,如图10所示,该DHCP中继设备主要包括:MAC地址表维护模块 101、客户端IP地址缓存模块102和下线客户端IP地址查找模块103,其中:
[0119] MAC地址表维护模块101 :维护MAC地址表和老化MAC地址表副本,当发现一 MAC 地址表项老化时,将该表项放入老化MAC地址表副本中。
[0120] 客户端IP地址缓存模块102 :当发现本地新增了 ARP表项时,将该ARP表项添加 到DHCP客户端IP地址缓存表中。
[0121] 下线客户端IP地址查找模块103 :实时监测本设备与各DHCP客户端直连的端口, 当发现一端口关闭时,在MAC地址表维护模块101维护的MAC地址表和/或老化MAC地址 表副本中查找该端口标识对应的MAC地址,根据查找到的MAC地址,在客户端IP地址缓存 模块102维护的DHCP客户端IP地址缓存表中查找对应的IP地址,将该IP地址携带在单 播DHCP释放报文中发送给DHCP服务器,同时删除该IP地址对应的DHCP客户端IP地址缓 存表项,其中,当在老化MAC地址表副本中查找到关闭端口标识对应的MAC地址时,删除老 化MAC地址表副本中对应的表项。
[0122] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1. 一种回收动态主机配置协议DHCP客户端的IP地址的方法,应用于包含客户端、中继 设备及地址分配服务器的DHCP网络中的中继设备上,其特征在于,该方法包括: 当中继设备发现本地新增了地址解析协议ARP表项时,将该ARP表项添加到本地建立 的客户端IP地址缓存表中,所述ARP表项包含:IP地址字段和媒体接入控制MAC地址字 段; 当中继设备获得下线客户端的MAC地址时,在所述客户端IP地址缓存表中查找对应的 IP地址,将该IP地址携带在单播DHCP的IP地址释放报文中发送给地址分配服务器,同时 删除客户端IP地址缓存表中的对应表项; 其中,所述下线客户端的MAC地址为:接入交换机或者中继设备上的关闭shutdown端 口所连接的客户端的MAC地址。
2. 根据权利要求1所述的方法,其特征在于,当所述客户端通过接入交换机连接到所 述中继设备时,所述中继设备获得下线客户端的MAC地址为: 中继设备接收接入交换机发来的下线客户端的MAC地址,其中,所述下线客户端的MAC 地址为:当接入交换机发现自身与客户端直连的端口关闭shutdown时,接入交换机根据端 口与MAC地址的绑定关系查找该端口对应的MAC地址,将查找到的MAC地址作为下线客户 端的MAC地址发送给中继设备。
3. 根据权利要求2所述的方法,其特征在于,预先在所述中继设备与所述接入交换机 上使能连通错误检测CFD的以太网告警指示信号EAIS功能,并在接入交换机的CFD模块上 注册端口关闭shutdown事件; 且,所述中继设备接收接入交换机发来的下线客户端的MAC地址为: 中继设备接收接入交换机发来的EAIS报文,该报文的扩展类型长度值TLV中携带下线 客户端的MAC地址; 且所述中继设备接收接入交换机发来的下线客户端的MAC地址的同时进一步包括:中 继设备从接收端口返回一个EAIS报文。
4. 根据权利要求2所述的方法,其特征在于, 所述中继设备与所述接入交换机直连,所述中继设备接收接入交换机发来的下线客户 端的MAC地址为:中继设备接收接入交换机发来的链路层发现协议LLDP报文,该报文的扩 展类型长度值TLV中携带下线客户端的MAC地址,或者, 所述中继设备与所述接入交换机直连或跨设备连接,且当跨设备连接时,将接入交换 机与中继设备间的各设备配置成服务桥,所述中继设备接收接入交换机发来的下线客户端 的MAC地址为:中继设备接收接入交换机发来的LLDP报文,该报文的扩展TLV中携带下线 客户端的MAC地址。
5. 根据权利要求1所述的方法,其特征在于,当所述客户端以所述中继设备作为接入 设备时,所述中继设备获得下线客户端的MAC地址包括: 当中继设备发现本地一 MAC地址表项老化时,将该表项放入本地建立的老化MAC地 址表副本中;中继设备实时监测自身与各客户端直连的端口,当发现一端口关闭shutdown 时,在本地MAC地址表和/或老化MAC地址表副本中查找该端口标识对应的MAC地址,将查 找到的MAC地址作为所述下线客户端的MAC地址,其中,当在老化MAC地址表副本中查找到 关闭端口标识对应的MAC地址时,删除老化MAC地址表副本中对应的表项。
6. -种DHCP中继设备,其特征在于,该DHCP中继设备包括: 客户端IP地址缓存模块:当发现本地新增了 ARP表项时,将该ARP表项添加到客户端 IP地址缓存表中; 下线客户端IP地址查找模块:当获得下线客户端的MAC地址时,根据该MAC地址,在客 户端IP地址缓存表中查找对应的IP地址,将该IP地址携带在单播DHCP的IP地址释放报 文中发送给DHCP服务器,同时删除该IP地址对应的客户端IP地址缓存表项,其中,所述下 线客户端的MAC地址为:接入交换机或者本设备上的关闭shutdown端口所连接的客户端的 MAC地址。
7. 根据权利要求6所述的DHCP中继设备,其特征在于,所述客户端通过接入交换机连 接到本中继设备,所述下线客户端IP地址查找模块通过接收接入交换机发来的包含下线 客户端的MAC地址的报文的方式获得所述下线客户端的MAC地址,其中,所述下线客户端的 MAC地址为:当接入交换机发现自身与客户端直连的端口关闭shutdown时,接入交换机根 据端口与MAC地址的绑定关系查找该端口对应的MAC地址,将查找到的MAC地址作为下线 客户端的MAC地址发送给中继设备。
8. 根据权利要求7所述的DHCP中继设备,其特征在于, 所述下线客户端IP地址查找模块包括: CFD模块:当接收到接入交换机发来的携带下线客户端的MAC地址的EAIS报文时,从 接收端口返回一个EAIS报文,将该下线客户端的MAC地址发送给查找处理模块; 查找处理模块:接收CFD模块发来的下线客户端的MAC地址,在客户端IP地址缓存表 中查找对应的IP地址,将该IP地址携带在单播DHCP的IP地址释放报文中发送给DHCP服 务器,同时删除该IP地址对应的客户端IP地址缓存表项。
9. 根据权利要求6所述的DHCP中继设备,其特征在于,所述客户端以本中继设备作为 接入设备, 所述DHCP中继设备进一步包括:MAC地址表维护模块,当发现一 MAC地址表项老化时, 将该表项放入老化MAC地址表副本中; 所述下线客户端IP地址查找模块进一步用于,实时监测本设备与各客户端直连的端 口,当发现一端口关闭shutdown时,在本地MAC地址表和/或老化MAC地址表副本中查找 该端口标识对应的MAC地址,将查找到的MAC地址作为所述下线客户端的MAC地址,其中, 当在老化MAC地址表副本中查找到关闭端口标识对应的MAC地址时,删除老化MAC地址表 副本中对应的表项。
10. -种接入交换机,DHCP客户端通过该接入交换机连接到DHCP中继设备,其特征在 于,该接入交换机包括: MAC地址表维护模块:当发现一 MAC地址表项老化时,将该表项放入老化MAC地址表副 本中; 端口监测模块:实时监测本交换机与各DHCP客户端直连的端口,当发现一端口关闭 shutdown时,在MAC地址表和/或老化MAC地址表副本中查找该端口标识对应的MAC地址, 将查找到的MAC地址作为下线客户端的MAC地址发送给DHCP中继设备,且当查找到的是老 化的MAC地址表项时,删除老化MAC地址表副本中对应的表项。
11. 根据权利要求10所述的接入交换机,其特征在于,所述端口监测模块进一步用于, 将所述下线客户端的MAC地址封装到EAIS报文的扩展TLV中,以便将该报文发送给DHCP 中继设备。
【文档编号】H04L29/12GK104158917SQ201310178714
【公开日】2014年11月19日 申请日期:2013年5月14日 优先权日:2013年5月14日
【发明者】吴文国, 李磊方, 赵昌峰 申请人:杭州华三通信技术有限公司