新聞資訊
行業(yè)資訊
你所了解的三層交換機(jī),是這樣工作的
2017-11-17 00:00:00
摘要:為什么我們說三層交換機(jī)的三層轉(zhuǎn)發(fā)性能要比路由器的效率要高的多?有時(shí)候在很多書里會(huì)提及到現(xiàn)在路由器的軟件做的也非常強(qiáng)大,幾乎也能夠達(dá)到限速轉(zhuǎn)發(fā)的能力;但是軟件能夠和硬件比嗎,不太可能;交換機(jī)之所以轉(zhuǎn)發(fā)速度快是因?yàn)榻粨Q機(jī)使用了專門的ASIC硬件轉(zhuǎn)發(fā)卡,而路由器是software-based 的轉(zhuǎn)發(fā)。

  為什么我們說三層交換機(jī)的三層轉(zhuǎn)發(fā)性能要比路由器的效率要高的多?有時(shí)候在很多書里會(huì)提及到現(xiàn)在路由器的軟件做的也非常強(qiáng)大,幾乎也能夠達(dá)到限速轉(zhuǎn)發(fā)的能力;但是軟件能夠和硬件比嗎,不太可能;交換機(jī)之所以轉(zhuǎn)發(fā)速度快是因?yàn)榻粨Q機(jī)使用了專門的ASIC硬件轉(zhuǎn)發(fā)卡,而路由器是software-based 的轉(zhuǎn)發(fā)。

  我們習(xí)慣說,在二層網(wǎng)絡(luò)環(huán)境中相同vlan之間可以通信,不同vlan之間不可以通信,如果想通信必須借助三層設(shè)備,所以說三層交換機(jī)必須要做的事情是路由轉(zhuǎn)發(fā),但是具體的工作原理是什么樣的呢 ?



  首先三層交換機(jī)在同一子網(wǎng)和不同子網(wǎng)環(huán)境中都分別會(huì)做些什么事情,有哪些不同呢?

 



  如上圖,在二層環(huán)境中A---B之間通信,A發(fā)送一個(gè)數(shù)據(jù)包目的MAC地址是B,當(dāng)發(fā)送到交換機(jī),交換機(jī)基于目的MAC地址的轉(zhuǎn)發(fā),然后開始查看自己的MAC表項(xiàng),找出對(duì)應(yīng)的出口出去了整個(gè)過程中只有MAC地址的查找,沒有對(duì)數(shù)據(jù)幀產(chǎn)生任何的改變,我在這只對(duì)二層幀轉(zhuǎn)發(fā)做一個(gè)簡(jiǎn)短而又簡(jiǎn)單的描述,畢竟重點(diǎn)不在這。

  在三層環(huán)境中 A---C之間通信,A發(fā)送一個(gè)數(shù)據(jù)包,目的MAC地址應(yīng)該是網(wǎng)關(guān)MAC地址,也即是交換機(jī)的MAC地址SMAC好在這里插一個(gè)小插曲,之前有人問過我說一個(gè)交換機(jī)要不要三層轉(zhuǎn)發(fā)是怎么判斷的,我當(dāng)時(shí)的回答是看這個(gè)數(shù)據(jù)包的mac地址是不是自己,如果是就執(zhí)行三層轉(zhuǎn)發(fā),別人說回答是正確的;但是當(dāng)我回來研究這個(gè)問題的時(shí)候,我發(fā)現(xiàn)當(dāng)時(shí)我的回答是不嚴(yán)謹(jǐn)?shù)?,為什??當(dāng)一個(gè)交換機(jī)收到一個(gè)數(shù)據(jù)包的二層目的mac地址是自己,此時(shí)它要做什么?

  插個(gè)一個(gè)小插曲,前兩天在微信上看過這樣的一個(gè)小短片,說的是在一所大學(xué)教室里,有兩個(gè)男生特別喜歡坐在他們身后的班花,就不停的看著那個(gè)女孩,突然,那個(gè)女孩站起來準(zhǔn)備走了,在路過他們身邊的時(shí)候塞給了坐在一邊的男生一個(gè)卷起來的小紙條;物理上,這個(gè)女生是將紙條遞給了這個(gè)男生,想想這個(gè)男生接下來要做什么事情?是要打開紙條查看里面寫了什么內(nèi)容吧!三層交換機(jī)在接收到目的mac地址是自己的時(shí)候要做的事情也是向上層解封裝,查看三層目的IP地址,然后呢

  ?當(dāng)時(shí)那個(gè)男生很高興的拿著那個(gè)紙條,然后打開了,上面寫著“請(qǐng)將紙條遞給下一個(gè)人”,哈哈,,,三層交換機(jī)也是這樣一看原來目的IP地址不是自己,這才執(zhí)行路由層面的轉(zhuǎn)發(fā);所以說交換機(jī)在執(zhí)行要不要三層轉(zhuǎn)發(fā),是在目的mac是自己的同時(shí),IP地址是不是自己,如果是自己那還轉(zhuǎn)發(fā)個(gè)啥來,就不用轉(zhuǎn)發(fā)了。

  交換機(jī)在判斷出目的IP不是自己的時(shí)候是不是一定就去查看路由表呢 ?不是,這個(gè)就是交換機(jī)的關(guān)鍵所在了,交換機(jī)此時(shí)不會(huì)查看路由表,不會(huì)查看arp表,不會(huì)查看mac地址表;那交換機(jī)會(huì)查看什么表?

  交換機(jī)此時(shí)會(huì)查看自己集成在ASIC硬件轉(zhuǎn)發(fā)卡中的硬件轉(zhuǎn)發(fā)表,那這個(gè)硬件轉(zhuǎn)發(fā)表都包含了什么內(nèi)容呢?

  當(dāng)?shù)谝粋€(gè)包過來的時(shí)候,發(fā)現(xiàn)硬件轉(zhuǎn)發(fā)表并沒有什么表項(xiàng),所以此時(shí)必須將數(shù)據(jù)包交由路由進(jìn)程處理,一旦交由cpu處理,必然會(huì)消耗cpu資源,此時(shí)會(huì)查看路由表,然后發(fā)現(xiàn)此IP地址個(gè)自己是直連的,此時(shí)就去查看arp找出此地址對(duì)應(yīng)的mac地址,就可以轉(zhuǎn)發(fā)出去了

  在決定轉(zhuǎn)發(fā)出去過程中,交換機(jī)至少會(huì)做三件事情,一,修改IP包頭的ttl值;二,修改原mac地址,改成自己出接口mac地址;三,建立交換機(jī)硬件轉(zhuǎn)發(fā)表,包括目的IP地址,目的IP地址(下一跳)對(duì)應(yīng)的mac地址,mac地址對(duì)應(yīng)的vlan,以及對(duì)應(yīng)的端口(這個(gè)每個(gè)廠家有自己的理解)

  這樣當(dāng)一下包過來的時(shí)候,交換機(jī)就會(huì)查看硬件轉(zhuǎn)發(fā)表直接轉(zhuǎn)發(fā)而不會(huì)在經(jīng)過路由表的查詢了,也即是交換機(jī)的一次路由,多次交換機(jī)原理。

  每個(gè)廠家在這一塊定義都不太一樣,但原理是一樣的,cisco中使用的是cef表,并且在路由器的現(xiàn)在也集成了基于軟件的cef,其中cef包含了三張表,包括FIB表、鄰接表(硬件轉(zhuǎn)發(fā)表)和netflow表項(xiàng)。

海外服務(wù)器免費(fèi)測(cè)試http://running-capacitor.com/


USA-IDC為您提供免備案服務(wù)器 0元試用
立即聯(lián)系在線客服,即可申請(qǐng)免費(fèi)產(chǎn)品試用服務(wù)
立即申請(qǐng)