技术领域:
本发明涉及宽带网络通信领域,具体涉及一种数据包转发方法及路由设备。
背景技术:
随着科技的飞速发展,网络应用的使用给我们的生活带来了巨大的变化,伴随着网络数据流量的不断增长。因此,对网络设备高效处理数据也提出了更高的要求。目前具有路由功能的三层交换机和路由器是常见的网络路由设备,而基于硬件转发的路由设备主要由协议控制平面和硬件转发平面两部分组成,如图1所示,即协议控制设备和硬件转发平面。硬件转发设备。其中,协议控制面的路由服务模块主要用于运行各种协议,通过协议包的交互进行路由学习,生成核心软件 路由表,将学习到的core软件路由表项信息发布给硬件转发平面;硬件转发平面由一个或多个交换芯片组成。当网络数据流到达路由设备时,在交换芯片上完成路由查找和线速转发。当三层交换机或路由器收到IP数据包时,如果硬件路由表中存在下一跳的mac地址,则将IP数据包封装成数据帧直接由硬件转发。如果此时硬件路由表中没有下一跳的mac地址,也找不到目的地址对应的硬件mac地址,则硬件路由表项查找失败; IP数据包将被发送到协议控制平面的CPU;以及CPU进入TCP/IP网络协议栈找到核心软件路由表后的消息。当核心软件路由表搜索成功后,TCP/IP网络协议栈会发送ARP请求报文,通过ARP(地址解析协议)协议获取下一跳对应的物理硬件地址;ARP学习后,将对应的下一跳IP地址和获取的物理硬件地址写入ARP缓存;同时,转发模块将激活发送和写入硬件路由表条目。如果收到相同的目的IP数据包,就会查找硬件路由表,直接进行硬件转发。在获取下一跳的物理硬件地址之前,IP数据包需要在CPU上查找核心软件的路由表,消耗协议控制平面的CPU资源。CPU的报文处理效率不高,尤其是大量报文上送CPU时,可能会影响其他协议的正常运行。
发明内容本发明要解决的技术问题是提供一种快速检测路由下一跳mac地址的方法,使得数据转发时不占用CPU资源,节省 CPU 资源。为了解决上述技术问题,本发明设计了一种检测路由下一跳mac地址的方法,包括如下步骤步骤1:路由服务模块中的路由服务模块。路由设备的协议控制设备自动学习或手动配置生成到目的地的路由表项,路由表项包括目的IP地址和下一跳IP地址;步骤2:检查路由条目的活动,如果路由条目是活动的三层网络中mac地址查看软件,然后将路由表项写入核心软件路由表;如果路由表项是非活动的,则需要等待它的活动才能将其写入核心路由表;
步骤3:在路由设备的协议控制设备中配置检测模块,通过检测模块定时发送ARP请求包,检测下一跳IP地址的可达性;步骤4:被请求设备收到ARP请求包后,判断目的地址是自己,向路由设备回复ARP回复包;步骤5:路由设备收到ARP回复包,根据ARP回复包获取下一跳mac地址,并写入ARP缓存如果路由设备没有收到ARP响应包,则检测设备继续发送广播ARP请求包;检测模块同步发送下一跳mac到硬件路由表地址,触发硬件路由表项更新,将目的网络依赖于下一跳的所有硬件路由表项写入硬件路由表中。作为本发明的进一步改进,ARP请求报文为广播报文,目的mac地址为;目的IP地址是下一跳的IP地址。
本发明还提供了一种路由设备,包括协议控制设备和硬件转发设备。协议控制设备设置有检测模块,检测模块自动发送检测消息,检测下一跳IP地址的可达性。从而请求下一跳地址的硬件mac地址,触发硬件转发设备的硬件路由表更新。本发明通过检测模块获取下一跳mac的地址,从而成功查找到待转发IP数据包的目的硬件路由表项,只需要转发IP数据包通过硬件,确保数据以线速转发,大大提高了IP数据包的处理效率;并且不需要占用CPU资源进行处理,节省了CPU资源。
图1为现有路由设备示意图;图2为本发明路由设备的模型示意图;图3为本发明检测路由下一跳mac地址的方法流程图。
具体实施方式下面结合附图和实施例对本发明作进一步说明。如图所示。参见图2,为本发明路由设备的一个实施例。按照逻辑划分,本发明的路由设备包括协议控制平面和硬件转发控制平面,即协议控制设备和硬件转发设备。协议控制设备设有检测模块,主要实现三个功能一、接收路由变化信息。当协议控制平面的core软件路由表项发生变化时,检测模块可以自动接收路由信息。更改信息;二、 自动发送检测包检测下一跳IP地址的可达性,并请求下一跳的mac地址;三、获取下一跳mac地址的<@,触发硬件转发设备的硬件路由表更新。硬件路由表写入下一跳的mac地址,数据包可以硬件线速转发。本发明检测路由下一跳mac地址的方法,如图2所示,包括以下步骤步骤一:首先,路由设备的协议控制装置中的路由服务模块可以自动学习生成通过动态路由协议到目的地的路由表条目,或静态手动配置生成的到目的地址的路由表条目。路由表条目包括目的地的IP地址和到达目的地要经过的下一跳的IP地址,还包括一个包含子网掩码或掩码长度的附加字段。第二步:检查路由表项的活动性,即判断下一跳IP地址是否对应本地链路,本地接口的IP地址是否属于同一个网络。如果路由表项处于活动状态,则将路由表项写入核心软件路由表;如果路由表项处于非活动状态,则等待它处于活动状态,然后再将其写入表中的核心路由表。步骤 1 和步骤 2 都是在路由设备的路由服务模块中自动学习和完成的。只有在核心软件路由表项中写入了活跃的下一跳IP地址,才能通过下一个IP地址。请求下一跳 mac 地址。步骤3:在路由设备的协议控制设备中配置检测模块,通过检测模块周期性发送ARP请求报文检测下一跳IP地址的可达性。本实施例中,ARP请求报文为广播报文,目的mac地址为;目的IP地址是下一跳的IP地址。即向与路由设备相连的网络设备发送广播ARP请求包,报文中的目的IP为路由设备的下一跳IP地址。步骤4:被请求设备收到ARP请求报文后,确定目的地址是自己,向路由设备回复ARP回复报文。ARP回复报文为单播报文,其目的mac地址为ARP请求报文的源mac地址,目的IP地址为发送ARP请求报文的接口IP地址,而源mac地址和源IP地址为路由设备的下一跳mac地址和IP地址。
步骤5:路由设备收到ARP回复报文,取出ARP回复报文的源mac地址和源IP地址写入ARP缓存,停止发送ARP请求报文;如果路由设备没有收到ARP请求消息ARP回复消息,则检测设备继续发送广播ARP请求消息。同步,检测模块将下一跳的地址mac发送到硬件路由表,触发硬件路由表项的更新,写入目的网络所依赖的所有硬件路由表项的下一跳在硬件路由表中。此时在硬件路由表中配置了路由设备的下一跳mac地址,当同一目的网络的数据流到达时,直接通过硬件路由表查找,进行高速有效转发。本发明通过检测模块获取下一跳mac的地址,从而成功查找到待转发IP数据包的目的硬件路由表项,只需要转发IP数据包通过硬件,保证数据以线速转发,大大提高了IP数据包的处理效率;并且不需要占用CPU资源进行处理,节省了CPU资源。以上仅为本发明的实施例。需要指出的是,对于本领域的普通技术人员来说,可以在不脱离本发明的发明构思的情况下进行改进,但这些都属于本发明。保护范围。
权利请求
<@1.一种路由设备,包括协议控制设备和硬件转发设备,其特征在于,所述协议控制设备中设置有检测模块,所述检测模块自动发送检测报文检测下一跳IP地址 因此,请求下一跳地址的硬件mac地址,触发硬件转发设备的硬件路由表更新。
2.一种检测路由下一跳mac地址的方法,其特征在于包括以下步骤步骤一:路由设备的协议控制装置中的路由服务模块自动学习或手动配置生成一个到目的地的路由表项,该路由表项包括目的IP地址和下一跳IP地址;第二步:检查路由表项的活动,如果路由表项是活动的,则将路由表项写入核心软件路由表;如果路由表项处于非活动状态,则需要等待它处于活动状态,然后再将其写入核心路由表;第 3 步:在路由设备的协议控制设备中配置检测模块定期发送ARP请求报文,通过检测模块检测下一跳IP地址的可达性;步骤4:被请求设备收到ARP请求报文后,判断目的地址是自己,向路由设备返回ARP回复报文;步骤5:路由设备收到ARP回复报文后,根据ARP回复报文获取下一跳mac地址,写入ARP缓存,停止发送ARP请求报文。如果设备没有收到ARP回复包,检测设备继续发送广播ARP请求包;同时,检测模块将下一跳mac地址发送到硬件路由表,
3.根据权利要求1所述的检测路由下一跳地址mac的方法,其特征在于,所述ARP请求消息为广播消息,目的mac@ > 地址是;目的 IP 地址是下一跳的 IP 地址。
全文摘要
本发明提供一种路由设备,包括协议控制设备和硬件转发设备。协议控制设备设置有检测模块,检测模块自动发送检测报文检测下一跳IP地址的可达性,从而请求下一跳地址的硬件mac地址,并触发硬件转发设备的硬件路由表更新。本发明通过检测模块获取下一跳mac的地址,从而成功查找到待转发IP数据包的目的硬件路由表项,只需要转发IP数据包通过硬件三层网络中mac地址查看软件,保证数据以线速转发,大大提高了IP数据包的处理效率;
文件号码/
出版日期 2013 年 1 月 2 日 申请日期 2012 年 8 月 27 日 优先权日期 2012 年 8 月 27 日
发明人吴兵、张柏元、车仁秋申请人:上海飞讯数据通信技术有限公司
发表评论