日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢(xún)客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

1 共享式以太網(wǎng)互連

以太網(wǎng)采用CSMA/CD機(jī)制,這種沖突檢測(cè)方法使得以太網(wǎng)可以使用共享總線型的連接方式。最初的局域網(wǎng)搭建采用HUB或者同軸電纜將同一網(wǎng)絡(luò)的主機(jī)互連起來(lái),如圖1所示。

收藏!一文搞懂交換基礎(chǔ)知識(shí)

共享式以太網(wǎng)互連

 

HUB與同軸電纜都是典型的物理層設(shè)備,所有互連的設(shè)備位于一個(gè)沖突域中,當(dāng)網(wǎng)絡(luò)流量較小時(shí),沖突較少發(fā)生,利用沖突檢測(cè)機(jī)制已經(jīng)可以較好的保證通信質(zhì)量;但是當(dāng)網(wǎng)絡(luò)流量增加到一定程度時(shí),將導(dǎo)致沖突不斷,網(wǎng)絡(luò)的吞吐量受到嚴(yán)重影響,數(shù)據(jù)也可能頻繁的由于沖突而被拒絕發(fā)送。二層交換機(jī)的出現(xiàn)有效的解決了這個(gè)問(wèn)題,大大的減小了沖突域的范圍。

2 二層交換原理

二層交換機(jī)工作在OSI模型的第二層,即數(shù)據(jù)鏈路層,它對(duì)數(shù)據(jù)包的轉(zhuǎn)發(fā)是建立在鏈路層信息——mac(Media Access Control )地址基礎(chǔ)之上的,它的內(nèi)部一般使用稱(chēng)為ASIC(Application Specific Integrated Circuit )的硬件芯片來(lái)實(shí)現(xiàn)轉(zhuǎn)發(fā),同時(shí)由于是硬件轉(zhuǎn)發(fā),其轉(zhuǎn)發(fā)性能非常高。二層交換機(jī)不同的端口發(fā)送和接收數(shù)據(jù)獨(dú)立,各端口屬于不同的沖突域,因此有效地隔離了網(wǎng)絡(luò)中物理層沖突域,使得通過(guò)它互連的主機(jī)(或網(wǎng)絡(luò))之間不必再擔(dān)心流量大小對(duì)于數(shù)據(jù)發(fā)送沖突的影響,典型的組網(wǎng)結(jié)構(gòu)如圖2所示。

收藏!一文搞懂交換基礎(chǔ)知識(shí)

多臺(tái)主機(jī)通過(guò)二層交換機(jī)互連

由于二層交換機(jī)的轉(zhuǎn)發(fā)依據(jù)是MAC地址,下面先簡(jiǎn)單介紹一下這個(gè)概念。

2.1 MAC地址簡(jiǎn)介

在每個(gè)以太網(wǎng)幀的幀頭,都包含有一個(gè)目的MAC地址和一個(gè)源MAC地址,它的作用是標(biāo)志幀的源節(jié)點(diǎn)和目的節(jié)點(diǎn)的物理地址。一個(gè)MAC地址有48bit(6個(gè)字節(jié)),從應(yīng)用上可以分為單播地址、組播地址、廣播地址:

(1) 單播地址:第1字節(jié)的最低位為0,比如0000-0EF3-0038,一般用于標(biāo)志唯一的設(shè)備;

(2) 組播地址:第1字節(jié)的最低位為1,比如0100-5E00-0001,一般用于標(biāo)志同屬一組的多個(gè)設(shè)備;

(3) 廣播地址:所有48bit全為1,即FFFF-FFFF-FFFF,它用于標(biāo)志同一網(wǎng)段中的所有設(shè)備。

在常用的以太網(wǎng)幀結(jié)構(gòu)中,目的、源MAC的位置如圖3所示。

 

收藏!一文搞懂交換基礎(chǔ)知識(shí)

常見(jiàn)的以太網(wǎng)幀結(jié)構(gòu)

 

2.2 二層交換基本原理

二層交換機(jī)通過(guò)解析和學(xué)習(xí)以太網(wǎng)幀的源MAC來(lái)維護(hù)MAC地址與端口的對(duì)應(yīng)關(guān)系(保存MAC與端口對(duì)應(yīng)關(guān)系的表稱(chēng)為MAC表),通過(guò)其目的MAC來(lái)查找MAC表決定向哪個(gè)端口轉(zhuǎn)發(fā),基本流程如下:

