三層交換機(jī)的工作過程深度剖析

時(shí)間:2017-12-06

來源:網(wǎng)絡(luò)轉(zhuǎn)載

導(dǎo)語:要論述第三層交換機(jī)的工作原理,我們可以從傳統(tǒng)交換機(jī)和路由器的實(shí)現(xiàn)原理中入手。簡單地說,傳統(tǒng)的局域網(wǎng)交換機(jī)是從網(wǎng)橋發(fā)展來的,屬于第二層設(shè)備。它是一個(gè)可以將發(fā)信方源地址與收信方目的地址連接起來的網(wǎng)絡(luò)設(shè)備,該設(shè)備可以根據(jù)數(shù)據(jù)單元中的頭信息,將來自一個(gè)或多個(gè)輸入端口的信元或幀移動(dòng)到一個(gè)或多個(gè)輸出端口,完成信息發(fā)送過程的交換。

一、第三層交換機(jī)的工作原理

要論述第三層交換機(jī)的工作原理,我們可以從傳統(tǒng)交換機(jī)和路由器的實(shí)現(xiàn)原理中入手。簡單地說,傳統(tǒng)的局域網(wǎng)交換機(jī)是從網(wǎng)橋發(fā)展來的,屬于第二層設(shè)備。它是一個(gè)可以將發(fā)信方源地址與收信方目的地址連接起來的網(wǎng)絡(luò)設(shè)備,該設(shè)備可以根據(jù)數(shù)據(jù)單元中的頭信息,將來自一個(gè)或多個(gè)輸入端口的信元或幀移動(dòng)到一個(gè)或多個(gè)輸出端口,完成信息發(fā)送過程的交換。顯然,第二層交換機(jī)的最大好處是數(shù)據(jù)傳輸快,因?yàn)樗鼉H需要識(shí)別數(shù)據(jù)幀中的MAC地址,而直接根據(jù)MAC地址產(chǎn)生選擇轉(zhuǎn)發(fā)端口的算法又十分簡單,非常便于采用ASIC芯片實(shí)現(xiàn)。所以,第二層交換的解決方案實(shí)際上是一個(gè)“處處交換”的廉價(jià)方案,雖然也能支持子網(wǎng)劃分和廣播限制等基本功能,但控制能力較小。

傳統(tǒng)的第三層路由器屬于第三層設(shè)備,它是根據(jù)IP地址尋址和通過路由表路由協(xié)議來實(shí)現(xiàn)路由功能的。在局域網(wǎng)中的作用主要是路由轉(zhuǎn)發(fā)、網(wǎng)絡(luò)安全和隔離廣播等,即在完成子網(wǎng)的網(wǎng)間連接的同時(shí),還可以隔離子網(wǎng)間的廣播風(fēng)暴,可以控制一個(gè)網(wǎng)絡(luò)非法信息進(jìn)入到另一個(gè)網(wǎng)絡(luò)中。由于在路由轉(zhuǎn)發(fā)中,路由器普遍采用的技術(shù)是最長匹配方式,而該方式實(shí)現(xiàn)起來非常復(fù)雜,所以只能利用軟件來完成,自然會(huì)對(duì)網(wǎng)絡(luò)帶來一定的延遲。

由此可見,傳統(tǒng)交換機(jī)是同一網(wǎng)絡(luò)系統(tǒng)中主機(jī)之間端口連接的網(wǎng)絡(luò)設(shè)備,傳統(tǒng)路由器是同類或異類網(wǎng)絡(luò)系統(tǒng)中各子網(wǎng)之間連接的網(wǎng)絡(luò)設(shè)備。再來看一下第三層交換機(jī)。第三層交換機(jī)實(shí)際上是將傳統(tǒng)交換器與傳統(tǒng)路由器結(jié)合起來的網(wǎng)絡(luò)設(shè)備,它既可以完成傳統(tǒng)交換機(jī)的端口交換功能,又可完成部分路由器的路由功能。當(dāng)然,這種二層設(shè)備與三層設(shè)備的結(jié)合,并不是簡單的物理結(jié)合,而是各取所長的邏輯結(jié)合。

其中最重要的表現(xiàn)是,當(dāng)某一信息源的第一個(gè)數(shù)據(jù)流進(jìn)入第三層交換機(jī)后,其中的路由系統(tǒng)將會(huì)產(chǎn)生一個(gè)MAC地址與IP地址映射表,并將該表存儲(chǔ)起來,當(dāng)同一信息源的后續(xù)數(shù)據(jù)流再次進(jìn)入第三層交換機(jī)時(shí),交換機(jī)將根據(jù)第一次產(chǎn)生并保存的地址映射表,直接從第二層由源地址傳輸?shù)侥康牡刂?,而不再需要?jīng)過第三層路由系統(tǒng)處理,從而消除了路由選擇時(shí)造成的網(wǎng)絡(luò)延遲,提高了數(shù)據(jù)包的轉(zhuǎn)發(fā)效率,解決了網(wǎng)間傳輸信息時(shí)路由產(chǎn)生的速率瓶頸。

