一种三层网络转发设备及其实现方法

文档序号:7863257阅读:131来源:国知局
专利名称:一种三层网络转发设备及其实现方法
技术领域
本发明涉及一种网络路由转发设备,尤其涉及一种三层网络转发设备及其实现方法。
背景技术
目前主流的交换芯片解决方案在涉及三层主机路由过程中,会根据IP报文的目的IP找到下一跳,更换了二层包头后,需要上层软件指定出端口。这种流程上的缺陷在一般情况下不会引发问题,但是一旦在终端主机的在设备上的物理端口发生迁移时,该终端的路由转发就会中断,因为交换芯片中的路由表项不会发生变化,经过替换二层包头后的报文任然会从原来的端口出去。
一些采用了该方案来实现三层功能的公司处理该缺陷的方法是,在操作系统协议栈arp高速缓存表中添加一个port字段,用来记录生成该arp表项的arp包来自交换芯片的哪个物理端口,这样即便终端的物理位置发生了变化,协议栈马上就能根据port字段的改变得知,然后可以通知应用程序重新下发配置,把该终端的物理位置更新。该方法的一个巨大问题是极大的增加了系统的耦合度,根据ISO网络分层原理,arp表项位于网络层,而物理端口属于链路层,现在把物理端口字段置于arp表项中,实际上把链路层的配置和网络层耦合在了一起,其耦合度所带来的问题表现如下
I、会记录除网关所代理网段之外arp信息所对应的port数据信息,而事实上并非所有的arp表项都需要记录port,造成了资源利用上的浪费。2、如果操作系统不允许更改协议栈,将会使得该方案无法实施,造成产品的无法兼容使用。3、不利于软件的剪裁,当系统不需要三层方案时,必须又要改动协议栈,造成使用中的不便。

