互联网协议地址冲突检测方法、装置及网关设备的制作方法

文档序号:8006478阅读:395来源:国知局
互联网协议地址冲突检测方法、装置及网关设备的制作方法
【专利摘要】本发明公开了一种互联网协议IP地址冲突检测方法、装置及网关设备,该方法包括:接收到主机设备发送的IP地址冲突探测报文后,在ARP缓存表中查找IP地址冲突检测报文中携带的目的IP地址和主机设备所在的Super?VLAN的ID对应的第一ARP表项;若查找到第一ARP表项,在确定第一ARP表项中的Sub?VLAN的ID与主机设备所在的Sub?VLAN的ID不同、且第一ARP表项中的介质访问控制MAC地址与IP地址冲突探测报文中携带的源MAC地址也不同后,确定IP地址冲突检测报文中携带的目的IP地址为冲突的IP地址,并通知主机设备。
【专利说明】互联网协议地址冲突检测方法、装置及网关设备
【技术领域】
[0001]本发明涉及通信【技术领域】,尤指一种互联网协议(Internet Protocol, IP)地址冲突检测方法、装置及网关设备。
【背景技术】
[0002]超级虚拟局域网(SuperVirtual Local Area Network, Super VLAN)又称为 VLAN聚合,其原理是一个Super VLAN包含多个子(Sub) VLAN,每个Sub VLAN是一个广播域,不同Sub VLAN之间二层相互隔离。Super VLAN可以配置三层接口,Sub VLAN不能配置三层接口。当Sub VLAN内的主机(PC)需要进行三层通信时,将使用Super VLAN三层接口的IP地址作为网关地址,这样多个Sub VLAN共用一个IP网段,从而节省了 IP地址资源。如图1所示,是一个Super VLAN组网的结构示意图。
[0003]为了实现不同Sub VLAN之间的三层互通及Sub VLAN与其他网络的互通,SuperVLAN需要利用地址解析协议(Address Resolution Protocol, ARP)代理功能。通过ARP代理可以进行相关ARP请求和应答报文的转发与处理,从而实现了 Sub VLAN二层隔离端口间
的三层互通。
[0004]如果在一个Super VLAN内,有两个不同的主机同时使用一个IP地址,两个主机将会冲突,从而严重影响Super VLAN上运行的业务,因此如何实现IP地址冲突检测就显得尤
为重要。
[0005]目前,常用的IP地址冲突检测方法为:Super VLAN上的网关设备将IP地址冲突检测报文透传到除源Sub VLAN之外的其他Sub VLAN中。在检测到IP地址冲突后,该网关设备再将IP地址冲突检测应答报文发送到源Sub VLAN中。该方法需要将IP地址冲突检测报文在除源Sub VLAN外的其他子VLAN中广播,当Super VLAN包括很多Sub VLAN,如4093个Sub VLAN的情况下,网关设备要复制转发4093个IP地址冲突检测报文,会严重影响网关设备的处理性能,且带来大量的广播报文,占用过多的网络带宽。

【发明内容】