如上所述,第三層交換機(jī)是將第二層交換機(jī)和第三層路由器兩者優(yōu)勢(shì)結(jié)合成一個(gè)有機(jī)、靈活并可在各層次提供線速性能的整體交換方案。在第三層交換這種集成化結(jié)構(gòu)中所支持的策略管理屬性,不僅使第二層與第三層相互關(guān)聯(lián)起來,而且還提供了流量優(yōu)先化處理、安全以及Trunking、虛擬網(wǎng)和Intranet的動(dòng)態(tài)部署等多種功能。另外,第三層交換的目標(biāo)也非常明確,即只需在源地址和目的地址之間建立一條更為直接快捷的第二層通路,而不必經(jīng)過路由器來轉(zhuǎn)發(fā)同一信息的每個(gè)數(shù)據(jù)包。

事實(shí)上,第三層交換方案是一個(gè)能夠支持分類所有層次動(dòng)態(tài)集成的解決方案,雖然這種多層次動(dòng)態(tài)集成也能夠由傳統(tǒng)路由器和第二層交換機(jī)搭載一起完成,但這種搭載方案與采用第三層交換機(jī)相比,不僅需要更多的設(shè)備配置、更大的空間、更多的布線和更高的成本,而且數(shù)據(jù)傳輸性能也要差得多,因?yàn)樵诤A繑?shù)據(jù)傳輸中,搭載方案中的路由器無法克服傳輸速率瓶頸。

二、第三層交換機(jī)的優(yōu)勢(shì)

在與一些朋友交談中,經(jīng)常會(huì)聽到類似“既然第三層交換機(jī)能實(shí)現(xiàn)路由器的功能,那么它會(huì)不會(huì)取代路由器?”這樣的疑問。的確,第三層交換機(jī)的技術(shù)越來越成熟,應(yīng)用也越來越普及,在一定范圍內(nèi),其比路由器有很大的優(yōu)勢(shì),但第三層交換機(jī)與路由器還是有很大區(qū)別,在局域網(wǎng)領(lǐng)域,第三層交換機(jī)具有明顯優(yōu)勢(shì)。

1.子網(wǎng)間傳輸帶寬可任意分配傳統(tǒng)路由器的每個(gè)串口都可以連接一個(gè)子網(wǎng),而這種通過路由器進(jìn)行傳輸?shù)淖泳W(wǎng)速率就會(huì)受到接口帶寬的直接限制。第三層交換機(jī)則不同,它可以把多個(gè)端口定義成一個(gè)虛擬網(wǎng)(VLAN),把多個(gè)端口組成的虛擬網(wǎng)作為虛擬網(wǎng)接口,該虛擬網(wǎng)內(nèi)的信息可通過組成虛擬網(wǎng)的端口發(fā)給第三層交換機(jī),由于端口數(shù)可任意指定,子網(wǎng)間的傳輸帶寬便沒有限制了。

2.合理配置信息資源因利用第三層交換機(jī)連接的網(wǎng)絡(luò)系統(tǒng),其訪問子網(wǎng)內(nèi)資源速率和訪問全局網(wǎng)中資源速率沒有區(qū)別,子網(wǎng)設(shè)置單獨(dú)服務(wù)器便沒有什么意義了。這樣,直接通過在全局網(wǎng)中來設(shè)置服務(wù)器群,在保證內(nèi)聯(lián)網(wǎng)寬帶傳輸速率的前提下,不僅可以節(jié)省費(fèi)用,利用服務(wù)器集群的軟硬件資源優(yōu)勢(shì),更可以做到合理配置和管理所有信息資源。這一點(diǎn)是路由器組網(wǎng)很難辦到的。

3.降低成本在企業(yè)網(wǎng)絡(luò)設(shè)計(jì)中,由于人們通常只用二層交換機(jī)構(gòu)成同一廣播域子網(wǎng),用路由器進(jìn)行各子網(wǎng)間的互聯(lián),使企業(yè)網(wǎng)絡(luò)形成一個(gè)內(nèi)聯(lián)網(wǎng),而路由器的價(jià)錢較高,所以支持內(nèi)聯(lián)網(wǎng)的企業(yè)網(wǎng)絡(luò)無法在設(shè)備上降低成本。目前,人們采用第三層交換機(jī)進(jìn)行內(nèi)聯(lián)網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)時(shí),既可以進(jìn)行任意虛擬子網(wǎng)劃分,又可以通過交換機(jī)三層路由功能完成子網(wǎng)間的通信,即建立子網(wǎng)與內(nèi)聯(lián)子網(wǎng)都可以用交換機(jī)完成,大大節(jié)省了價(jià)格昂貴的路由器。

4.交換機(jī)之間連接靈活在計(jì)算機(jī)網(wǎng)絡(luò)通信設(shè)備中,交換機(jī)之間是不允許存在任何回路的,而作為路由器,可以采用多條通路(如主備路由)來提高網(wǎng)絡(luò)的可靠性和負(fù)載平衡。為了解決這類矛盾,在第三層交換機(jī)中,一方面采用生成樹算法來阻塞造成回路的端口,在進(jìn)行路由選擇時(shí),又能依然把阻塞掉的通路作為可以選擇的路徑來參與路由選擇,從而極大地提高了交換機(jī)連接的靈活性。

