VLAN詳解

VLAN的作用:N1P429

1. 控制廣播

2. 確保安全

3. 靈活擴展


VLAN類型

靜態VLAN(基於端口) 

動態VLAN(基於MAC地址) 通過VPMS 



VLAN幀標識 【N6eP301】

傳統交換機:數據幀進入交換機,交換機只檢查目的MAC地址,參照MAC地址錶轉發到適當端口,而不考慮數據幀從哪裏來的。如果不知道目的MAC,交換機則開始泛洪。


VLAN交換機:數據幀進入交換機 — 獲取VLAN_ID — 匹配過濾表 同時將數據幀轉發給trunk口,trunk口不刪除VLAN ID — 在交換機access出口刪除VLAN_ID  【N1P435】

除了考慮目的MAC地址進行轉發外,還必須考慮數據幀的源地址,以便查看它所屬的VLAN。追蹤一個幀至少有兩種方法:

第一種根據數據幀進入的端口屬於哪個VLAN,這種方法被稱爲“幀標記”或“顯示標記” 

第二種追蹤數據幀的源地址的方法是爲每個VLAN保持一張MAC地址表,確定目的地址之後,再做出是否轉發的決定。此方法稱爲“幀過濾”或“隱式標記”

幀標記的優點是能夠立即標識VLAN,不需要對幀做進一步VLAN成員關係決定。缺點是大多數不支持VLAN的設備會把這種幀當成無效幀。爲了解決這個問題,IEEE組織定義了IEEE802.1Q標準。

幀過濾的優點是不修改幀,因此幀通過網絡設備時不會出現問題。缺點是所有VLAN設備必須能對每個幀做出唯一VLAN決定。這意味着如果按數據幀中的源MAC地址進行過濾。那麼所有VLAN交換機必須擁有一張MAC地址表,該表還要包含每個MAC地址所屬的VLAN。【N6eP301】



VLAN間通信的過程【N6eP303】


1. PC1要與PC3通信,開始PC1並不知道PC3的MAC地址,所以,PC1首先發送了一個ARP的查詢包,查詢包以廣播形式發送。

2. 交換機SW1收到PC1發來的ARP廣播包。SW1知道該數據包是從F1/1接口收到的,F1/1接口被分配到了VLAN2中,是一個Access端口,SW1知道這是一個來自VLAN2的廣播包。

3. SW1在MAC地址表中加入PC1的MAC地址和對應的VLAN號及端口號。(VLAN交換機與非VLAN交換機都會根據幀的源MAC地址進行學習,但是VLAN交換機除了記錄MAC地址對應的端口外,還要記錄MAC地址對應的VLAN號)

4. SW1在數據幀中加入VLAN2的標識,VLAN交換機從Access端口接收到數據幀時,需要插入VLAN標識。SW1把ARP廣播包從除了F1/1之外的所有屬於VLAN2的端口發送出去,發送出去之前,要去除VLAN標識。交換機除了把廣播幀從所有屬於VLAN2的端口發送出去外,還要從所有主幹端口把廣播幀發送出去,也就是F1/24。從主幹端口轉發數據幀時,不修改數據幀的格式

5. 當SW2從f1/24端口收到數據幀時,SW2查看數據幀中的VLAN標識,並在MAC地址中添加學到的MAC地址和對應的VLAN號及端口號。SW2接下來決定要向哪裏轉發數據幀,SW2查看數據幀中的VLAN標識,知道是VLAN2的數據幀,SW2查看數據幀的目的MAC地址,知道這是VLAN2的一個廣播幀。SW2把廣播包從除1/24之外所有屬於VLAN2的端口發送出去,發送出去之前,交換機要去除數據幀中被加入的VLAN2標識。

6. PC3收到數據幀後,知道是PC1發給自己的ARP請求幀。PC3封裝ARP應答包,把應答包發往交換機SW2



VLAN間路由

VLAN間通訊需要三層路由或路由器

每個VLAN都是一個獨立子網,最好將VLAN配置爲獨立的子網,雖然並非必須這樣



交換機的VLAN支持矩陣

交換機

VLAN數量

VLAN ID

Catalyst 2940

4

1 - 1005

Catalyst2950/2955

250

1 - 4094

Catalyst 2960

255

1 - 4094

Catalyst 2970/3550/3560/3570

1005

1 - 4094

Catalyst 2848G/2980G/4000/4500

4094

1 - 4094