(1) 二層交換機(jī)收到以太網(wǎng)幀,將其源MAC與接收端口的對(duì)應(yīng)關(guān)系寫(xiě)入MAC表,作為以后的二層轉(zhuǎn)發(fā)依據(jù)。如果MAC表中已有相同表項(xiàng),那么就刷新該表項(xiàng)的老化時(shí)間。MAC表表項(xiàng)采取一定的老化更新機(jī)制,老化時(shí)間內(nèi)未得到刷新的表項(xiàng)將被刪除掉;

(2) 根據(jù)以太網(wǎng)幀的目的MAC去查找MAC表,如果沒(méi)有找到匹配表項(xiàng),那么向所有端口轉(zhuǎn)發(fā)(接收端口除外);如果目的MAC是廣播地址,那么向所有端口轉(zhuǎn)發(fā)(接收端口除外);如果能夠找到匹配表項(xiàng),則向表項(xiàng)所示的對(duì)應(yīng)端口轉(zhuǎn)發(fā),但是如果表項(xiàng)所示端口與收到以太網(wǎng)幀的端口相同,則丟棄該幀。

從上述流程可以看出,二層交換通過(guò)維護(hù)MAC表以及根據(jù)目的MAC查表轉(zhuǎn)發(fā),有效的利用了網(wǎng)絡(luò)帶寬,改善了網(wǎng)絡(luò)性能。圖4是一個(gè)二層交換的示例。

收藏!一文搞懂交換基礎(chǔ)知識(shí)

二層交換示例

 

二層交換機(jī)的MAC地址老化和刷新通常直接由硬件ASIC芯片來(lái)完成,這里順便介紹一下其通常采用的機(jī)制:

(1) 在芯片中儲(chǔ)存的每一個(gè)動(dòng)態(tài)添加的MAC地址表項(xiàng)都有一個(gè) 1 bit 長(zhǎng)度的老化標(biāo)志,同時(shí)芯片有一個(gè)老化定時(shí)器用于控制地址老化;

(2) 對(duì)于新學(xué)習(xí)到的MAC地址表項(xiàng),其老化標(biāo)志位置1;對(duì)于已經(jīng)學(xué)習(xí)到的MAC表項(xiàng),如果后續(xù)有報(bào)文的源MAC與表項(xiàng)相同,那么將其老化標(biāo)志位刷新為1;

(3) 每當(dāng)芯片的老化定時(shí)器超時(shí)后,將MAC地址表中老化標(biāo)志位等于1的項(xiàng)目,修改其老化標(biāo)志位等于0;對(duì)于MAC地址表中老化標(biāo)志位等于0的項(xiàng)目,直接刪除。

在這樣的老化更新機(jī)制下,MAC地址的實(shí)際老化時(shí)間并不是精確的,而是一個(gè)范圍:1~2倍的老化定時(shí)器時(shí)間。

二層交換機(jī)雖然能夠隔離沖突域,但是它并不能有效的劃分廣播域。因?yàn)閺那懊娼榻B的二層交換機(jī)轉(zhuǎn)發(fā)流程可以看出,廣播報(bào)文以及目的MAC查找失敗的報(bào)文會(huì)向所有端口轉(zhuǎn)發(fā),當(dāng)網(wǎng)絡(luò)中的主機(jī)數(shù)量增多時(shí),這種情況會(huì)消耗大量的網(wǎng)絡(luò)帶寬,并且在安全性方面也帶來(lái)一系列問(wèn)題。當(dāng)然,通過(guò)路由器來(lái)隔離廣播域是一個(gè)辦法,但是由于路由器的高成本以及轉(zhuǎn)發(fā)性能低的特點(diǎn)使得這一方法應(yīng)用有限。基于這些情況,二層交換中出現(xiàn)了VLAN技術(shù)。

2.3 支持VLAN的二層交換機(jī)

2.3.1 VLAN簡(jiǎn)介

VLAN,即Virtual Local Area Network(虛擬局域網(wǎng)),遵循IEEE802.1Q標(biāo)準(zhǔn),它在原來(lái)的以太網(wǎng)幀源MAC字段的后面加入了4個(gè)字節(jié)的VLAN Tag,這4字節(jié)的結(jié)構(gòu)如圖5所示。