從上面的介紹可以看出,不管是第二層交換機(jī)還是第三層交換機(jī),它們終究總屬于網(wǎng)橋類,是數(shù)據(jù)鏈路層的設(shè)備,第三層交換也只是實(shí)現(xiàn)路由器的部份第三層路由功能,使其具有線速轉(zhuǎn)發(fā)報(bào)文能力。因此,它們都只用于LAN-WAN的連接。路由器則能用于WAN-WAN之間的連接,作用于網(wǎng)絡(luò)層中的分組交換設(shè)備,具有協(xié)議交換能力,主要功能是可以解決異構(gòu)網(wǎng)絡(luò)之間的數(shù)據(jù)包的分組轉(zhuǎn)發(fā),這種分組轉(zhuǎn)發(fā)原理只是從一條線路上接受輸入分組,然后向另一條線路轉(zhuǎn)發(fā),這兩條線路可能分屬于不同拓?fù)渚W(wǎng)絡(luò),并采用不同協(xié)議,這點(diǎn)又是第三層交換機(jī)無法做到的,也是與路由器的主要區(qū)別。

綜上所述,第三層交換機(jī)非常適應(yīng)局域網(wǎng),而路由器可在廣域網(wǎng)中盡顯英雄本色,也就是說,第三層交換機(jī)無法適應(yīng)網(wǎng)絡(luò)拓?fù)涓鳟?,傳輸協(xié)議不同的廣域網(wǎng)環(huán)境。但近年來,隨著第三層交換技術(shù)的不斷發(fā)展與創(chuàng)新,第三層交換機(jī)的應(yīng)用已從企業(yè)網(wǎng)絡(luò)環(huán)境的骨干層、匯聚層,開始滲透到網(wǎng)絡(luò)邊緣接入層,尤其是小區(qū)寬帶網(wǎng)絡(luò)的發(fā)展,第三層交換機(jī)完全適合放置在小區(qū)中心和多個(gè)小區(qū)的匯聚層位置。所以說,第三層交換機(jī)雖然無法替代路由器,但卻完全動(dòng)搖了企業(yè)路由器的地位,即在企業(yè)內(nèi)聯(lián)網(wǎng)絡(luò)系統(tǒng),第三層交換機(jī)正在取代路由器。

三、第三層交換機(jī)的應(yīng)用領(lǐng)域

目前,普遍應(yīng)用于企業(yè)網(wǎng)絡(luò)中的第三層交換技術(shù),主要是VLAN,因?yàn)閂LAN打破了傳統(tǒng)網(wǎng)絡(luò)許多固有觀念,可使網(wǎng)絡(luò)結(jié)構(gòu)更加靈活、多變、方便和隨心所欲。所謂VLAN就是不需考慮用戶的物理位置,而根據(jù)信息端的IP地址、用戶名等直接與用戶聯(lián)系的特定標(biāo)志及應(yīng)用因素就可將用戶在邏輯上劃分為一個(gè)個(gè)功能相對(duì)獨(dú)立的工作組,且每個(gè)用戶主機(jī)都連接在一個(gè)支持VLAN的交換機(jī)端口上,并屬于一個(gè)VLAN。同一個(gè)VLAN中的成員都共享廣播,不同VLAN之間的廣播信息是相互隔離的。這就相當(dāng)于將整個(gè)網(wǎng)絡(luò)分割成了多個(gè)不同的廣播域,從而加強(qiáng)了企業(yè)內(nèi)聯(lián)網(wǎng)絡(luò)的管理與維護(hù)。因此,第三層交換機(jī)最適合于那些無需遠(yuǎn)程接入或以遠(yuǎn)程接入為輔的企業(yè)內(nèi)聯(lián)網(wǎng)絡(luò),或者大部分子網(wǎng)系統(tǒng)集中,而只有部分遠(yuǎn)程接入子網(wǎng)的企業(yè)內(nèi)聯(lián)網(wǎng)絡(luò)。

交換機(jī)從誕生到現(xiàn)在已經(jīng)歷了三代。第一代產(chǎn)品是一種由分立電子元件和原語式軟件相結(jié)合的簡單混合體,設(shè)備體積大、重量大、功耗高,所需散熱風(fēng)扇功率高、體積大,但性能較差。這樣,運(yùn)行在一個(gè)固定內(nèi)存處理機(jī)上的軟件系統(tǒng),雖然在管理和協(xié)議功能方面有許多改善,但當(dāng)用戶的日常業(yè)務(wù)更加依賴于網(wǎng)絡(luò),使得網(wǎng)絡(luò)流量不斷增加時(shí),網(wǎng)絡(luò)設(shè)備便成了傳輸瓶頸。第二代產(chǎn)品的硬件引進(jìn)了專門用于優(yōu)化第二層處理的專用集成電路ASIC(ApplicaTIonSpecificIntegratedCircuit)芯片,體積、功耗和性能都得到了極大改善,并降低了系統(tǒng)的整體成本,這就是傳統(tǒng)的第二層交換機(jī)。第三代交換機(jī)并不是簡單地建立在第二代交換設(shè)備上,而是在第三層路由、組播及用戶可選策略等方面提供了線速性能,在硬件方面也采用了性能與功能更先進(jìn)的ASIC芯片,也正是我們這個(gè)專題中的主題:第三代交換機(jī)。

四、三層交換機(jī)的工作過程

