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

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

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



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

 



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

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

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

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

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

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

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

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

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

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

海外服務(wù)器免費測試http://hbjsdrq.com/


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