CN100379236C - 地址解析协议表项的处理方法 - Google Patents

地址解析协议表项的处理方法 Download PDF

Info

Publication number
CN100379236C
CN100379236C CNB03119348XA CN03119348A CN100379236C CN 100379236 C CN100379236 C CN 100379236C CN B03119348X A CNB03119348X A CN B03119348XA CN 03119348 A CN03119348 A CN 03119348A CN 100379236 C CN100379236 C CN 100379236C
Authority
CN
China
Prior art keywords
vpn
hash
list item
arp
arp list
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.)
Expired - Fee Related
Application number
CNB03119348XA
Other languages
English (en)
Other versions
CN1531298A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB03119348XA priority Critical patent/CN100379236C/zh
Publication of CN1531298A publication Critical patent/CN1531298A/zh
Application granted granted Critical
Publication of CN100379236C publication Critical patent/CN100379236C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

本发明提供了一种ARP表项的处理方法,包括:根据VPN的特定参数区分不同VPN的ARP表项的HASH数组;比较IP地址以查询HASH数组中的ARP表项。根据本发明的一种实施方案,上述步骤(1)包括:将VPN的ARP表项中的IP地址加上VPN特定的参数;对IP地址与所述参数相加的结果进行HASH处理,得到经HASH处理后的ARP表项的HASH数组。这样,当通信系统当查询ARP表项时,只需比较其IP地址即可。从而使得ARP能够支持VPN,并且实现ARP的快速查表。

Description