路由器的三層轉(zhuǎn)發(fā)主要依靠CPU進(jìn)行,而三層交換機(jī)的三層轉(zhuǎn)發(fā)依靠ASIC芯片完成,這就決定了兩者在轉(zhuǎn)發(fā)性能上的巨大差別。當(dāng)然,三層交換機(jī)并不能完全替代路由器,路由器所具備的豐富的接口類型、良好的流量服務(wù)等級(jí)控制、強(qiáng)大的路有能力等仍然是三層交換機(jī)的薄弱環(huán)節(jié)。目前的三層交換機(jī)一般是通過VLAN來劃分二層網(wǎng)絡(luò)并實(shí)現(xiàn)二層交換的,同時(shí)能夠?qū)崿F(xiàn)不同VLAN間的三層IP互訪。在討論三層交換機(jī)的轉(zhuǎn)發(fā)原理之前有必要交代一下不同網(wǎng)絡(luò)的主機(jī)之間互訪時(shí)的行為:

(1)源主機(jī)在發(fā)起通信之前,將主機(jī)的IP與目的主機(jī)的IP進(jìn)行比較,如果兩者位于同一個(gè)網(wǎng)段(用網(wǎng)絡(luò)掩碼計(jì)算后具有相同的網(wǎng)絡(luò)號(hào)),那么源主機(jī)直接向目的主機(jī)發(fā)送ARP請(qǐng)求,在收到目的主機(jī)的ARP應(yīng)答后獲得對(duì)方的物理層(MAC)地址,然后用對(duì)方MAC作為報(bào)文的目的MAC進(jìn)行報(bào)文發(fā)送。位于同一VLAN(網(wǎng)段)中的主機(jī)互訪時(shí)屬于這種情況,這時(shí)用于互連的交換機(jī)作二層交換轉(zhuǎn)發(fā);

(2)檔源主機(jī)判斷目的主機(jī)與主機(jī)位于不同的網(wǎng)段時(shí),它會(huì)通過網(wǎng)關(guān)(Gateway)來遞交報(bào)文,即發(fā)送ARP請(qǐng)求來獲取網(wǎng)關(guān)IP地址對(duì)應(yīng)的MAC,在得到網(wǎng)關(guān)的ARP應(yīng)答后,用網(wǎng)關(guān)MAC作為報(bào)文的目的MAC進(jìn)行報(bào)文發(fā)送。注意,發(fā)送報(bào)文的源IP是源主機(jī)的IP,目的IP仍然是目的主機(jī)的IP。位于不同VLAN(網(wǎng)段)中的主機(jī)互訪時(shí)屬于這種情況,這時(shí)用于互連的交換機(jī)作三層交換轉(zhuǎn)發(fā)。

為了后續(xù)討論的三層交換原理便于理解,這里簡單介紹一下三層交換機(jī)內(nèi)部結(jié)構(gòu),如圖1所示:

深入剖析三層交換機(jī)的工作過程

圖1三層交換機(jī)硬件結(jié)構(gòu)

三層交換機(jī)內(nèi)部的兩大部分是ASID和CPU,它們的作用分別如下:

1.ASIC:完成主要的二三層轉(zhuǎn)發(fā)功能,內(nèi)部包含用于二層轉(zhuǎn)發(fā)的MAC地址表以及用于IP轉(zhuǎn)發(fā)的三層轉(zhuǎn)發(fā)表;

2.CPU:用于轉(zhuǎn)發(fā)的控制,主要維護(hù)一些軟件表項(xiàng)(包括軟件路由表、軟件ARP表等等),并根據(jù)軟件表項(xiàng)的轉(zhuǎn)發(fā)信息來配置ASIC的硬件三層轉(zhuǎn)發(fā)表。當(dāng)然,CPU本身也可以完成軟件三層轉(zhuǎn)發(fā)。

從三層交換機(jī)的結(jié)構(gòu)和各部分作用可以看出,真正決定高速交換轉(zhuǎn)發(fā)的是ASIC中的二三層硬件表項(xiàng),而ASIC的硬件表項(xiàng)來源于CPU維護(hù)的軟件表項(xiàng)。

下面分別以兩種組網(wǎng)情況下主機(jī)間的通信來解釋三層交換機(jī)的轉(zhuǎn)發(fā)原理。

組網(wǎng)1如圖2所示,通信的源、目的主機(jī)連接在同一臺(tái)三層交換機(jī)上,但它們位于不同VLAN(網(wǎng)段)。對(duì)于三層交換機(jī)來說,這兩臺(tái)主機(jī)都位于它的直連網(wǎng)段內(nèi),它們的IP對(duì)應(yīng)的路由都是直連路由。

深入剖析三層交換機(jī)的工作過程

圖2三層轉(zhuǎn)發(fā)組網(wǎng)

圖2中標(biāo)明了兩臺(tái)主機(jī)的MAC、IP地址、網(wǎng)關(guān),以及三層交換機(jī)的MAC、不同VLAN配置的三層接口IP。當(dāng)PCA向PCB發(fā)起ICMP請(qǐng)求時(shí),流程如下:(假設(shè)三層交換機(jī)上還未建立任何硬件轉(zhuǎn)發(fā)表項(xiàng))

