基于BCM56024静态路由三层转发实现

2018年12月25日 23:42来源于:科技创新与应用

摘 要:文章通过对三层交换原理以及BCM56024交换芯片三层模块的阐述,主要描述了在BCM56024交换芯片上实现三层转发的方法。其中着重描述了BCM56024交换芯片中三层包流以及三层表项的内容和三层表项之间的联系,最后给出了实现三层静态路由转发的方法和实例。

关键词:交换;包流;三层交换;三层表项

1 概述

第三层交换是相对于传统交换概念而提出的,它在网络模型中的第三层实现了数据包的高速转发。第三层交换技术将第二层交换机和第三层路由器两者的优势结合成为一个有机的整体,是一种利用第三层协议中的信息来加强第二层交换功能的机制,是新一代局域网路由和交换技术,也称为IP交换技术。简单地说,三层交换技术就是:二层交换技术+三层转发技术。通过使第二层与第三层相互关联起来,第三层交换可在网络中各层次提供线速交换性能。这种集成化的方式不仅保留了二层交换机的许多功能和特性,如Trunk、VLAN和安全等,还引进了三层以上特有的路由、流量控制处理和策略管理等多种功能。

2 BCM56024交换芯片三层包流

2.1 BCM56024系列L3层包流

BCM56024系列L3层包流示意图如下:

3层交换的目的是能够让包从一个VLAN发送到另一个VLAN。不像2层交换,3层交换是基于包的目的IP地址,而不是MAC_DA地址。为了让设备能够进行3层交换,L3_Enable位必须置1。当包进行到MAC_DA查找时,在L2_User_Entry或者L2_Entry_Table表中找到需要项,并且L3_Enable位置1,则将该包发往L3 logic处理,否则交往L2 logic处理L3 logic第一步是SIP查找,查找L3_ENTRY表。如果没有查到,则没有hit bit置1,继续查找DIP。如果SIP找到,设备会更新L3_Hit_bit。下一步是查找DIP。设备根据包含在IPv4格式数据包里的DIP查找Layer 3 table(这张表一般是给直连主机用的)。如果找到了地址,则会得到目的端口,下一跳MAC地址以及包含了router MAC 地址和出端口VLAN的L3 interface table的index。如果在L3表上未找到,则硬件将查找L3 LPM表。最长前缀匹配(LPM)算法是匹配最长subnet。如果找到,会得到index、NEXT_PTR,回到L3表获得目的端口,下一跳MAC地址以及L3 interface table的index。

2.2 BCM56024系列L3表项部分内容

2.2.1 L3_ENTRY_IPV4_UNICAST

其中,每一项的解释如下:

(1)0-31位是IP地址,目的IP地址。

(2)64位置1是指IPv6的,所以这里必须要置0。

(3)65位置1是指IP组播的,所以这里必须要置0。

(4)66-77位是指的VLAN_ID。

(5)78-89位指示的是这个表项对应的下一跳那张表的索引项。当这个表项的目的IP命中后,系统根据这个索引值在下一跳的表中找到对应的下一跳信息。

(6)90位是Remap优先级使能位。

(7)91-93位是优先级,指示这个报文的优先级。

(8)94位如果置1的话是指:如果输入报文的目的IP地址与这个表项中设置的IP地址匹配了,则丢弃该报文,仅适用于L3单播。

(9)95-100位是VRF_ID。

(10)101位置1指示这个表项是有效的。

(11)102位应该是偶校验。

(12)103位是命中标志。

2.2.2 EGR_L3_NEXT_HOP

其中,每一项的解释如下:

(1)0-11位是L3_INTF table的索引。

(2)12-59位是MAC地址,3層交换将根据这个条目替换数据包的目的MAC地址。

(3)60位为偶校验。

2.2.3 EGR_L3_INTF

其中,每一项的解释如下:

(1)0-2位是隧道索引,如果用不到就填0。

(2)3位置1指示的是输入报文必须进行二层交换并且二层修改必须完成。

(3)4-15位是VLAN_ID。

(4)16-63位是MAC地址,用该MAC地址替换输入报文的源MAC地址。

(5)64-71位是TTL开始。

(6)72位是偶校验。

2.2.4 ING_L3_NEXT_HOP

其中,每一项的解释如下:

(1)0位是隧道类型,这一位与隧道封装有关,置1对报文进行三层交换的隧道封装。

(2)1-7位指的是下一跳的端口号。

(3)8-11位是下一跳的模块号。

(4)12-23位是下一跳的VLAN_ID。

(5)24位是偶校验。

2.3 BCM56024系列L3表项关系

图6抽象地描述了BCM56024系列L3表项之间的关系:

3 实验拓扑及结果分析

3.1 实验拓扑设定

3.2 实验结果分析

通过该实验拓扑进行50000包UDP报文的反复发送,在接收端PC上的网络抓包工具显示丢包率为0,即发送的所有报文都经过正常的三层转发到对端PC了。事实证明,在BCM56024交换芯片上成功实现了静态路由的三层转发。

参考文献

[1]BCM.Programmer's Reference Guide(Gigabit Eternet Multilayer Switch)[Z]. 2009.

[2]BCM.Programmer's Reference Guide(theory)[Z].2009.

[3]肖昌吉.基于END模型的三层交换机驱动的设计与实现[D].电子科技大学,2005.

作者简介:陆骞(1977-),男,民族:汉族,籍贯:湖北武汉,职称:工程师,学历:硕士研究生,单位:武汉中原电子集团公司,研究方向:计算机及应用。

 
免责声明:

     本文仅代表作者/企业观点,与【名品家电网】无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,仅供读者参考,并自行核实相关内容。

     【名品家电网】刊载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

      如因作品内容、版权和其它问题需要同本网联系的,请在30日内进行;新闻纠错: lwl#youngchina.cn

关键词: 文章 地址 报文