收藏!一文搞懂交換基礎(chǔ)知識(shí)

VLAN Tag示意圖

VLAN Tag中各字段的含義如下:

Type:取固定值0x8100,用于標(biāo)志VLAN Tag;

User Priority:用戶(hù)優(yōu)先級(jí),用于流量的等級(jí)劃分;

Flag:該bit在以太網(wǎng)中固定取0;

VLAN-ID:取值為0~4095,用于標(biāo)志不同VLAN。

由于不同VLAN之間是二層隔離的,通過(guò)將不同的主機(jī)劃分到不同的VLAN中去,就有效的控制了廣播域的范圍。我們知道,通常情況下主機(jī)發(fā)出的報(bào)文都是不帶VLAN Tag的(稱(chēng)為Untagged報(bào)文),那么如何將這樣的報(bào)文劃分到某個(gè)VLAN中去呢。VLAN劃分的方法有多種,包括基于端口劃分、基于MAC劃分、基于IP劃分、基于協(xié)議劃分等等。目前,基于端口來(lái)劃分VLAN是使用最為廣泛的,也就是通過(guò)收到報(bào)文的端口來(lái)決定Untagged報(bào)文屬于哪個(gè)VLAN。當(dāng)Untagged報(bào)文進(jìn)入交換機(jī)內(nèi)部以后,會(huì)根據(jù)VLAN劃分被加上VLAN Tag,然后進(jìn)行后續(xù)轉(zhuǎn)發(fā)處理。當(dāng)然,如果報(bào)文本身是帶了VLAN Tag的,就直接根據(jù)其中的VLAN ID來(lái)決定了。圖6是一個(gè)VLAN應(yīng)用的示意圖。

收藏!一文搞懂交換基礎(chǔ)知識(shí)

VLAN應(yīng)用示意圖

上圖中,兩臺(tái)二層交換機(jī)之間的鏈路一般稱(chēng)為T(mén)runk鏈路,其上傳輸?shù)囊话愣际菐LAN Tag的報(bào)文(稱(chēng)為T(mén)agged報(bào)文),這樣的報(bào)文進(jìn)入交換機(jī)以后直接根據(jù)其VLAN ID來(lái)區(qū)分VLAN。

交換機(jī)引入VLAN后,帶來(lái)了以下好處:

(1) 有效控制廣播域范圍,廣播流量?jī)H在VLAN內(nèi)轉(zhuǎn)發(fā);

(2) 配置靈活,虛擬局域網(wǎng)的范圍可根據(jù)需要隨時(shí)調(diào)整;

(3) 由于不同VLAN之間二層隔離,帶來(lái)了更高的安全性。

有關(guān)VLAN的內(nèi)容這里不再深入討論,感興趣的同學(xué)可參考其他VLAN相關(guān)文檔。

支持VLAN的二層交換機(jī),其二層轉(zhuǎn)發(fā)和MAC地址維護(hù)方式都發(fā)生了一定的變化,下面分別討論兩種不同的MAC地址維護(hù)方式的交換機(jī)。

2.3.2 SVL方式的二層交換機(jī)

SVL(Shared VLAN Learning)方式的二層交換機(jī)在學(xué)習(xí)MAC地址并建立MAC地址表的過(guò)程中并不附加VLAN ID,或者說(shuō)它的MAC地址表是為所有VLAN共享使用的。它的二層轉(zhuǎn)發(fā)基本流程如下:

(1) 根據(jù)接收到的以太網(wǎng)幀的源MAC信息添加或刷新MAC地址表項(xiàng);

(2) 根據(jù)目的MAC信息查找MAC地址表,如果沒(méi)有找到匹配項(xiàng),那么在報(bào)文對(duì)應(yīng)的VLAN內(nèi)廣播;

(3) 如果找到匹配項(xiàng),但是表項(xiàng)對(duì)應(yīng)的端口并不屬于報(bào)文對(duì)應(yīng)的VLAN,那么丟棄該幀;

(4) 如果找到匹配項(xiàng),且表項(xiàng)對(duì)應(yīng)的端口屬于報(bào)文對(duì)應(yīng)的VLAN,那么將報(bào)文轉(zhuǎn)發(fā)到該端口,但是如果表項(xiàng)對(duì)應(yīng)端口與收到以太網(wǎng)幀的端口相同,則丟棄該幀。