1.PCA首先檢查出目的IP地址2.1.1.2(PCB)與自己不在同一個(gè)網(wǎng)段,因此它發(fā)出請(qǐng)求網(wǎng)關(guān)地址1.1.1.1對(duì)應(yīng)MAC的ARP請(qǐng)求;

2.L3_SW收到PCA的ARP請(qǐng)求后,檢查請(qǐng)求報(bào)文,發(fā)現(xiàn)被請(qǐng)求IP是自己的三層接口IP,因此發(fā)送ARP應(yīng)答并將自己的三層接口MAC(MACS)包含在其中。同時(shí)它還會(huì)把PCA的IP地址與MAC地址對(duì)應(yīng)起來(1.1.1.2《==》MACA)關(guān)系記錄到自己的ARP表項(xiàng)中去(因?yàn)锳RP請(qǐng)求報(bào)文中包含了發(fā)送者的IP和MAC);

3.PCA得到網(wǎng)關(guān)(L3_SW)的ARP應(yīng)答后,組裝ICMP請(qǐng)求報(bào)文并發(fā)送,報(bào)文的目的MAC=MACS、源MAC=MACA、源IP=1。1。1。2、目的IP=2.1.1.2;

4.L3_SW收到報(bào)文后,首先根據(jù)報(bào)文的源MAC+VID(即VLANID)更新MAC地址表。然后,根據(jù)報(bào)文的目的MAC+VID查找MAC地址表,發(fā)現(xiàn)匹配了自己三層接口MAC的表項(xiàng)。這里說明一下,三層交換機(jī)為VLAN配置三層接口IP后,會(huì)在交換芯片的MAC地址表中添加三層接口MAC+VID的表項(xiàng),并且為表項(xiàng)的三層轉(zhuǎn)發(fā)標(biāo)志置位。當(dāng)報(bào)文的目的MAC匹配這樣的表項(xiàng)以后,說明需要作三層轉(zhuǎn)發(fā),于是繼續(xù)查找交換芯片的三層表項(xiàng);

5。芯片根據(jù)報(bào)文的目的IP去查找其三層表項(xiàng),由于之前未建立任何表項(xiàng),因此查找失敗,于是將報(bào)文送到CPU去進(jìn)行軟件處理;

6.CPU根據(jù)報(bào)文的目的IP去查找其軟件路由表,發(fā)現(xiàn)匹配了一個(gè)直連網(wǎng)段(PCB對(duì)應(yīng)的網(wǎng)段),于是繼續(xù)查找其軟件ARP表,仍然查找失敗。然后L3_SW會(huì)在目的網(wǎng)段對(duì)應(yīng)的VLAN3的所有端口發(fā)送請(qǐng)求地址2.1.1.2對(duì)應(yīng)MAC的ARP請(qǐng)求;

7.PCB收到L3_SW發(fā)送的ARP請(qǐng)求后,檢查發(fā)現(xiàn)被請(qǐng)求IP是自己的IP,因此發(fā)送ARP應(yīng)答并將自己的MAC(MACB)包含在其中。同時(shí),將L3_SW的IP與MAC的對(duì)應(yīng)關(guān)系(2。1。1。1<==>MACS)記錄到自己的ARP表中去;

8。L3_SW收到PCB的ARP應(yīng)答后,將其IP和MAC對(duì)應(yīng)關(guān)系(2.1.1.2《==》MACB)記錄到自己的ARP表中去,并將PCA的ICMP請(qǐng)求報(bào)文發(fā)送給PCB,報(bào)文的目的MAC修改為PCB的MAC(MACB),源MAC修改為自己的MAC(MACS)。同時(shí),在交換芯片的三層表項(xiàng)中根據(jù)剛才得到的三層轉(zhuǎn)發(fā)信息添加表項(xiàng)(內(nèi)容包括IP、MAC、出口VLAN、出端口等),這樣后續(xù)的PCA發(fā)送PCB的報(bào)文就可以通過該硬件三層表項(xiàng)直接轉(zhuǎn)發(fā)了;

9.PCB收到L3_SW轉(zhuǎn)發(fā)過來的ICMP請(qǐng)求報(bào)文以后,回應(yīng)ICMP應(yīng)答給PCA。ICMP應(yīng)答報(bào)文的轉(zhuǎn)發(fā)過程與前面類似,只是由于L3_SW在之前已經(jīng)得到PCA的IP和MAC對(duì)應(yīng)關(guān)系了,也同時(shí)在交換芯片中添加了相關(guān)的三層表項(xiàng),因此這個(gè)報(bào)文直接由交換芯片硬件轉(zhuǎn)發(fā)給PCA;

這樣,后續(xù)的往返報(bào)文都經(jīng)過查MAC表=>查三層轉(zhuǎn)發(fā)表的過程由交換芯片直接進(jìn)行硬件轉(zhuǎn)發(fā)了。

從上述流程可以看書,三層交換正是充分利用了“一次路由(首包CPU轉(zhuǎn)發(fā)并建立三層轉(zhuǎn)發(fā)硬件表項(xiàng))、多次交換(后續(xù)包芯片硬件轉(zhuǎn)發(fā))”的原理實(shí)現(xiàn)了轉(zhuǎn)發(fā)性能與三層交換的完美統(tǒng)一。