Catalyst 6500

4094

1 - 4094

    

VLAN範圍

範圍

用途

VTP傳播

0, 4096

保留

僅系統使用N/A1正常

Cisco默認VLAN 用戶無法刪除

2 - 1001

正常

以太網VLAN 正常使用

1002 - 1005

正常

用於FDDI和令牌環 用戶無法刪除

1006 - 1024

保留

僅系統使用

N/A

1025 - 4094

擴展

僅用於以太網 動態以太網VLAN

僅VTP v3支持

VLAN配置詳解《CCNP Switch》P56



交換機端口

交換機的接口只有 接入口Access 和 中繼口Trunk 兩種選擇。


Access接口:

1.只能傳輸一個VLAN的數據,除非是 語音VLAN。【N1P433】

2.如果接入端口收到標記過(如IEEE802.1Q 標記)的分組會將其丟棄,因爲Access口 轉發數據時,不查看源地址,只識別VLAN標識

3.將幀轉發給與接入鏈路相連的設備前,交換機將刪除所有的VLAN信息。

4.對於靜態接入端口,可手工分配其所屬的VLAN ,也可通過RADIUS 服務器進行分配(使用IEEE 802.1x 時)。【N1P432】


Trunk接口:[N2P61]

1.Trunk接口爲多個VLAN傳輸數據流 。分爲ISL和802.1Q。ISL封裝,MTU是1548字節,802.1Q封裝,MTU是1522字節。


2. ISL Cisco私有標識 在以太網幀頭部封裝26字節,尾部封裝4字節,總共30字節標識。ISL性能更好,因爲他是通過硬件加載的標識。ISL只能用於快速以太網和吉比特以太網鏈路。ISL l各由選擇多才多藝,可用於交換機端口、路由器接口和服務器接口卡。

ISL幀頭部有10個bit用來標識VLAN,能夠表示1024個VLAN,編號從0到1023

Cisco Catalyst 4000和4500交換機根據其Superverisor引擎的型號來決定其運行Cisco IOS還是Cisco CatOS。Catalyst 4000 和4500的Supervisor引擎不支持給予每個端口來執行ISL封裝。【N2P64】




3. IEEE802.1q  在以太網幀內插入4字節的標識。爲讓這些端口能夠通信,必須指定它們所屬的Native VLAN。默認爲VLAN1.

802.1Q封裝,MTU是1522字節。

802.1Q出現之前,很多廠商都聲稱他們的交換機實現了VLAN,但是不同廠商之間實現的方法不同,所以彼此無法互聯。而現在,802.1Q出現後,在以太網幀頭中的源地址後增加了一個4個字節的802.1Q幀頭,用新的FCS替換了原來幀中的FCS,其他字段保持不變。

新增標籤頭中的4個字節信息如下:


* 網絡類型:2個字節的標籤協議標識,以太網值是0x8100

* VLAN標識:一個12位的域,指明VLAN的ID,最大支持4096個VLAN。

* 令牌環標記:這1位主要使以太網與FDDI、令牌環網交換數據是更容易。

* 優先級:這3位指明幀的優先級,被用於QOS,一共8鍾優先級,用於當交換機阻塞時,有線發送哪些數據幀。



4.Catalyst 3560交換機支持ISL和802.1q封裝,Catalyst2960只支持802.1q封裝,不支持ISL封裝。另外,在支持ISL或802.1Q的路由器中,最便宜的是2600。1600、1700和2500系列路由器都不支持ISL或802.1Q。【N1P439】


5.Trunk口 既可以通過標識幀,也可以通過未標識幀。標識幀經過trunk時,直接轉發且不刪除VLAN標識。未標識幀經過trunk時,標記PVID(默認爲VLAN1)通過native VLAN轉發。

6.中繼端口有一個默認VLAN ID(PVID)用於轉發未標記數據流的VLAN ID。默認是VLAN 1,也叫本地VLAN。


幀標記方法ISL 和802.1Q 的基本用途是,提供交換機間VLAN 通信。另外,別忘了,將幀轉發到接入鏈路前,將刪除ISL 或802.1Q 幀標記標記只用於中繼鏈路內部。


VLAN配置命令:

S1#config t

S1(config)# vlan 3

S1(config-vlan)# name Sales  \\創建VLAN


S1(config)# no vlan 3  \\刪除VLAN