地址解析协议表项的处理方法
技术领域
本发明涉及TCP/IP(传输控制协议/网际协议),具体地说,涉及ARP(地址解析协议)表项的处理方法,以使ARP支持并解决VPN(虚拟专用网)中的多实例问题。
背景技术
网络通信技术的飞速发展使网络在现代社会中的应用越来越普及。为了保证在公共网络上传输数据的安全性,VPN技术正在越来越广泛地被使用。VPN要将通过公共网络传输的数据进行加密,因此对于VPN来说,公共网络就如同是使用租用线路的专用网络。然而,并非所有的通信系统都支持VPN。对于不支持VPN的系统,任何一个IP地址都必须是唯一的,从而可以通过IP地址唯一索引到一个ARP表项。
在实际的通信系统中,IP地址是作为互联网的逻辑地址,因此IP地址与实际网络的固有地址之间必须有对应关系。ARP的主要目的就是实现地址解析,即形成MAC(媒体访问控制)地址与IP地址的对应关系。在路由器、三层交换机等产品中,ARP表项里还包含出端口、出接口等信息。在不支持VPN的系统中,由于IP地址的唯一性,故而不存在多实例的问题。但是对于支持VPN的系统,不同的VPN中会存在IP地址相同的ARP表项,因此根据IP地址就不能唯一地索引到一个ARP表项,从而产生了需要通信系统支持多实例的问题。
在这种情况下,要想索引到VPN中的目标ARP表项,就需要区分开各个VPN。为此可以采取分别将各个不同VPN的ARP表项中的IP地址IPAddr加上偏移量X的方法。换言之,通过IPAddr+X来索引各VPN的ARP表项。X可根据各个通信系统实现方案的特点而有不同的选择。
在以往不支持VPN的系统中,通过IP地址索引ARP表项的一般方法是,通过对IP地址进行HASH(散列算法)的处理,将ARP表项组织起来,构成HASH表(哈希表,或HASH数组)。在查找ARP表项时,根据IP地址进行HASH处理,得到HASH数组的下标。然后再遍历冲突链。冲突链是指HASH值相同,都放在同一个HASH数组里的不同表项,通常以链表形式组织起来。在遍历过程中,依次对各ARP表项与相关规则进行匹配,以找到所需要的表项。图1显示了表项组织结构的示意图。
但是,对于支持VPN的系统,如果还按照上述现有技术的方法对IP地址进行HASH处理,则不同的VPN中IP地址相同的ARP表项就都挂在一个HASH数组(链)下,冲突链就可能会很长,使查表速度变慢,从而降低系统的运行速度。
发明内容
本发明的目的就是要克服现有技术中的上述问题,使得支持VPN的通信系统能够以与不支持VPN的系统几乎相同的速度来查询ARP表项,以适应VPN体系中的多实例情况,并达到很好地支持VPN体系的目的。
根据本发明,提供了一种ARP表项的处理方法,包括:(1)根据VPN的特定参数将不同VPN的ARP表项分别放入不同的HASH数组;
(2)比较IP地址以查询HASH数组中的ARP表项。
在本发明的一种实施方案中,上述步骤(1)包括:将VPN的ARP表项中的IP地址加上VPN特定的参数;对IP地址与所述参数相加的结果进行HASH处理,得到经HASH处理后的ARP表项的HASH数组。
在本发明的上述方法中,所述的参数例如为VLANid,RdIndex等。根据上述方法,当查询ARP表项时,只需比较其IP地址即可。从而使得支持VPN的系统在查询ARP表项时的速度与以往不支持VPN的系统(非VPN系统)的查询速度几乎一样。因此本发明的方法可以很好地支持VPN体系,并可适应ARP的多实例情况。而且,本发明在使原有的非VPN系统过渡到VPN系统的过程中,仅就ARP协议层而言,对系统的改动很小。
另外,上述步骤(1)之前可以增加这样的步骤:在创建一个VPN时,按照该VPN的索引RdIndex向通信系统中专门负责系统内存管理的模块申请一套ARP HASH数组;通信系统判断内存容量情况,在内存容量允许分配新的所述HASH数组时,向该VPN分配所述HASH数组,将该VPN的ARP表项进行HASH处理后的值放入所分配的HASH数组中;否则执行步骤(1)。这样,如果通信系统的内存很大的时候,各个VPN可以在自己的HASH数组中按常规的方法那样通过对IP地址进行HASH处理而组织自己的ARP表项。这样就不再使用前面所述的将RdIndex或VLANid与IPAddr相加后再进行HASH处理的方法了。在查表时也可以按前文所述的现有技术的方法来进行。
该实施方案可以有效地缩短ARP表项的冲突链长度,使支持VPN的系统可以达到与不支持VPN的系统一样的ARP表项查找速度。从ARP方面解决了通信系统对VPN的支持问题。
附图说明
图1显示了ARP表项组织结构的示意图。
具体实施方式
根据本发明的优选实施方案,为适应在支持VPN的系统中出现多个分属于不同VPN的ARP表项具有相同IP地址的情况,对于现有技术中的ARP表项的散列处理方法进行修改。具体地说,就是将现有技术中的对IP地址IPAddr进行HASH处理改为对IPAddr与VLAN(虚拟局域网)的参数相加后的结果来进行HASH处理。对于同一VLAN,可以选择某一类型的参数与IPAddr相加,只要该参数对于VLAN是特定且唯一的即可。同时,对于不同的多个VLAN,所选择的参数类型应一样。这样,即使是不同VLAN的ARP表项具有相同的IP地址,由于不同的VLAN的ARP表项的HASH值不一样,从而避免了相同IP地址的ARP表项都挂在同一个HASH链下的情况,故而缩短了冲突链的长度。因此,利用本发明的方法,在查询支持VPN系统的ARP表项的情况下,在得到HASH值后再比较ARP表项的各字段信息时,只需要比较IP地址即可,无需再比较其他信息。这与在不支持VPN系统情况下查询ARP表项时的操作基本相同,即只需要查询IP地址即可。这样就可提高查表速度,从而避免了采用现有技术的按照IP地址进行HASH处理时查表速度变慢的问题。
下面以几个优选实施例来更具体地说明本发明,以使本领域的技术人员能够更清楚地理解本发明的技术方案。
实施例1
在该实施例1中,ARP表项组织结构与图1所示的ARP表项的组织结构是一样的。而实施例1与现有技术的不同点即在于各自使用了不同的HASH方法。在本例中,是对IPAddr+VLANid进行HASH处理,以得到HASH值。其中VLANid代表虚拟局域网VLAN的标识符。具体的处理算法例如可为:
((IpAddr>>22)+(IpAddr>>11)+IpAddr+(VLANid<<4))%TableLen;
这样,在用IPAddr+VLANid进行如上式所示那样的HASH处理之后,由于不同的VPN的VLANid是不同的,因此即使不同VLAN的ARP表项具有相同IP地址,其HASH值也将是不一样的。而只有HASH值相同的ARP表项才放在一个HASH数组中。所以不同的VLAN的ARP表项就不会放在相同的数组中。这样就避免了在现有技术中由于只对IP地址进行HASH处理而将不同VLAN中具有相同IP地址的ARP表项都挂在同一个HASH数组(链)下的情况。由此,缩短了冲突链的长度。
在查表时,要得到HASH值后再比较ARP表项的各字段信息。利用本发明上述实施例的方法,由于对于具有相同IP地址的不同VLAN的ARP表项,其HASH值是不一样的,所以不同VLAN的具有相同IP地址的ARP表项不在相同的HASH数组(链)中。这样在查表时只需要象现有技术中那样仅比较IP地址即可,无需再比较其他信息。也就是说,利用该实施例的方法,在查询ARP表项时的操作与现有技术是基本相同的。而且查表速度也与不支持VPN的通信系统中的查表速度几乎一样。
采用上述实施例1的方法,对ARP表项经HASH处理后的HASH数组结构(ARP表项的组织结构)和不支持VPN系统中的几乎一样。这样,在使不支持VPN的通信系统过渡到支持VPN的通信系统时,在ARP方面对系统几乎不需要作什么改动。
目前,分布式结构已成为新一代路由器和交换机的重要特征之一。对于具有分布式结构的路由器和交换机,需要进行微码ARP报文处理。在上层协议处理模块的ARP表项组织方式可以采用上述实施例1所描述的方法,而微码由于考虑到可能采用不同网络处理芯片,所以ARP表项组织方式不必局限于这种方法,但是其key值必须至少包含IPAddr,VLANid两个信息。例如,当采用IBM的处理芯片时,微码中的ARP表项组织就可以采用DT+Patricia Tree的方式,key值为IPAddr+VLANid+端口号。
本领域的技术人员可以理解,使用本发明实施例1的上述方法,ARP协议对ARP报文的接收、上送、下发处理与现有技术的处理方式是相同的。即采用本发明实施例1的方法的通信系统,其ARP对VPN与非VPN的ARP报文的处理方式是一样的,因而ARP无需对是否在通信系统中存在VPN作出判断,也无需对ARP报文作其它特殊的处理。这样,在ARP方面就可以使通信系统很好地支持VPN。
另外,采用本发明的上述实施例1的方法,在通信系统支持的ARP表项数目是确定的情况下,对于支持和不支持VPN的系统来说,其ARP表项的内存开销是一样的。不需要针对不同的VPN再静态申请大量的HASH数组。
实施例2
在该实施例2中,ARP表项组织结构仍与图1所示的ARP表项的组织结构相同。而实施例2与现有技术及上述实施例1的不同点在于,在本例中是对IPAddr+RdIndex进行HASH处理,以得到HASH值。其中RdIndex代表不同VPN的索引。具体的处理算法例如可为:
((IpAddr>>22)+(IpAddr>>11)+IpAddr+(RdIndex<<4))%TableLen;
这样,在用IPAddr+RdIndex进行如上式所示那样的HASH处理之后,由于不同VPN的RdIndex是不同的,所以不同VPN的ARP表项即使具有相同的IP地址,但在HASH处理后所得到的值是不一样的。这样,实施例2就具有与实施例1同样的优点,解决了在现有技术只对IP地址进行HASH处理而造成在支持VPN的通信系统中冲突链过长使查表速度变慢的问题。
同样,采用上述实施例2的方法,对ARP表项经HASH处理后的数组结构和不支持VPN的系统几乎一样。这样,在使不支持VPN的通信系统过渡到支持VPN的通信系统时,对系统几乎不需要作什么改动。
另一方面,对于具有分布式结构的路由器、交换机,如采用本发明的上述实施例的方法,微码里的ARP表项组织方式的具体HASH算法同样可以不限于该实施例的方法。但是其key值必须至少包含IPAddr,RdIndex两个信息。例如,当采用IBM的处理芯片时,微码中的ARP表项组织就可以采用DT+Patricia Tree的方式,key值为IPAddr+RdIndex+端口号。
本领域的技术人员可以理解,使用本发明的上述实施例2的方法,与实施例1的方法一样,ARP协议对ARP报文的接收、上送、下发处理与现有技术的处理方式是相同的。即采用本发明实施例2的方法的通信系统,其ARP也不需要对是否在通信系统中存在VPN作出判断,亦无需作其它特殊的处理。
同样,采用本发明的上述实施例2的方法,在通信系统主机支持的ARP表项数目是确定的情况下,对于支持和不支持VPN的系统来说,其ARP表项的内存开销是一样的。不需要针对不同的VPN再静态申请大量的HASH数组。
根据本发明的另一实施方案,在通信系统中的系统内存很大,可以支持足够的ARP表项数目时,可以采用不同的VPN可以各自维护一套自己的存放ARP表项的ARP HASH数组。这样可以更好地隔离不同VPN中的ARP表项,即避免不同VPN中具有相同IP地址的ARP表项在同一HASH数组中。
具体方法是,在创建一个VPN时,按照该VPN的索引RdIndex向通信系统中专门负责系统内存管理的模块申请一套ARP HASH数组。通信系统判断内存容量情况,在内存容量允许为该VPN分配新的HASH数组时,则向该VPN分配HASH数组。这样就可以对该VPN的ARP表项进行常规的HASH处理,将处理后的值放入所分配的HASH数组中。
根据上述方法,不同的VPN的各自ARP HASH数组的组织结构与没有支持VPN的系统中的ARP HASH数组结构是一致的。这样,各个VPN可以在自己的HASH数组中按常规的方法那样通过对IP地址进行HASH处理而组织自己的ARP表项。这样就不再使用前面所述的将RdIndex或VLANid与IPAddr相加后再进行HASH处理的方法了。在查表时也可以按前文所述的现有技术的方法来进行。
该实施方案可以有效地缩短ARP表项的冲突链长度,使支持VPN的系统可以达到与不支持VPN的系统一样的ARP表项查找速度。从ARP方面解决了通信系统对VPN的支持问题。
上文结合具体的例子对本发明的技术方案进行了解释,目的是为了使本领域技术人员更好地理解本发明的精神实质。因此本发明的具体限定并不限于上述说明中的具体内容。本领域技术人员可以理解,在本发明的精神和实质的基础上可以进行各种修改和等同方式的替换。

