系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當(dāng)前位置:系統(tǒng)之家 > 系統(tǒng)教程 > Linux VLAN、三層交換和Trunk

Linux系統(tǒng)VLAN、三層交換和Trunk的區(qū)別

時間:2015-09-14 11:56:36 作者:zhijie 來源:系統(tǒng)之家 1. 掃描二維碼隨時看資訊 2. 請使用手機(jī)瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20150914/57633.html 手機(jī)查看 評論

  在Linux系統(tǒng)中VLAN,三層交換和Trunk是三個容易混淆的概念。如果對這三個概念只是一知半解的,就會不可避免繞一些彎路,浪費不少時間。本文就來跟大家介紹一下Linux系統(tǒng)VLAN、三層交換和Trunk的區(qū)別。

Linux系統(tǒng)VLAN、三層交換和Trunk的區(qū)別

  1.VLAN和三層沒有任何關(guān)系

  如果先不提Trunk而純粹的VLAN實際上就是將多個純二層的以太網(wǎng)交換機(jī)合并成了一個,用軟件進(jìn)行控制。合并后的交換機(jī)就是支持VLAN的交換機(jī),參與合并的多個物理交換機(jī)如今退化成了邏輯意義上的交換機(jī)。多個物理交換機(jī)并不是傻乎乎的合并后完事,VLAN交換機(jī)的另一個意義就是可以通過各種策略指定哪個物理port屬于哪個邏輯交換機(jī),如果讓物理交換機(jī)實現(xiàn)這個,就不得不涉及購置,布線等問題,這就說明了軟件真的比硬件更加靈活,以軟件為基準(zhǔn),硬件其實就是固化了的軟件。

  如果想明白VLAN的含義,在Linux上配置幾個Bridge就可以了。我們知道,Linux內(nèi)置了一個軟Bridge實現(xiàn),通過brctl可以進(jìn)行配置,一個單獨的Linux物理主機(jī)配置了N塊以太網(wǎng)卡,就可以簡單的模擬VLAN的概念(注意,此時還沒有引入VLAN的本質(zhì)-Trunk)了:

  a.新增一個br0,將網(wǎng)卡1/2/3加進(jìn)去;

  b.新增一個br1,將網(wǎng)卡4/5/6加進(jìn)去;

  c....

  d.網(wǎng)卡1連接一個純二層交換機(jī)1;

  e.網(wǎng)卡4連接一個純二層交換機(jī)2;

  f....

  這樣Linux主機(jī)上就存在了多個Bridge,你可以將Linux主機(jī)這個物理的機(jī)器視為一個支持VLAN的機(jī)器了。

  VLAN交換機(jī)是一個純二層的設(shè)備。然而,如果僅僅這樣,那就沒有必要推出VLAN的概念了,VLAN到底和上述的簡單配置有什么不同呢?這就涉及到了IEEE802.1q標(biāo)準(zhǔn),請看下節(jié)。

  2.Trunk和三層沒有任何關(guān)系

  如果一個VLAN交換機(jī)上配置了兩個VLAN,分別為VLAN1和VLAN2,另外幾臺VLAN交換機(jī)上可能也需要配置VLAN1和VLAN2,畢竟單獨一臺機(jī)器的口子有限,因此對于組網(wǎng),不級聯(lián)的拓?fù)涫呛苌僖姷模F(xiàn)在關(guān)鍵的問題就是需要讓處在不同VLAN交換機(jī)的口子可以屬于同一個VLAN,即屬于同一個廣播域。辦法很簡單,那就是每一個VLAN用一個線將兩個VLAN交換機(jī)上屬于同一個VLAN的口子連起來,如果兩臺交換機(jī)上分別有3個VLAN,那就扯3根線。。。這不得不說是一個好方法,但決不是一個妙方法。對于硬件上的體力活兒,軟件一般都能很好的解決,這一次,又是軟件幫了忙,正如VLAN的概念提出時那樣。

  Trunk標(biāo)準(zhǔn)提出來了,所謂的Trunk就是可以讓多個VLAN在兩個交換機(jī)級聯(lián)時復(fù)用一根線,因此軟件上需要對數(shù)據(jù)幀做一些文章,以便數(shù)據(jù)幀到達(dá)另一個交換機(jī)的時候知道自己屬于哪個VLAN從而限制幀的傳輸域,802.1q正是做這個的,從而這也成了VLAN的核心。Trunk只是簡化了布線,降低了硬件成本,這是一個通過軟件降低硬件成本的絕好的例子。

  既然Trunk可以通過多個VLAN的數(shù)據(jù),那么實際上Trunk是將廣播域延伸到了另外一臺交換機(jī)上,而對于LAN,其廣播域延伸到哪里,LAN也就延伸到了那里。事實上這并不與VLAN的初衷之一-限制廣播域相沖突,Trunk將廣播透傳的時候是打著VLAN id標(biāo)記的,也就是說廣播除了可以在Trunk上或者在自己VLAN內(nèi)部傳輸,是決不會到達(dá)其它VLAN里面的,如果一個廣播到達(dá)了這樣一個交換機(jī),其上既沒有別的Trunk口,也沒有廣播攜帶的VLAN id對應(yīng)的VLAN,那么廣播也就到此為止而消失了。

  到此為止,絲毫沒有任何第三層的概念出現(xiàn)。

  3.VLAN接口的概念

  VLAN接口的概念和Linux上Bridge的實現(xiàn)十分相像,就是可以為一個VLAN配置一個或者多個接口,在該接口上可以指定三層的IP地址,在VLAN的某一個口子(物理二層接口)上配置這樣一個VLAN接口(三層接口)實際上就等同于在VLAN的該口子上插入了一臺三層設(shè)備,只是這臺設(shè)備是一臺虛擬的設(shè)備罷了,另外和真正插一臺設(shè)備不同的是,由于它是處在本機(jī)內(nèi)部的,因此它所配置IP地址當(dāng)然也就屬于本機(jī)IP地址了,處在路由表的Local域中。

  理解了這一點就會明白,實際上配置了VLAN接口的VLAN交換機(jī)實際上是往純VLAN交換機(jī)里面硬塞了一臺三層設(shè)備,二者合而為一,因此更能加深對“VLAN交換機(jī)是一個純二層的設(shè)備”這個觀點的認(rèn)識。

  4.LAN交換機(jī)上可以配置IP地址

  姑且先拋開VLAN的概念,說一下LAN交換機(jī)。一般以為LAN交換機(jī)是純二層的設(shè)備,可是知道了VLAN接口的概念后,我們發(fā)現(xiàn)即使沒有VLAN,也是可以將一臺虛擬的三層設(shè)備插入到一個LAN交換機(jī)的口子上去的,其實Linux的軟Bridge就是這樣做的,那么內(nèi)置了三層虛擬設(shè)備的LAN交換機(jī)就有了三層的功能。這是什么呢?還是以Linux為例,在Linux上配置兩個Bridge,分別為br0,br1,在br0上配置IP地址1.1.1.1/24,在br1上配置IP地址2.2.2.2/24,我們就可以看到br0標(biāo)示的一個LAN上的流量可以通過br0的IP地址被路由到br1,反之,br1標(biāo)示的LAN流量也可以通過br1的IP地址路由到br0,這是什么?這就是三層交換機(jī),一個將路由器接口變成交換機(jī)接口的路由器,這部三層交換機(jī)上擁有兩組LAN接口,雖然可以略見VLAN的概念,但是沒有任何標(biāo)準(zhǔn)說這個三層交換機(jī)上的兩組LAN就是兩個VLAN。

  可見,三層交換機(jī)可以和VLAN沒有關(guān)系。

  5.以太網(wǎng)三層交換機(jī)

  從上述第4節(jié)可以看出,三層交換機(jī)可以和VLAN沒有關(guān)系,然而實際情況下,三層交換機(jī)一般都支持VLAN,為何設(shè)備廠商要如此做呢?這涉及到一個工業(yè)設(shè)計的問題,工業(yè)上的設(shè)計主要關(guān)注產(chǎn)品的使用而不是理論上的合理性,因此將VLAN引入第4節(jié)的“兩組LAN”是最合適不過的了。

  另外,三層交換機(jī)本質(zhì)上還是偏重于“交換機(jī)”而不是“三層”,交換機(jī)的特征就是交換,所謂的交換是一個快速轉(zhuǎn)發(fā)的概念,基本都是使用硬件芯片完成的,大量的存儲芯片以空間換時間完成快速交換,這得益于以太網(wǎng)幀頭的簡單易操作性以及LAN交換機(jī)設(shè)計時關(guān)注了基于源MAC的自動學(xué)習(xí)和基于目標(biāo)MAC的轉(zhuǎn)發(fā),之所以能如此還是因為以太網(wǎng)是一個BMA,即廣播網(wǎng)絡(luò),到底數(shù)據(jù)應(yīng)該由誰接收不是交換機(jī)決定的,而是各個端點主機(jī)決定的,這樣的話交換機(jī)就可以模糊的進(jìn)行轉(zhuǎn)發(fā),做到盡可能的精確-通過源MAC/端口學(xué)習(xí),大不了就廣播。這就是以太網(wǎng)交換的特征,三層交換機(jī)可以利用以太網(wǎng)交換的大量存儲芯片用來存儲IP層的路由結(jié)果,利用以太網(wǎng)快速交換的思想用來進(jìn)行三層轉(zhuǎn)發(fā),數(shù)據(jù)包的第一次通過還是要走三層,這相當(dāng)于一次學(xué)習(xí)的過程,類似以太網(wǎng)的MAC/端口學(xué)習(xí),以后的結(jié)果就可以存儲于ASCI了,這樣就完成了快速轉(zhuǎn)發(fā)。

  6.三層交換機(jī)和路由器的區(qū)別

  這個問題的答案鋪天蓋地,然而內(nèi)容也是千篇一律,很少有人研究其背后的原因。既然以太網(wǎng)三層交換機(jī)可以做到一次路由多次轉(zhuǎn)發(fā),那么為何不再WAN上使用呢?如果僅僅是因為WAN不一定是以太網(wǎng)的話,那大可為了性能在WAN上引入以太網(wǎng)技術(shù),這并不是主要原因,實際上,如果再深入一點看一下WAN上的路由器和接入層路由器的路由表就會恍然大悟了,WAN路由器上的表項數(shù)量十分龐大,且在BGP的影響下雖不頻繁但是還是會有刷新,如果使用硬件來轉(zhuǎn)發(fā)的話,光是對存儲空間的需求就是一個挑戰(zhàn),三層交換機(jī)的快速轉(zhuǎn)發(fā)實際上用到了cache的概念,有cache就會有沖突,特別在WAN環(huán)境下,IP地址的變動,可達(dá)性信息的變動會導(dǎo)致大量的cache沖突,因此三層交換機(jī)帶來的收益會被馬上抵消,另外WAN環(huán)境實際上用不到很多交換機(jī)口子,因此三層交換機(jī)內(nèi)部背板芯片布線對于WAN環(huán)境是不合理的。其實用不著為WAN的性能擔(dān)心,WAN路由器早就使用了類似Cisco CEF的快速轉(zhuǎn)發(fā)技術(shù)了。

  三層交換機(jī)的使用場合是單個小型機(jī)構(gòu)內(nèi)部,因為這種地方的特定IP地址幾乎不會變動,路由相對穩(wěn)定,IP地址總量也不多,且路由基本都能匯聚,正好符合cache最優(yōu)化使用的原則,三層交換機(jī)用武之地正在于此。

  7.VLAN間的通信

  這個問題的方案也是鋪天蓋地,答案同樣千篇一律。VLAN間的通信方式被總結(jié)出來有兩種:1.使用單臂路由方式;2.使用三層交換方式。這好像是從CCNP/CCIE或者華為的HCSE的考試指南中流出來的,如果背下來當(dāng)然是有用的,當(dāng)初我考HCSE的時候還背了呢。學(xué)習(xí)到了一定程度就應(yīng)該拋棄答案,回歸本質(zhì)。兩個VLAN間的通信其實就是兩個LAN間的通信,兩個LAN間的通信需要一個網(wǎng)關(guān)來路由,那么VLAN間通信也就需要一個網(wǎng)關(guān)來路由了,這個網(wǎng)關(guān)的選擇就多樣了,可以選擇VLAN接口,可以選擇路由器等等,最終具體屬于一個VLAN的主機(jī)在訪問另一個VLAN的主機(jī)時如何能尋址到這個三層接口,那也有很多選擇,VLAN的access鏈路上幀保持原樣,流量若要跨越交換機(jī)的級聯(lián)線,那么需要通過Trunk鏈路,最終總能找到這個下一跳三層接口。

  以上就是Linux系統(tǒng)VLAN、三層交換和Trunk的區(qū)別了,雖然三層交換機(jī)理論上可以支持VLAN和Trunk,但是這種支持只是一種模仿,遠(yuǎn)遠(yuǎn)不能達(dá)到替代的效果。

發(fā)表評論

0

沒有更多評論了

評論就這些咯,讓大家也知道你的獨特見解

立即評論

以上留言僅代表用戶個人觀點,不代表系統(tǒng)之家立場

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

掃碼關(guān)注
掃碼關(guān)注

掃碼關(guān)注 官方交流群 軟件收錄