一旦刪除VLAN,除非該VLAN所屬的Access端口移動到其他VLAN,否則這些接入端口就會進入“inactive”狀態,不再轉發流量


驗證VLAN:

S1# show vlan ?

  brief      VTP all VLAN status in brief

  id           VTP VLAN status by VLAN id

  internal   VLAN internal usage

  name      VTP VLAN status by VLAN name

  summary   VLAN summary information


==========================


S1# show vlan brief  【N5P183】

VLAN Name                             Status    Ports

---- -------------------------------- --------- -------------------------------

1    default                               active    Fa1/0, Fa1/1, Fa1/2, Fa1/3

                                                Fa1/4, Fa1/5, Fa1/6, Fa1/7

                                                Fa1/8, Fa1/9, Fa1/10, Fa1/11

                                                Fa1/12, Fa1/13, Fa1/14, Fa1/15

3    IT                                        active   

1002 fddi-default                     act/unsup

1003 token-ring-default           act/unsup

1004 fddinet-default                 act/unsup

1005 trnet-default                    act/unsup 


\\ 第一列是VLAN ID;第二列是VLAN的狀態,active或act爲激活,unsup爲非掛起;第三列列出了本交換機上屬於該VLAN的接口

==========================


S1#show vlan id 3  【N5P183】

S1#show vlan name IT 【N2P56各項詳解】

VLAN Name                             Status    Ports

---- -------------------------------- --------- -------------------------------

3    IT                               active   


VLAN Type  SAID       MTU   Parent RingNo BridgeNo Stp  BrdgMode Trans1 Trans2

---- ----- ---------- ----- ------ ------ -------- ---- -------- ------ ------

3    enet  100003     1500  -      -      -        -    -        0      0   


\\ 顯示各個VLAN的類型和最大傳輸單元等信息;


==========================


S1#show vlan summary  【N5P183】 

Number of existing VLANs           : 6   \\ 全部VLAN數量

Number of existing VTP VLANs      : 6  \\ 普通VLAN數量

Number of existing extended VLANs : 0  \\ 擴展VLAN數量


==========================


端口加入VLAN

S1#config t

S1(config-if)#swichport mode access 

S1(config-if)# switchport host (此命令相當於下面三條命令)


* switchport mode access 

* spanning-tree portfast 

* disable channel group


S1(config-if)#swichport access vlan 3


配置Trunk

S1#config t

S1(config)# interface f0/1

S1(config-if)# switchport trunk encapsulation  { isl | dot1q | negotiate}

S1(config-if)# swichport mode trunk

S1(config-if)# swichport negotiate \\關閉自動協商


==========================


S1(config-if)# switchport trunk allowed vlan ?  \\ 將某個VLAN從Trunk中添加或者刪除

  add     add VLANs to the current list

  all        all VLANs

  except  all VLANs except the following

  none    no VLANs

  remove  remove VLANs from the current list


==========================


驗證端口的Trunk狀態

SW1#show interfaces f1/5 trunk

Port      Mode         Encapsulation  Status        Native vlan

Fa1/5     on           802.1q         not-trunking  1


Port      Vlans allowed on trunk

Fa1/5     none


Port      Vlans allowed and active in management domain

Fa1/5     none


Port      Vlans in spanning tree forwarding state and not pruned

Fa1/5     none


==========================


驗證端口Switchport狀態

SW1#show interfaces f1/5 switchport 

Name: Fa1/5           \\ 接口的名字

Switchport: Enabled \\ 接口是交換端口

Administrative Mode: static access  \\ 管理員已經配置接口爲access模式

Operational Mode: down  \\ 接口當前模式爲access模式,和管理員的配置時一樣的。有可能管理員配置的是自動協商,而最終結果爲access

Administrative Trunking Encapsulation: dot1q  \\ 封裝格式爲802.1Q

Negotiation of Trunking: Disabled  \\ 已經關閉了自動協商

Access Mode VLAN: 2 (VLAN0002)  \\ 接口屬於VLAN2

Trunking Native Mode VLAN: 1 (default) \\ VLAN1爲默認的Native VLAN

Trunking VLANs Enabled: ALL \\ 

Trunking VLANs Active: none

Protected: false

Priority for untagged frames: 0

Override vlan tag priority: FALSE

Voice VLAN: none   \\ 沒有配置語音VLAN

Appliance trust: none


SW1# sh interfaces f1/10 status

Port    Name               Status       Vlan       Duplex Speed Type

