摘 要:文章通過對(duì)三層交換原理以及BCM56024交換芯片三層模塊的闡述,主要描述了在BCM56024交換芯片上實(shí)現(xiàn)三層轉(zhuǎn)發(fā)的方法。其中著重描述了BCM56024交換芯片中三層包流以及三層表項(xiàng)的內(nèi)容和三層表項(xiàng)之間的聯(lián)系,最后給出了實(shí)現(xiàn)三層靜態(tài)路由轉(zhuǎn)發(fā)的方法和實(shí)例。
關(guān)鍵詞:交換;包流;三層交換;三層表項(xiàng)
1 概述
第三層交換是相對(duì)于傳統(tǒng)交換概念而提出的,它在網(wǎng)絡(luò)模型中的第三層實(shí)現(xiàn)了數(shù)據(jù)包的高速轉(zhuǎn)發(fā)。第三層交換技術(shù)將第二層交換機(jī)和第三層路由器兩者的優(yōu)勢結(jié)合成為一個(gè)有機(jī)的整體,是一種利用第三層協(xié)議中的信息來加強(qiáng)第二層交換功能的機(jī)制,是新一代局域網(wǎng)路由和交換技術(shù),也稱為IP交換技術(shù)。簡單地說,三層交換技術(shù)就是:二層交換技術(shù)+三層轉(zhuǎn)發(fā)技術(shù)。通過使第二層與第三層相互關(guān)聯(lián)起來,第三層交換可在網(wǎng)絡(luò)中各層次提供線速交換性能。這種集成化的方式不僅保留了二層交換機(jī)的許多功能和特性,如Trunk、VLAN和安全等,還引進(jìn)了三層以上特有的路由、流量控制處理和策略管理等多種功能。
2 BCM56024交換芯片三層包流
2.1 BCM56024系列L3層包流
BCM56024系列L3層包流示意圖如下:
3層交換的目的是能夠讓包從一個(gè)VLAN發(fā)送到另一個(gè)VLAN。不像2層交換,3層交換是基于包的目的IP地址,而不是MAC_DA地址。為了讓設(shè)備能夠進(jìn)行3層交換,L3_Enable位必須置1。當(dāng)包進(jìn)行到MAC_DA查找時(shí),在L2_User_Entry或者L2_Entry_Table表中找到需要項(xiàng),并且L3_Enable位置1,則將該包發(fā)往L3 logic處理,否則交往L2 logic處理L3 logic第一步是SIP查找,查找L3_ENTRY表。如果沒有查到,則沒有hit bit置1,繼續(xù)查找DIP。如果SIP找到,設(shè)備會(huì)更新L3_Hit_bit。下一步是查找DIP。設(shè)備根據(jù)包含在IPv4格式數(shù)據(jù)包里的DIP查找Layer 3 table(這張表一般是給直連主機(jī)用的)。如果找到了地址,則會(huì)得到目的端口,下一跳MAC地址以及包含了router MAC 地址和出端口VLAN的L3 interface table的index。如果在L3表上未找到,則硬件將查找L3 LPM表。最長前綴匹配(LPM)算法是匹配最長subnet。如果找到,會(huì)得到index、NEXT_PTR,回到L3表獲得目的端口,下一跳MAC地址以及L3 interface table的index。
2.2 BCM56024系列L3表項(xiàng)部分內(nèi)容
2.2.1 L3_ENTRY_IPV4_UNICAST
其中,每一項(xiàng)的解釋如下:
(1)0-31位是IP地址,目的IP地址。
(2)64位置1是指IPv6的,所以這里必須要置0。
(3)65位置1是指IP組播的,所以這里必須要置0。
(4)66-77位是指的VLAN_ID。
(5)78-89位指示的是這個(gè)表項(xiàng)對(duì)應(yīng)的下一跳那張表的索引項(xiàng)。當(dāng)這個(gè)表項(xiàng)的目的IP命中后,系統(tǒng)根據(jù)這個(gè)索引值在下一跳的表中找到對(duì)應(yīng)的下一跳信息。
(6)90位是Remap優(yōu)先級(jí)使能位。
(7)91-93位是優(yōu)先級(jí),指示這個(gè)報(bào)文的優(yōu)先級(jí)。
(8)94位如果置1的話是指:如果輸入報(bào)文的目的IP地址與這個(gè)表項(xiàng)中設(shè)置的IP地址匹配了,則丟棄該報(bào)文,僅適用于L3單播。
(9)95-100位是VRF_ID。
(10)101位置1指示這個(gè)表項(xiàng)是有效的。
(11)102位應(yīng)該是偶校驗(yàn)。
(12)103位是命中標(biāo)志。
2.2.2 EGR_L3_NEXT_HOP
其中,每一項(xiàng)的解釋如下:
(1)0-11位是L3_INTF table的索引。
(2)12-59位是MAC地址,3層交換將根據(jù)這個(gè)條目替換數(shù)據(jù)包的目的MAC地址。
(3)60位為偶校驗(yàn)。
2.2.3 EGR_L3_INTF
其中,每一項(xiàng)的解釋如下:
(1)0-2位是隧道索引,如果用不到就填0。
(2)3位置1指示的是輸入報(bào)文必須進(jìn)行二層交換并且二層修改必須完成。
(3)4-15位是VLAN_ID。
(4)16-63位是MAC地址,用該MAC地址替換輸入報(bào)文的源MAC地址。
(5)64-71位是TTL開始。
(6)72位是偶校驗(yàn)。
2.2.4 ING_L3_NEXT_HOP
其中,每一項(xiàng)的解釋如下:
(1)0位是隧道類型,這一位與隧道封裝有關(guān),置1對(duì)報(bào)文進(jìn)行三層交換的隧道封裝。
(2)1-7位指的是下一跳的端口號(hào)。
(3)8-11位是下一跳的模塊號(hào)。
(4)12-23位是下一跳的VLAN_ID。
(5)24位是偶校驗(yàn)。
2.3 BCM56024系列L3表項(xiàng)關(guān)系
圖6抽象地描述了BCM56024系列L3表項(xiàng)之間的關(guān)系:
3 實(shí)驗(yàn)拓?fù)浼敖Y(jié)果分析
3.1 實(shí)驗(yàn)拓?fù)湓O(shè)定
3.2 實(shí)驗(yàn)結(jié)果分析
通過該實(shí)驗(yàn)拓?fù)溥M(jìn)行50000包UDP報(bào)文的反復(fù)發(fā)送,在接收端PC上的網(wǎng)絡(luò)抓包工具顯示丟包率為0,即發(fā)送的所有報(bào)文都經(jīng)過正常的三層轉(zhuǎn)發(fā)到對(duì)端PC了。事實(shí)證明,在BCM56024交換芯片上成功實(shí)現(xiàn)了靜態(tài)路由的三層轉(zhuǎn)發(fā)。
參考文獻(xiàn)
[1]BCM.Programmer's Reference Guide(Gigabit Eternet Multilayer Switch)[Z]. 2009.
[2]BCM.Programmer's Reference Guide(theory)[Z].2009.
[3]肖昌吉.基于END模型的三層交換機(jī)驅(qū)動(dòng)的設(shè)計(jì)與實(shí)現(xiàn)[D].電子科技大學(xué),2005.
作者簡介:陸騫(1977-),男,民族:漢族,籍貫:湖北武漢,職稱:工程師,學(xué)歷:碩士研究生,單位:武漢中原電子集團(tuán)公司,研究方向:計(jì)算機(jī)及應(yīng)用。