下面介紹另一種組網(wǎng)情況的三層轉(zhuǎn)發(fā)流程,如圖3所示。

深入剖析三層交換機(jī)的工作過程

如圖3三層轉(zhuǎn)發(fā)組網(wǎng)2

圖3中標(biāo)明了兩臺(tái)主機(jī)的MAC、IP地址、網(wǎng)關(guān),以及兩臺(tái)三層交換機(jī)的MAC、不同VLAN配置的三層接口IP。假設(shè)L3_SW1上配置了靜態(tài)路由:IProute2。1。1。0255。255。255。03。1。1。2;L3_SW2上配置了靜態(tài)路由:IProute1。1。1。0255。255。255。03。1。1。1。當(dāng)然,路由信息也可以通過動(dòng)態(tài)路由協(xié)議的交互來獲得,有關(guān)路由的知識(shí)請(qǐng)查閱相關(guān)文檔。

這種組網(wǎng)情況下的轉(zhuǎn)發(fā)過程與圖2的組網(wǎng)1情況是類似的,下面的流程講解中降省略部分前面已經(jīng)分析過的細(xì)節(jié)問題。當(dāng)PCA向PCB發(fā)起ICMP請(qǐng)求時(shí),流程如下:(假設(shè)三層交換機(jī)上還未建立任何硬件轉(zhuǎn)發(fā)表項(xiàng))

1.PCA首先檢查出目的IP地址2。1。1。2(PCB)與自己不在同一個(gè)網(wǎng)段,因此它通過ARP解析得到網(wǎng)關(guān)地址1。1。1。1對(duì)應(yīng)的MAC(MACS1)。然后,PCA組裝ICMP請(qǐng)求報(bào)文并發(fā)送,報(bào)文的目的MAC=MACS1、源MAC=MACA、源IP=1.1.1.2、目的IP=2.1.1.2;

2.L3_SW1收到報(bào)文后,首先根據(jù)報(bào)文的源MAC+VID更新MAC地址表。然后,根據(jù)報(bào)文的目的MAC+VID查找MAC地址表,發(fā)現(xiàn)匹配了自己三層接口MAC的表項(xiàng),于是繼續(xù)查找芯片的三層轉(zhuǎn)發(fā)表;

3.由于之前未建立任何表項(xiàng),因此三層轉(zhuǎn)發(fā)表查找失敗,于是將報(bào)文送到CPU去進(jìn)行軟件處理;

4.CPU根據(jù)報(bào)文的目的IP去查找其路由軟件表,發(fā)現(xiàn)匹配路由2。1。1。0/24,其下一跳IP地址為3。1。1。2,于是繼續(xù)查找3。1。1。2是否有對(duì)應(yīng)的ARP,仍然查找失敗。然后L3_SW1在下一跳地址3。1。1。2對(duì)應(yīng)的VLAN4內(nèi)發(fā)起ARP請(qǐng)求,并得到L3_SW2的回應(yīng),從而得到I和MAC對(duì)應(yīng)關(guān)系(3。1。1。2<==>MACS2);

5。L3_SW1將PcA發(fā)出的ICMP請(qǐng)求報(bào)文轉(zhuǎn)發(fā)給L3_Sw2,報(bào)文的目的MAC修改為L3_SW2的MAC(MACS2),源MAC修改為自己的MAC(MACS1)。同時(shí),將剛剛用到的轉(zhuǎn)發(fā)信息添加到交換芯片的三成轉(zhuǎn)發(fā)表中去,包括匹配的網(wǎng)段2。1。1。0/24、下一跳地址的MAC(MACS2)、出口VLAN、出端口。這樣,后續(xù)發(fā)往2。1。1。2的報(bào)文就可以直接通過交換芯片硬件轉(zhuǎn)發(fā)了;

6。L3_SW2收到報(bào)文后,與組網(wǎng)1中的處理類似,經(jīng)過查MAC表=>查三層轉(zhuǎn)發(fā)表=>送CPU=>匹配直連路由=>ARP解析=>轉(zhuǎn)發(fā)報(bào)文同時(shí)添加硬件表項(xiàng)的過程,將報(bào)文轉(zhuǎn)發(fā)給PCB,此時(shí)報(bào)文的目的MAC修改為PCB的MAC(MACB),源MAC修改為L3_SW2的MAC(MACS2)。這樣后續(xù)發(fā)往2。1。1。2的報(bào)文就直接由交換芯片硬件轉(zhuǎn)發(fā)了;

7。PCB收到來自PCA的ICMP請(qǐng)求報(bào)文后進(jìn)行ICMP應(yīng)答。由于在ICMP請(qǐng)求報(bào)文轉(zhuǎn)發(fā)的過程中,每個(gè)網(wǎng)段的兩端節(jié)點(diǎn)都已經(jīng)通過ARP解析得到了對(duì)方的IP和MAC對(duì)應(yīng)關(guān)系,因此應(yīng)答報(bào)文的轉(zhuǎn)發(fā)完全由交換芯片完成(查MAC表=>查三層轉(zhuǎn)發(fā)表=>發(fā)送);

