VLAN協議


VLAN協議

來源 https://zhuanlan.zhihu.com/p/151853557

 

我們知道一個企業隨着業務發展網絡中的計算機越來越多,所有的主機在一個二層的以太網中會造成以下問題:

  • 網絡中的所有主機屬於同一個廣播域,容易造成廣播報文泛濫,浪費網絡帶寬,造成鏈路擁塞;
  • 廣播域太大,同一廣播域下的主機都可以互相通信,容易帶來安全性問題。

VLAN技術可以隔離廣播域,縮小廣播域的范圍,從而解決了上述問題。

正文

1:什么是VLAN?

VLAN(Virtual Local Area Network)即虛擬局域網,可以將一個物理局域網在邏輯上划分成多個廣播域,也就是多個VLAN。

VLAN作用:

VLAN技術部署在數據鏈路層,用於隔離二層流量。

VLAN的通信原則:

  • 同一個VLAN內的主機共享同一個廣播域,它們之間可以直接進行二層通信;
  • VLAN間的主機屬於不同的廣播域,不能直接實現二層互通。

VLAN優點:

既能夠隔離廣播域,又能夠提升網絡的安全性。

如上圖所示:

原本屬於同一廣播域的主機被划分到了兩個VLAN中,即,VLAN2和VLAN3。由於PC1和PC4同屬於VLAN3,因此二層可以互相通信;PC1和PC2屬於不同的VLAN,不能夠二層通信。

2:VLAN報文格式:
帶有VLAN的數據幀比正常以太網數據幀多了Tag字段,VLAN Tag長4個字節,直接添加在以太網幀頭中。

Tag字段組成:

1、TPID:Tag Protocol Identifier,2字節,固定取值,0x8100,是IEEE定義的新類型,表明這是一個攜帶802.1Q標簽的幀。如果不支持802.1Q的設備收到這樣的幀,會將其丟棄。

2、TCI:Tag Control Information,2字節。幀的控制信息,詳細說明如下:

  • Priority:3比特,表示幀的優先級,取值范圍為0~7,值越大優先級越高。當交換機阻塞時,優先發送優先級高的數據幀。
  • CFI:Canonical Format Indicator,1比特。CFI表示MAC地址是否是經典格式。CFI為0說明是經典格式,CFI為1表示為非經典格式。用於區分以太網幀、FDDI(Fiber Distributed Digital Interface)幀和令牌環網幀。在以太網中,CFI的值為0。
  • VLAN Identifier:VLAN ID,12比特,可配置的VLAN ID取值范圍為0~4095,但是0和4095在協議中規定為保留的VLAN ID,不能給用戶使用。

在Tag字段中,主要關注的就是VLAN Identifier, 這個字段表示該數據幀帶的vlan id是多少。

3:PVID
PVID即Port VLAN ID,代表端口的缺省VLAN。

為什么需要PVID?

交換機從對端設備收到的幀有可能是Untagged的數據幀,但所有以太網幀在交換機中都是以Tagged的形式來被處理和轉發的,因此交換機必須給端口收到的Untagged數據幀添加上Tag。

為了實現此目的,必須為交換機配置端口的缺省VLAN。

交換機收到Untagged數據幀的處理方式:

當該端口收到Untagged數據幀時,交換機將給它加上該缺省VLAN的VLAN Tag。

缺省情況下,交換機每個端口的PVID是1。

如下圖所示:通過dis int g0/0/3可以查看交換機二層端口的PVID為1。

4:VLAN的划分
我們知道vlan可以隔離廣播域,那么如何去划分vlan呢?下面介紹下5種vlan的划分方法,重點關注基於端口的VLAN划分方式。
  • 基於端口划分:根據交換機的端口編號來划分VLAN。
    通過為交換機的每個端口配置不同的PVID,來將不同端口划分到VLAN中。初始情況下,交換機的端口處於VLAN1中。
    優點:此方法配置簡單,但是當主機移動位置時,需要重新配置VLAN。
  • 基於MAC地址划分:根據主機網卡的MAC地址划分VLAN。
    此划分方法需要網絡管理員提前配置網絡中的主機MAC地址和VLAN ID的映射關系。如果交換機收到不帶標簽的數據幀,會查找之前配置的MAC地址和VLAN映射表,根據數據幀中攜帶的MAC地址來添加相應的VLAN標簽。
    優點:在使用此方法配置VLAN時,即使主機移動位置也不需要重新配置VLAN。
  • 基於IP子網划分:交換機在收到不帶標簽的數據幀時,根據報文攜帶的IP地址給數據幀添加VLAN標簽。
  • 基於協議划分:根據數據幀的協議類型(或協議族類型)、封裝格式來分配VLAN ID。
    網絡管理員需要首先配置協議類型和VLAN ID之間的映射關系。
  • 基於策略划分:使用幾個條件的組合來分配VLAN標簽。這些條件包括IP子網、端口和IP地址等。只有當所有條件都匹配時,交換機才為數據幀添加VLAN標簽。另外,針對每一條策略都是需要手工配置的。