发明内容
针对现有技术所存在的缺陷,现提供一种旨在解决上述问题的三层网络转发设备及其实现方法的技术方案,具体技术方案如下
一种三层网络转发设备,包括驱动收包模块、系统协议栈模块、路由配置模块,所述系统协议栈模块包括arp子模块,所述驱动收包模块与所述系统协议栈模块连接,其中,还包括地址解析逻辑模块,所述地址解析逻辑模块分别与所述驱动收包模块、系统协议栈模块和路由配置模块连接;所述地址解析逻辑模块中设有mac地址学习表存储空间,所述mac地址学习表存储空间通过所述驱动收包模块和系统协议栈模块,获得所述arp包信息和与所述arp包信息对应的转发端口信息;所述mac地址学习表存储空间包括IP数据存储空间、mac地址数据存储空间、转发端口数据存储空间。上述的三层网络转发设备,其中,所述mac地址学习表存储空间记录所述三层网络转发设备的路由网关所代理网段内的arp包信息及与所述arp包对应的转发端口信息。
上述的三层网络转发设备,其中,所述mac地址学习表存储空间还包括虚拟局域网数据存储空间。上述的三层网络转发设备,其中,所述地址解析逻辑中的mac地址学习表存储空间与所述arp子模块同步老化。一种三层网络转发的实现方法,其中,包括上述的三层网络转发设备,具体包括如下步骤
步骤I、所述三层网络转发设备通过所述驱动收包模块接收到arp包;
步骤2、所述地址解析逻辑模块调用arp子模块解析所述arp包中的IP地址是否在所述三层网络转发设备的路由网关所代理的网段中;如果不是,则所述地址解析逻辑模块将所述arp包发送到系统协议栈模块,如果是,则进入步骤3 ;
步骤3、所述地址解析逻辑模块将经所述arp子模块解析的arp包各字段填入所述mac地址学习表存储空间中,同时所述地址解析逻辑模块从驱动收包模块中获得与所述arp包对应的转发端口信息,写入所述mac地址学习表存储空间中,并发送到协议栈模块;
步骤4、所述地址解析逻辑模块将所述mac地址学习表存储空间中的数据信息传送给所述路由配置信息,由所述路由配置模块对路由转发进行设置,所述三层网络转发设备根据路由配置模块的设置进行数据的转发。上述的三层网络转发的实现方法,其中,所述步骤3还包括步骤3. I、当所述arp包中的mac信息已存在于所述mac地址学习表存储空间中的mac地址数据存储空间中,且所述arp包对应的转发端口信息与所述mac信息在mac地址学习表存储空间中的转发端口数据存储空间里所对应的转发端口数据不一致时,所述地址解析逻辑模块将新数据信息覆盖原数据信息;步骤3. 2、所述地址解析逻辑模块将新据信息通知所述路由配置模块,由所述路由配置模块重新下发相应的主机路由条目。上述技术方案的有益效果是
本技术方案通过设立一个独立的模块保证了终端主机的在设备上的物理端口发生迁移后,设备能够根据变化后的端口信息选择正确的转发端口,同时不用更改内核协议栈,并且具有可裁剪行,大大节省了资源,减小了模块之间耦合度,利于软件剪裁和重用。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I为本发明一种三层网络转发设备的实施例的结构示意 图2为本发明一种三层网络转发方法的实施例的流程示意图。
具体实施例方式下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。如图I所示为本发明一种三层网络转发设备的实施例的结构示意图,包括驱动收包模块、系统协议栈模块、路由配置模块,系统协议栈模块包括arp子模块,驱动收包模块与arp子模块连接,还包括地址解析逻辑模块,地址解析逻辑模块分别与驱动收包模块、arp子模块和路由配置模块连接。通过使用一个新的可裁剪的的独立模块地址解析逻辑模块,可以对收集到的arp包中arp信息进行有效地记录,同时可以通过交换芯片驱动中的驱动收包模块获得该arp包所对应的转发端口信息,当主机路由终端的物理端口发生变化时,能够及时获得端口变化的相关信息,从而覆盖原来记录的数据信息,并将该更新信息通过通知的形式告知路由配置模块,由路由配置模块对此作出重新配置,更新该终端的物理端口,保证了路由转发的正确性。通过采用本技术方案,能够根据下一跳地址进行二层交换识别出端口,即使终端主机的在设备上的物理端口发生迁移后,设备能够根据变化后的端口信息选择正确的转发端口。同时,由于采用的是独立的模块,因此可以在不更改协议栈的情况下,实现上述功能,大大降低了资源的消耗和模块之间的耦合度,而且避免了由于无法更改协议栈而出现产品不兼容的情况。在本发明一种三层网络转发设备的具体实施例中,mac地址学习表存储空间记录三层网络转发设备的路由网关所代理网段内的arp包信息及与arp包对应的转发端口信息,而不是记录所有接收到的arp包中的信息和其对应的转发端口信息,因此能够对资源 起到合理优化的作用,有效减少了资源的浪费。在本发明一种三层网络转发设备的具体实施例中,地址解析逻辑模块中的mac地址学习表存储空间与arp子模块同步老化,实现了 arp模块和地址解析逻辑模块的同步性,防止由于二者不一致,而可能导致路由信息记录冲突情况的发生。地址解析逻辑模块中设有mac地址学习表存储空间,mac地址学习表存储空间通过驱动收包模块和arp子模块,获得arp包信息和与arp包信息对应的转发端口信息。mac地址学习表存储空间包括IP数据存储空间、mac地址数据存储空间、转发端口数据存储空间。根据实际的应用情况,还可在mac地址学习表存储空间中加入vlan (虚拟局域网)数据存储空间,以进一步扩展地址解析逻辑模块的功能和应用范围。如图2所示,为本发明一种三层网络转发的实现方法,包括上述的三层网络转发设备,其具体包括如下步骤
步骤I、三层网络转发设备通过驱动收包模块接收到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地址学习表存储空间中的新数据信息发送给路由配置模块,由路由配置模块对路由转发进行设置,三层网络转发设备根据路由配置模块的设置进行数据的转发。该模块可以单独灵活执行,不依赖于具体的操作系统和协议栈版本。如果其他的交换方案有同样的缺陷,也能够解决,在所有支持三层主机路由并采用博通的方案的系统上都可以使用,并且可以无缝推广到其他的同类产品上,具有广阔的应用前景。以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范 围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
权利要求
1.一种三层网络转发设备,包括驱动收包模块、系统协议栈模块、路由配置模块,所述系统协议栈模块包括arp子模块,所述驱动收包模块与所述arp子模块连接,其特征在于, 还包括地址解析逻辑模块,所述地址解析逻辑模块分别与所述驱动收包模块、所述系统协议栈模块和所述路由配置模块连接; 所述地址解析逻辑模块中设有mac地址学习表存储空间,所述mac地址学习表存储空间通过所述驱动收包模块和系统协议栈模块,获得所述arp包信息和与所述arp包信息对应的转发端口信息; 所述mac地址学习表存储空间包括IP数据存储空间IP数据存储空间、mac地址数据存储空间、转发端口数据存储空间。
2.如权利要求I所述的三层网络转发设备,其特征在于,所述mac地址学习表存储空间记录所述三层网络转发设备的路由网关所代理网段内的arp包信息及与所述arp包对应的转发端口信息。
3.如权利要求I所述的三层网络转发设备,其特征在于,所述mac地址学习表存储空间还包括vlan数据存储空间。
4.如权利要求I所述的三层网络转发设备,其特征在于,所述地址解析逻辑模块中的mac地址学习表存储空间与所述arp子模块同步老化。
5.一种三层网络转发的实现方法,其特征在于,包括如权利要求I 4所述的三层网络转发设备,具体包括如下步骤 步骤I、所述三层网络转发设备通过所述驱动收包模块接收到arp包; 步骤2、所述地址解析逻辑模块调用arp子模块解析所述arp包中的IP地址是否在所述三层网络转发设备的路由网关所代理的网段中;如果不是,则所述地址解析逻辑模块将所述arp包发送到系统协议栈模块,如果是,则进入步骤3 ; 步骤3、所述地址解析逻辑模块将经所述arp子模块解析的arp包各字段填入所述mac地址学习表存储空间中,同时所述地址解析逻辑模块从驱动收包模块中获得与所述arp包对应的转发端口信息,写入所述mac地址学习表存储空间中,并发送到系统协议栈模块; 步骤4、所述地址解析逻辑模块将所述mac地址学习表存储空间中的数据信息传送给所述路由配置信息,由所述路由配置模块对路由转发进行设置,所述三层网络转发设备根据路由配置模块的设置进行数据的转发。
6.如权利要求5所述的三层网络转发的实现方法,其特征在于,所述步骤3还包括步骤3. I、当所述arp包中的mac信息已存在于所述mac地址学习表存储空间中的mac地址数据存储空间中,且所述arp包对应的转发端口信息与所述mac信息在mac地址学习表存储空间中对应的转发端口数据不一致时,所述地址解析逻辑模块将新数据信息覆盖原数据信息; 步骤3. 2、所述地址解析逻辑模块将新据信息通知所述路由配置模块,由所述路由配置模块重新下发相应的主机路由条目。
全文摘要
本发明属于一种网络路由转发设备,尤其涉及一种三层网络转发设备及其实现方法,包括驱动收包模块、系统协议栈模块、路由配置模块,系统协议栈模块包括arp子模块,驱动收包模块与系统协议栈模块连接,还包括地址解析逻辑模块,地址解析逻辑模块分别与驱动收包模块、系统协议栈模块和路由配置模块连接;地址解析逻辑模块中设有mac地址学习表存储空间,mac地址学习表存储空间通过驱动收包模块和系统协议栈模块,获得arp包信息和与arp包信息对应的转发端口信息。本技术方案的有益效果是通过设立一个独立的模块保证了转发端口的正确,同时解决了目前的技术方案中存在的资源浪费,模块之间的耦合度大等问题。
文档编号H04L12/741GK102868622SQ20121039956
公开日2013年1月9日 申请日期2012年10月19日 优先权日2012年10月19日
发明者吴晓宇, 刘启林, 陈曦 申请人:上海斐讯数据通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1