VLAN虛擬局域網知識筆記之(二) VLAN端口類型和基礎配置


VLAN虛擬局域網知識筆記之(二)

VLAN端口類型和基礎配置

  VLAN(Virtual Local Area Network)即虛擬局域網,是將一個物理的局域網在邏輯上划分成多個廣播域的技術。通過在交換機上配置VLAN,可以實現在同一個VLAN內的用戶可以進行二層互訪,而不同VLAN間的用戶被二層隔離。這樣既能夠隔離廣播域,又能夠提升網絡的安全性。

  書接上一回,本節筆記主要介紹VLAN的端口類型以及配置方法,然后通過抓包查看現象。

 

 

  PVID

  PVID表示端口在缺省情況下所屬的VLAN(缺省情況下,華為系列的交換機每個端口的PVID都為1)。

   

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

  交換機從對端設備收到的幀有可能是Untagged的數據幀,但所有以太網幀在交換機中都是以Tagged的形式來被處理和轉發的,因此交換機必須給端口收到的Untagged數據幀添加上Tag。為了實現此目的,必須為交換機配置端口的缺省VLAN。當該端口收到Untagged數據幀時,交換機將給它加上該缺省VLAN的VLAN Tag

 

  以上圖中的主機A為例。主機A向外發送數據:

  ①一般情況下,主機A向外發送的數據幀是不帶有Tag的。

  ②交換機SWA接收到該數據幀時,發現其不帶有Tag。然后會根據接收到該數據幀的端口上配置的PVID,為該數據幀打上一個Tag,使其能夠在交換機之間傳輸數據。

 

  Tips:缺省情況下,交換機每個端口的PVID都為1。若沒有配置VLAN,交換機會為沒有打上Tag(即Untagged)的數據幀打上這個缺省的VLAN Tag。

 

 

 

  端口類型 -- Access

  Access端口在收到數據后會添加VLAN Tag,VLAN ID和端口的PVID相同。

  Access端口在轉發數據前會移除VLAN Tag。

  

  如上圖所示,交換機的G0/0/1,G0/0/2,G0/0/3端口分別連接三台主機,都配置為Access端口。其中G0/0/1和G0/0/2的端口PVID為10(即VLAN 10),G0/0/3的端口PVID為20(即VLAN 20)。

 

  (一)Access端口基本原理

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

   

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

  ①如果該端口接收對端設備發送的幀是untagged(不帶VLAN標簽),交換機將強制加上該端口的PVID

  ②如果該端口接收對端設備發送的幀是tagged(帶VLAN標簽),交換機會檢查該標簽內的VLAN ID。當VLAN ID與該端口的PVID相同時,接收該報文。當VLAN ID與該端口的PVID不同時,丟棄該報文

  ③Access端口發送數據幀時,總是先剝離幀的Tag,然后再發送。Access端口發往對端設備的以太網幀永遠是不帶標簽的幀

 

  (二)示例解釋

  在本示例中,交換機的G0/0/1,G0/0/2,G0/0/3端口分別連接三台主機,都配置為Access端口。

  主機A把數據幀(不帶VLAN標簽)發送到交換機的G0/0/1端口,再由交換機發往其他目的地。收到數據幀之后,交換機根據端口的PVID給數據幀打上VLAN標簽 10。

  由於G0/0/2端口的PVID也是10,與VLAN標簽中的VLAN ID相同,於是決定從G0/0/2端口轉發數據幀。交換機移除VLAN標簽 10,把數據幀發送到主機B。

  連接主機C的端口的PVID是20,與VLAN 10不屬於同一個VLAN,因此此端口不會接收到VLAN 10的數據幀。

 

  (三)Access端口配置方法

  Step 1:創建VLAN

  在交換機上划分VLAN時,需要首先創建VLAN。

  命令:vlan <vlan-id>

  

 

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

  VLAN ID的取值范圍是1到4094

 

  Tips:當需要創建多個VLAN時

  可以在交換機上執行命令:vlan batch { vlan-id1 [ to vlan-id2 ] },以創建多個連續的VLAN

   

  如本例所示,執行命令后,創建了VLAN 10到VLAN 20連續10個VLAN。

 

  也可以執行vlan batch { vlan-id1 vlan-id2 }命令,創建多個不連續的VLANVLAN號之間需要有空格。

   

  如本例所示,執行命令后,創建了VLAN 10,20,30,40一共4個VLAN。

 

  Step 2:對創建的VLAN進行配置驗證

  創建VLAN后,可以執行display vlan命令驗證配置結果。如果不指定任何參數,則該命令將顯示所有VLAN的簡要信息

   

  缺省情況下,交換機所有端口都屬於VLAN 1中。

   

  查看剛創建的VLAN

   

 

  Tips:更多的查看VLAN命令

  執行display vlan [ vlan-id [ verbose ] ]命令,可以查看指定VLAN的詳細信息,包括VLAN ID、類型、描述、VLAN的狀態、VLAN中的端口、以及VLAN中端口的模式等。

  執行display vlan vlan-id statistics命令,可以查看指定VLAN中的流量統計信息

  執行display vlan summary命令,可以查看系統中所有VLAN的匯總信息

 

  Step 3:配置Access端口

  使用命令:port link-type <type>

  配置端口類型。其中type可以配置為Access,Trunk或Hybrid。

  以下示例為將交換機SWA的G0/0/1,G0/0/2和G0/0/3的端口設置為

   

   

  需要注意的是,如果查看端口配置時沒有發現端口類型信息,說明端口使用了默認的hybrid端口鏈路類型。當修改端口類型時,必須先恢復端口的默認VLAN配置,使端口屬於缺省的VLAN 1。

 

  Tips:華為系列交換機默認的端口類型是hybrid

  端口類型Trunk和Hybrid將會在下面筆記中進行詳細的介紹。

 

 

  Step 4:將端口添加到VLAN中

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

  第一種方法是進入到VLAN視圖,執行port <interface>命令,把端口加入VLAN。

  以下示例為將交換機SWA的G0/0/1和G0/0/2端口加入到VLAN 10中。

   

 

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

  以下示例為將交換機SWA的G0/0/3端口加入到VLAN 20中。

   

 

 

  Step 5:對剛才的配置進行驗證

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

   

   

   

  在本示例中,端口G0/0/1G0/0/2加入了VLAN 10,G0/0/3加入了VLAN 20。

  其中UT表明該端口發送數據幀時,會剝離VLAN標簽,即此端口是一個Access端口或不帶標簽的Hybrid端口。U或D分別表示鏈路當前是Up狀態或Down狀態。

 

  通過主機A分別訪問主機B和主機C,查看結果。(IP配置已省略)

  主機A正常訪問主機B

   

 

 

  主機A無法訪問主機C,因為他們處於不同的VLAN中,當交換機SWA知道兩台主機對應的端口PVID不一致時,SWA將不會把主機A發送的報文轉發給主機C。

   

 

   

  端口類型 -- Trunk

  當Trunk端口收到幀時,如果該幀不包含Tag,將打上端口的PVID;如果該幀包含Tag,則不改變。

  當Trunk端口發送幀時,且該幀的VLAN ID在Trunk的允許發送列表中時:若與端口的PVID相同時,則剝離Tag發送;若與端口的PVID不同時,則直接發送。

   

  如上圖所示,是從Access端口例子的基礎上增加了一台交換機B以及兩台主機(D和E),主機D屬於VLAN 10,主機E屬於VLAN 20。現需求VLAN 10的主機A和B可以訪問VLAN 10的主機D,同時VLAN 20的主機C可以訪問VLAN 20的主機E,那么我們要怎么配置交換機A和交換機B之間的鏈路和端口G0/0/4的端口類型呢?

  可以配置為Access端口類型嗎?我們可以從上面的筆記知道,Access端口類型只能允許唯一VLAN ID通過本端口。若交換機A和交換機B的G0/0/4端口均配置為PVID為10的Access端口,那么交換機A和B之間只能傳輸屬於VLAN 10的數據幀,而不能傳輸VLAN 20的數據幀。若反之配置了PVID為20的Access端口,那么也不能傳輸VLAN 10的數據幀。

   

  所以這個時候,就可以用到Trunk端口了。

 

  (一)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,發送該報文

 

 

  (二)示例解釋

  在本示例中,SWA和SWB連接主機的端口均Access端口,並將SWA和SWB互連的端口配置Trunk端口。在缺省情況下,端口的默認PVID都為1。配置Trunk鏈路允許VLAN 10和20的流量通過。

  Step 1SWAPVID為10的G0/0/1接收到VLAN 10的主機A的報文時,會為該報文打上VLAN ID為10的標簽。

  Step 2:接着SWA在端口G0/0/4轉發該報文時,由於該報文的VLAN ID(為10)與此端口的PVID(缺省為1)不相同,且檢查VLAN ID在允許通過的VLAN ID列表中后,則會在轉發報文時不剝離VLAN標簽,然后直接轉發到Trunk鏈路上。

  Ex:若端口G0/0/4的PVID為10,與VLAN ID(為10)相同,則會剝離VLAN標簽,然后發送到Trunk鏈路上。

  Step 3:對端的SWB接收到帶有VLAN ID(為10)的報文,由於VLAN ID(為10)與此端口的PVID(缺省為1)不相同,且檢查VLAN ID在允許通過的VLAN ID列表中后,會保持原有的VLAN ID標簽,並轉發該報文。

  Step 4SWB向端口PVID為10的G0/0/1轉發報文,先剝離VLAN標簽,再轉發給主機D。由於SWB的G0/0/2的端口PVID為20,所以不會向這個端口轉發報文。

 

  同理,VLAN 20的報文轉發過程大致相同,這里不再贅述。

 

 

  (三)Trunk端口配置

  SWB上的創建VLAN和Access端口配置省略,創建VLAN 10和VLAN 20,G0/0/1為VLAN 10的Access端口,G0/0/2為VLAN 20的Access端口。

  Step 1:配置SWA和SWB的G0/0/4(干道鏈路的端口)為Trunk端口

  配置Trunk時,應先使用

  命令:port link-type trunk

  修改端口的類型為Trunk

   

 

  配置Trunk端口允許哪些VLAN的數據幀通過。

  命令:port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] } | all }

  配置端口允許通過VLANall表示允許所有VLAN的數據幀通過。

   

 

  SWB的G0/0/4端口配置相同,故省略。

  在本示例中,將SWA和SWB的G0/0/4端口配置為Trunk端口,該端口PVID默認為1。配置port trunk allow-pass vlan 10 20命令之后,該Trunk端口允許VLAN 10和VLAN 20的數據流量通過(不剝離VLAN Tag)。

   

  此外,還可以通過命令修改Trunk端口的PVID

  命令:port trunk pvid vlan vlan-id

  修改Trunk端口的PVID。

   

 

  Tips修改Trunk端口的PVID之后,缺省VLAN不一定是端口允許通過的VLAN。

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

   

 

  Step 2:配置驗證

  執行display vlan命令可以查看修改后的配置。TG表明該端口在轉發對應VLAN的數據幀時,不會剝離標簽,直接進行轉發該端口可以是Trunk端口或帶標簽的Hybrid端口。

   

 

   

 

  分別用主機A訪問主機D,主機C訪問主機E,訪問成功。

   

 

   

 

  對SWA的G0/0/4端口進行抓包分析。

  當使用VLAN 10的主機A訪問同為VLAN 10的主機D時,G0/0/4抓取到報文:

   

  可以看到打上VLAN標簽(Tag)為10的報文。

 

  同理,使用VLAN 20的主機C訪問VLAN 20的主機E時,G0/0/4也可以抓取到報文:

   

 

  本示例中可以證明,SWA和SWB在G0/0/4轉發VLAN 10和VLAN 20的報文時,由於與PVID不相同,所以不剝離標簽,直接轉發。

 

  Tips:附加的小問題

  若使用VLAN 10的主機A訪問VLAN 20的主機E,抓取SWA的G0/0/4的數據包會發生什么呢?

  由於主機A並不知道主機E的MAC地址,所以會發送一個ARP Request報文廣播出去詢問主機E。這個ARP Request會在SWA的G0/0/1端口打上VLAN 10的標簽,到達G0/0/4端口時,在不剝離標簽的情況下轉發。到達SWB時保留VLAN 10標簽,由於Access端口規定,只發送VLAN標簽與自己的PVID一致的報文

   

  我們可以知道,SWB連接主機E的G0/0/2的PVID應為20,與發送來的ARP Request的報文的VLAN標簽(為10)不一致,因為會丟棄該ARP報文。那么主機A就無法訪問到處於不同VLAN的主機E了。

  就是因為這個原理,VLAN可以隔離廣播域,從而減少廣播流量而消耗的帶寬,也保證了網絡中一定程度上的信息安全。

 

 

 

  端口類型 -- Hybrid

  Hybrid端口既可以連接主機,又可以連接交換機

  Hybrid端口可以以Tagged 或Untagged方式加入VLAN 。

   

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

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

  在本示例中,要求主機A和主機B都能訪問服務器,但是它們之間不能互相訪問。此時交換機連接主機和服務器的端口,以及交換機互連的端口都配置為Hybrid類型。交換機連接主機A的端口的PVID是10,連接主機B的端口的PVID是20,連接服務器的端口的PVID是100。

 

  (一)Hybrid端口基本原理

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

  ①當接收到對端設備發送的不帶Tag的數據幀時,會添加該端口的PVID,如果PVID在允許通過的VLAN ID列表中,則接收該報文,否則丟棄該報文

  ②當接收到對端設備發送的帶Tag的數據幀時,檢查VLAN ID是否在允許通過的VLAN ID列表中。如果VLAN ID在接口允許通過的VLAN ID列表中,則接收該報文,否則丟棄該報文

  ③Hybrid端口發送數據幀時,將檢查該接口是否允許該VLAN數據幀通過。如果允許通過,則可以通過命令配置發送時是否攜帶Tag

 

  配置port hybrid tagged vlan vlan-id命令后,接口發送該vlan-id的數據幀時,不剝離幀中的VLAN Tag,直接發送。該命令一般配置在連接交換機的端口上。

  配置port hybrid untagged vlan vlan-id命令后,接口在發送vlan-id的數據幀時,會將幀中的VLAN Tag剝離掉再發送出去。該命令一般配置在連接主機的端口上。

 

  (二)示例解釋和配置方法

  本例介紹了主機A和主機B發送數據給服務器的情況。為了更清楚解釋數據傳輸途中VLAN Tag的添加與剝離情況,將解釋和配置方法放在一起介紹。

  Step 1:將兩台交換機的所有端口的端口類型聲明為Hybrid類型。(注:主機的基本配置,交換機的創建VLAN均已省略)

  命令:port link-type hybrid

  將端口的類型配置為Hybrid

   

  其他端口配置方法相同,故省略。

  默認情況下,華為系列交換機的端口類型是Hybrid。因此,只有在把Access口或Trunk口配置成Hybrid時,才需要執行此命令。

 

  

  Step 2:為交換機SWA和SWB各端口配置PVID。

  按照拓撲圖,應為交換機SWA的G0/0/1配置PVID為10,G0/0/2配置為20;SWB的G0/0/1配置為100。

   

 

 

   

 

 

   

 

 

 

 

  Step 3:在交換機連接主機的端口配置Untagged的方式允許指定VLAN通過

  命令:port hybrid untagged vlan{ { vlan-id1 [ to vlan-id2 ] } | all }

  用來配置允許哪些VLAN的數據幀以Untagged方式通過該端口

 

  (1)主機A可以訪問服務器,不能訪問主機B。

  在SWA連接主機A的端口G0/0/1上配置允許VLAN 10和VLAN 100的數據幀報文以Untagged的形式通過。VLAN 10和VLAN 100的數據幀在通過該端口時都不攜帶標簽

   

 

  (2)主機B可以訪問服務器,不能訪問主機A。

  在SWA連接主機B的端口G0/0/2上配置允許VLAN 20和VLAN 100的數據幀報文以Untagged的形式通過。VLAN 20和VLAN 100的數據幀在通過該端口時都不攜帶標簽

   

 

  (3)服務器可以同時被主機A和主機B訪問。

  在SWB連接服務器的端口G0/0/1上配置允許VLAN 10,VLAN 20和VLAN 100的數據幀報文以Untagged的形式通過。VLAN 10,VLAN 20和VLAN100的數據幀在通過該端口時都不攜帶標簽

   

 

 

  Step 4:在交換機連接交換機的端口配置Tagged的方式指定VLAN通過

  命令:port hybrid tagged vlan{ { vlan-id1 [ to vlan-id2 ] } | all }

  用來配置允許哪些VLAN的數據幀以Tagged方式通過該端口

 

  在交換機SWA和SWB連接的端口G0/0/3上配置允許VLAN 10,20和100的數據幀報文以Tagged的形式通過。VLAN 10,20和100的數據幀在通過該端口時都攜帶標簽

   

 

 

   

  到此,所有配置完成。

 

 

  Step 5:示例解析

  配置方法介紹完成之后,我們開始解析數據幀報文在局域網中的轉發過程(對應配置方法的步驟):

  當主機A(VLAN 10)訪問服務器(VLAN 100)時:

 

  (1)數據幀從主機A -》交換機SWA

  主機A發送出來的數據幀不帶VLAN Tag。所以交換機SWA接收到該數據幀時,會按照(Step2)配置為該數據幀打上端口的PVID 10。然后查看(Step 3)配置的允許VLAN 10通過,則接收此數據幀並轉發。

 

  (2)數據幀從交換機SWA -》 交換機SWB

  交換機SWA通過端口G0/0/3向交換機SWB發送帶VLAN 10標簽的數據幀。查看(Step 4)配置的允許VLAN 10以攜帶標簽的形式通過端口,則不剝離標簽轉發數據幀。

  交換機SWB接收到該數據幀后,查看(Step 4)配置的允許VLAN 10以攜帶標簽的形式通過端口,則也不剝離標簽轉發數據幀。

  下圖驗證數據幀是以攜帶VLAN 10標簽的情況下從SWA轉發到SWB的。

   

 

  (3)數據幀從交換機SWB -》 服務器

  交換機SWB將帶有VLAN 10標簽的數據幀通過端口G0/0/1發送給服務器,查看(Step 3)配置的允許VLAN 10以不攜帶標簽的形式通過端口,則剝離標簽轉發數據幀給服務器。

  同理,屬於VLAN 20的主機B訪問服務器也相同,故省略。

 

  Tips:解答一些額外的問題。

  ①VLAN 10的主機A會將數據幀發送到VLAN 20的主機B嗎?

  其實這個問題在上面介紹Trunk端口時也提到過,由於主機A發送的ARP Request報文也會打上VLAN 10的標簽,所以不會發送給PVID為20的端口。

  ②訪問是雙向的,主機A訪問服務器,勢必說明服務器會回復一個數據幀給主機A,那么這個數據幀又是如何打VLAN標簽的呢?

  根據配置可以知道,服務器向主機A回復的數據幀,會根據SWB的端口G0/0/1的PVID打上100的標簽,該標簽會在SWA的G0/0/1端口剝離並轉發給主機A。

 

 

  Step 6:配置驗證

  主機A可以訪問服務器,不能訪問主機B:

   

 

 

 

  同樣的,主機B能訪問服務器,不能訪問主機A:

   

 

 

  說明實驗成功。

 

  下一節筆記會介紹VLAN的划分方法和Voice VLAN。敬請期待。

  

 

  

 

 


免責聲明!

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



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