5:VLAN工作原理:
在介紹VLAN工作原理之前,我們先看下VLAN的2種鏈路類型和3種端口類型。

 

2種鏈路類型

VLAN鏈路分為兩種類型:Access鏈路和Trunk鏈路。

  • 接入鏈路(Access Link):連接用戶主機和交換機的鏈路稱為接入鏈路。如本例所示,圖中主機和交換機之間的鏈路都是接入鏈路。
  • 干道鏈路(Trunk Link):連接交換機和交換機的鏈路稱為干道鏈路。如本例所示,圖中交換機之間的鏈路都是干道鏈路。干道鏈路上通過的幀一般為帶Tag的VLAN幀。

 

3種端口類型

學習了vlan的概念,我們知道網絡中的數據幀要么是沒有加上VLAN標記的標准以太網幀(untagged frame),要么是帶有VLAN標記的以太網幀(tagged frame)。

那么不同類型的接口是如何發送和接收帶有vlan標記的以太網數據幀的呢?

Access接口:

Access端口是交換機上用來連接用戶主機的端口,它只能連接接入鏈路,並且只能允許唯一的VLAN ID通過本端口。

Access端口收發數據幀的規則如下:

  • 如果該端口收到對端設備發送的幀是untagged(不帶VLAN標簽),交換機將強制加上該端口的PVID。
    如果該端口收到對端設備發送的幀是tagged(帶VLAN標簽),交換機會檢查該標簽內的VLAN ID。當VLAN ID與該端口的PVID相同時,接收該報文。當VLAN ID與該端口的PVID不同時,丟棄該報文。
  • Access端口發送數據幀時,總是先剝離幀的Tag,然后再發送。Access端口發往對端設備的以太網幀永遠是不帶標簽的幀。

Trunk端口:

Trunk端口是交換機上用來和其他交換機連接的端口,它只能連接干道鏈路。Trunk端口允許多個VLAN的幀(帶Tag標記)通過。

Trunk端口收發數據幀的規則如下:

  • 當接收到對端設備發送的不帶Tag的數據幀時,會添加該端口的PVID,如果PVID在允許通過的VLAN ID列表中,則接收該報文,否則丟棄該報文。
    接收到對端設備發送的帶Tag的數據幀時,檢查VLAN ID是否在允許通過的VLAN ID列表中。如果VLAN ID在接口允許通過的VLAN ID列表中,則接收該報文。否則丟棄該報文。
  • 端口發送數據幀時,當VLAN ID與端口的PVID相同,且是該端口允許通過的VLAN ID時,去掉Tag,發送該報文。
    當VLAN ID與端口的PVID不同,且是該端口允許通過的VLAN ID時,保持原有Tag,發送該報文。

Hybrid端口:

Access端口發往其他設備的報文,都是Untagged數據幀,而Trunk端口僅在一種特定情況下才能發出untagged數據幀,其它情況發出的都是Tagged數據幀。

Hybrid端口是交換機上既可以連接用戶主機,又可以連接其他交換機的端口。

Hybrid端口既可以連接接入鏈路又可以連接干道鏈路。Hybrid端口允許多個VLAN的幀通過,並可以在出端口方向將某些VLAN幀的Tag剝掉。華為設備默認的端口類型是Hybrid。

Hybrid端口收發數據幀的規則如下:

  • 當接收到對端設備發送的不帶Tag的數據幀時,會添加該端口的PVID,如果PVID在允許通過的VLAN ID列表中,則接收該報文,否則丟棄該報文。
    當接收到對端設備發送的帶Tag的數據幀時,檢查VLAN ID是否在允許通過的VLAN ID列表中。如果VLAN ID在接口允許通過的VLAN ID列表中,則接收該報文,否則丟棄該報文。
  • Hybrid端口發送數據幀時,將檢查該接口是否允許該VLAN數據幀通過。如果允許通過,則可以通過命令配置發送時是否攜帶Tag。

 

VLAN的工作原理:

下一章節我們一起介紹下VLAN的工作原理:

結合VLAN的鏈路類型和端口類型,根據PC2和PC3互相通信的過程介紹下VLAN的工作原理。

 

階段一:PC2 ARP廣播獲取PC3的MAC地址

1、我們知道主機間是基於MAC地址進行二層通信的,PC2和PC3由於是首次通信,PC2不知道PC3的MAC地址,因此會在廣播域中發送ARP廣播報文,詢問有誰知道PC3的MAC地址。

2、LSW1從接口g0/0/2 收到PC2發送的ARP廣播報文,由於接口g0/0/2是access接口,端口屬於vlan 2,首先會在MAC地址表項中記錄下PC2 mac地址、所屬VLAN2、g0/0/2三者的對應關系,然后會給數據幀打上vlan2的標簽,並在vlan 2中泛洪該廣播報文。

3、LSW1將帶有vlan2標簽的廣播報文發送給LSW2。

4、LSW2從接口g0/0/1 收到PC2發送的ARP廣播報文,首先在MAC地址表項中記錄下PC2 mac地址、VLAN2、g0/0/1三者的對應關系,並在vlan 2中泛洪該廣播報文。

