法律状态公告日
法律状态信息
法律状态
2014-02-12
未缴年费专利权终止 IPC(主分类):H04L12/56 授权公告日:20080326 终止日期:20121213 申请日:20051213
专利权的终止
2010-09-08
专利权的转移 IPC(主分类):H04L12/56 变更前: 变更后: 登记生效日:20100728 申请日:20051213
专利申请权、专利权的转移
2008-03-26
授权
授权
2006-10-18
专利申请权、专利权的转移专利申请权的转移 变更前: 变更后: 登记生效日:20060922 申请日:20051213
专利申请权、专利权的转移专利申请权的转移
2006-07-19
实质审查的生效
实质审查的生效
2006-05-24
公开
公开
查看全部
技术领域
本发明涉及IP交换网络通信领域,尤其涉及IP交换网络设备中路由表的下一跳IP地址到MAC地址解析处理流程。
背景技术
在IP网络中,数据包的三层转发在完成路由查找后,必须知道下一跳IP地址对应的MAC地址才能进行报文的封装,从而将报文通过链路层进行正确的转发。在TCP/IP协议族中,ARP协议负责将IP地址解析成MAC地址。
图1以太网上的ARP报文格式
ARP报文分为请求报文和应答报文两种类型。请求报文用于在网段内广播MAC地址解析请求,节点接收到ARP请求报文后检查请求的IP地址是否是本节点的IP地址,如果是则根据报文的内容组织成应答报文回复给发出请求的节点,应答报文中包含本机点的MAC地址,从而完成解析的过程。
在数据通信设备中,ARP协议是系统控制程序的一个软件模块,运行在控制CPU中。ARP解析的结果产生主机路由,保存有该IP地址和所对应的MAC地址;同时也更新相应的网段路由中的下一跳MAC信息。这样该IP地址无论是作为报文的目的地址还是报文中间转发的下一跳地址,设备中的硬件转发引擎都知道该IP地址对应的MAC信息,从而正确的将转发后的报文进行链路层封装。
当路由转发的下一跳IP地址在ARP表中不存在相应解析过的表项时,就会触发ARP模块向外发送ARP请求报文。硬件转发引擎将原始的IP报文交由软件CPU,由ARP模块负责完成ARP请求报文发送和ARP应答报文接收处理的全过程。整个解析过程都是CPU软件处理的。
图2通信设备中的MAC地址解析结构图
在大型网络中,直连主机数量多,采用这种软件控制的解析机制存在较多缺点,大量未解析的IP报文涌入,会占用CPU带宽,影响系统稳定性;而且也影响其他协议报文的接受,降低系统中的其他协议的报文处理速度。
发明内容
本发明的目的在于提供一种更有效率的MAC地直解析方法,充分利用硬件的优势,分担控制CPU的软件处理负担,使系统在大规模网络应用环境下更加稳定和高效。
本发明的技术内容:一种路由表下一跳IP地址到MAC地址解析方法,步骤包括:
控制软件将发送ARP请求所需要的接口信息下发给硬件转发引擎(如网络处理器);当硬件转发引擎发现路由查找的下一跳IP地址没有解析时,根据软件下发的信息自行封装ARP请求报文在物理网段或VLAN内发送,同时该IP报文丢弃;控制软件接收到ARP响应后将解析到的MAC地址下发到硬件转发引擎;硬件转发引擎完成后续报文的正常转发。
根据控制软件下发的信息,在硬件转发引擎中建立一接口信息表,至少包括:接口索引,接口的VLAN号(如果支持VLAN),接口IP地址,接口的MAC地址,接口封装类型。
在路由的下一跳表中增加一个MAC地址未解析标志位字段,如果下一跳表项中的标志位为MAC地址未解析标志位字段,根据下一跳表项中的接口索引找到相应的接口表项,根据接口表项中的信息和报文的下一跳IP地址组织成ARP请求报文,在相应的物理网段或VLAN内发送。
当系统中接口增加时,控制软件的接口管理模块将接口相关的上述信息下发给硬件转发引擎,并且分配全局唯一的接口索引值,建立相应的接口表项;当系统删除接口时,控制软件的接口管理模块通知硬件转发引擎删除接口索引所对应的接口表项。
控制CPU接收到ARP应答报文后,更新硬件转发引擎中下一跳的表项,将解析到的MAC地址写入表项,并且更新标记位为MAC地址已解析标志位字段。
在硬件转发引擎中下一跳的表项中填入MAC地址,并标记位记为MAC地址已解析标志后,硬件转发引擎即可把发往这个下一跳IP地址的报文正常转发出去。
本发明的技术效果;控制CPU只需要处理64字节大小的ARP应答报文,可以迅速完成地址学习和下发,极大降低了CPU的占用情况,对于拥有数千直连主机的环境下,也可以保持正常的CPU占用率,保证了系统的稳定性。同时ARP报文和其他协议报文以及匹配接口IP地址的数据报文可以放在不同的队列中处理,方便报文的调度处理,使系统处理更加合理。
附图说明
下面结合附图,详细描述本发明。
图1为以太网上的ARP报文格式;
图2为通信设备中的MAC地址解析结构图;
图3为系统的数据流图;
图4为网络处理器的转发处理流程图。
具体实施方式
数据通信设备中,基于网络处理器的转发设计灵活,可以做到比硬件ASIC芯片更复杂的处理逻辑,可以通过编程实现新的协议和逻辑处理流程;另一方面网络处理器也拥有比ASIC更大的表项空间。所以在数据通信设备中,往往使用网络处理器作为硬件转发引擎,用于解决硬件ASIC无法完成的任务。
网络处理器根据报文的目的IP地址完成路由查找后,如果该IP地址对应的MAC地址没有解析过,可以通过编程增加新的处理逻辑来通过网络处理器发送ARP请求报文,而不是像ASIC那样单纯的将报文转发给CPU进行ARP解析。
由于解析的结果需要组织成主机路由下发给所有接口板的硬件,并且更新相应的网段路由中的下一跳MAC地址信息。因此ARP应答报文仍然由控制软件处理,将该报文交给控制CPU的ARP协议模块处理,从而完成IP地址和MAC地址的解析。
图3系统的数据流图
下面详细说明本发明的一种较佳的实现例子。
1、在网络处理器中建立一张新表,命名为接口表。该表包含如下信息。
接口索引:全局唯一的索引值,由控制软件分配,用于索引表项。
接口IP地址:保存该接口的IP地址。
接口MAC地址:保存该接口的MAC地址。
接口封装类型:保存该接口的封装类型。
接口的VLAN号:保存该接口的VLAN TAG信息,用于在指定的VLAN内发送ARP请求报文。
2、当系统中接口增加时,控制软件的接口管理模块将接口相关的上述信息下发给网络处理器,并且分配全局唯一的接口索引值,建立相应的接口表项。
3、当系统删除接口时,控制软件的接口管理模块只要通知网络处理器删除接口索引所对应的接口表项即可。
4、在路由的下一跳表中增加一个标志位字段,如果该下一跳IP的MAC地址已经解析则标志位为1,否则标志位为0。处理逻辑检查此标志位决定是否需要发送ARP请求报文。
5、当路由查找完成后根据下一跳的索引找到下一跳表项,如果下一跳表项中的标志位为1,表示该表项已经解析,可以根据下一跳表项中的MAC地址信息对转发报文进行封装。否则标志位为0,则根据下一跳表项中的接口索引找到相应的接口表项,根据接口表项中的信息和报文的下一跳IP地址组织成ARP请求报文,在相应的VLAN内发送。
图4网络处理器的转发处理流程
6、ARP请求报文的字段作如下填充:
报文源MAC:接口表中的接口MAC地址
报文目的MAC:广播MAC地址FF:FF:FF:FF:FF:FF
硬件类型:
协议类型:设置为ARP请求
硬件地址长度:根据接口表中的封装类型,如以太网类型封装。此字段为6。
协议地址长度:Ipv4的协议地址长度为4
发送方硬件地址:接口表中所保存的MAC地址
发送方协议地址:接口表中所保存的Ip地址
目标方硬件地址:为全0
目标方协议地址:为转发报文的下一跳32位IP地址
7、控制CPU接收到ARP应答报文后,更新网络处理器中下一跳的表项,将解析到的MAC地址写入表项,并且更新标记位为1,该表项已经被解析,这样后续的IP报文就可以正确封装并且转发出去。
机译: 在不影响IP地址的情况下执行MAC地址转换的网络安全设备
机译: 系统在路由表中使用加权的下一跳选项以包括路由数据包以提供等价多路径转发数据包的概率
机译: 路由器使用一个独立于层次结构的路由表,该表包括一个标志,以查找一系列用于路由数据包的下一跳路由器