這種類(lèi)型的二層交換機(jī)轉(zhuǎn)發(fā)與普通二層交換機(jī)轉(zhuǎn)發(fā)基本相同,只是多了轉(zhuǎn)發(fā)過(guò)程中的VLAN檢查。這樣的交換機(jī)可能遇到下述問(wèn)題:位于不同VLAN的主機(jī)(或網(wǎng)絡(luò)設(shè)備)具有相同的MAC地址,由于SVL交換機(jī)所有VLAN共享一個(gè)MAC表,這樣對(duì)應(yīng)的MAC表項(xiàng)中端口就會(huì)不斷的變化,而且兩個(gè)VLAN的報(bào)文轉(zhuǎn)發(fā)也會(huì)受到影響,這種情況如圖7所示。

收藏!一文搞懂交換基礎(chǔ)知識(shí)

SVL二層交換示意圖

 

上圖中,VLAN 10的PC A發(fā)送給PC B的報(bào)文由于MAC地址表查找結(jié)果與VLAN不符而被丟棄了;同理,當(dāng)MAC B學(xué)習(xí)到PORT 2時(shí),VLAN 20的PC D和PC C之間的通信就會(huì)出現(xiàn)問(wèn)題。這樣,雖然不同的主機(jī)被隔離在了不同的沖突域和廣播域中,但是MAC地址卻可能導(dǎo)致不同VLAN的通信相互影響。

在實(shí)際應(yīng)用中,SVL方式的二層交換機(jī)已經(jīng)比較少見(jiàn)了。

2.3.3 IVL方式的二層交換機(jī)

IVL(Independent VLAN Learning)方式的交換機(jī)在學(xué)習(xí)MAC地址并建立MAC地址表的過(guò)程中同時(shí)附加VLAN ID,同一個(gè)MAC地址可以出現(xiàn)在不同的VLAN中,這樣的方式也可以理解為每個(gè)VLAN都有自己獨(dú)立的MAC地址表。它的二層轉(zhuǎn)發(fā)基本流程如下:

(1) 根據(jù)接收到的以太網(wǎng)幀的源MAC+VLAN-ID信息添加或刷新MAC地址表項(xiàng);

(2) 根據(jù)目的MAC+VLAN-ID查找MAC地址表項(xiàng),如果沒(méi)有找到匹配項(xiàng),那么在VLAN-ID對(duì)應(yīng)的VLAN內(nèi)廣播;

(3) 如果能夠找到匹配表項(xiàng),則向表項(xiàng)所示的對(duì)應(yīng)端口轉(zhuǎn)發(fā),但是如果表項(xiàng)所示端口與收到以太網(wǎng)幀的端口相同,則丟棄該幀。

SVL方式交換機(jī)上可能遇到的轉(zhuǎn)發(fā)問(wèn)題,在IVL交換機(jī)中得以解決,如圖8所示。

收藏!一文搞懂交換基礎(chǔ)知識(shí)

IVL二層交換示意圖

IVL方式的二層交換機(jī)轉(zhuǎn)發(fā)流程更加清晰,VLAN之間不會(huì)互相影響,目前實(shí)際應(yīng)用中的二層交換機(jī)大多采用這種方式。

3 三層交換基本原理

早期的網(wǎng)絡(luò)中一般使用二層交換機(jī)來(lái)搭建局域網(wǎng),而不同局域網(wǎng)之間的網(wǎng)絡(luò)互通由路由器來(lái)完成。那時(shí)的網(wǎng)絡(luò)流量,局域網(wǎng)內(nèi)部的流量占了絕大部分,而網(wǎng)絡(luò)間的通信訪問(wèn)量比較少,使用少量路由器已經(jīng)足夠應(yīng)付了。通常的組網(wǎng)結(jié)構(gòu)如圖9。

收藏!一文搞懂交換基礎(chǔ)知識(shí)

二層交換機(jī)+路由器組網(wǎng)

 

但是,隨著數(shù)據(jù)通信網(wǎng)絡(luò)范圍的不斷擴(kuò)大,網(wǎng)絡(luò)業(yè)務(wù)的不斷豐富,網(wǎng)絡(luò)間互訪的需求越來(lái)越大,而路由器由于自身成本高、轉(zhuǎn)發(fā)性能低、端口數(shù)量少等特點(diǎn)無(wú)法很好的滿足網(wǎng)絡(luò)發(fā)展的需求。我們知道,路由器主要是通過(guò)IP轉(zhuǎn)發(fā)(三層轉(zhuǎn)發(fā))來(lái)實(shí)現(xiàn)不同網(wǎng)絡(luò)間的互連,那么是否能夠?qū)⒔粨Q機(jī)的高性能應(yīng)用到三層轉(zhuǎn)發(fā)中去呢?答案是肯定的,三層交換機(jī)就是這樣一種實(shí)現(xiàn)了高速三層轉(zhuǎn)發(fā)的設(shè)備。大多數(shù)三層交換機(jī)采用ASIC硬件芯片來(lái)完成轉(zhuǎn)發(fā),ASIC芯片內(nèi)部集成了IP三層轉(zhuǎn)發(fā)的功能,包括檢查IP報(bào)文頭、修改存活時(shí)間(TTL)參數(shù)、重新計(jì)算IP頭校驗(yàn)和、IP包的數(shù)據(jù)鏈路封裝等等。三層交換機(jī)的組網(wǎng)結(jié)構(gòu)如圖10所示。

收藏!一文搞懂交換基礎(chǔ)知識(shí)

三層交換機(jī)組網(wǎng)結(jié)構(gòu)

 

路由器的三層轉(zhuǎn)發(fā)主要依靠CPU進(jìn)行,而三層交換機(jī)的三層轉(zhuǎn)發(fā)依靠ASIC芯片完成,這就決定了兩者在轉(zhuǎn)發(fā)性能上的巨大差別。當(dāng)然,三層交換機(jī)并不能完全替代路由器,路由器所具備的豐富的接口類(lèi)型、良好的流量服務(wù)等級(jí)控制、強(qiáng)大的路由能力等仍然是三層交換機(jī)的薄弱環(huán)節(jié)。

目前的三層交換機(jī)一般是通過(guò)VLAN來(lái)劃分二層網(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ā)起通信之前,將自己的IP與目的主機(jī)的IP進(jìn)行比較,如果兩者位于同一網(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) 當(dāng)源主機(jī)判斷目的主機(jī)與自己位于不同網(wǎng)段時(shí),它會(huì)通過(guò)網(wǎng)關(guān)(Gateway)來(lái)遞交報(bào)文,即發(fā)送ARP請(qǐng)求來(lái)獲取網(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ā)。

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

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

 

收藏!一文搞懂交換基礎(chǔ)知識(shí)

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

 

根據(jù)上圖,三層交換機(jī)內(nèi)部的兩大部分是ASIC和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ā)信息來(lái)配置ASIC的硬件三層轉(zhuǎn)發(fā)表。當(dāng)然,CPU本身也可以完成軟件三層轉(zhuǎn)發(fā)。

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

3.2 三層交換原理

下面分別以?xún)煞N組網(wǎng)情況下的主機(jī)間通信來(lái)解釋三層交換機(jī)的轉(zhuǎn)發(fā)原理。

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

收藏!一文搞懂交換基礎(chǔ)知識(shí)

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

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

(1) 根據(jù)前面的描述,PC A首先檢查出目的IP地址2.1.1.2(PC B)與自己不在同一網(wǎng)段,因此它發(fā)出請(qǐng)求網(wǎng)關(guān)地址1.1.1.1對(duì)應(yīng)MAC的ARP請(qǐng)求;

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

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

(4) L3_SW收到報(bào)文后,首先根據(jù)報(bào)文的源MAC+VID(即VLAN ID)更新MAC地址表。然后,根據(jù)報(bào)文的目的MAC+VID查找MAC地址表,發(fā)現(xiàn)匹配了自己三層接口MAC的表項(xiàng)。這里說(shuō)明一下,三層交換機(jī)為VLAN配置三層接口IP后,會(huì)在交換芯片的MAC地址表中添加三層接口MAC+VID的表項(xiàng),并且為表項(xiàng)的三層轉(zhuǎn)發(fā)標(biāo)志置位。當(dāng)報(bào)文的目的MAC匹配這樣的表項(xiàng)以后,說(shuō)明需要作三層轉(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)段(PC B對(duì)應(yīng)的網(wǎng)段),于是繼續(xù)查找其軟件ARP表,仍然查找失敗。然后L3_SW會(huì)在目的網(wǎng)段對(duì)應(yīng)的VLAN 3的所有端口發(fā)送請(qǐng)求地址2.1.1.2對(duì)應(yīng)MAC的ARP請(qǐng)求;

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

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

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

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

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

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

 

收藏!一文搞懂交換基礎(chǔ)知識(shí)

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

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

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

(1) PC A首先檢查出目的IP地址2.1.1.2(PC B)與自己不在同一網(wǎng)段,因此它通過(guò)ARP解析得到網(wǎng)關(guān)地址1.1.1.1對(duì)應(yīng)的MAC(MAC S1)。然后,PC A組裝ICMP請(qǐng)求報(bào)文并發(fā)送,報(bào)文的目的MAC=MAC S1、源MAC=MAC A、源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)的VLAN 4內(nèi)發(fā)起ARP請(qǐng)求,并得到L3_SW2的回應(yīng),從而得到IP和MAC對(duì)應(yīng)關(guān)系(3.1.1.2<==>MAC S2);

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

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

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

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

 

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

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

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

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

3.3 三層交換的其他一些技術(shù)細(xì)節(jié)

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

3.3.1 三層表項(xiàng)的精確匹配和最長(zhǎng)匹配

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

早期的三層交換機(jī)上,其交換芯片多采用精確匹配的方式,它們的硬件三層表項(xiàng)中只包含具體的目的IP地址,并不帶掩碼信息。比如在轉(zhuǎn)發(fā)目的IP為2.1.1.2的報(bào)文時(shí),通過(guò)軟件查找匹配了非直連路由2.1.1.0/24,那么就將2.1.1.2的轉(zhuǎn)發(fā)信息添加到交換芯片中去,如果繼續(xù)來(lái)了目的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ǔ)空間是很有限的,如果要轉(zhuǎn)發(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軟件查找時(shí)都能夠找到匹配路由,進(jìn)而針對(duì)每一個(gè)病毒報(bào)文的目的IP都需要新增硬件表項(xiàng)并迅速將硬件資源占滿。這樣,大部分用戶(hù)的正常數(shù)據(jù)流由于轉(zhuǎn)發(fā)資源耗盡而得不到高速處理了。

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

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

3.3.2 三層表項(xiàng)的出口信息

在4.2節(jié)描述的交換機(jī)三層轉(zhuǎn)發(fā)流程中,曾經(jīng)提到,硬件三層表項(xiàng)由目的IP(或網(wǎng)段)、目的IP(或下一跳IP)對(duì)應(yīng)MAC、出口VLAN、出端口組成,采用這樣表項(xiàng)的三層交換芯片一般直接通過(guò)查找三層轉(zhuǎn)發(fā)表項(xiàng)就能夠完成轉(zhuǎn)發(fā)。這種處理機(jī)制流程簡(jiǎn)單、轉(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ī)支持鏈路聚合、生成樹(shù)等冗余機(jī)制,所以在某些應(yīng)用環(huán)境中CPU不得不經(jīng)常的對(duì)三層轉(zhuǎn)發(fā)表進(jìn)行更新,一旦更新出現(xiàn)問(wèn)題(特別是出端口錯(cuò)誤)必然對(duì)轉(zhuǎn)發(fā)造成嚴(yán)重的不利影響。

不過(guò),并不是所有三層交換機(jī)的硬件三層表項(xiàng)都帶有出端口信息,部分交換芯片使用的硬件表項(xiàng)只包括目的IP(或網(wǎng)段)、目的IP(或下一跳IP)對(duì)應(yīng)MAC、出口VLAN,從轉(zhuǎn)發(fā)流程上來(lái)說(shuō)有以下變化:根據(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的處理也更加簡(jiǎn)單,因?yàn)槲锢沓隹诘淖兓恍枰从吃贛AC地址表中就可以了,硬件三層表項(xiàng)無(wú)需頻繁更新。

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

分享到:
標(biāo)簽:基礎(chǔ)知識(shí) 交換
用戶(hù)無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定