Fa1/10                     connected    trunk        full     100 10/100BaseTX


==========================



(1) 進入接口配置             Switch(config)# interface {Fastethernet | GigabitEthernet} slot/port

(3) 將接口配置爲trunk     Switch(config-if)# switchport mode { dynamic {desirable | auto | trunk}

(4) 指定Native VLAN        Switch(config-if)# switchport trunk native vlan {vlan-id}

(7) 查看接口狀態:   Switch(config)# show interface {interface-id} switchport

(8) 還原接口默認配置狀態    Sw(config)#default interface {interface-id}



Native VLAN【N6eP312】


PC1:192.168.1.1   VLAN2

PC2:192.168.1.2   VLAN3

PC3:192.168.1.3   VLAN2

PC4:192.168.1.4   VLAN3


配置之後,PC1可以Ping通PC3,PC2可以Ping通PC4。但是PC1無法通過集線器(Hub)ping通PC5。PC1查詢PC5的MAC地址,ARP請求包被以廣播的形式發送出去。交換機SW1在廣播幀上添加VLAN標識,然後從F0/24端口發出,F0/24是中繼端口,該端口的Native VLAN是默認的VLAN1,中繼端口的Native VLAN和數據幀中的VLAN標識不一樣,交換機不能修改數據幀把數據發出。Hub接收到的數據幀並不能被PC識別

PC5收到了PC1發過來的ARP請求,但因爲該ARP請求包中的數據幀格式已經被改變,被SW1添加了802.1Q封裝,PC5不能識別這樣的數據幀,把PC1發過來的ARP請求包丟棄。PC1獲取不到PC5的MAC地址,無法完成數據包的封裝,也無法與PC5通信。


SW1# config t

SW1(config)# interface f0/24

SW1(config-if)# switchport trunk native vlan 2  \\ 將nativeVLAN 更改爲默認VLAN2

SW1(config-if)# no switchport trunk native vlan  \\ 端口配置命令回到缺省的狀態


在PC1上再次測試到PC5的連通性,結果可以ping通了。這是因爲SW1從F0/24端口把數據幀發出時,當數據幀中的VLAN標識與中繼端口的native VLAN號相同,交換機清除數據幀中的VLAN標識。PC5就能夠識別該標識。


802.1q 在設計時,爲了兼容不支持VLAN的交換機混合部署,特地設計了一個Native VLAN 默認爲VLAN 1

指定native VLAN 臨街端口兩端的nativeVLAN 必須相同 native VLAN 也稱 本地VLAN 或 PVID。

需要重點關注的是,兩臺設備間的802.1Q Trunk端口有一個要求,那就是兩邊的Native VLAN必須相同。如果兩邊Native VLAN不同的話,CDP會發送一條“VLAN配置錯誤”消息。如果禁用了Trunk鏈路上的VLAN1,CDP有可能就不會傳輸,或關閉了【N2P63】

另外,如果兩邊Native VLAN不匹配,就會產生二層環路。理由是在這種情況下,VLAN1的STP BPDU(橋協議數據單元)會在未標記的情況下被髮送給IEEE STP MAC地址(0180. c200.0000)【N2P63】



====================================================================



Q&A:

VLAN 與 子網劃分的關係? 如果不同VLAN 使用不同子網 會是怎樣的呢?每個VLAN都必須處於同一個子網是爲什麼?(單臂和三層個有什麼不同?)

VLAN劃分廣播域,那麼廣播佔用帶寬的比例是多少呢?

VLAN的打標籤的過程的怎麼樣的?上次面試的那道題是爲什麼?

Accsee和trunk口 能不能通?

如何查看端口是access 還是trunk?

如何查看native vlan? 如何指定native vlan

Native vlan 和 PVID 一樣嗎?如何指定PVID

VTP可不可以有兩臺server模式的交換機

能否查看交換機中VLAN,端口等等數據庫信息

爲什麼二層交換機上,無法使用show ip arp 命令

Mac地址在交換機以及PC上的存活時間是怎樣的?

VTP修剪是怎麼的過程?

DTP與自適應是一回事嗎?

CCNP交換P65、P52的內容:P65 爲什麼分佈層不能直接相連呢?

如果採用全交換模式,那麼路由器應該連接在什麼位置呢?匯聚層(分佈層) ?核心層 ?

交換機爲什麼會有MAC地址?VLAN1的MAC地址對應的是哪個口?


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章