網路工程知識(二)VLAN的基礎和設定:802.1q幀;Access、Trunk、Hybrid介面工作模式過程與設定;VLANIF的小實驗

2022-10-21 21:05:02

介紹-VLAN

VLAN(Virtual Local Area Network)即虛擬區域網,工作在資料鏈路層。

交換機將通過:介面、MAC、基於子網、協定劃分(IPv4和IPv6)、基於策略的方式劃分VLAN的方式,將接入的裝置進行劃分。

  • 目的:
    • VLAN 可以將同一個物理網路劃分為多個邏輯網段,從而減小廣播域,節約交換機效能,抑制網路風暴。
    • VLAN之間無法二層互通,可以隔離業務,增強網路安全性。

乙太網報文

  • 在交換機中乙太網(EtherNet)有untagtag兩種報文。untag幀即終端可以識別的普通乙太網幀。tag幀在源mac地址(SA)和幀負載(Frame Load)之間有一段4Byte的Tag欄位。
 
特點
Ethernet幀 untag,一般指端裝置可識別
802.1q幀 在Ethernet幀的基礎上加上Tag欄位,一般用於交換機之間

  圖1.802.1q幀tag示意圖

  • 這個Tag欄位中主要內容是VLAN ID,儲存著VLAN。
    • VLAN ID佔用12bit,可以記錄到4096個數位,去除全0和全1的情況,所以VLAN範圍為1-4094
    • CFI佔用1bit,0代表乙太網,1代表令牌環網(Token Ring)。

PIVD和三種vlan介面工作模式

因為tag的存在,交換機可以識別選擇性處理資料框,但是終端裝置是無法正常的識別tag,所以交換機需要為出入埠的資料框進行處理。

可以這樣理解,交換機之間使用含tag的語言交流,終端只懂untag語言,所以需要埠承擔不同的工作模式。

PVID

PVID(Port Default VLAN ID)指的是埠預設VLAN(埠預設VLAN ID),在實際上設定中,我們實際上是給埠設定pvid,pvid可以理解就是這個介面要處理埠的一個引數,在處理報文時候需要使用。

ps:這裡的收發是站在交換機的角度出發,即入介面為交換機收,同理出介面為交換機發。發的時候交換機不會檢查是否是tag幀還是untag幀,因為從交換機cpu處理過的都是tag幀。

ps:一下簡化一下,untag幀即為標準的乙太網幀,tag幀為帶有vlan的802.1q幀。

Access介面:

  • 用於交換機連線終端裝置,在設定交換機的時候只需要設定port default vlan id即pvid,用於生成vlan id為tag的,不涉及allowed list和tag list、untag list。
  • 收:
    • untag幀,打上埠pvid後接收;
    • tag幀(話說應該是接錯了到交換機),看vlan id是否等於pvid,相同則接受,不相同就丟棄
  • 發:
    • 將幀中tag欄位剔除後傳送。
[alittlemcSW]interface GigabitEthernet 0/0/1
[alittlemcSW-GigabitEthernet0/0/1]port link-type access
[alittlemcSW-GigabitEthernet0/0/1]port default vlan 10

Trunk介面:

  • 用於交換機之間的級聯。trunk可以設定多個可以通過的vlan id或範圍,即allow-pass list。
  • 收:
    • untag幀,打上pvid,後轉發;
    • tag幀,判斷vlan id是否是為allow-pass list中允許的vlan id,允許則接收,否則丟棄。
  • 發(必是tag幀):
    • 比較幀vlan id和埠pvid是否相同,相同則去掉tag傳送,不相同直接傳送。
[alittlemcSW]interface GigabitEthernet 0/0/2
[alittlemcSW-GigabitEthernet0/0/2]port link-type trunk
[alittlemcSW-GigabitEthernet0/0/2]port trunk allow-pass vlan all
[alittlemcSW-GigabitEthernet0/0/2]port trunk pvid vlan 10  

 

Hybrid介面:

注意,Hybrid為華為專有的介面,所以思科銳捷這些是沒有的哦,而且預設華為交換機就預設使用此模式。

  • 相容了access和trunk的特點,接在交換機或終端均可。
  • 收(其實是和Trunk的接收操作是一樣的):
    • untag幀,打上pvid,後轉發;
    • tag幀,判斷vlan id是否是為tag list(和trunk中allow-pass list效果一致)中允許的vlan id,允許則接收,否則丟棄。
  • 發(在hybrid中有tagged list和untagged list):
    • 檢查tag幀中的vlan id,屬於tag list,直接轉發;屬於untag list中則剔除tag幀的tag後變為untag幀轉發。
[alittlemcSW]interface GigabitEthernet0/0/3
[alittlemcSW-GigabitEthernet0/0/3]port hybrid pvid vlan 10
[alittlemcSW-GigabitEthernet0/0/3]port hybrid tagged vlan 20 30 #允許帶vlan20 30的tag直接通過,對應trunk模式
[alittlemcSW-GigabitEthernet0/0/3]port hybrid untagged vlan 10 100 200 #傳送時將vlan10 100 200的tag欄位剔除,對應access模式
  • hybrid和trunk模式其實很相似,在收時候一致。在發時候,因為pvid只有一個,hybrid允許untagged list中多個vlan id幀直接剔除tag傳送,而trunk只會對和pvid相同的vlan id幀剔除tag傳送。

VLAN IF

vlan if是交換機虛擬出來的三層介面,可以設定ip,每一個vlan對應一個vlan if,主要用作為vlan閘道器。我們需要通過網路層的路由從而實現不同之間vlan之間資料互訪。 同時也可以實現同vlan不同子網的互訪。

眾所周知,不同vlan可以使用網路層來實現通訊,不同網段使用閘道器的路由來通訊。基於此,我整理了兩個實驗。

使用vlanif IP作為使用者閘道器的情況下都可以實現不同子網、不同VLAN通訊。

同vlan不同子網通訊

vlanif甚至可以和路由器ip一樣很方便的使用:同VLAN下不同網段之間路由,比如某個專案由不同公司負責,一期專案使用了10.10.10.0/24網段、二期使用10.10.20.0/24網段。

圖2.拓撲1

#將1,2,3埠都劃分到vlan10 access
[alittlemcSW]port-group group-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/3
[alittlemcSW-port-group]port link-type access
[alittlemcSW-port-group]port default vlan 10

直接設定vlanif sub

[alittlemcSW]interface vlanif 10
[alittlemcSW-Vlanif10]ip address 10.10.10.254 24
[alittlemcSW-Vlanif10]ip adderss 10.10.20.254 24 sub
[alittlemcSW-Vlanif10]ip adderss 10.10.31.254 22 sub

不同VLAN通訊子網使用

基於上次的實驗微調了一下,不同vlan之間的通訊的原理也包含其中啦,只要設定了vlanif,vlanif都在本機內可以直同路由。

圖3.拓撲2

直接上設定。

#
interface Vlanif10
 ip address 10.10.10.254 255.255.255.0
 ip address 10.10.31.254 255.255.252.0 sub
#
interface Vlanif20
 ip address 10.10.20.254 255.255.255.0
#
interface GigabitEthernet0/0/1
 port link-type access
 port default vlan 10
#
interface GigabitEthernet0/0/2
 port link-type access
 port default vlan 20
#
interface GigabitEthernet0/0/3
 port link-type access
 port default vlan 10
#

如果是不同的交換機之間,設定是一樣的,只不過要注意設定靜態路由即可。

其他

QinQ

QinQ(802.1Q in 802.1Q)也被稱之為VLAN Stacking或Double VLAN。(詳細可見什麼是QinQ? 為什麼需要QinQ? - 華為 (huawei.com)

我們的802.1q幀多了4Byte用於存放Tag,其中VLAN ID佔用12bit,即vlan id的範圍1到4064。但是某些情況下一個需要大量的vlan就可能不夠用,QinQ在乙太網幀中插入了兩段tag資訊,即可以實現儲存4064x4064個vlan的效果。

圖4.QinQ

 

 

更新紀錄檔

  • 2022年10月21日19:22:40
    • 完成了vlan的介紹、三種介面模式、vlanif的應用
    • 預告-後面會更新vlan的劃分->介面、MAC、基於子網、協定劃分(IPv4和IPv6)、基於策略的方式劃分VLAN的方式
  • 2022年10月21日20:03:20
    • 修改了程式碼塊的語法高亮