Claims (4)

1.一种地址解析协议(ARP)表项的处理方法,其特征在于,包括如下步骤:
(1)根据虚拟专用网(VPN)的特定参数将不同VPN的ARP表项分别放入不同的散列(HASH)数组;
(2)比较互联网协议IP地址以查询HASH数组中的ARP表项;
所述步骤(1)具体包括:
(1-1)将VPN的ARP表项中的IP地址加上所述VPN的特定参数;
(1-2)对IP地址与所述参数相加的结果进行HASH处理,得到经HASH处理后的ARP表项的HASH数组。
2.根据权利要求1所述的方法,其特征在于,所述VPN的特定参数为虚拟局域网的标识符VLANid。
3.根据权利要求1所述的方法,其特征在于,所述VPN的特定参数为VPN索引RdIndex。
4.根据权利要求3所述的方法,其特征在于,所述步骤(1)之前还包括:
根据所述VPN索引RdIndex向通信系统申请用于存放该VPN的ARP表项的HASH数组;
通信系统判断内存容量情况,在内存容量允许分配新的所述HASH数组时,向该VPN分配所述HASH数组,对该VPN的ARP表项进行HASH处理,将处理后的值放入所述分配的HASH数组中;否则,执行步骤(1)。
CNB03119348XA 2003-03-17 2003-03-17 地址解析协议表项的处理方法 Expired - Fee Related CN100379236C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB03119348XA CN100379236C (zh) 2003-03-17 2003-03-17 地址解析协议表项的处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB03119348XA CN100379236C (zh) 2003-03-17 2003-03-17 地址解析协议表项的处理方法

