MLS(MultiLayer Switching,多層)為機(jī)提供基于硬件的第三層高性能交換。它采用先進(jìn)的專用集成電路(ASIC)交換部件完成子網(wǎng)間的IP包交換,可以大大減輕器在處理數(shù)據(jù)包時(shí)所引起的過高系統(tǒng)開銷。
MLS是一種用硬件處理包交換和重寫幀頭,從而提高IP性能的技術(shù)。多層交換技術(shù)支持所有傳統(tǒng)路由,而原來由路由器完成的幀轉(zhuǎn)發(fā)和重寫功能現(xiàn)在已經(jīng)由交換機(jī)的硬件完成。MLS將傳統(tǒng)路由器的包交換功能遷移到第三層交換機(jī)上。當(dāng)然,這首先要求交換的路徑必須存在。
MLS由以下三個(gè)部分組成:
1. 多層路由處理器 (MLS-RP) 它相當(dāng)于網(wǎng)絡(luò)中的路由器,負(fù)責(zé)處理每個(gè)數(shù)據(jù)流的第一個(gè)數(shù)據(jù)包,協(xié)助MLS交換引擎 (MLS-SE)在第三層的CAM (Content-Addressable Memory)中建立捷徑條目(Shortcut Entry)。MLS-RP可以是一個(gè)外部的路由器,也可以由三層交換機(jī)的路由交換模塊(RSM)來實(shí)現(xiàn)。
2. 多層交換的交換引擎 (MLS-SE) 它是負(fù)責(zé)處理轉(zhuǎn)發(fā)和重寫數(shù)據(jù)包功能的交換實(shí)體。
3. 多層交換 (MLSP) 它是一個(gè)輕型,用來通過多層路由處理器 (MLS-RP)對(duì)多層交換的交換引擎進(jìn)行初始化。
下面以圖1所示的網(wǎng)絡(luò)為例,闡述多層交換實(shí)現(xiàn)的步驟。
第一步:發(fā)送MLSP Hello 信息
當(dāng)路由器激活后,多層路由處理器每15秒發(fā)送一個(gè)MLSP Hello包,這些包內(nèi)含路由器接口所使用的VLAN標(biāo)識(shí)和MAC地址信息。MLS-SE通過這些信息掌握具備多層交換能力的路由器的第二層屬性。如果交換機(jī)連接了多個(gè)MLS-RP,MLS-SE通過為它們的MAC地址分配XTAG值的方法來區(qū)分每個(gè)MLS-RP的MAC地址條目。如果MLSP幀從同一個(gè)MLS-RP得到所有MAC地址,MLS-SE則為其附加相同的XTAG值,具體如圖2所示。這些關(guān)聯(lián)的記錄都存放在CAM中。由于Hello包是周期性發(fā)送的,所以,這種方法可以保證相關(guān)值動(dòng)態(tài)地跟蹤網(wǎng)絡(luò)的變化,并可實(shí)現(xiàn)一定的淘汰機(jī)制。 Hello包是在第二層發(fā)布的,它使用多播地址01-00-0C-DD-DD-DD。
第二步:標(biāo)識(shí)候選包(Candidate Packet)
在了解具有多層交換能力的路由器的相關(guān)地址后,MLS-SE可以對(duì)進(jìn)入交換機(jī)的數(shù)據(jù)包進(jìn)行匹配判斷。對(duì)于一個(gè)流中的數(shù)據(jù)包,如果MLS緩存中含有與之匹配的捷徑條目,則MLS-SE就旁路路由器而直接轉(zhuǎn)發(fā)該數(shù)據(jù)包;如果MLS中不含與該數(shù)據(jù)包相匹配的捷徑條目,則MLS-SE將它歸為候選包,并在緩存中建立部分捷徑(Partial shortcut)。這樣的包采用傳統(tǒng)的第二層交換機(jī)處理方式處理,并發(fā)往與之相連的路由器接口(網(wǎng)關(guān)),具體見圖3所示。
這里要注意,候選包(幀)必須滿足兩個(gè)標(biāo)準(zhǔn):目標(biāo)地址經(jīng)過MLSP所列的路由器接口的一個(gè)MAC地址;不存在捷徑條目。
第三步:標(biāo)識(shí)使能包(Enable Packet)
路由器收到并以傳統(tǒng)的方式轉(zhuǎn)發(fā)數(shù)據(jù)包。通過數(shù)據(jù)包的目標(biāo)地址路由表得知,這個(gè)包應(yīng)從Fast Ethernet1/0的第二個(gè)接口轉(zhuǎn)出,并將包封裝為VLAN2幀通過ISL鏈路送回。具體過程如圖4所示。
此時(shí),路由器已經(jīng)重寫第二層幀的幀頭。同時(shí),路由器不僅改寫了ISL頭的VLAN號(hào),而且也修改了兩個(gè)MAC 地址域 :源MAC改為路由器出口的MAC地址,目標(biāo)MAC改為主機(jī)B的MAC地址。雖然數(shù)據(jù)包的IP地址未改寫,但I(xiàn)P包頭的生存時(shí)間(TTL)值被減1,故IP包頭的校驗(yàn)和也需要做相應(yīng)的修改。
這個(gè)修改后的數(shù)據(jù)包稱為使能包(Enable Packet),當(dāng)這個(gè)數(shù)據(jù)包從路由器送出并穿過交換機(jī)到達(dá)目的地主機(jī)B時(shí),要履行下列五個(gè)功能:
第二層交換機(jī)根據(jù)使能包的目的地MAC地址,知道該數(shù)據(jù)包應(yīng)該從PORT3/1口轉(zhuǎn)發(fā)出去;
MLS-SE得知使能包的幀頭上源地址是通過Hello過程建立的地址記錄之一;
MLS-SE根據(jù)使能包目的IP地址查尋在第二步中建立的部分捷徑條目;
MLS-SE將與使能包源MAC地址相關(guān)聯(lián)的XTAG值和部分捷徑條目的對(duì)應(yīng)XTAG值相比較,如果匹配,則表明這個(gè)使能包與第二步中的候選包來自同一個(gè)路由器;
MLS-SE完成該捷徑條目的建立過程,該捷徑記錄將包含重寫數(shù)據(jù)流中的后續(xù)包幀頭所需的所有信息。
第四步:直接交換(轉(zhuǎn)發(fā))數(shù)據(jù)流中的后續(xù)包
當(dāng)后續(xù)的數(shù)據(jù)包被主機(jī)A送出后,MLS-SE利用數(shù)據(jù)包中的目標(biāo)IP地址查找在第三步建立的完整捷徑。地址匹配后,MLS-SE利用重寫引擎修改幀頭信息,然后直接轉(zhuǎn)發(fā)給主機(jī)B(數(shù)據(jù)包不發(fā)給路由器)。重寫操作修改幀頭域,其值同第一個(gè)被路由器修改的數(shù)據(jù)包的域值一樣。詳見圖5所示。這里需要解釋的是,NFFC(NetFlow Feature Card)是裝備在三層交換機(jī)中的網(wǎng)絡(luò)流性能卡,它維護(hù)第三層交換數(shù)據(jù)包流的交換表(MLS Cache),作為多層交換的交換引擎部分。
上述這個(gè)過程被稱為“一次路由,多次交換”。交換機(jī)利用專業(yè)化硬件ASIC來處理數(shù)據(jù)包,速度相當(dāng)快,可以達(dá)到100Mbps甚至1000Mbps。