[0006]本发明实施例提供一种互联网协议IP地址冲突检测方法、装置及网关设备,用以解决现有的IP地址冲突检测方法严重影响网关设备的处理性能,以及占用过多的网络带宽的问题。
[0007]因此,根据本发明实施例,提供一种互联网协议IP地址冲突检测方法,包括:
[0008]接收到主机设备发送的IP地址冲突探测报文后,在预先建立的地址解析协议ARP缓存表中查找所述IP地址冲突检测报文中携带的目的IP地址和所述主机设备所在的超级虚拟局域网Super VLAN的标识ID对应的第一 ARP表项,所述IP地址冲突探测报文的目的IP地址为所述主机设备的IP地址;
[0009]若查找到所述第一 ARP表项,在确定所述第一 ARP表项中的子Sub VLAN的ID与所述主机设备所在的Sub VLAN的ID不同、且所述第一 ARP表项中的介质访问控制MAC地址与所述IP地址冲突探测报文中携带的源MAC地址也不同后,确定所述IP地址冲突检测报文中携带的目的IP地址为冲突的IP地址,并通知所述主机设备。
[0010]较佳的,查找到所述第一 ARP表项之后,若所述IP地址冲突检测报文中携带的目的IP地址不是冲突的IP地址,还包括:
[0011]当所述IP地址冲突探测报文为ARP探测请求报文时,不更新所述第一 ARP表项;
[0012]当所述IP地址冲突探测报文为免费ARP请求报文时,将所述第一 ARP表项中的Sub VLAN的ID替换为所述主机设备所在的Sub VLAN的ID,以及将所述第一 ARP表项中的MAC地址替换为所述IP地址冲突探测报文中携带的源MAC地址。
[0013]较佳的,还包括:
[0014]若未查找到所述第一 ARP表项,建立包括所述IP地址冲突探测报文的目的IP地址、源MAC地址、所述主机设备所在的Sub VLAN的ID和Super VLAN的ID的ARP表项。
[0015]较佳的,通知所述主机设备之后,还包括:
[0016]向所述主机设备发送单播ARP请求报文;
[0017]若未接收到所述主机设备回复的ARP响应报文,删除所述第一 ARP表项。
[0018]较佳的,还包括:
[0019]接收到所述主机设备发送的普通ARP请求报文,在所述ARP缓存表中查找所述普通ARP请求报文中携带的目的IP地址和所述主机设备所在的Super VLAN的ID对应的第二 ARP表项;
[0020]若查找到所述第二 ARP表项,将所述第二 ARP表项中的子Sub VLAN的ID替换为所述主机设备所在的Sub VLAN的ID,以及将所述第二 ARP表项中的MAC地址替换为所述普通ARP请求报文中携带的源MAC地址;
[0021]若未查找到所述第二 ARP表项,建立包括所述普通ARP请求报文的目的IP地址、源MAC地址、所述主机设备所在的Sub VLAN的ID和Super VLAN的ID的ARP表项。
[0022]本发明实施例还提供一种互联网协议IP地址冲突检测装置,包括:
[0023]查找单元,用于接收到主机设备发送的IP地址冲突探测报文后,在预先建立的地址解析协议ARP缓存表中查找所述IP地址冲突检测报文中携带的目的IP地址和所述主机设备所在的超级虚拟局域网Super VLAN的标识ID对应的第一 ARP表项,所述IP地址冲突探测报文的目的IP地址为所述主机设备的IP地址;
[0024]检测单元,用于若所述查找单元查找到所述第一 ARP表项,在确定所述第一 ARP表项中的子Sub VLAN的ID与所述主机设备所在的Sub VLAN的ID不同、且所述第一 ARP表项中的介质访问控制MAC地址与所述IP地址冲突探测报文中携带的源MAC地址也不同后,确定所述IP地址冲突检测报文中携带的目的IP地址为冲突的IP地址,并通知所述主机设备。
[0025]较佳的,所述检测单元,还用于:在所述查找单元查找到所述第一 ARP表项之后,若所述IP地址冲突检测报文中携带的目的IP地址不是冲突的IP地址,当所述IP地址冲突探测报文为ARP探测请求报文时,不更新所述第一 ARP表项;当所述IP地址冲突探测报文为免费ARP请求报文时,将所述第一 ARP表项中的Sub VLAN的ID替换为所述主机设备所在的Sub VLAN的ID,以及将所述第一 ARP表项中的MAC地址替换为所述IP地址冲突探测报文中携带的源MAC地址。[0026]较佳的,所述检测单元,还用于:
[0027]若所述查找单元未查找到所述第一 ARP表项,建立包括所述IP地址冲突探测报文的目的IP地址、源MAC地址、所述主机设备所在的Sub VLAN的ID和Super VLAN的ID的ARP表项。
[0028]较佳的,所述检测单元,还用于:
[0029]在通知所述主机设备之后,向所述主机设备发送单播ARP请求报文;
[0030]若未接收到所述主机设备回复的ARP响应报文,删除所述第一 ARP表项。
[0031]较佳的,所述查找单元,还用于接收到所述主机设备发送的普通ARP请求报文,在所述ARP缓存表中查找所述普通ARP请求报文中携带的目的IP地址和所述主机设备所在的Super VLAN的ID对应的第二 ARP表项;
[0032]所述检测单元,还用于:
[0033]若所述查找单元查找到所述第二 ARP表项,将所述第二 ARP表项中的子Sub VLAN的ID替换为所述主机设备所在的Sub VLAN的ID,以及将所述第二 ARP表项中的MAC地址替换为所述普通ARP请求报文中携带的源MAC地址;
[0034]若所述查找单元未查找到所述第二 ARP表项,建立包括所述普通ARP请求报文的目的IP地址、源MAC地址、所述主机设备所在的Sub VLAN的ID和Super VLAN的ID的ARP表项。
[0035]本发明实施例还提供一种网关设备,包括上述的互联网协议IP地址冲突检测装置。
[0036]本发明实施例提供的互联网协议IP地址冲突检测方法、装置及网关设备,在接收到主机设备发送的IP地址冲突探测报文后,首先在预先建立的ARP缓存表中查找IP地址冲突检测报文中携带的目的IP地址和主机设备所在的Super VLAN的ID对应的第一 ARP表项;若查找到第一 ARP表项,在确定第一 ARP表项中的Sub VLAN的ID与主机设备所在的Sub VLAN的ID不同、且第一 ARP表项中的MAC地址与所述IP地址冲突探测报文中携带的源MAC地址也不同后,确定IP地址冲突检测报文中携带的目的IP地址为冲突的IP地址,也就是说主机设备的IP地址为冲突的IP地址,并通知主机设备,并不需要再将IP地址冲突检测报文在除主机设备所在的Sub VLAN外的其他Sub VLAN内转发,从而能够很好的保持网关设备的处理性能,并且节省了很多的网络带宽。
【专利附图】

