CN102868622A - 一种三层网络转发设备及其实现方法 - Google Patents
一种三层网络转发设备及其实现方法 Download PDFInfo
- Publication number
- CN102868622A CN102868622A CN2012103995667A CN201210399566A CN102868622A CN 102868622 A CN102868622 A CN 102868622A CN 2012103995667 A CN2012103995667 A CN 2012103995667A CN 201210399566 A CN201210399566 A CN 201210399566A CN 102868622 A CN102868622 A CN 102868622A
- Authority
- CN
- China
- Prior art keywords
- module
- arp
- memory space
- layer network
- mac address
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于一种网络路由转发设备,尤其涉及一种三层网络转发设备及其实现方法,包括驱动收包模块、***协议栈模块、路由配置模块,***协议栈模块包括arp子模块,驱动收包模块与***协议栈模块连接,还包括地址解析逻辑模块,地址解析逻辑模块分别与驱动收包模块、***协议栈模块和路由配置模块连接;地址解析逻辑模块中设有mac地址学习表存储空间,mac地址学习表存储空间通过驱动收包模块和***协议栈模块,获得arp包信息和与arp包信息对应的转发端口信息。本技术方案的有益效果是:通过设立一个独立的模块保证了转发端口的正确,同时解决了目前的技术方案中存在的资源浪费,模块之间的耦合度大等问题。
Description
技术领域
本发明涉及一种网络路由转发设备,尤其涉及一种三层网络转发设备及其实现方法。
背景技术
目前主流的交换芯片解决方案在涉及三层主机路由过程中,会根据IP报文的目的IP找到下一跳,更换了二层包头后,需要上层软件指定出端口。这种流程上的缺陷在一般情况下不会引发问题,但是一旦在终端主机的在设备上的物理端口发生迁移时,该终端的路由转发就会中断,因为交换芯片中的路由表项不会发生变化,经过替换二层包头后的报文任然会从原来的端口出去。
一些采用了该方案来实现三层功能的公司处理该缺陷的方法是,在操作***协议栈arp高速缓存表中添加一个port字段,用来记录生成该arp表项的arp包来自交换芯片的哪个物理端口,这样即便终端的物理位置发生了变化,协议栈马上就能根据port字段的改变得知,然后可以通知应用程序重新下发配置,把该终端的物理位置更新。
该方法的一个巨大问题是极大的增加了***的耦合度,根据ISO网络分层原理,arp表项位于网络层,而物理端口属于链路层,现在把物理端口字段置于arp表项中,实际上把链路层的配置和网络层耦合在了一起,其耦合度所带来的问题表现如下:
1、会记录除网关所代理网段之外arp信息所对应的port数据信息,而事实上并非所有的arp表项都需要记录port,造成了资源利用上的浪费。
2、如果操作***不允许更改协议栈,将会使得该方案无法实施,造成产品的无法兼容使用。
3、不利于软件的剪裁,当***不需要三层方案时,必须又要改动协议栈,造成使用中的不便。
发明内容
针对现有技术所存在的缺陷,现提供一种旨在解决上述问题的三层网络转发设备及其实现方法的技术方案,具体技术方案如下:
一种三层网络转发设备,包括驱动收包模块、***协议栈模块、路由配置模块,所述***协议栈模块包括arp子模块,所述驱动收包模块与所述***协议栈模块连接,其中,还包括地址解析逻辑模块,所述地址解析逻辑模块分别与所述驱动收包模块、***协议栈模块和路由配置模块连接;所述地址解析逻辑模块中设有mac地址学习表存储空间,所述mac地址学习表存储空间通过所述驱动收包模块和***协议栈模块,获得所述arp包信息和与所述arp包信息对应的转发端口信息;所述mac地址学习表存储空间包括IP数据存储空间、mac地址数据存储空间、转发端口数据存储空间。
上述的三层网络转发设备,其中,所述mac地址学习表存储空间记录所述三层网络转发设备的路由网关所代理网段内的arp包信息及与所述arp包对应的转发端口信息。
上述的三层网络转发设备,其中,所述mac地址学习表存储空间还包括虚拟局域网数据存储空间。
上述的三层网络转发设备,其中,所述地址解析逻辑中的mac地址学习表存储空间与所述arp子模块同步老化。
一种三层网络转发的实现方法,其中,包括上述的三层网络转发设备,具体包括如下步骤:
步骤1、所述三层网络转发设备通过所述驱动收包模块接收到arp包;
步骤2、所述地址解析逻辑模块调用arp子模块解析所述arp包中的IP地址是否在所述三层网络转发设备的路由网关所代理的网段中;如果不是,则所述地址解析逻辑模块将所述arp包发送到***协议栈模块,如果是,则进入步骤3;
步骤3、所述地址解析逻辑模块将经所述arp子模块解析的arp包各字段填入所述mac地址学习表存储空间中,同时所述地址解析逻辑模块从驱动收包模块中获得与所述arp包对应的转发端口信息,写入所述mac地址学习表存储空间中,并发送到协议栈模块;
步骤4、所述地址解析逻辑模块将所述mac地址学习表存储空间中的数据信息传送给所述路由配置信息,由所述路由配置模块对路由转发进行设置,所述三层网络转发设备根据路由配置模块的设置进行数据的转发。
上述的三层网络转发的实现方法,其中,所述步骤3还包括步骤3.1、当所述arp包中的mac信息已存在于所述mac地址学习表存储空间中的mac地址数据存储空间中,且所述arp包对应的转发端口信息与所述mac信息在mac地址学习表存储空间中的转发端口数据存储空间里所对应的转发端口数据不一致时,所述地址解析逻辑模块将新数据信息覆盖原数据信息;步骤3.2、所述地址解析逻辑模块将新据信息通知所述路由配置模块,由所述路由配置模块重新下发相应的主机路由条目。
上述技术方案的有益效果是:
本技术方案通过设立一个独立的模块保证了终端主机的在设备上的物理端口发生迁移后,设备能够根据变化后的端口信息选择正确的转发端口,同时不用更改内核协议栈,并且具有可裁剪行,大大节省了资源,减小了模块之间耦合度,利于软件剪裁和重用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种三层网络转发设备的实施例的结构示意图;
图2为本发明一种三层网络转发方法的实施例的流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
如图1所示为本发明一种三层网络转发设备的实施例的结构示意图,包括驱动收包模块、***协议栈模块、路由配置模块,***协议栈模块包括arp子模块,驱动收包模块与arp子模块连接,还包括地址解析逻辑模块,地址解析逻辑模块分别与驱动收包模块、arp子模块和路由配置模块连接。通过使用一个新的可裁剪的的独立模块地址解析逻辑模块,可以对收集到的arp包中arp信息进行有效地记录,同时可以通过交换芯片驱动中的驱动收包模块获得该arp包所对应的转发端口信息,当主机路由终端的物理端口发生变化时,能够及时获得端口变化的相关信息,从而覆盖原来记录的数据信息,并将该更新信息通过通知的形式告知路由配置模块,由路由配置模块对此作出重新配置,更新该终端的物理端口,保证了路由转发的正确性。
通过采用本技术方案,能够根据下一跳地址进行二层交换识别出端口,即使终端主机的在设备上的物理端口发生迁移后,设备能够根据变化后的端口信息选择正确的转发端口。同时,由于采用的是独立的模块,因此可以在不更改协议栈的情况下,实现上述功能,大大降低了资源的消耗和模块之间的耦合度,而且避免了由于无法更改协议栈而出现产品不兼容的情况。
在本发明一种三层网络转发设备的具体实施例中,mac地址学习表存储空间记录三层网络转发设备的路由网关所代理网段内的arp包信息及与arp包对应的转发端口信息,而不是记录所有接收到的arp包中的信息和其对应的转发端口信息,因此能够对资源起到合理优化的作用,有效减少了资源的浪费。
在本发明一种三层网络转发设备的具体实施例中,地址解析逻辑模块中的mac地址学习表存储空间与arp子模块同步老化,实现了arp模块和地址解析逻辑模块的同步性,防止由于二者不一致,而可能导致路由信息记录冲突情况的发生。
地址解析逻辑模块中设有mac地址学习表存储空间,mac地址学习表存储空间通过驱动收包模块和arp子模块,获得arp包信息和与arp包信息对应的转发端口信息。mac地址学习表存储空间包括IP数据存储空间、mac地址数据存储空间、转发端口数据存储空间。根据实际的应用情况,还可在mac地址学习表存储空间中加入vlan(虚拟局域网)数据存储空间,以进一步扩展地址解析逻辑模块的功能和应用范围。
如图2所示,为本发明一种三层网络转发的实现方法,包括上述的三层网络转发设备,其具体包括如下步骤:
步骤1、三层网络转发设备通过驱动收包模块接收到arp包,并通过地址解析逻辑模块对其进行过滤;
步骤2、地址解析逻辑模块调用arp子模块解析该数据包是否是arp包及arp包中的IP地址是否在三层网络转发设备的路由网关所代理的网段中;如果不在网段中,则地址解析逻辑模块将arp包发送到***协议栈模块,进行后续数据包的惯常操作,如果不在,则进入步骤3;
步骤3、地址解析逻辑模块将经arp子模块解析的arp包各字段填入mac地址学习表存储空间中,同时地址解析逻辑模块从驱动收包模块中获得与arp包对应的转发端口信息,写入mac地址学习表存储空间中,并发送到协议栈模块做后续操作;
步骤4、地址解析逻辑模块将mac地址学习表存储空间中的数据信息传送给路由配置模块,由路由配置模块对路由转发进行设置,三层网络转发设备根据路由配置模块的设置进行数据的转发;
步骤5、当arp包中的mac信息已存在于mac地址学习表存储空间中的mac地址存储空间中,且arp包对应的转发端口信息与mac信息在mac地址学习表存储空间中的转发端口数据存储空间里所对应的转发端口数据不一致时,地址解析逻辑模块将新数据信息覆盖原数据信息;这样就可以及时对发生端口变化的终端主机进行及时的端口数据更新,避免了端口转发的错误;
步骤6、地址解析逻辑模块将mac地址学习表存储空间中的新数据信息发送给路由配置模块,由路由配置模块对路由转发进行设置,三层网络转发设备根据路由配置模块的设置进行数据的转发。
该模块可以单独灵活执行,不依赖于具体的操作***和协议栈版本。如果其他的交换方案有同样的缺陷,也能够解决,在所有支持三层主机路由并采用博通的方案的***上都可以使用,并且可以无缝推广到其他的同类产品上,具有广阔的应用前景。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
Claims (6)
1.一种三层网络转发设备,包括驱动收包模块、***协议栈模块、路由配置模块,所述***协议栈模块包括arp子模块,所述驱动收包模块与所述arp子模块连接,其特征在于,
还包括地址解析逻辑模块,所述地址解析逻辑模块分别与所述驱动收包模块、所述***协议栈模块和所述路由配置模块连接;
所述地址解析逻辑模块中设有mac地址学习表存储空间,所述mac地址学习表存储空间通过所述驱动收包模块和***协议栈模块,获得所述arp包信息和与所述arp包信息对应的转发端口信息;
所述mac地址学习表存储空间包括IP数据存储空间IP数据存储空间、mac地址数据存储空间、转发端口数据存储空间。
2.如权利要求1所述的三层网络转发设备,其特征在于,所述mac地址学习表存储空间记录所述三层网络转发设备的路由网关所代理网段内的arp包信息及与所述arp包对应的转发端口信息。
3.如权利要求1所述的三层网络转发设备,其特征在于,所述mac地址学习表存储空间还包括vlan数据存储空间。
4.如权利要求1所述的三层网络转发设备,其特征在于,所述地址解析逻辑模块中的mac地址学习表存储空间与所述arp子模块同步老化。
5.一种三层网络转发的实现方法,其特征在于,包括如权利要求1~4所述的三层网络转发设备,具体包括如下步骤:
步骤1、所述三层网络转发设备通过所述驱动收包模块接收到arp包;
步骤2、所述地址解析逻辑模块调用arp子模块解析所述arp包中的IP地址是否在所述三层网络转发设备的路由网关所代理的网段中;如果不是,则所述地址解析逻辑模块将所述arp包发送到***协议栈模块,如果是,则进入步骤3;
步骤3、所述地址解析逻辑模块将经所述arp子模块解析的arp包各字段填入所述mac地址学习表存储空间中,同时所述地址解析逻辑模块从驱动收包模块中获得与所述arp包对应的转发端口信息,写入所述mac地址学习表存储空间中,并发送到***协议栈模块;
步骤4、所述地址解析逻辑模块将所述mac地址学习表存储空间中的数据信息传送给所述路由配置信息,由所述路由配置模块对路由转发进行设置,所述三层网络转发设备根据路由配置模块的设置进行数据的转发。
6.如权利要求5所述的三层网络转发的实现方法,其特征在于,所述步骤3还包括步骤3.1、当所述arp包中的mac信息已存在于所述mac地址学习表存储空间中的mac地址数据存储空间中,且所述arp包对应的转发端口信息与所述mac信息在mac地址学习表存储空间中对应的转发端口数据不一致时,所述地址解析逻辑模块将新数据信息覆盖原数据信息;
步骤3.2、所述地址解析逻辑模块将新据信息通知所述路由配置模块,由所述路由配置模块重新下发相应的主机路由条目。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210399566.7A CN102868622B (zh) | 2012-10-19 | 2012-10-19 | 一种三层网络转发设备及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210399566.7A CN102868622B (zh) | 2012-10-19 | 2012-10-19 | 一种三层网络转发设备及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102868622A true CN102868622A (zh) | 2013-01-09 |
CN102868622B CN102868622B (zh) | 2015-09-02 |
Family
ID=47447223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210399566.7A Expired - Fee Related CN102868622B (zh) | 2012-10-19 | 2012-10-19 | 一种三层网络转发设备及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102868622B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104410541A (zh) * | 2014-11-18 | 2015-03-11 | 盛科网络(苏州)有限公司 | Vxlan内层虚拟机流量在中间交换机上进行统计的方法及装置 |
CN105072208A (zh) * | 2015-07-09 | 2015-11-18 | 北京宇航***工程研究所 | 一种sdh设备的mac地址学习方法 |
CN107547286A (zh) * | 2017-09-25 | 2018-01-05 | 新华三技术有限公司 | 地址解析协议arp表的生成方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1764193A (zh) * | 2005-11-23 | 2006-04-26 | 杭州华为三康技术有限公司 | 一种快速更新地址解析协议的方法 |
CN101127709A (zh) * | 2007-09-26 | 2008-02-20 | 杭州华三通信技术有限公司 | 一种更新地址解析协议表中端口地址的方法和设备 |
US20080240100A1 (en) * | 2007-04-01 | 2008-10-02 | Cisco Technology, Inc. | Layer three satellite functionality in a data network |
JP2008252192A (ja) * | 2007-03-29 | 2008-10-16 | Fujitsu Ltd | フレーム中継装置および通信ネットワークシステム |
-
2012
- 2012-10-19 CN CN201210399566.7A patent/CN102868622B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1764193A (zh) * | 2005-11-23 | 2006-04-26 | 杭州华为三康技术有限公司 | 一种快速更新地址解析协议的方法 |
JP2008252192A (ja) * | 2007-03-29 | 2008-10-16 | Fujitsu Ltd | フレーム中継装置および通信ネットワークシステム |
US20080240100A1 (en) * | 2007-04-01 | 2008-10-02 | Cisco Technology, Inc. | Layer three satellite functionality in a data network |
CN101127709A (zh) * | 2007-09-26 | 2008-02-20 | 杭州华三通信技术有限公司 | 一种更新地址解析协议表中端口地址的方法和设备 |
Non-Patent Citations (1)
Title |
---|
张峰: "TD-SCDM RNC***中三层交换的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104410541A (zh) * | 2014-11-18 | 2015-03-11 | 盛科网络(苏州)有限公司 | Vxlan内层虚拟机流量在中间交换机上进行统计的方法及装置 |
CN104410541B (zh) * | 2014-11-18 | 2017-09-15 | 盛科网络(苏州)有限公司 | Vxlan内层虚拟机流量在中间交换机上进行统计的方法及装置 |
CN105072208A (zh) * | 2015-07-09 | 2015-11-18 | 北京宇航***工程研究所 | 一种sdh设备的mac地址学习方法 |
CN107547286A (zh) * | 2017-09-25 | 2018-01-05 | 新华三技术有限公司 | 地址解析协议arp表的生成方法及装置 |
CN107547286B (zh) * | 2017-09-25 | 2020-10-09 | 新华三技术有限公司 | 地址解析协议arp表的生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102868622B (zh) | 2015-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102413046B (zh) | 借助虚拟路由器冗余协议备份组转发流量的方法及设备 | |
CN102148749B (zh) | 一种交换机端口扩展的方法及装置 | |
CN101924699B (zh) | 报文转发处理方法、***和运营商边缘设备 | |
CN102137024B (zh) | 报文处理方法、出口路由设备及边界路由设备 | |
CN102801715A (zh) | 一种网络中虚拟机迁移的方法、网关及*** | |
CN106034077A (zh) | 一种动态路由配置方法、装置及*** | |
CN105790996A (zh) | 分布式网关备份处理方法及网络设备 | |
CN102143229A (zh) | 一种终端批量升级的方法及*** | |
CN102209064B (zh) | 使用vrrp为接入设备提供备份的方法和vrrp网关设备 | |
CN111277423B (zh) | 数据中心流量互通方法、装置、设备及存储介质 | |
CN103259726A (zh) | 存储和发送mac地址表项的方法、设备及*** | |
CN102143063B (zh) | 集群***中业务保护的方法和装置 | |
CN105340224A (zh) | 网络控制方法和装置 | |
CN102984014A (zh) | 数据发送方法及网络*** | |
US20230089240A1 (en) | Data forwarding method and apparatus, device, and storage medium | |
CN103002065A (zh) | 一种主用设备与备用设备共用ip地址的方法和装置 | |
USRE46770E1 (en) | Computer managing method | |
CN103931144A (zh) | 一种在虚拟域中通信的方法、设备和*** | |
US20160205033A1 (en) | Pool element status information synchronization method, pool register, and pool element | |
CN102868622A (zh) | 一种三层网络转发设备及其实现方法 | |
CN102959906A (zh) | 多归属站点内主机的路由选择方法和装置 | |
CN106850268B (zh) | 一种线性保护倒换的实现装置及方法 | |
CN105245447A (zh) | 数据中心ToR上支持ECMP的芯片实现装置及方法 | |
CN106921551A (zh) | 虚拟通信方法、***及设备 | |
CN104243304A (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 | ||
PP01 | Preservation of patent right | ||
PP01 | Preservation of patent right |
Effective date of registration: 20180313 Granted publication date: 20150902 |
|
PD01 | Discharge of preservation of patent | ||
PD01 | Discharge of preservation of patent |
Date of cancellation: 20210313 Granted publication date: 20150902 |
|
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: 20150902 Termination date: 20181019 |