這樣,后續(xù)的往返報(bào)文都經(jīng)過查MAC表=>查三層轉(zhuǎn)發(fā)表的過程由交換芯片直接進(jìn)行硬件轉(zhuǎn)發(fā)了。

從上述兩種組網(wǎng)情況下的轉(zhuǎn)發(fā)流程可以看出,三層交換機(jī)的轉(zhuǎn)發(fā)具有以下特點(diǎn):

1。首包通過CPU轉(zhuǎn)發(fā),同時(shí)建立交換芯片硬件表項(xiàng);后續(xù)包由交換芯片直接硬件轉(zhuǎn)發(fā),即常說的“一次路由、多次交換”;

2。交換芯片的硬件轉(zhuǎn)發(fā)并不關(guān)心路由的具體下一跳IP地址是多少,硬件三層表項(xiàng)中只包含了目的地址(或網(wǎng)段)、目的IP(或下一跳IP)對(duì)應(yīng)的MAC、出口VLAN、出端口;(這里說明一下,并不是所有的三層交換機(jī)的硬件三層表項(xiàng)都會(huì)包含“出端口”的。)

3。IP報(bào)文每經(jīng)過一次三層轉(zhuǎn)發(fā),它的源、目的MAC都會(huì)變化,但是源IP、目的IP是始終不變。

在三層交換轉(zhuǎn)發(fā)中,交換芯片(ASIC)起到了至關(guān)重要的作用,因此三層交換機(jī)的性能和轉(zhuǎn)發(fā)特點(diǎn)主要取決于交換芯片的實(shí)現(xiàn)機(jī)制。在三層交換原理一節(jié)中講解的三層交換原理只是一個(gè)大致的轉(zhuǎn)發(fā)流程,對(duì)于使用了不同交換芯片的三層交換機(jī),其硬件轉(zhuǎn)發(fā)過程中的一些細(xì)節(jié)內(nèi)容是有所區(qū)別的。本節(jié)主要就硬件三層表項(xiàng)的結(jié)構(gòu)和查表方式介紹幾種不同的實(shí)現(xiàn)。

從前面的描述可以看出,三層轉(zhuǎn)發(fā)是必然需要路由信息的,而轉(zhuǎn)發(fā)過程中的路由選擇決定了報(bào)文的最終出口如何,三層交換機(jī)只是將這種路由功能整合到交換芯片中去了。路由選擇存在精確匹配和最長匹配兩種方式,精確匹配即目的IP地址與路由的地址信息必須完全吻合,而最長匹配則是選擇所有包含了目的地址的路由中掩碼最長的一條。

早期的三層交換機(jī)上,其交換芯片多采用精確匹配的方式,它們的硬件三層表項(xiàng)中只包含其目的IP地址,并不帶掩碼信息。比如在轉(zhuǎn)發(fā)目的IP為2。1。1。2的報(bào)文時(shí),通過軟件查找匹配了非直路由2。1。1。0/24,那么就將2。1。1。2的轉(zhuǎn)發(fā)信息添加到交換芯片中去,如果繼續(xù)來了目的IP為2。1。1。3的報(bào)文需要轉(zhuǎn)發(fā),則需要重新進(jìn)行軟件查找,并在交換芯片中為2。1。1。3增加新的表項(xiàng)。這樣的選錄方式表項(xiàng)結(jié)構(gòu)對(duì)交換芯片的硬件資源要求很高,因?yàn)樾酒屑傻谋眄?xiàng)存儲(chǔ)空間是有限的,如果要發(fā)大量目的IP地址不同的報(bào)文那么就需要添加大量的硬件表項(xiàng)。曾經(jīng)泛濫一時(shí)的沖擊波病毒,就導(dǎo)致了當(dāng)時(shí)大量的只支持精確匹配的三層交換機(jī)資源耗盡。因?yàn)闆_擊波病毒的手段之一就是發(fā)送巨數(shù)量的網(wǎng)段掃描報(bào)文,而多數(shù)三層交換機(jī)上都配置了缺省路由,這樣所有的報(bào)文在CPU軟件查找都能夠找到匹配路由,進(jìn)而針對(duì)每一個(gè)病毒報(bào)文的目的IP都需要新增硬件表項(xiàng)并迅速將硬件資源滿。這樣,大部分用戶的正常數(shù)據(jù)流由于轉(zhuǎn)發(fā)資源耗盡而得不到高速處理了。