【附图说明】
[0037]图1为现有技术中Super VLAN组网的结构示意图;
[0038]图2为本发明实施例中IP地址冲突检测方法的流程图;
[0039]图3为本发明实施例中ARP探测请求报文的结构示意图;
[0040]图4为本发明实施例中免费ARP请求报文的结构图;
[0041]图5为本发明优选的实施例中Super VLAN组网的结构示意图;
[0042]图6为本发明实施例中IP地址冲突检测装置的结构示意图。
【具体实施方式】
[0043]针对现有的IP地址冲突检测方法严重影响网关设备的处理性能,以及占用过多的网络带宽的问题,本发明实施例提供一种IP地址冲突检测方法,该方法可以应用在如图1所示的组网结构中,Sub VLAN2和Sub VLAN4聚合成Super VLAN3,为Super VLAN3分配一个IP子网,Sub VLAN2和Sub VLAN4都位于此子网。该方法的流程如图2所示,具体包括:
[0044]S20:接收主机设备发送的IP地址冲突探测报文。
[0045]当Super VLAN3中的主机设备起机后,都会发送IP地址冲突探测报文,该IP地址冲突探测报文经由主机设备所在的Sub VLAN转发到Super VLAN中的网关设备,网关设备就可以接收该IP地址冲突探测报文。
[0046]IP地址可以是IPv4地址,也可以是IPv6地址。
[0047]S21:在预先建立的ARP缓存表中查找IP地址冲突检测报文中携带的目的IP地址和主机设备所在的Super VLAN的标识(Identification,ID)对应的第一 ARP表项,若查找到,执行S22 ;否则,执行S23。其中,IP地址冲突探测报文的目的IP地址为主机设备的IP地址
[0048]ARP缓存表中的表项记录的是在Super VLAN中已经存在的主机设备的IP地址、源MAC地址、所在的Sub VLAN的ID和Super VLAN的ID,可以根据接收到的IP地址冲突检测报文中携带的目的IP地址和主机设备所在的Super VLAN的ID查找该ARP缓存表,然后根据查找结果可以确定接收到的IP地址冲突检测报文中的目的IP地址是否为冲突的IP地址了,也就是确定主机设备的IP地址是否是冲突的IP地址了。
[0049]S22:在确定第一 ARP表项中的Sub VLAN的ID与主机设备所在的Sub VLAN的ID不同、且第一 ARP表项中的介质访问控制MAC地址与IP地址冲突探测报文中携带的源MAC地址也不同后,确定IP地`址冲突检测报文中携带的目的IP地址为冲突的IP地址,并通知主机设备。
[0050]也就是说发送IP地址冲突探测请求报文的主机设备的IP地址与第一 ARP表项对应的主机设备的IP地址相同、所在的Super VLAN相同,而所在的Sub VLAN不同、MAC地址
也不相同,由于MAC地址是唯一的,与主机设备是--对应的,不会存在两个主机设备使用
同一个MAC地址的情况,从而说明两个主机设备分配的IP地址相同,也就说明目的IP地址为冲突的IP地址了。
[0051]该方案并不需要再将IP地址冲突检测报文在除主机设备所在的Sub VLAN外的其他Sub VLAN内转发,而是根据预先建立的ARP缓存表就可以进行IP地址是否冲突的判断,从而能够很好的保持网关设备的处理性能,并且节省了很多的网络带宽。
[0052]S23:建立包括IP地址冲突探测报文的目的IP地址、源MAC地址、主机设备所在的Sub VLAN 的 ID 和 Super VLAN 的 ID 的 ARP 表项。
[0053]如果没有查找到第一 ARP表项,那么就在ARP缓存表中建立该ARP表项,对于如图1所示的PCl来说,建立的ARP表项中记录的信息如下:
[0054]
Super VLAN 的 ID |lP 地址 ISub VLAN 的 ID~IMAC 地址
3192.168.1.4 2MAC-PCl
[0055]直接学习IP地址冲突探测报文中的目的IP地址、源MAC地址、主机设备所在的Sub VLAN的ID和Super VLAN的ID,并建立ARP表项,能够减少网关设备在Super VLAN中转发报文的数量,从而提高了网关设备的处理性能,同时也提高了网关设备建立ARP表项的效率。
[0056]较佳的,上述S22中的查找到第一 ARP表项之后,若IP地址冲突检测报文中携带的目的IP地址不是冲突的IP地址,还包括:
[0057]当IP地址冲突探测报文为ARP探测请求报文时,不更新第一 ARP表项;
[0058]当IP地址冲突探测报文为免费ARP请求报文时,将第一 ARP表项中的Sub VLAN的ID替换为主机设备所在的Sub VLAN的ID,以及将第一 ARP表项中的MAC地址替换为IP地址冲突探测报文中携带的源MAC地址。
[0059]上述IP地址冲突检测报文包括两种:ARP探测报文和免费ARP请求报文。
[0060]目前一些主流的操作系统已经采用请求注解(Request For Comments, RFC) 5227标准实现IP地址冲突检测,如WIN7\WIN8操作系统。根据RFC5227标准定义,IPv4地址冲突探测报文为源IP地址为O、源MAC地址为待检测主机设备的MAC、目的IP地址为待检测主机设备的IP地址、目的MAC地址为0的ARP探测请求报文。其中,ARP探测请求报文如图3所示。
[0061]在RFC5227标准出现之前,大多数操作系统采用免费ARP请求报文做IP地址冲突检测。如Windows XP系统、Ubuntu操作系统和一些主流嵌入式网络设备的操作系统等。如图4所示免费ARP请求报文的结构示意图。
[0062]其中,在Super VLANN组网中,不同Sub VLAN的主机设备的IP地址处于同一个网段内,但是不同Sub VLAN之间二层是相互隔离的,不能直接互访。所以IP地址冲突检测报文不能直接在二层上转发。
[0063]当IP地址冲突检测报文为ARP探测请求报文时,不更新第一 ARP表项,因为这个报文本身是做探测用的。
[0064]当IP地址冲突检测报文为免费ARP请求报文时,可以包括两种情况,一种情况是第一 ARP表项中的Sub VLAN的ID与免费ARP请求报文中的SubVLAN的ID相同、而免费ARP请求报文中携带的源MAC地址与第一 ARP表项中的MAC地址不同,这可能是由于更换了主机设备引起MAC地址改变导致的,所以直接将第一 ARP表项中的MAC地址替换为免费ARP请求报文中携带的源MAC地址即可;另一种情况是第一 ARP表项中的Sub VLAN的ID与免费ARP请求报文中的Sub VLAN的ID不同、而免费ARP请求报文中携带的源MAC地址与第一 ARP表项中的MAC地址相同,这可能是因为主机设备在Sub VLAN之间发生了迁移,所以直接将第一 ARP表项中的Sub VLAN的ID替换为免费ARP请求报文中携带的Sub VLAN的ID即可。
[0065]网关设备在检测到主机设备的目的IP地址为冲突的IP地址后,通过主机设备所在的Sub VLAN通知主机设备,具体可以是向主机设备所在的Sub VLAN发送IP地址冲突检测应答报文,源IP为主机设备的IP地址、源MAC地址地址为网关设备的MAC地址、目的IP地址为O、目的MAC地址为主机主机设备的MAC地址。IP地址冲突检测应答报文可以是ARP探测应答报文或者免费ARP应答报文。
[0066]较佳的,上述通知主机设备之后,还包括:
[0067]向主机设备发送单播ARP请求报文;[0068]若未接收到主机设备回复的ARP响应报文,删除第一 ARP表项。
[0069]可以定时向主机设备发送单播ARP请求报文,如果收到ARP响应报文,则说明主机设备还存在,第一 ARP表项不删除;如果没有收到ARP响应报文,则删除第一 ARP表项。
[0070]较佳的,上述IP地址冲突检测方法,还包括:
[0071]接收到主机设备发送的普通ARP请求报文,在ARP缓存表中查找普通ARP请求报文中携带的目的IP地址和主机设备所在的Super VLAN的ID对应的第二 ARP表项;
[0072]若查找到第二 ARP表项,将第二 ARP表项中的子Sub VLAN的ID替换为主机设备所在的Sub VLAN的ID,以及将第二 ARP表项中的MAC地址替换为普通ARP请求报文中携带的源MAC地址;
[0073]若未查找到第二 ARP表项,建立包括普通ARP请求报文的目的IP地址、源MAC地址、主机设备所在的Sub VLAN的ID和Super VLAN的ID的ARP表项。
[0074]如图1所示的组网结构中,假设Sub VLAN2中的PCl要与PC2通信,PCl发现PC2与自己处于同一网段,则直接发出普通ARP请求报文,那么Super VLAN中的网关设备收到该普通ARP请求报文后,根据普通ARP请求报文的目的IP和Super VLAN的ID查询ARP缓存表,如果存在第二 ARP表项,则直接更新表项信息,如果不存在第二 ARP表项,则建立第二ARP表项。
[0075]下面以一个优选的实施例来说明上述IP地址冲突检测方法,组网结构如图5所示,以PCl和PC4的IPv4地址冲突为例进行说明,假设PCl先起机。
[0076]PCl起机发出IP地址冲突检测报文,可以是ARP探测请求报文或者免费ARP请求报文。`
`[0077]Super VLAN2中的网关设备A从Sub VLANlO接收到IP地址冲突检测报文,根据报文的目的IP、Super VLAN ID2查找ARP缓存表,若查找不到,新建ARP表项,表项信息如下:
[0078]
【权利要求】
1.一种互联网协议IP地址冲突检测方法,其特征在于,包括: 接收到主机设备发送的IP地址冲突探测报文后,在预先建立的地址解析协议ARP缓存表中查找所述IP地址冲突检测报文中携带的目的IP地址和所述主机设备所在的超级虚拟局域网Super VLAN的标识ID对应的第一 ARP表项,所述IP地址冲突探测报文的目的IP地址为所述主机设备的IP地址; 若查找到所述第一 ARP表项,在确定所述第一 ARP表项中的子Sub VLAN的ID与所述主机设备所在的Sub VLAN的ID不同、且所述第一 ARP表项中的介质访问控制MAC地址与所述IP地址冲突探测报文中携带的源MAC地址也不同后,确定所述IP地址冲突检测报文中携带的目的IP地址为冲突的IP地址,并通知所述主机设备。
2.如权利要求1所述的方法,其特征在于,查找到所述第一ARP表项之后,若所述IP地址冲突检测报文中携带的目的IP地址不是冲突的IP地址,还包括: 当所述IP地址冲突探测报文为ARP探测请求报文时,不更新所述第一 ARP表项; 当所述IP地址冲突探测报文为免费ARP请求报文时,将所述第一 ARP表项中的SubVLAN的ID替换为所述主机设备所在的Sub VLAN的ID,以及将所述第一 ARP表项中的MAC地址替换为所述IP地址冲突探测报文中携带的源MAC地址。
3.如权利要求1所述的方法,其特征在于,还包括: 若未查找到所述第一 ARP表项,建立包括所述IP地址冲突探测报文的目的IP地址、源MAC地址、所述主机设备所在的Sub VLAN的ID和Super VLAN的ID的ARP表项。
4.如权利要求1-3任一所述的方法,其特征在于,通知所述主机设备之后,还包括: 向所述主机设备发送单播ARP请求报文; 若未接收到所述主机设备回复的ARP响应报文,删除所述第一 ARP表项。
5.如权利要求1所述的方法,其特征在于,还包括: 接收到所述主机设备发送的普通ARP请求报文,在所述ARP缓存表中查找所述普通ARP请求报文中携带的目的IP地址和所述主机设备所在的Super VLAN的ID对应的第二 ARP表项; 若查找到所述第二 ARP表项,将所述第二 ARP表项中的子Sub VLAN的ID替换为所述主机设备所在的Sub VLAN的ID,以及将所述第二 ARP表项中的MAC地址替换为所述普通ARP请求报文中携带的源MAC地址; 若未查找到所述第二 ARP表项,建立包括所述普通ARP请求报文的目的IP地址、源MAC地址、所述主机设备所在的Sub VLAN的ID和Super VLAN的ID的ARP表项。
6.一种互联网协议IP地址冲突检测装置,其特征在于,包括: 查找单元,用于接收到主机设备发送的IP地址冲突探测报文后,在预先建立的地址解析协议ARP缓存表中查找所述IP地址冲突检测报文中携带的目的IP地址和所述主机设备所在的超级虚拟局域网Super VLAN的标识ID对应的第一 ARP表项,所述IP地址冲突探测报文的目的IP地址为所述主机设备的IP地址; 检测单元,用于若所述查找单元查找到所述第一 ARP表项,在确定所述第一 ARP表项中的子Sub VLAN的ID与所述主机设备所在的Sub VLAN的ID不同、且所述第一 ARP表项中的介质访问控制MAC地址与所述IP地址冲突探测报文中携带的源MAC地址也不同后,确定所述IP地址冲突检测报文中携带的目的IP地址为冲突的IP地址,并通知所述主机设备。
7.如权利要求6所述的装置,其特征在于,所述检测单元,还用于:在所述查找单元查找到所述第一 ARP表项之后,若所述IP地址冲突检测报文中携带的目的IP地址不是冲突的IP地址,当所述IP地址冲突探测报文为ARP探测请求报文时,不更新所述第一 ARP表项;当所述IP地址冲突探测报文为免费ARP请求报文时,将所述第一 ARP表项中的Sub VLAN的ID替换为所述主机设备所在的Sub VLAN的ID,以及将所述第一 ARP表项中的MAC地址替换为所述IP地址冲突探测报文中携带的源MAC地址。
8.如权利要求6所述的装置,其特征在于,所述检测单元,还用于: 若所述查找单元未查找到所述第一 ARP表项,建立包括所述IP地址冲突探测报文的目的IP地址、源MAC地址、所述主机设备所在的Sub VLAN的ID和Super VLAN的ID的ARP表项。
9.如权利要求6-8任一所述的装置,其特征在于,所述检测单元,还用于: 在通知所述主机设备之后,向所述主机设备发送单播ARP请求报文; 若未接收到所述主机设备回复的ARP响应报文,删除所述第一 ARP表项。
10.如权利要求6所述的装置,其特征在于,所述查找单元,还用于接收到所述主机设备发送的普通ARP请求报文,在所述ARP缓存表中查找所述普通ARP请求报文中携带的目的IP地址和所述主机设 备所在的Super VLAN的ID对应的第二 ARP表项; 所述检测单元,还用于: 若所述查找单元查找到所述第二 ARP表项,将所述第二 ARP表项中的子Sub VLAN的ID替换为所述主机设备所在的Sub VLAN的ID,以及将所述第二 ARP表项中的MAC地址替换为所述普通ARP请求报文中携带的源MAC地址; 若所述查找单元未查找到所述第二 ARP表项,建立包括所述普通ARP请求报文的目的IP地址、源MAC地址、所述主机设备所在的Sub VLAN的ID和Super VLAN的ID的ARP表项。
11.一种网关设备,其特征在于,包括如权利要求6-10任一所述的互联网协议IP地址冲突检测装置。
【文档编号】H04L29/12GK103501355SQ201310397576
【公开日】2014年1月8日 申请日期:2013年9月4日 优先权日:2013年9月4日
【发明者】杨建阳 申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1