Linux系統VLAN、三層交換和Trunk的區別詳解

熟悉linux系統的用戶都了解 , 在Linux系統中VLAN , 三層交換和Trunk是三個容易混淆的概念 。 如果對這三個概念只是一知半解的 , 就會不可避免繞一些彎路 , 浪費不少時間 。 下面 , 釗陽手游小編就給大家介紹Linux系統VLAN、三層交換和Trunk的區別詳解 。
Linux系統
1.VLAN和三層沒有任何關系
【Linux系統VLAN、三層交換和Trunk的區別詳解】如果先不提Trunk而純粹的VLAN實際上就是將多個純二層的以太網交換機合并成了一個 , 用軟件進行控制 。 合并后的交換機就是支持VLAN的交換機 , 參與合并的多個物理交換機如今退化成了邏輯意義上的交換機 。 多個物理交換機并不是傻乎乎的合并后完事 , VLAN交換機的另一個意義就是可以通過各種策略指定哪個物理port屬于哪個邏輯交換機 , 如果讓物理交換機實現這個 , 就不得不涉及購置 , 布線等問題 , 這就說明了軟件真的比硬件更加靈活 , 以軟件為基準 , 硬件其實就是固化了的軟件 。
如果想明白VLAN的含義 , 在Linux上配置幾個Bridge就可以了 。 我們知道 , Linux內置了一個軟Bridge實現 , 通過brctl可以進行配置 , 一個單獨的Linux物理主機配置了N塊以太網卡 , 就可以簡單的模擬VLAN的概念(注意 , 此時還沒有引入VLAN的本質-Trunk)了:
a.新增一個br0 , 將網卡1/2/3加進去;
b.新增一個br1 , 將網卡4/5/6加進去;
c....
d.網卡1連接一個純二層交換機1;
e.網卡4連接一個純二層交換機2;
f....
這樣Linux主機上就存在了多個Bridge , 你可以將Linux主機這個物理的機器視為一個支持VLAN的機器了 。
VLAN交換機是一個純二層的設備 。 然而 , 如果僅僅這樣 , 那就沒有必要推出VLAN的概念了 , VLAN到底和上述的簡單配置有什么不同呢?這就涉及到了IEEE802.1q標準 。
2.Trunk和三層沒有任何關系
如果一個VLAN交換機上配置了兩個VLAN , 分別為VLAN1和VLAN2 , 另外幾臺VLAN交換機上可能也需要配置VLAN1和VLAN2 , 畢竟單獨一臺機器的口子有限 , 因此對于組網 , 不級聯的拓撲是很少見的 , 現在關鍵的問題就是需要讓處在不同VLAN交換機的口子可以屬于同一個VLAN , 即屬于同一個廣播域 。 辦法很簡單 , 那就是每一個VLAN用一個線將兩個VLAN交換機上屬于同一個VLAN的口子連起來 , 如果兩臺交換機上分別有3個VLAN , 那就扯3根線 。 。 。 這不得不說是一個好方法 , 但決不是一個妙方法 。 對于硬件上的體力活兒 , 軟件一般都能很好的解決 , 這一次 , 又是軟件幫了忙 , 正如VLAN的概念提出時那樣 。
Trunk標準提出來了 , 所謂的Trunk就是可以讓多個VLAN在兩個交換機級聯時復用一根線 , 因此軟件上需要對數據幀做一些文章 , 以便數據幀到達另一個交換機的時候知道自己屬于哪個VLAN從而限制幀的傳輸域 , 802.1q正是做這個的 , 從而這也成了VLAN的核心 。 Trunk只是簡化了布線 , 降低了硬件成本 , 這是一個通過軟件降低硬件成本的絕好的例子 。
既然Trunk可以通過多個VLAN的數據 , 那么實際上Trunk是將廣播域延伸到了另外一臺交換機上 , 而對于LAN , 其廣播域延伸到哪里 , LAN也就延伸到了那里 。 事實上這并不與VLAN的初衷之一-限制廣播域相沖突 , Trunk將廣播透傳的時候是打著VLAN id標記的 , 也就是說廣播除了可以在Trunk上或者在自己VLAN內部傳輸 , 是決不會到達其它VLAN里面的 , 如果一個廣播到達了這樣一個交換機 , 其上既沒有別的Trunk口 , 也沒有廣播攜帶的VLAN id對應的VLAN , 那么廣播也就到此為止而消失了 。
到此為止 , 絲毫沒有任何第三層的概念出現 。
3.VLAN接口的概念
VLAN接口的概念和Linux上Bridge的實現十分相像 , 就是可以為一個VLAN配置一個或者多個接口 , 在該接口上可以指定三層的IP地址 , 在VLAN的某一個口子(物理二層接口)上配置這樣一個VLAN接口(三層接口)實際上就等同于在VLAN的該口子上插入了一臺三層設備 , 只是這臺設備是一臺虛擬的設備罷了 , 另外和真正插一臺設備不同的是 , 由于它是處在本機內部的 , 因此它所配置IP地址當然也就屬于本機IP地址了 , 處在路由表的Local域中 。
理解了這一點就會明白 , 實際上配置了VLAN接口的VLAN交換機實際上是往純VLAN交換機里面硬塞了一臺三層設備 , 二者合而為一 , 因此更能加深對“VLAN交換機是一個純二層的設備”這個觀點的認識 。
4.LAN交換機上可以配置IP地址
姑且先拋開VLAN的概念 , 說一下LAN交換機 。 一般以為LAN交換機是純二層的設備 , 可是知道了VLAN接口的概念后 , 我們發現即使沒有VLAN , 也是可以將一臺虛擬的三層設備插入到一個LAN交換機的口子上去的 , 其實Linux的軟Bridge就是這樣做的 , 那么內置了三層虛擬設備的LAN交換機就有了三層的功能 。 這是什么呢?還是以Linux為例 , 在Linux上配置兩個Bridge , 分別為br0 , br1 , 在br0上配置IP地址1.1.1.1/24 , 在br1上配置IP地址2.2.2.2/24 , 我們就可以看到br0標示的一個LAN上的流量可以通過br0的IP地址被路由到br1 , 反之 , br1標示的LAN流量也可以通過br1的IP地址路由到br0 , 這是什么?這就是三層交換機 , 一個將路由器接口變成交換機接口的路由器 , 這部三層交換機上擁有兩組LAN接口 , 雖然可以略見VLAN的概念 , 但是沒有任何標準說這個三層交換機上的兩組LAN就是兩個VLAN 。

推薦閱讀