CN1777148A - 一种路由表下一跳ip地址到mac地址解析方法 - Google Patents

一种路由表下一跳ip地址到mac地址解析方法 Download PDF

Info

Publication number
CN1777148A
CN1777148A CNA2005101264718A CN200510126471A CN1777148A CN 1777148 A CN1777148 A CN 1777148A CN A2005101264718 A CNA2005101264718 A CN A2005101264718A CN 200510126471 A CN200510126471 A CN 200510126471A CN 1777148 A CN1777148 A CN 1777148A
Authority
CN
China
Prior art keywords
interface
address
mac address
message
forwarding engine
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
Application number
CNA2005101264718A
Other languages
English (en)
Other versions
CN100377550C (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 Digital Technologies Chengdu Co Ltd
Original Assignee
Harbour Networks Holdings 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 Harbour Networks Holdings Ltd filed Critical Harbour Networks Holdings Ltd
Priority to CNB2005101264718A priority Critical patent/CN100377550C/zh
Publication of CN1777148A publication Critical patent/CN1777148A/zh
Application granted granted Critical
Publication of CN100377550C publication Critical patent/CN100377550C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种路由表下一跳IP地址到MAC地址解析方法,该方法包括:控制软件将发送ARP请求所需要的接口信息下发给硬件转发引擎;当路由查找的下一跳IP地址没有解析时,硬件转发引擎根据软件下发的信息自行封装ARP请求报文在物理网段或VLAN内发送,同时该IP报文丢弃。ARP应答报文由CPU接收后,更新硬件转发引擎中下一跳的表项,使得硬件转发引擎可对后续数据报文进行正常转发。采用本发明极大降低了CPU的占用情况;同时ARP报文和其他协议报文以及匹配接口IP地址的数据报文可以放在不同的队列中处理,使***处理更加合理。

Description

一种路由表下一跳IP地址到MAC地址解析方法
技术领域
本发明涉及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报文就可以正确封装并且转发出去。

Claims (6)

1、一种路由表下一跳IP地址到MAC地址解析方法,步骤包括:控制软件将发送ARP请求所需要的接口信息下发给硬件转发引擎;当硬件转发引擎发现路由查找的下一跳IP地址没有解析时,根据软件下发的信息自行封装ARP请求报文在物理网段或VLAN内发送,同时该IP报文丢弃;控制软件接收到ARP响应后将解析到的MAC地址下发到硬件转发引擎;硬件转发引擎完成后续报文的正常转发。
2、如权利要求1所述的路由表下一跳IP地址到MAC地址解析方法,其特征在于:根据控制软件下发的信息,在硬件转发引擎中建立一接口信息表,至少包括:接口索引,接口的VLAN号,接口IP地址,接口的MAC地址,接口封装类型。
3、如权利要求1或2所述的路由表下一跳IP地址到MAC地址解析方法,其特征在于:在路由的下一跳表中增加一个MAC地址未解析标志位字段,如果下一跳表项中的标志位为MAC地址未解析标志位字段,根据下一跳表项中的接口索引找到相应的接口表项,根据接口表项中的信息和报文的下一跳IP地址组织成ARP请求报文,在相应的物理网段或VLAN内发送。
4、如权利要求1所述的路由表下一跳IP地址到MAC地址解析方法,其特征在于:当***中接口增加时,控制软件的接口管理模块将接口相关的上述信息下发给硬件转发引擎,并且分配全局唯一的接口索引值,建立相应的接口表项;当***删除接口时,控制软件的接口管理模块通知硬件转发引擎删除接口索引所对应的接口表项。
5、如权利要求1所述的路由表下一跳IP地址到MAC地址解析方法,其特征在于:控制CPU接收到ARP应答报文后,更新硬件转发引擎中下一跳的表项,将解析到的MAC地址写入表项,并且更新标记位为MAC地址已解析标志位字段。
6、如权利要求1所述的路由表下一跳IP地址到MAC地址解析方法,其特征在于:在硬件转发引擎中下一跳的表项中填入MAC地址,并标记位记为MAC地址已解析标志后,硬件转发引擎即可把发往这个下一跳IP地址的报文正常转发出去。
CNB2005101264718A 2005-12-13 2005-12-13 一种路由表下一跳ip地址到mac地址解析方法 Expired - Fee Related CN100377550C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005101264718A CN100377550C (zh) 2005-12-13 2005-12-13 一种路由表下一跳ip地址到mac地址解析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005101264718A CN100377550C (zh) 2005-12-13 2005-12-13 一种路由表下一跳ip地址到mac地址解析方法

Publications (2)

Publication Number Publication Date
CN1777148A true CN1777148A (zh) 2006-05-24
CN100377550C CN100377550C (zh) 2008-03-26

Family

ID=36766460

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101264718A Expired - Fee Related CN100377550C (zh) 2005-12-13 2005-12-13 一种路由表下一跳ip地址到mac地址解析方法

Country Status (1)

Country Link
CN (1) CN100377550C (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102957619A (zh) * 2011-08-25 2013-03-06 清华大学 虚拟路由***及方法
CN101771732B (zh) * 2010-01-06 2014-08-27 福建星网锐捷网络有限公司 报文处理方法、装置和网络设备
CN109428819A (zh) * 2017-08-28 2019-03-05 阿里巴巴集团控股有限公司 传输数据的方法、网络组件、设备和计算机存储介质
CN109639581A (zh) * 2019-02-21 2019-04-16 杭州迪普科技股份有限公司 交换芯片的表项维护方法和装置
CN110224936A (zh) * 2019-06-12 2019-09-10 四川灵通电讯有限公司 基于mac地址和网络接口的路由方法
CN112055094A (zh) * 2019-06-06 2020-12-08 烽火通信科技股份有限公司 一种arp查找与arpmiss处理的实现方法及***
CN112311905A (zh) * 2019-07-29 2021-02-02 烽火通信科技股份有限公司 一种实现动态arp学习的方法及设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102014064B (zh) * 2010-12-07 2015-01-28 中兴通讯股份有限公司 基于Linux***的报文转发方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1194995C (zh) * 2001-10-12 2005-03-30 中国石油天然气股份有限公司 低分子量、高活性聚异丁烯的制备方法
CN1207877C (zh) * 2002-10-14 2005-06-22 港湾网络有限公司 一种网络设备中央处理器负载保护方法
ATE319248T1 (de) * 2003-12-19 2006-03-15 Cit Alcatel Netzwerkeinheit zur weiterleitung von ethernetpaketen

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101771732B (zh) * 2010-01-06 2014-08-27 福建星网锐捷网络有限公司 报文处理方法、装置和网络设备
CN102957619A (zh) * 2011-08-25 2013-03-06 清华大学 虚拟路由***及方法
CN102957619B (zh) * 2011-08-25 2016-05-18 清华大学 虚拟路由***及方法
CN109428819A (zh) * 2017-08-28 2019-03-05 阿里巴巴集团控股有限公司 传输数据的方法、网络组件、设备和计算机存储介质
CN109639581A (zh) * 2019-02-21 2019-04-16 杭州迪普科技股份有限公司 交换芯片的表项维护方法和装置
CN109639581B (zh) * 2019-02-21 2021-05-28 杭州迪普科技股份有限公司 交换芯片的表项维护方法和装置
CN112055094A (zh) * 2019-06-06 2020-12-08 烽火通信科技股份有限公司 一种arp查找与arpmiss处理的实现方法及***
CN112055094B (zh) * 2019-06-06 2022-04-29 烽火通信科技股份有限公司 一种arp查找与arpmiss处理的实现方法及***
CN110224936A (zh) * 2019-06-12 2019-09-10 四川灵通电讯有限公司 基于mac地址和网络接口的路由方法
CN112311905A (zh) * 2019-07-29 2021-02-02 烽火通信科技股份有限公司 一种实现动态arp学习的方法及设备
CN112311905B (zh) * 2019-07-29 2022-11-25 烽火通信科技股份有限公司 一种实现动态arp学习的方法及设备

Also Published As

Publication number Publication date
CN100377550C (zh) 2008-03-26

Similar Documents

Publication Publication Date Title
US20200328973A1 (en) Packet coalescing
US9350667B2 (en) Dynamically assigning packet flows
CN1777148A (zh) 一种路由表下一跳ip地址到mac地址解析方法
CN1305276C (zh) 一种快速处理实时媒体流数据包的方法及其***
EP2958280B1 (en) Routing based on the content of packets
US10164910B2 (en) Method and apparatus for an information-centric MAC layer
US20050060418A1 (en) Packet classification
CN110505147B (zh) 分组片段转发方法和网络设备
US8478853B2 (en) Handling of multiple MAC unicast addresses with virtual machines
CN1255975C (zh) 在路由设备中为分组选择路由的方法
CN1625160A (zh) 可控制数据包传送的交换器及相关方法
CN1947381A (zh) 标识反向路径转发信息
US8126015B2 (en) Multi-stream communication processing
CN1627728A (zh) 在计算机服务器中共享以太网适配器的方法和装置
CN101039234A (zh) 一种分布式dhcp中继的实现方法
CN1271833C (zh) 无需ip重组分发分组的装置和方法
CN1960316A (zh) 分片报文的网络地址转换方法
US8743907B1 (en) Apparatus for reassembling a fragmented data unit and transmitting the reassembled data unit
CN1301607C (zh) 实现支持虚拟局域网防火墙的方法
CN1317874C (zh) 提供虚拟主机服务快速查询置换的网络地址端口转换网关器与方法
CN1933450A (zh) 板间通信方法及接口板
CN1816008A (zh) 网络传输中路由、信令以及控制协议报文的传输方法
WO2024151751A1 (en) System and method for adaptive generic receive offload
CN115834722A (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
ASS Succession or assignment of patent right

Owner name: HUAWEI TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: GANGWAN NETWORK CO., LTD.

Effective date: 20060922

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20060922

Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Applicant after: Huawei Technologies Co., Ltd.

Address before: 100094 harbour network research and development center, No. 17, Zhongguancun Software Park, No. 8 northeast Wang Xi Road, Beijing, Haidian District

Applicant before: Harbour Networks Holdings Limited

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: HUAWEI DIGIT TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: HUAWEI TECHNOLOGY CO LTD

Effective date: 20100728

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 518129 HUAWEI HEADQUARTERS OFFICE BUILDING, BANTIAN, LONGGANG DISTRICT, SHENZHEN CITY, GUANGDONG PROVINCE TO: 100085 NO.3, XINXI ROAD, SHANGDI, HAIDIAN DISTRICT, BEIJING CITY

TR01 Transfer of patent right

Effective date of registration: 20100728

Address after: 100085 Beijing, Haidian District on the road, No. 3

Patentee after: Huawei Digit Technology Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: Huawei Technologies Co., Ltd.

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080326

Termination date: 20121213