5、LSW2在發送廣播報文給PC3時會剝除vlan2的標簽。

6、PC3收到從LSW2發送的ARP廣播報文,會進行ARP單播回應。

回應的報文轉發流程和上述類型,不做講解。

 

階段二:數據轉發過程

1、PC2發送源MAC是PC2,目的MAC是PC3的以太網數據幀。

2、LSW1從接口g0/0/2 收到PC2發送的數據幀,由於接口g0/0/2是access接口,端口屬於vlan 2,首先會給數據幀打上vlan2的標簽,然后在對應vlan中根據目的mac查找mac地址表,可以找到PC3 MAC地址對應的接口是g0/0/1。

3、LSW1的g0/0/1端口類型是trunk,放通了vlan 2 和3,因此LSW1將帶有vlan2標簽的數據幀從g0/0/1發送給LSW2。

4、LSW1從接口g0/0/1 收到PC2發送的數據幀,由於g0/0/1端口類型是trunk,放通了vlan 2 和3,因此接收該數據幀,在對應vlan中根據目的mac查找mac地址表,可以找到PC3 MAC地址對應的接口是g0/0/2。

5、LSW2的g0/0/1端口類型是access接口,端口屬於vlan 2,因此LSW2剝除vlan2標簽將數據幀從g0/0/2發送給PC3。

6、PC3收到數據幀查看目的mac是發送給自己的接收下該數據幀。

6: VLAN配置:

創建VLAN:

VLAN ID的取值范圍是1到4094。在交換機上划分VLAN時,需要首先創建VLAN。在交換機上執行vlan <vlan-id>命令,創建VLAN。

例如:執行vlan 10命令后,就創建了VLAN 10,並進入了VLAN 10視圖。

如需創建多個VLAN:

  • 可以在交換機上執行vlan batch { vlan-id1 [ to vlan-id2 ] }命令,以創建多個連續的VLAN。
  • 也可以執行vlan batch { vlan-id1 vlan-id2 }命令,創建多個不連續的VLAN,VLAN號之間需要有空格。

VLAN端口類型的配置:

華為系列交換機上,默認的端口類型是hybrid。

配置端口類型的命令是port link-type <type>,type可以配置為Access,Trunk或Hybrid。

配置Access

1、使用port link-type access命令修改端口的類型為Access;

2、添加端口到VLAN:可以使用兩種方法把端口加入到VLAN。

  • 第一種方法是進入到VLAN視圖,執行port <interface>命令,把端口加入VLAN。
  • 第二種方法是進入到接口視圖,執行port default <vlan-id>命令,把端口加入VLAN。vlan-id是指端口要加入的VLAN。

配置Trunk

1、使用port link-type trunk命令修改端口的類型為Trunk;

2、配置Trunk端口允許哪些VLAN的數據幀通過。執行port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] } | all }命令,可以配置端口允許的VLAN,all表示允許所有VLAN的數據幀通過。

3、執行port trunk pvid vlan vlan-id命令,可以修改Trunk端口的PVID。

修改Trunk端口的PVID之后,需要注意:

  • 缺省VLAN不一定是端口允許通過的VLAN。只有使用命令port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] } | all }允許缺省VLAN數據通過,才能轉發缺省VLAN的數據幀。
  • 交換機的所有端口默認允許VLAN1的數據通過。

配置Hybrid

1、port link-type hybrid命令的作用是將端口的類型配置為Hybrid。默認情況下,交換機的端口類型是Hybrid。因此,只有在把Access口或Trunk口配置成Hybrid時,才需要執行此命令。

2、port hybrid tagged vlan{ { vlan-id1 [ to vlan-id2 ] } | all }命令用來配置允許哪些VLAN的數據幀以Tagged方式通過該端口。

3、port hybrid untagged vlan { { vlan-id1 [ to vlan-id2 ] } | all }命令用來配置允許哪些VLAN的數據幀以Untagged方式通過該端口。

配置檢查

執行display vlan命令,可以確認端口是否已經加入到VLAN中。

7:實戰——vlan配置實例

如圖所示:PC1和PC4屬於vlan3,PC2和PC3屬於vlan2。通過配置實現PC1和PC4能夠互通,PC1和PC2相互隔離;

配置如下:

[LSW1]
#
sysname LSW1
#
vlan batch 2 to 3
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 3
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 2
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 3

[LSW2]
#
sysname LSW2
#
vlan batch 2 to 3
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 3
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 2
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 3
#

在LSW1上查看:

在PC1上ping測試PC4和PC2,可以發現相同vlan之間可以通信,不同vlan間不可以通信。

分別在LSW1的G0/0/3和G0/0/1抓取報文:

在G0/0/3抓取的報文是不帶標簽的

G0/0/1抓取報文是帶標簽的:

根據type取值0x8100,表明這是一個攜帶802.1Q標簽的幀。可以得到以下信息:

    • Priority為0,優先級最低。
    • CFI的值為0表明是以太網
    • VLAN ID值為3,表示這是一個帶有vlan3標簽的數據幀。

 

============== End

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM