前言
曾經(jīng)開發(fā)了二層交換機(jī),對(duì)交換芯片的vlan處理比較熟悉,對(duì)vlan的原理自認(rèn)為也是理解深刻;但是當(dāng)進(jìn)行到防火墻時(shí),突然發(fā)現(xiàn)又不理解vlan了!
于是開始重新學(xué)習(xí)linux的vlan和橋接,更是發(fā)現(xiàn)不了解其含義和實(shí)現(xiàn)了;于是有了下面的學(xué)習(xí)結(jié)果。
關(guān)于一些基本的概念(如廣播域 沖突域 vlan)就不做說(shuō)明了。
以下內(nèi)容摘抄自網(wǎng)上資料,出處用參考標(biāo)記出來(lái),方便大家參考,網(wǎng)上內(nèi)容相對(duì)零散,為了方便由淺入深的方便理解,根據(jù)我自己學(xué)習(xí)過(guò)程,做了梳理。
第一回 基于vlan的二層交換轉(zhuǎn)發(fā)原理
參考: https://www.jianshu.com/p/c930913948a8
普通轉(zhuǎn)發(fā)流程
交換機(jī)的二層轉(zhuǎn)發(fā)涉及到兩個(gè)關(guān)鍵的線程:mac地址學(xué)習(xí)流程和報(bào)文轉(zhuǎn)發(fā)流程。
MAC地址學(xué)習(xí)流程:
- MAC的學(xué)習(xí):交換機(jī)接收網(wǎng)段上的所有數(shù)據(jù)幀,利用接收數(shù)據(jù)幀中的源MAC地址來(lái)建立MAC地址表;
- MAC的漂移:交換機(jī)如果發(fā)現(xiàn)一個(gè)包文的入端口和報(bào)文中源MAC地址的所在端口不同,就產(chǎn)生端口移動(dòng),將MAC地址重新學(xué)習(xí)到新的端口;
- MAC的老化: 如果交換機(jī)在很長(zhǎng)一段時(shí)間之內(nèi)沒(méi)有收到某臺(tái)主機(jī)發(fā)出的報(bào)文,在該主機(jī)對(duì)應(yīng)的MAC地址就會(huì)被刪除,等下次報(bào)文來(lái)的時(shí)候會(huì)重新學(xué)習(xí)。
二層報(bào)文轉(zhuǎn)發(fā)流程:
- 已知單播-轉(zhuǎn)發(fā):交換機(jī)在MAC地址表中查找數(shù)據(jù)幀中的目的MAC地址,如果找到,就將該數(shù)據(jù)幀發(fā)送到相應(yīng)的端口
- 未知單播-泛洪:如果找不到,就向入端口以外的其它所有端口發(fā)送;
- 同端口-不轉(zhuǎn)發(fā):如果交換機(jī)收到的報(bào)文中源MAC地址和目的MAC地址所在的端口相同,則丟棄該報(bào)文;
- 組播和廣播-泛洪:交換機(jī)向入端口以外的其它所有端口轉(zhuǎn)發(fā)廣播報(bào)文。
上面流程是簡(jiǎn)單的橋交換流程,增加了VLAN以后,所有流量都在VLAN內(nèi)部交換。目前的二層交換芯片都支持vlan,如果想對(duì)二層轉(zhuǎn)發(fā)有更深入了解,當(dāng)然是閱讀某些二層交換芯片的手冊(cè)。
參考:https://blog.csdn.net/weixin_42096901/article/details/104802047
基于vlan轉(zhuǎn)發(fā)流程
基于Vlan的二層轉(zhuǎn)發(fā)流程主要包括:確定和查找Vlan、查找和學(xué)習(xí)源MAC、查找目的MAC并轉(zhuǎn)發(fā)數(shù)據(jù)幀。
1) 確定和查找Vlan:交換機(jī)端口接收到一個(gè)數(shù)據(jù)幀時(shí),首先通過(guò)TPID值判斷該幀是否帶標(biāo)簽。
若是tagged幀,且Vid≠0,則在端口所屬的Vlan表中查找該幀標(biāo)簽中的Vid是否存在,若存在,則進(jìn)入下一步,否則丟棄該幀(或提交CPU處理);
若是tagged幀,且Vid=0(即priority幀),則對(duì)該幀附加端口PVid(默認(rèn)vlan)使之成為tagged幀;
若是untagged幀,則對(duì)該幀附加端口PVid并指定優(yōu)先級(jí)使之成為tagged幀。
注:
①為提高處理效率,交換機(jī)內(nèi)部所有數(shù)據(jù)幀均攜帶Vlan標(biāo)簽,以統(tǒng)一方式處理。故需對(duì)輸入交換機(jī)的數(shù)據(jù)幀進(jìn)行標(biāo)簽檢查并按需加上標(biāo)簽。
②802.1Q Vlan環(huán)境下,幀可分為tagged、untagged和priority-tagged三種。Tagged幀根據(jù)其攜帶的標(biāo)簽Vid進(jìn)行MAC學(xué)習(xí)轉(zhuǎn)發(fā)。Untagged和Priority-tagged幀進(jìn)入交換機(jī)端口后根據(jù)PVid進(jìn)行MAC學(xué)習(xí)轉(zhuǎn)發(fā)。
2) 查找和學(xué)習(xí)源MAC:交換機(jī)在MAC轉(zhuǎn)發(fā)表(Mac+Vid+Port)中查找收幀Vid對(duì)應(yīng)的源MAC表項(xiàng),未找到則學(xué)習(xí)收幀源MAC (將“源MAC+Vid+Port”添加到MAC表中); 若找到則更新該表項(xiàng)的老化時(shí)間。
注:MAC地址學(xué)習(xí)只學(xué)習(xí)單播地址,對(duì)于廣播和組播地址不進(jìn)行學(xué)習(xí)。組播MAC表項(xiàng)通過(guò)CPU配置建立。
3) 查找目的MAC:若目的MAC是廣播或組播,則在所屬的Vlan中廣播或組播;否則在MAC表中查找是否存在Vid對(duì)應(yīng)的目的MAC表項(xiàng)。
4) 轉(zhuǎn)發(fā)數(shù)據(jù)幀:若在MAC表中查找到完全匹配的DMAC+Vid表項(xiàng),則將該幀轉(zhuǎn)發(fā)到表項(xiàng)中的相應(yīng)端口(若相應(yīng)端口為收幀端口,則應(yīng)丟棄該幀);否則向所屬Vlan內(nèi)除收包端口外的其他所有端口洪泛該幀(洪泛廣播的是未知單播幀而不是廣播幀)。
二層交換機(jī)轉(zhuǎn)發(fā)流程實(shí)例
數(shù)據(jù)幀從PC1經(jīng)過(guò)一臺(tái)交換機(jī)轉(zhuǎn)發(fā)到與另一臺(tái)交換機(jī)相連的PC2并得到響應(yīng),如下圖所示。
PC1向PC2發(fā)送信息
假設(shè)兩臺(tái)交換機(jī)剛剛開機(jī)(此時(shí)MAC地址表為空),其具體的轉(zhuǎn)發(fā)過(guò)程如下:
①PC1發(fā)出的數(shù)據(jù)幀進(jìn)入交換機(jī)SW1的Access端口后,按照端口PVid加上Vid=100的標(biāo)簽。交換機(jī)將該幀源MAC地址存入MAC地址表(學(xué)習(xí)),并將該幀洪泛到Vid=100的所有端口(除入端口外);
②SW1的Trunk端口屬于Vid=100的Vlan,故接受這個(gè)標(biāo)記為100的Tagged數(shù)據(jù)幀;而該端口在Vid=100上為Tagged port,因此在發(fā)送數(shù)據(jù)幀出交換機(jī)SW1時(shí),不改變Tagged幀的結(jié)構(gòu);
③Tagged幀到達(dá)交換機(jī)SW2的Trunk端口,由于Trunk端口擁有VID=100的Vlan,故接受該幀;該Trunk端口不改變Tagged幀的結(jié)構(gòu),而是學(xué)習(xí)源MAC地址后把該數(shù)據(jù)幀洪泛給所有Vid=100的端口(除入端口外);
④SW2的Access端口接收到該幀,剝除該幀的Tag標(biāo)簽后發(fā)送給PC2。
⑤PC2收到PC1發(fā)送的數(shù)據(jù)幀,并發(fā)送響應(yīng)幀給PC1。
⑥經(jīng)過(guò)與前述過(guò)程類似的轉(zhuǎn)發(fā),響應(yīng)幀到達(dá)交換機(jī)SW1。交換機(jī)發(fā)現(xiàn)該幀的目的MAC地址已在MAC地址表中,則僅轉(zhuǎn)發(fā)給PC1。
可見,收發(fā)雙方同屬一個(gè)Vlan的通信,一切處理均在二層網(wǎng)絡(luò)內(nèi)完成。
第二回 vlan技術(shù)續(xù)
參考: https://blog.csdn.net/z429831417/article/details/50498072
vlan技術(shù)及產(chǎn)生背景
在交換式以太網(wǎng)出現(xiàn)后,同一交換機(jī)的所有端口處于不同的沖突域,工作效率得到了很大的提高,但是所有端口處于同一廣播域,導(dǎo)致一臺(tái)計(jì)算機(jī)發(fā)出廣播幀,局域網(wǎng)中所有的計(jì)算機(jī)都能夠接受到,使局域網(wǎng)中有限的網(wǎng)絡(luò)資源被無(wú)用的廣播信息所占用。
在如上圖中的網(wǎng)絡(luò)拓?fù)洌琍CA發(fā)出一個(gè)廣播幀,二層交換機(jī)所有的端口處于同一廣播域,那么交換機(jī)會(huì)把該數(shù)據(jù)幀從除收到該數(shù)據(jù)幀的端口以外的所有端口都進(jìn)行發(fā)送,導(dǎo)致全網(wǎng)充斥這廣播報(bào)文,如果一臺(tái)計(jì)算機(jī)發(fā)出的廣播報(bào)文是100Kbps,那么10臺(tái)將會(huì)達(dá)到1000Kbps,那么100臺(tái)1000臺(tái)呢?是不是導(dǎo)致無(wú)用信息大量的占用著網(wǎng)絡(luò)資源,嚴(yán)重的時(shí)候可能會(huì)導(dǎo)致交換機(jī)死機(jī),從而影響該局域網(wǎng)的通信,所以如何限制廣播域的傳播范圍成了一個(gè)急需解決的問(wèn)題。
以太網(wǎng)處于TCP/IP協(xié)議棧的第二層,二層上的本地廣播幀是不能被三層設(shè)備路由器轉(zhuǎn)發(fā)的,使用路由器可以解決廣播幀的傳播范圍,但是路由器也存在著弊端,一個(gè)是路由器的價(jià)格比交換機(jī)的價(jià)格昂貴,是種不經(jīng)濟(jì)的解決方案;二個(gè)路由器的端口較少,一個(gè)局域網(wǎng)一個(gè)端口,如果需要隔離的局域網(wǎng)較多,那么路由器會(huì)應(yīng)付不過(guò)來(lái);三個(gè)是在大部分中低端路由器上使用軟件轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)性能并不高,容易造成性能瓶頸,所以用路由來(lái)隔離廣播是個(gè)高成本低性能的方案。
后來(lái)IEEE協(xié)會(huì)專門制定了一個(gè)802.1Q的協(xié)議標(biāo)準(zhǔn),這就是VLAN技術(shù),VLAN就是在一物理LAN內(nèi)劃分出多個(gè)虛擬LAN的,每個(gè)VLAN是一個(gè)廣播域,這就縮小了廣播域的范圍,各個(gè)VLAN之間不能直接通信
我們現(xiàn)在來(lái)說(shuō)一下VLAN有哪一些優(yōu)點(diǎn),
一是可以有效的控制廣播域的范圍,前面說(shuō)了每個(gè)VLAN是一個(gè)廣播域,VLAN之間隔離廣播域;
二是VLAN 不受物理位置的閑置,可以靈活的構(gòu)建工作組;
三是各個(gè)VLAN之間不能直接進(jìn)行通信,增強(qiáng)了局域網(wǎng)的安全性;
四是增強(qiáng)了網(wǎng)絡(luò)的健壯性,各個(gè)VLAN是獨(dú)立了,一個(gè)VLAN出了問(wèn)題不會(huì)影響其他的VLAN,縮小了故障范圍
VLAN的作用是用來(lái)隔離廣播域,那我們?cè)趯?shí)際的操作中是如何來(lái)劃分VLAN呢?
下面我們就逐一來(lái)講四個(gè)基本的VLAN 劃分方法;
第一個(gè)是利用端口來(lái)劃分VLAN,這個(gè)是我們現(xiàn)在最常用的VLAN 劃分方法,該方法就是把交換機(jī)的各個(gè)端口按照需要?jiǎng)澐值讲煌琕LAN 里面去,這是最簡(jiǎn)單也是最有效的劃分方法;二層交換機(jī)基本是使用改方法;
第二個(gè)是利用MAC地址來(lái)劃分VLAN,該方法就是利用主機(jī)的MAC地址建立一個(gè)與VLAN的映射關(guān)系,形成一個(gè)映射表,這種方法的優(yōu)點(diǎn)就是當(dāng)用戶的物理位置移動(dòng)時(shí),其所處的VLAN 不會(huì)發(fā)生變化,靈活性比較高,但是前期的工作量非常大,技術(shù)人員得一一去收集MAC地址,然后建立一個(gè)映射關(guān)系;這種方法在現(xiàn)在的網(wǎng)絡(luò)環(huán)境里,好像不會(huì)見到了。
第三個(gè)是利用協(xié)議來(lái)劃分VLAN,不同的協(xié)議處于不同的VLAN,比如IP協(xié)議映射到vlan1,ipx協(xié)議映射到vlan2,交換機(jī)通過(guò)識(shí)別協(xié)議標(biāo)簽來(lái)自動(dòng)劃分到不同的VLAN,但是在現(xiàn)在的網(wǎng)絡(luò)環(huán)境中用的最多的還是IP協(xié)議,運(yùn)行其他協(xié)議已經(jīng)非常少了;所以這種方法,在現(xiàn)在網(wǎng)絡(luò)環(huán)境里應(yīng)該不會(huì)見到了。
第四個(gè)方法就是基于子網(wǎng)劃分,基于子網(wǎng)劃分的就是利用報(bào)文中源IP地址以及子網(wǎng)掩碼作為劃分依據(jù),交換機(jī)根據(jù)收到的報(bào)文中的源IP地址找到交換機(jī)已經(jīng)存在的對(duì)應(yīng)關(guān)系,然后自動(dòng)轉(zhuǎn)發(fā)到對(duì)應(yīng)的的VLAN中,這種方法的劃分方式比較靈活,用戶移動(dòng)位置也不需要重新配置,但是這種方法也不是很完美,因?yàn)闉榱伺袛嘤脩舻膶傩裕仨氈鹨粰z查數(shù)據(jù)包網(wǎng)絡(luò)層的地址,這建耗費(fèi)交換機(jī)不少資源;綜合以上幾種劃分方法的優(yōu)缺點(diǎn)來(lái)看,基于端口劃分是普遍的也是目前所有交換機(jī)都支持的VLAN 劃分方法。
vlan轉(zhuǎn)發(fā)技術(shù)原理
我們現(xiàn)在來(lái)看一下VLAN的轉(zhuǎn)發(fā)技術(shù)原理,在以太網(wǎng)交換機(jī)中是根據(jù)目的MAC地址來(lái)查MAC地址表進(jìn)行數(shù)據(jù)幀的轉(zhuǎn)發(fā),MAC地址表中包含了MAC地址與端口的一個(gè)對(duì)應(yīng)的關(guān)系,當(dāng)交換機(jī)收到一個(gè)數(shù)據(jù)幀的時(shí)候,交換機(jī)會(huì)查看該數(shù)據(jù)幀中的目的MAC地址,如果是一個(gè)單播幀,交換機(jī)會(huì)查表從對(duì)應(yīng)的端口轉(zhuǎn)發(fā)出去,如果是廣播地址,那么交換機(jī)會(huì)從除收到該廣播幀的以外的所有端口發(fā)送出去;但是在VLAN 技術(shù)中,交換機(jī)在數(shù)據(jù)幀中加上一個(gè)標(biāo)簽,然后交換機(jī)在查表的過(guò)程之外還要檢查端口上的標(biāo)簽是否匹配,交換機(jī)只會(huì)在屬于這個(gè)標(biāo)簽的端口上進(jìn)行轉(zhuǎn)發(fā),如果不是就不進(jìn)行轉(zhuǎn)發(fā)操作
上圖就是一個(gè)帶IEEE802.1Q標(biāo)記的以太網(wǎng)幀格式,我們現(xiàn)在重點(diǎn)來(lái)看中間的tag字段,tag字段總共占四個(gè)字節(jié),其中TPID(標(biāo)簽協(xié)議標(biāo)識(shí))和TCI(標(biāo)簽控制信息)各占兩個(gè)字節(jié);TPID是什么?TPID是IEEE定義的新的類型,標(biāo)識(shí)這是一個(gè)封裝了802.1Q標(biāo)簽的幀,其中就包含了一個(gè)固定的值0x8100。后面的TCI又包含了三個(gè)字段。分別是priority(優(yōu)先級(jí))、CFI、VLAN ID;priority占3位,指定幀的優(yōu)先級(jí),一共有8種優(yōu)先級(jí),從0-7;CFI占1為,當(dāng)這個(gè)值為0時(shí)說(shuō)明這是一個(gè)規(guī)范格式,為1時(shí)是非規(guī)范格式,它在令牌環(huán)網(wǎng)、FDDI網(wǎng)絡(luò)中來(lái)指示封裝幀中所帶的地址的比特次序;VLAN ID字段占12位,指明該數(shù)據(jù)幀所在的vlan編號(hào),VLAN的編號(hào)共4096個(gè),但是0和4096兩個(gè)值保留,所以可用的也就4094個(gè),其中的vlan 1是交換機(jī)的默認(rèn)vlan
我們看完了802.1Q的幀格式,現(xiàn)在再來(lái)看看vlan的標(biāo)簽是怎么打上去的。
當(dāng)PCA發(fā)送一個(gè)數(shù)據(jù)幀到交換機(jī)時(shí),這個(gè)時(shí)候是不帶標(biāo)簽的,當(dāng)這個(gè)數(shù)據(jù)幀到達(dá)交換機(jī)的端口時(shí),交換機(jī)給這個(gè)數(shù)據(jù)幀打上一個(gè)默認(rèn)的標(biāo)簽(默認(rèn)vid),等這個(gè)數(shù)據(jù)幀要離開這臺(tái)交換機(jī)的時(shí)候,交換機(jī)又會(huì)把這個(gè)標(biāo)簽去掉,這就是一個(gè)單標(biāo)簽的操作過(guò)程,在整個(gè)數(shù)據(jù)轉(zhuǎn)發(fā)的過(guò)程中對(duì)終端主機(jī)來(lái)說(shuō)是透明的,交換機(jī)如何進(jìn)行vlan劃分主機(jī)是不知道的,也不需要主機(jī)去了解,所有的打標(biāo)簽和去標(biāo)簽都交由交換機(jī)處理,這就是單標(biāo)簽的一個(gè)操作過(guò)程
看完標(biāo)簽操作過(guò)程后我們來(lái)了解下三種鏈路類型,分別是access、trunk、hybrid
Access一般是用在連接用戶設(shè)備的那一端,只允許缺省vlan通過(guò),僅接收和發(fā)送一個(gè)vlan的數(shù)據(jù)幀,這也就是我們前面所說(shuō)的單標(biāo)簽交換過(guò)程;看上圖,PCA發(fā)送一個(gè)數(shù)據(jù)幀個(gè)PCC,交換機(jī)收到該數(shù)據(jù)的時(shí)候把這個(gè)數(shù)據(jù)幀打上vlan 10的標(biāo)簽,然后進(jìn)行查表操作,把數(shù)據(jù)幀發(fā)送到與PCC連接的端口的時(shí)候就會(huì)把這個(gè)VLAN 10的標(biāo)簽去掉。
訪問(wèn)鏈接(Access Link,或者Access類型端口),指的是“只屬于一個(gè)VLAN,且僅向該VLAN轉(zhuǎn)發(fā)數(shù)據(jù)幀”的端口。在大多數(shù)情況下,訪問(wèn)鏈接所連的是客戶機(jī)。
在access鏈路類型中是不是一次只能允許一個(gè)vlan通過(guò)?那我如果一次要允許多個(gè)vlan通過(guò),那么這個(gè)access鏈路類型是不是就行不通了?這也就有了我們第二個(gè)鏈路類型,trunk鏈路類型
Trunk,匯聚鏈接(Trunk Link),指的是能夠轉(zhuǎn)發(fā)多個(gè)不同VLAN的通信的端口;匯聚鏈路上流通的數(shù)據(jù)幀,都被附加了用于識(shí)別分屬于哪個(gè)VLAN的標(biāo)簽。
看上圖,兩臺(tái)交換機(jī)中間只有一條鏈路,但是兩個(gè)交換機(jī)之間要同時(shí)傳遞vlan10和vlan20兩個(gè)標(biāo)簽,我們現(xiàn)在用前面的access肯定不行了吧,這個(gè)時(shí)候我們用trunk來(lái)看是怎么操作的,PCA發(fā)送一個(gè)數(shù)據(jù)幀給SWA,SWA收到后打上10的標(biāo)簽,然后查表通過(guò)E1/0/24端口發(fā)送SWB,在發(fā)送給SWB的時(shí)候不做任何操作,原封不動(dòng)的傳給SWB,SWB收到后再進(jìn)行查表,然后發(fā)送到vlan10對(duì)應(yīng)的端口E1/0/1進(jìn)行去標(biāo)簽的操作,最后把去掉標(biāo)簽的數(shù)據(jù)幀發(fā)送給PCC,PCB和PCD進(jìn)行通信也進(jìn)行相同的操作,不過(guò)默認(rèn)幀是個(gè)例外,發(fā)送默認(rèn)幀時(shí),trunk會(huì)去掉默認(rèn)vlan的標(biāo)簽;同樣,交換機(jī)從trunk收到不帶標(biāo)簽的幀時(shí)會(huì)打上默認(rèn)vlan標(biāo)簽;我們除了學(xué)完access鏈路類型和trunk類型以外,還有第三種鏈路類型hybrid,
Hybrid,混合鏈路(Hybrid Link)這是華三的一個(gè)私有的鏈路類型,hybrid端口可以接收和發(fā)送多個(gè)VLAN的數(shù)據(jù)幀,同時(shí)還能對(duì)任何vlan幀進(jìn)行去標(biāo)簽的操作
看上圖,PCA發(fā)送一個(gè)數(shù)據(jù)幀給PCC,當(dāng)交換機(jī)收到PCA發(fā)來(lái)的數(shù)據(jù)幀時(shí)會(huì)打上10的標(biāo)簽,然后交換機(jī)進(jìn)行查表操作,發(fā)送到PCC的端口,交換機(jī)進(jìn)行去標(biāo)簽的操作的時(shí)候會(huì)檢查untag,在untag表項(xiàng)中可以去掉帶標(biāo)簽10、20、30的數(shù)據(jù)幀,所以很方便的就去掉了數(shù)據(jù)幀;這時(shí)PCA又發(fā)送一個(gè)數(shù)據(jù)幀給PCB;當(dāng)交換機(jī)收到PCA發(fā)來(lái)的數(shù)據(jù)幀時(shí)會(huì)打上10的標(biāo)簽,然后交換機(jī)進(jìn)行查表操作,然后發(fā)送到PCB的端口,交換機(jī)進(jìn)行去標(biāo)簽的操作的時(shí)候會(huì)檢查untag,但是此時(shí)untag表項(xiàng)中只有20和30,也就意味著該端口只能去掉帶標(biāo)簽20和30的數(shù)據(jù)幀,這是交換機(jī)無(wú)法去掉標(biāo)簽,所以只能把該數(shù)據(jù)幀丟棄
通過(guò)本回的學(xué)習(xí)我們知道了vlan的作用就是在局域網(wǎng)中限制廣播的傳送范圍,以及如何劃分vlan,我們可以基于端口、子網(wǎng)、協(xié)議、MAC四種vlan劃分方法來(lái)劃分vlan,還有access、trunk、hybrid三種鏈路類型的應(yīng)用場(chǎng)景,以及它們是怎么對(duì)標(biāo)簽操作的,access是進(jìn)口打標(biāo)出口解標(biāo);trunk可以同時(shí)允許多個(gè)VLAN幀通過(guò),不對(duì)標(biāo)簽做任何操作,但是發(fā)送帶默認(rèn)標(biāo)簽的數(shù)據(jù)幀時(shí)會(huì)解標(biāo),收到不帶標(biāo)簽的數(shù)據(jù)幀會(huì)打上默認(rèn)標(biāo)簽;hybrid可以同時(shí)接收和發(fā)送多個(gè)VLAN的數(shù)據(jù)幀,同時(shí)還能對(duì)任何vlan幀進(jìn)行去標(biāo)簽的操作
參考:https://www.cnblogs.com/xieyunc/p/9784041.html
注意,Access、Trunk和Hybrid端口是廠家對(duì)某種端口的稱謂,并非IEEE802.1Q協(xié)議標(biāo)準(zhǔn)定義。
Access端口只屬于一個(gè)Vlan,PVid就是其所在Vlan,故不用設(shè)置;Trunk和Hybrid端口屬于多個(gè)Vlan,故需要設(shè)置PVid(缺省為1)。若設(shè)置端口PVid,則當(dāng)端口收到不帶Vlan Tag的數(shù)據(jù)幀時(shí),對(duì)該幀加上Tag標(biāo)記(Vid設(shè)置為端口所屬的默認(rèn)Vlan編號(hào))并轉(zhuǎn)發(fā)到屬于PVid的端口;當(dāng)端口發(fā)送Vlan Tag的數(shù)據(jù)幀時(shí),若收幀的Vlan Tag和端口PVid相同,剝除Vlan Tag后再發(fā)送該幀。
Hybrid端口與Trunk端口在接收數(shù)據(jù)時(shí)處理方法相同,區(qū)別在于發(fā)送數(shù)據(jù)時(shí):Hybrid端口允許多個(gè)Vlan的數(shù)據(jù)幀發(fā)送時(shí)不帶標(biāo)簽,而Trunk端口只允許默認(rèn)Vlan的數(shù)據(jù)幀發(fā)送時(shí)不帶標(biāo)簽。在同一交換機(jī)上Hybrid端口和Trunk端口不能并存,實(shí)際使用中可用Hybrid代替Trunk。
本Hybrid端口的PVid和相連的對(duì)端交換機(jī)Hybrid端口的PVid必須一致。
由于端口類型不同,交換機(jī)對(duì)幀的處理過(guò)程也不同。下表根據(jù)不同的端口類型分別介紹。
表2 不同端口類型的Vlan幀處理方式
第三回 vlan間路由和三層交換轉(zhuǎn)發(fā)原理
簡(jiǎn)單的vlan間路由流程
每一個(gè)VLAN有一個(gè)端口連接到路由器,所有終端以該路由器為默認(rèn)網(wǎng)關(guān)。并由該路由器完成VLAN間報(bào)文的轉(zhuǎn)發(fā)過(guò)程。比如10.1.1.1要與11.1.1.1終端通訊。
單臂路由工作原理
從上面我們看到,如果要通過(guò)路由器轉(zhuǎn)發(fā)三層流量,在交換機(jī)和路由器之間,每一個(gè)VLAN需要有一個(gè)鏈路連接,當(dāng)VLAN很多的時(shí)候,這將耗費(fèi)大量的路由器接口,而路由器接口成本是非常高的。為了節(jié)約路由器接口,一個(gè)解決方案是路由器支持VLAN子接口。
VLAN子接口(這里的vlan子接口,后面linux的vlan實(shí)現(xiàn)中也會(huì)見到)
1. 所謂子接口,就是是通過(guò)協(xié)議和技術(shù)將一個(gè)物理接口(interface)虛擬出來(lái)的多個(gè)邏輯接口。
2. VLAN子接口,就是通過(guò)VLAN技術(shù),將一個(gè)物理接口,虛擬出多個(gè)邏輯接口,
VLAN子接口上發(fā)送的報(bào)文,會(huì)打上Vlan-tag,用于區(qū)分不同的VLAN鏈路。
通過(guò)配置路由器上的VLAN子接口,路由器和交換機(jī)物理上只需要一個(gè)端口連接,通過(guò)報(bào)文上的VLAN-tag區(qū)分不同的邏輯鏈路。這樣節(jié)省了大量的端口資源。
參考:https://blog.csdn.net/weixin_42096901/article/details/104802047
將用于連接路由器的交換機(jī)端口設(shè)為Trunk匯聚端口,而路由器上的端口也必須支持匯聚鏈路。雙方用于匯聚鏈路的協(xié)議也必須相同。接著在路由器上定義對(duì)應(yīng)各Vlan的“子接口(Sub Interface)”。盡管實(shí)際與交換機(jī)連接的物理端口只有一個(gè),但在理論上可將其分割為多個(gè)虛擬端口。如下圖所示。
使用這種Vlan Trunking技術(shù),可使多個(gè)Vlan的業(yè)務(wù)流共享相同的物理連接,通過(guò)在匯聚鏈路上傳遞帶標(biāo)簽的幀來(lái)區(qū)分各Vlan的流量。通常情況下,Vlan間路由的流量不足以達(dá)到鏈路的線速度,使用Vlan Trunking的配置,可提高鏈路的帶寬利用率,節(jié)省端口資源以及簡(jiǎn)化管理(網(wǎng)絡(luò)新增Vlan時(shí)只需在路由器上新設(shè)一個(gè)對(duì)應(yīng)新Vlan的子接口,無(wú)需重新布線)
【例】不同Vlan間通信時(shí)數(shù)據(jù)的流程,如下圖所示。
不同Vlan間通信流程
主機(jī)PC1通過(guò)通信目標(biāo)IP地址(192.168.2.1) 與子網(wǎng)掩碼計(jì)算比較發(fā)現(xiàn)PC2與本機(jī)不屬于同一網(wǎng)段,不能直接訪問(wèn)。根據(jù)IP通信規(guī)則,PC1查找本機(jī)路由表尋找相應(yīng)的網(wǎng)關(guān)。在實(shí)際網(wǎng)絡(luò)中,主機(jī)通常只配置默認(rèn)網(wǎng)關(guān)(Default Gateway,GW),故PC1找到默認(rèn)網(wǎng)關(guān)。然后,PC1在本機(jī)ARP高速緩存中查找默認(rèn)網(wǎng)關(guān)(即路由器)的MAC地址,若沒(méi)有則向外廣播發(fā)送一個(gè)ARP請(qǐng)求幀,其目的MAC地址為全1,源MAC地址為本機(jī)MAC地址,請(qǐng)求的IP地址為網(wǎng)關(guān)192.168.1.100。從路由器返回的ARP單播應(yīng)答幀中得到路由器MAC地址R后,接下來(lái)就按圖中所示的步驟向PC2發(fā)送數(shù)據(jù)幀①,其目的MAC地址是路由器地址R、但目的IP地址仍是最終要通信的對(duì)象PC2的地址。
交換機(jī)在端口1上收到數(shù)據(jù)幀①后,檢索MAC地址表中與端口1同屬一個(gè)Vlan的表項(xiàng)。匯聚鏈路被視為屬于所有的Vlan,因此端口6也屬于檢索對(duì)象。檢索后交換機(jī)得知往MAC地址R發(fā)送數(shù)據(jù)幀時(shí),需經(jīng)過(guò)端口6轉(zhuǎn)發(fā)。
從匯聚端口6發(fā)送數(shù)據(jù)幀時(shí),會(huì)附加Vlan識(shí)別信息。圖中數(shù)據(jù)幀②被加上原屬的紅色Vlan標(biāo)簽后,進(jìn)入?yún)R聚鏈路。路由器收到數(shù)據(jù)幀②后,確認(rèn)其Vlan標(biāo)簽,交由負(fù)責(zé)紅色Vlan的子接口接收。
接著,根據(jù)路由器內(nèi)部的路由表,判斷該向哪里轉(zhuǎn)發(fā)。由于目標(biāo)網(wǎng)絡(luò)192.168.2.0/24屬于藍(lán)色Vlan,且該網(wǎng)絡(luò)通過(guò)子接口與路由器直連,因此只需從負(fù)責(zé)藍(lán)色Vlan的子接口轉(zhuǎn)發(fā)即可。此時(shí)數(shù)據(jù)幀的目的MAC地址被改成PC2的MAC地址;由于需要經(jīng)過(guò)匯聚鏈路轉(zhuǎn)發(fā),故附加屬于藍(lán)色Vlan的識(shí)別信息(數(shù)據(jù)幀③)。
交換機(jī)收到數(shù)據(jù)幀③后,根據(jù)Vlan標(biāo)簽從MAC地址表中檢索屬于藍(lán)色Vlan的表項(xiàng)。由于通信目標(biāo)PC2連接在端口3上且該端口為接入端口,因此交換機(jī)剝除數(shù)據(jù)幀的Vlan標(biāo)簽后(數(shù)據(jù)幀④)轉(zhuǎn)發(fā)給端口3,最終PC2成功收到PC1發(fā)來(lái)的數(shù)據(jù)幀。
可見,Vlan間通信時(shí),即使雙方都連接在同一臺(tái)交換機(jī)上,也必須經(jīng)過(guò)“發(fā)送方→交換機(jī)→路由器→交換機(jī)→接收方”這樣一個(gè)流程。在進(jìn)行三層路由轉(zhuǎn)發(fā)時(shí),數(shù)據(jù)包IP地址保持不變,MAC地址則在每個(gè)節(jié)點(diǎn)都會(huì)改變。
三層交換機(jī)
三層交換機(jī)的原理模型可以認(rèn)為是:三層交換機(jī) = 二層交換機(jī)+三層路由器 三層交換機(jī)既有二層交換單元,內(nèi)部還有一個(gè)三層路由模塊。(原理上可以認(rèn)為三層交換機(jī)就是把一個(gè)交換機(jī)和一個(gè)路由器裝在一個(gè)盒子里。雖然原理上我們可以這樣簡(jiǎn)單認(rèn)為,但在具體實(shí)現(xiàn)上,特別是報(bào)文的轉(zhuǎn)發(fā)流程上,還是有很大差異的。所以三層交換機(jī)在轉(zhuǎn)發(fā)性能和成本上都有很大的優(yōu)勢(shì))
在三層交換機(jī)上,可以在一個(gè)VLAN配置三層接口(cisco成為交換機(jī)虛擬接口 SVI:switch virtual interface),這個(gè)SVI接口就是上面原理模型中的那個(gè)路由模塊對(duì)應(yīng)的接口。它具備普通路由器接口的基本特性,比如:
- 該接口有自己的MAC地址;
- 在該SVI接口上,我們可以進(jìn)行標(biāo)準(zhǔn)的三層協(xié)議的配置,包括IP地址,路由協(xié)議等等。
三層交換機(jī)轉(zhuǎn)發(fā)流程
使用VLAN Trunking后,用傳統(tǒng)路由器進(jìn)行Vlan間路由在性能上存在一定的不足:由于路由器采用通用CPU,轉(zhuǎn)發(fā)完全依靠軟件處理,同時(shí)支持各種通信接口,給軟件帶來(lái)較大負(fù)擔(dān)。軟件要處理包括報(bào)文接收、校驗(yàn)、查找路由、選項(xiàng)處理、報(bào)文分片等,導(dǎo)致性能不可能很高。就Vlan間路由而言,流量會(huì)集中到路由器和交換機(jī)互聯(lián)的匯聚鏈路部分,該部分容易成為速度瓶頸。
由于Vlan間通信比較簡(jiǎn)單,只需查下路由表,所以可將交換機(jī)集成查路由表的專用芯片(ASIC),實(shí)現(xiàn)二層交換和三層路由的功能集成,即三層交換機(jī)(Layer 3 Switch)。
三層交換機(jī)的設(shè)計(jì)基于對(duì)IP路由的仔細(xì)分析,提取出IP路由中每個(gè)報(bào)文都必經(jīng)的簡(jiǎn)化過(guò)程:
IP路由中絕大多數(shù)報(bào)文不包含IP選項(xiàng),因此多數(shù)情況下無(wú)需處理報(bào)文IP選項(xiàng);
不同的網(wǎng)絡(luò)報(bào)文長(zhǎng)度不同,為支持各種異構(gòu)網(wǎng)絡(luò)的互連,IP實(shí)現(xiàn)了報(bào)文分片功能,但在全以太網(wǎng)環(huán)境中,數(shù)據(jù)幀(報(bào)文)長(zhǎng)度固定,因此可裁減報(bào)文分片功能;
三層交換機(jī)采用與路由器最長(zhǎng)地址掩碼匹配不同的方法,使用精確地址匹配的方式處理,有利于硬件實(shí)現(xiàn)快速查找;
三層交換機(jī)采用Cache方法,將最近經(jīng)常使用的主機(jī)路由放入硬件查找表。只有在該Cache中無(wú)法匹配到的條項(xiàng)才通過(guò)軟件轉(zhuǎn)發(fā)。這樣,只有每個(gè)流的第一個(gè)報(bào)文通過(guò)軟件轉(zhuǎn)發(fā),其后的大量數(shù)據(jù)流則在硬件中得以完成,極大提升轉(zhuǎn)發(fā)性能。
三層交換機(jī)的內(nèi)部結(jié)構(gòu)可參照下面的簡(jiǎn)圖。
如圖,內(nèi)置的路由模塊與交換模塊相同,使用ASIC硬件處理路由。因此,與傳統(tǒng)的路由器相比,可實(shí)現(xiàn)高速路由。并且,路由與交換模塊由內(nèi)部匯聚鏈路連接,可確保相當(dāng)大的帶寬。
對(duì)應(yīng)到IP網(wǎng)絡(luò)模型中,每個(gè)Vlan對(duì)應(yīng)一個(gè)IP網(wǎng)段,三層交換機(jī)中的三層轉(zhuǎn)發(fā)引擎在各網(wǎng)段(Vlan)間轉(zhuǎn)發(fā)報(bào)文,實(shí)現(xiàn)Vlan之間的互通,因此三層交換機(jī)的路由功能通常叫做Vlan間路由(Inter-VLAN Routing)。
使用路由器連接時(shí),一般需要在LAN接口上設(shè)置對(duì)應(yīng)各Vlan的子接口;三層交換機(jī)則是在內(nèi)部生成“VLAN接口(VLAN Interface)”,用于各Vlan收發(fā)數(shù)據(jù)。在Cisco的Catalyst系列交換機(jī)上,VLAN接口被稱為SVI(Switched Virtual Interface,交換虛擬接口)。三層交換機(jī)每創(chuàng)建一個(gè)Vlan就會(huì)自動(dòng)生成一個(gè)SVI。在SVI接口設(shè)置默認(rèn)網(wǎng)關(guān)后,并將主機(jī)網(wǎng)關(guān)配置成與交換機(jī)SVI相同,即可實(shí)現(xiàn)不同Vlan間的路由。
使用三層交換機(jī)進(jìn)行Vlan間路由與使用匯聚鏈路連接路由器與交換機(jī)相似,即需經(jīng)過(guò)“發(fā)送方→交換模塊→路由模塊→交換模塊→接收方”的流程。
交換機(jī)的轉(zhuǎn)發(fā)行為主要借助于下面幾張表:
三層主機(jī)路由表相當(dāng)于【網(wǎng)段路由表+ARP表】的組合,用于加快交換流程。三層主機(jī)路由表的生成有兩種方式:
- 預(yù)先生成: 也有些設(shè)備只要學(xué)習(xí)到ARP條目,就自動(dòng)生成主機(jī)路由,并保持主機(jī)路由與ARP條目之間的同步與一致性。這種方式對(duì)主機(jī)路由硬件資源開銷會(huì)大一些,但第一個(gè)報(bào)文就能采用交換方式,性能更高。
- 按需生成:到達(dá)該目的地的第一個(gè)報(bào)文轉(zhuǎn)發(fā)時(shí),有軟件進(jìn)行三層轉(zhuǎn)發(fā)后生成。并且該目的地址一定時(shí)間內(nèi)沒(méi)有流量將被老化。這就是所謂的“一次路由,多次交換”。
- 準(zhǔn)備工作: 三層交換機(jī)為VLAN配置三層接口IP后,會(huì)在交換芯片的MAC地址表中添加三層接口MAC+VID的表項(xiàng),并且為表項(xiàng)的三層轉(zhuǎn)發(fā)標(biāo)志(Route標(biāo)志)置位。
- 轉(zhuǎn)發(fā)流程
- 硬件二層交換:
報(bào)文進(jìn)入三層交換機(jī)后,首先在交換模塊進(jìn)行標(biāo)準(zhǔn)的二層交換處理:
根據(jù)報(bào)文的目的MAC(精確匹配查找),查找二層MAC轉(zhuǎn)發(fā)表: 如果不存在該MAC條目,則在所有端口上進(jìn)行泛洪處理(廣播組播也會(huì)泛洪)。 如果存在該MAC條目,并且該條目沒(méi)有Route標(biāo)志,則進(jìn)行標(biāo)準(zhǔn)交換轉(zhuǎn)發(fā) 如果該MAC條目上有Route標(biāo)記,則進(jìn)行硬件三層轉(zhuǎn)發(fā)。
- 硬件三層轉(zhuǎn)發(fā):
根據(jù)報(bào)文的目的IP地址(精確匹配查找),查找三層主機(jī)路由表: 如果存在,直接轉(zhuǎn)發(fā)(TTL--,目的MAC地址進(jìn)行替換) 如果不存在,則進(jìn)行標(biāo)準(zhǔn)的軟件三層報(bào)文轉(zhuǎn)發(fā)。
- 軟件三層轉(zhuǎn)發(fā):
查找目的IP的網(wǎng)段路由(最佳匹配查找), 如果路由不存在,報(bào)文丟棄。 如果存在,查找下一跳的ARP表,如果ARP不存在,進(jìn)行ARP學(xué)習(xí)。 學(xué)習(xí)到ARP后,進(jìn)行報(bào)文轉(zhuǎn)發(fā),并將轉(zhuǎn)發(fā)信息寫入硬件主機(jī)路由表, 以后該目的IP的報(bào)文就可以通過(guò)硬件進(jìn)行三層轉(zhuǎn)發(fā)了。(這就是所謂的一次路由,多次交換)
實(shí)例
假設(shè)網(wǎng)絡(luò)按圖19連接好后,所有設(shè)備均為初始狀態(tài),也未向外發(fā)送過(guò)任何報(bào)文。若PC1已知PC2的IP地址,則可通過(guò)ping命令發(fā)送ICMP報(bào)文來(lái)獲知PC1能否到達(dá)PC2。以下分析該過(guò)程。
ping流程網(wǎng)絡(luò)拓?fù)?/p>
- PC1將自身IP和子網(wǎng)掩碼255.255.255.0相與得到網(wǎng)絡(luò)號(hào)1.1.1.0,將PC2的IP與子網(wǎng)掩碼相與得到網(wǎng)絡(luò)號(hào)2.2.2.0,得知PC2與自己不在同一網(wǎng)段。于是PC1檢索路由表得到默認(rèn)網(wǎng)關(guān)。PC1欲向網(wǎng)關(guān)傳遞信息,但此時(shí)PC1中ARP表為空,所以向默認(rèn)網(wǎng)關(guān)(交換機(jī)三層接口)發(fā)出ARP請(qǐng)求幀,請(qǐng)求網(wǎng)關(guān)MAC地址。該幀目的MAC地址為全1,源MAC地址為本機(jī)MAC地址,請(qǐng)求的IP地址為網(wǎng)關(guān)1.1.1.1;
- SW收到ARP請(qǐng)求幀,對(duì)其附加端口PVid(10)的標(biāo)簽;
- SW用ARP請(qǐng)求幀的Mac1和Vid10查找MAC轉(zhuǎn)發(fā)表,發(fā)現(xiàn)沒(méi)有該項(xiàng),則進(jìn)行學(xué)習(xí),即在表中添加“Mac1—Vid10—Port1”的記錄;并將源IP和MAC的對(duì)應(yīng)關(guān)系(“1.1.1.2—Mac1”)記錄到ARP表,表明目的IP為1.1.1.2的數(shù)據(jù)幀轉(zhuǎn)發(fā)時(shí)目的MAC為Mac1,同時(shí)需路由到端口Port1;
- ARP請(qǐng)求的目的地址是廣播地址,SW將其洪泛到該Vlan的每個(gè)端口(除入端口);同時(shí)SW自身截獲一份上送CPU(網(wǎng)關(guān)),發(fā)現(xiàn)是詢問(wèn)自己的MAC,于是回復(fù)ARP單播應(yīng)答幀,目的MAC為PC1的Mac1,源MAC為網(wǎng)關(guān)的MAC地址GwMac1,源IP為1.1.1.1,目的IP為PC1的1.1.1.2;
- PC1收到SW發(fā)來(lái)的ARP應(yīng)答幀,得到SW三層網(wǎng)關(guān)MAC地址,將“1.1.1.1—GwMac1”記錄到ARP表。PC1向SW發(fā)送ICMP請(qǐng)求幀,目的IP為PC2的IP(2.2.2.2),目的MAC為網(wǎng)關(guān)MAC,源IP和源MAC為PC1的;
- SW收到ICMP請(qǐng)求幀,對(duì)其附加端口PVid(10)的標(biāo)簽,然后進(jìn)行源MAC地址學(xué)習(xí),發(fā)現(xiàn)二層轉(zhuǎn)發(fā)表有該條目,更新老化時(shí)間。因該幀目的MAC地址是網(wǎng)關(guān),SW送交三層路由處理。
- 在三層首先檢查IP報(bào)文的版本、IP首部檢驗(yàn)和TTL是否正確,若不正確則標(biāo)記丟棄并交由CPU處理;正確則在三層主機(jī)路由表(又稱L3表)中查找目的IP(即PC2的IP 2.2.2.2)。此時(shí)L3表中只包含與自己直連的32位地址(包括自身接口)及步驟⑶中ARP表學(xué)習(xí)后下發(fā)的PC1信息,而找不到PC2的信息。進(jìn)而按最長(zhǎng)前綴匹配算法查找子網(wǎng)路由表(又稱Longest Prefix Match即LPM表)得到2.2.2.1目的網(wǎng)段的條目,下一跳的IP地址為 2.2.2.1;
- 索引回L3表查找2.2.2.1,得到該條目,發(fā)現(xiàn)要提交CPU處理(CPU也需要看作是一個(gè)端口);
- CPU沒(méi)有到PC2的路由,但PC2的目的IP屬于自己接口地址2.2.2.1的網(wǎng)段,故向接口Vlan20所包含的所有物理端口廣播一個(gè)ARP請(qǐng)求幀,源MAC地址為交換機(jī)接口的三層MAC地址GwMac2,源IP地址為2.2.2.1,請(qǐng)求IP地址2.2.2.2的MAC地址;
- PC2收到ARP請(qǐng)求,學(xué)習(xí)“2.2.2.1—GwMac2”加入ARP表;并回復(fù)ARP應(yīng)答幀,目的IP為交換機(jī)接口Vlan20的IP地址2.2.2.1,目的MAC為交換機(jī)接口Vlan20的MAC地址GwMac2;
- SW收到PC2發(fā)送的ARP應(yīng)答幀,附加端口PVid(20)后在MAC表中查找“Mac2+Vid20”,沒(méi)找到則學(xué)習(xí)源地址,在MAC轉(zhuǎn)發(fā)表中添加PC2相關(guān)記錄。因該幀目的MAC為網(wǎng)關(guān)地址,故提交三層處理;
- 三層首先檢查報(bào)文正確性,無(wú)誤則在L3表中查找目的IP。由于目的IP為本機(jī),故上送CPU處理。CPU對(duì)報(bào)文處理后得到“2.2.2.2—Mac2”將相關(guān)信息加入ARP表(CPU下發(fā)給L3表進(jìn)行記錄)。
- PC1向SW發(fā)送的第一個(gè)ICMP請(qǐng)求幀存儲(chǔ)在內(nèi)存中,此時(shí)交由CPU進(jìn)行IP報(bào)文頭部修改(TTL減1,FCS重新計(jì)算封裝)和MAC封裝(目的MAC地址改為PC2的MAC地址,源MAC地址改為SW三層MAC地址)并發(fā)送給PC2,如果超時(shí)則丟棄,CPU發(fā)送ICMP超時(shí)給PC1;
- PC2收到PC1發(fā)來(lái)的ICMP請(qǐng)求后,回復(fù)ICMP應(yīng)答幀,目的IP為PC1的IP 1.1.1.2,同樣PC2發(fā)現(xiàn)該地址和自己不在同一子網(wǎng),需要網(wǎng)關(guān)進(jìn)行轉(zhuǎn)發(fā)。之前PC2已學(xué)習(xí)到交換機(jī)接口Vlan20的ARP,此時(shí)根據(jù)該ARP將ICMP應(yīng)答幀目的MAC地址填為網(wǎng)關(guān)MAC地址GwMac2發(fā)送出去。交換機(jī)收到幀后,發(fā)現(xiàn)目的MAC地址是網(wǎng)關(guān)地址,取出幀中的目的IP地址1.1.1.1查找路由。之前交換機(jī)已學(xué)習(xí)到該IP的路由,所以會(huì)查找到主機(jī)路由表中相應(yīng)的路由并將幀目的MAC地址換成Mac1,源MAC地址換成網(wǎng)關(guān)MAC地址GwMac2,發(fā)送到端口Port1上。最終,PC1就收到PC2的ICMP應(yīng)答。
- 經(jīng)過(guò)以上流程后,PC1和PC2分別學(xué)到各自網(wǎng)關(guān)接口的ARP,交換機(jī)也有了分別到達(dá)PC1和PC2的路由。后續(xù)的報(bào)文不再通過(guò)路由,而直接由L3表中對(duì)應(yīng)的表項(xiàng)進(jìn)行硬件轉(zhuǎn)發(fā)。
至此,基于vlan的二層三層轉(zhuǎn)發(fā)原理就基本清楚了,后面將開始研究linux的vlan實(shí)現(xiàn)了!linux的vlan原理,明白了linux的實(shí)現(xiàn)思路,大有益處。