摘 要:文章通過對三層交換原理以及BCM56024交換芯片三層模塊的闡述,主要描述了在BCM56024交換芯片上實現三層轉發(fā)的方法。其中著重描述了BCM56024交換芯片中三層包流以及三層表項的內容和三層表項之間的聯系,最后給出了實現三層靜態(tài)路由轉發(fā)的方法和實例。
關鍵詞:交換;包流;三層交換;三層表項
1 概述
第三層交換是相對于傳統交換概念而提出的,它在網絡模型中的第三層實現了數據包的高速轉發(fā)。第三層交換技術將第二層交換機和第三層路由器兩者的優(yōu)勢結合成為一個有機的整體,是一種利用第三層協議中的信息來加強第二層交換功能的機制,是新一代局域網路由和交換技術,也稱為IP交換技術。簡單地說,三層交換技術就是:二層交換技術+三層轉發(fā)技術。通過使第二層與第三層相互關聯起來,第三層交換可在網絡中各層次提供線速交換性能。這種集成化的方式不僅保留了二層交換機的許多功能和特性,如Trunk、VLAN和安全等,還引進了三層以上特有的路由、流量控制處理和策略管理等多種功能。
2 BCM56024交換芯片三層包流
2.1 BCM56024系列L3層包流
BCM56024系列L3層包流示意圖如下:
3層交換的目的是能夠讓包從一個VLAN發(fā)送到另一個VLAN。不像2層交換,3層交換是基于包的目的IP地址,而不是MAC_DA地址。為了讓設備能夠進行3層交換,L3_Enable位必須置1。當包進行到MAC_DA查找時,在L2_User_Entry或者L2_Entry_Table表中找到需要項,并且L3_Enable位置1,則將該包發(fā)往L3 logic處理,否則交往L2 logic處理L3 logic第一步是SIP查找,查找L3_ENTRY表。如果沒有查到,則沒有hit bit置1,繼續(xù)查找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優(yōu)先級使能位。
(7)91-93位是優(yōu)先級,指示這個報文的優(yōu)先級。
(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報文的反復發(fā)送,在接收端PC上的網絡抓包工具顯示丟包率為0,即發(fā)送的所有報文都經過正常的三層轉發(fā)到對端PC了。事實證明,在BCM56024交換芯片上成功實現了靜態(tài)路由的三層轉發(fā)。
參考文獻
[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-),男,民族:漢族,籍貫:湖北武漢,職稱:工程師,學歷:碩士研究生,單位:武漢中原電子集團公司,研究方向:計算機及應用。