由于精確匹配方式的三層交換機(jī)的這種缺陷,后期的三層交換機(jī)增加了對(duì)最長匹配方式的支持,即硬件三層表項(xiàng)中可同時(shí)包含IP地址和掩碼,在查找時(shí)遵循最長匹配原則。這種類型的三層交換機(jī),一般在軟件路由表建立時(shí)就將路由信息添加到硬件三層表中去,包括直連路由和非直連路由。對(duì)于直連路由,對(duì)應(yīng)的硬件三層表項(xiàng)的“toCUP”標(biāo)志位始終置1,報(bào)文的目的IP匹配這樣的表項(xiàng)被送往CPU處理,CPU軟件會(huì)在直連網(wǎng)段發(fā)送ARP請(qǐng)求,并將獲取的ARP信息作為主機(jī)路由添加到硬件表項(xiàng)中(對(duì)應(yīng)的“toCUP”標(biāo)志位置0),這樣后續(xù)的同樣目的IP的報(bào)文就直接通過新添加的硬件表項(xiàng)轉(zhuǎn)發(fā)了;對(duì)于非直連路由,當(dāng)下一跳地址對(duì)應(yīng)ARP信息還未獲得時(shí),對(duì)應(yīng)的硬件三層表項(xiàng)的“toCUP”標(biāo)志位置1,報(bào)文的目的IP匹配這樣的表項(xiàng)以后被送往CPU處理,CPU軟件會(huì)在下一跳地址對(duì)應(yīng)的直連網(wǎng)段發(fā)送ARP請(qǐng)求,并使用獲取的ARP信息中的下一跳MAC、出口VLAN等信息更新對(duì)應(yīng)的硬件三層表項(xiàng),然后將其“toCUP”標(biāo)志位置0,這樣后續(xù)的目的IP匹配該非直連路由的報(bào)文就能夠直接通過修改后的硬件表項(xiàng)轉(zhuǎn)發(fā)了。

目前,大多數(shù)的三層交換機(jī)均能夠同時(shí)支持精確匹配表項(xiàng)和最長匹配表項(xiàng),一般來說精確匹配表項(xiàng)對(duì)應(yīng)于軟件中的ARP表,最長匹配表項(xiàng)對(duì)應(yīng)于軟件中的直連路由和非直連路由。

在交換機(jī)三層轉(zhuǎn)發(fā)流程中,曾經(jīng)提到,硬件三層表項(xiàng)由目的IP(或網(wǎng)段)、目的IP(或下一跳IP)對(duì)應(yīng)MAC、出口VLAN、出端口組成,采用這樣表項(xiàng)的三層交換芯片一般直接通過查找三層轉(zhuǎn)發(fā)表項(xiàng)就能夠完成轉(zhuǎn)發(fā)。這種處理機(jī)制流程簡單、轉(zhuǎn)發(fā)效率高,但是也使得CPU軟件對(duì)硬件表項(xiàng)的配置控制比較復(fù)雜,因?yàn)槊慨?dāng)IP地址對(duì)應(yīng)的MAC和物理端口出現(xiàn)變化,就必須對(duì)三層轉(zhuǎn)發(fā)表項(xiàng)進(jìn)行更新。而在交換機(jī)上二層信息變化的可能性是比較大的,特別是交換機(jī)支持鏈路聚合、生成樹等冗余機(jī)制,所以在某些應(yīng)用環(huán)境中CPU不得不經(jīng)常的對(duì)三層轉(zhuǎn)發(fā)表進(jìn)行更新,一旦更新出現(xiàn)問題(特別是出端口錯(cuò)誤)必然對(duì)轉(zhuǎn)發(fā)造成嚴(yán)重的不利影響。

不過,并不是所有的三層交換機(jī)的硬件三層表項(xiàng)都帶有出端口信息,部分交換芯片使用的硬件表項(xiàng)只包括目的IP(或網(wǎng)段)、目的IP(或下一跳IP)對(duì)應(yīng)的MAC、出口VLAN,從轉(zhuǎn)發(fā)流程上來說有以下變化:根據(jù)報(bào)文的目的IP查找三層轉(zhuǎn)發(fā)表后,只得到了目的IP(或下一跳IP)對(duì)應(yīng)的MAC和出口VLAN;然后繼續(xù)根據(jù)MAC+VID去查找MAC地址表,并最終獲得出端口信息,如果查找MAC表失敗的話會(huì)在出口VLAN進(jìn)行廣播。這樣的處理機(jī)制雖然增加了芯片處理復(fù)雜度,但是流程更加清晰合理,CPU的處理更加簡單,因?yàn)槲锢沓隹诘淖兓恍枰从吃贛AC地址表中就可以了,硬件三層表項(xiàng)無需頻繁更新。

這兩種處理方式的交換芯片各有優(yōu)勢(shì),不同廠商會(huì)根據(jù)成本、可靠性、產(chǎn)品定位等各方面因素來進(jìn)行選擇,這也使得不同型號(hào)的三層交換機(jī)在同一應(yīng)用環(huán)境中可能有不同的表現(xiàn)。

中傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:

凡本網(wǎng)注明[來源:中國傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

關(guān)注伺服與運(yùn)動(dòng)控制公眾號(hào)獲取更多資訊

關(guān)注直驅(qū)與傳動(dòng)公眾號(hào)獲取更多資訊

關(guān)注中國傳動(dòng)網(wǎng)公眾號(hào)獲取更多資訊

最新新聞
查看更多資訊

娓娓工業(yè)

廣州金升陽科技有限公司

熱搜詞
  • 運(yùn)動(dòng)控制
  • 伺服系統(tǒng)
  • 機(jī)器視覺
  • 機(jī)械傳動(dòng)
  • 編碼器
  • 直驅(qū)系統(tǒng)
  • 工業(yè)電源
  • 電力電子
  • 工業(yè)互聯(lián)
  • 高壓變頻器
  • 中低壓變頻器
  • 傳感器
  • 人機(jī)界面
  • PLC
  • 電氣聯(lián)接
  • 工業(yè)機(jī)器人
  • 低壓電器
  • 機(jī)柜
回頂部
點(diǎn)贊 0
取消 0