Publications (2)

Publication Number Publication Date
CN1531298A CN1531298A (zh) 2004-09-22
CN100379236C true CN100379236C (zh) 2008-04-02

Family

ID=34285073

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB03119348XA Expired - Fee Related CN100379236C (zh) 2003-03-17 2003-03-17 地址解析协议表项的处理方法

Country Status (1)

Country Link
CN (1) CN100379236C (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526530B2 (en) * 2006-05-05 2009-04-28 Adobe Systems Incorporated System and method for cacheing web files
CN100421427C (zh) * 2006-05-26 2008-09-24 杭州华三通信技术有限公司 维护邻居表项的方法
US7584286B2 (en) * 2006-06-28 2009-09-01 Intel Corporation Flexible and extensible receive side scaling
CN101202746B (zh) * 2006-12-15 2011-04-20 华为技术有限公司 节点标识符生成方法及负载均衡方法及装置
CN101159619B (zh) * 2007-11-20 2010-06-02 杭州华三通信技术有限公司 Arp表项的快速添加方法、装置及交换设备
CN115118662A (zh) * 2022-06-16 2022-09-27 浪潮思科网络科技有限公司 一种基于arp表的哈希冲突处理方法、系统、设备及介质
CN114860785B (zh) * 2022-07-08 2022-09-06 深圳云豹智能有限公司 缓存数据处理系统、方法、计算机设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000278322A (ja) * 1999-03-29 2000-10-06 Nec Corp Ipアドレス動的割り当て装置
US20020178355A1 (en) * 2001-05-24 2002-11-28 International Business Machines Corporation System and method for multiple virtual private network authentication schemes

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000278322A (ja) * 1999-03-29 2000-10-06 Nec Corp Ipアドレス動的割り当て装置
US20020178355A1 (en) * 2001-05-24 2002-11-28 International Business Machines Corporation System and method for multiple virtual private network authentication schemes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
分布式ARP的研究实现. 碰健颖等.计算机应用研究,第5期. 2001 *

Also Published As

Publication number Publication date
CN1531298A (zh) 2004-09-22

Similar Documents

Publication Publication Date Title
CN107733670B (zh) 一种转发策略配置方法和装置
CN101465889B (zh) 网络地址转换设备及其响应地址解析协议请求的方法
US7885276B1 (en) Isolating network traffic in multi-tenant virtualization environments
US7562075B2 (en) Change approvals for computing systems
CN102882758B (zh) 虚拟私云接入网络的方法、网络侧设备和数据中心设备
CN105323173B (zh) 网络规则条目的设置方法及装置
JP3903316B2 (ja) ネットワークエンドデバイスの物理的ロケーションを自動的に識別するシステム
TW200522587A (en) Network device discovery system and method thereof
US11252126B1 (en) Domain name resolution in environment with interconnected virtual private clouds
CN103581022B (zh) Mac地址的查找转发方法和装置
CN104639363A (zh) 用于在虚拟区域网络中管理云端装置的管理伺服器及其管理方法
CN102932496B (zh) 一种管理域名系统信息的方法和系统
CN101237378A (zh) 虚拟局域网的映射方法和设备
CN103441932A (zh) 一种主机路由表项生成方法及设备
US20120185487A1 (en) Method, device and system for publication and acquisition of content
CN101771732A (zh) 报文处理方法、装置和网络设备
CN107147580A (zh) 一种隧道建立的方法及通信系统
CN104168338A (zh) 一种网络地址转换装置和方法
WO2020181735A1 (zh) 一种提供网络地址转换nat服务的方法及控制器
CN109274588A (zh) Ip报文的处理方法及装置
CN100379236C (zh) 地址解析协议表项的处理方法
US8428060B2 (en) Determining the group address for an Ethernet-based multicast communication
JP4251148B2 (ja) グループ内通信方法、システム及び記録媒体
CN102263679A (zh) 一种处理源角色信息的方法和转发芯片
CN107395645B (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080402

Termination date: 20170317