交換機埠的深入理解
1、in=進交換器 out=出交換機
2、permitted是允許的
vlan passing是允許的vlan當中有哪些vlan數據通過
VLAN passing:1(default vlan), 10 //指的是從此trunk口中通過的VLAN
VLAN permitted: 1(default vlan), 2-4094 //指的是trunk口中所放行的VLan,是port trunk permit vlan xx命令所顯示的。打tag標籤的。
PVID的作用只是在交換機從外部接受到可以接受Untagged數據幀的時候,給數據幀添加TAGTAGTAGTAG標記用的。
在交換機內部轉發數據的時候PVID不起任何作用。
pvid英文解析為port-base vlan 是基於埠的vlan id. 1.pvid 不是加在幀頭的標記,而是埠的屬性。加在幀頭的標記叫VLAN identifier(802.1q術語),只是常常加在幀頭的標識值和pvid 值一樣而已。所以pvid只是埠的屬性,就象埠的speed一樣。
pvid 是用來標識埠接收到的未標記的幀。也就是說,當埠收到一個未標記的幀時,就把該幀打上vlan id,這個id值等於pvid的值,然後轉發到VID和PVID相等的VLAN中。
幀從埠出去時,如果幀頭中的VID和埠的PVID值相同,就把這個標識去掉,再送出去。
3、untag就是普通的ethernet報文,普通PC機的網卡是可以識別這樣的報文進行通訊;
tag報文結構的變化是在源mac地址和目的mac地址之後,加上了4bytes的vlan信息,也就是vlan tag頭;一般來說這樣的報文普通PC機的網卡是不能識別的。
802.1Q封裝tag報文幀結構帶802.1Q的幀是在標準乙太網幀上插入了4個位元組的標識。其中包含:2個位元組的協議標識符(TPID),當前置0x8100的固定值,表明該幀帶有802.1Q的標記信息。2個位元組的標記控制信息(TCI),包含了三個域。Priority域,佔3bits,表示報文的優先順序,取值0到7,7為最高優先順序,0為最低優先順序。該域被802.1p採用。規範格式指示符(CFI)域,佔1bit,0表示規範格式,應用於乙太網;1表示非規範格式,應用於Token Ring。VLAN ID域,佔12bit,用於標示VLAN的歸屬。
乙太網埠有三種鏈路類型:Access、Hybrid和Trunk。
Access類型的埠只能屬於1個VLAN,一般用於連接計算機的埠;
Trunk類型的埠可以允許多個VLAN通過,可以接收和發送多個VLAN的報文,一般用於交換機之間連接的埠;
Hybrid類型的埠可以允許多個VLAN通過,可以接收和發送多個VLAN的報文,可以用於交換機之間連接,也可以用於連接用戶的計算機。
!Hybrid埠和Trunk埠在接收數據時,處理方法是一樣的,唯一不同之處在於發送數據時:Hybrid埠可以允許多個VLAN的報文發送時不打標籤,而Trunk埠只允許預設VLAN的報文發送時不打標籤。
埠的預設VLAN這個概念Access埠只屬於1個VLAN,所以它的預設VLAN就是它所在的VLAN,不用設置;
Hybrid埠和Trunk埠屬於多個VLAN,所以需要設置預設VLAN ID。預設情況下,Hybrid埠和Trunk埠的預設VLAN為VLAN 1當埠接收到不帶VLAN Tag的報文後,則將報文轉發到屬於預設VLAN的埠(如果設置了埠的預設VLAN ID)。當埠發送帶有VLAN Tag的報文時,如果該報文的VLAN ID與埠預設的VLAN ID相同,則系統將去掉報文的VLAN Tag,然後再發送該報文。註:對於華為交換機預設VLAN被稱為「Pvid Vlan」,對於思科交換機預設VLAN被稱為「Native Vlan」
交換機介面出入數據處理過程如下:
Acess埠收報文:
收到一個報文,判斷是否有VLAN信息:如果沒有則打上埠的PVID,並進行交換轉發,如果有則直接丟棄(預設)
Acess埠發報文:
將報文的VLAN信息剝離,直接發送出去 (所以,Access埠可以實現同一交換機上相同VLAN下的主機通信;也可以實現交換機級連時的預設VLAN1報文交換,但不能實現VLAN透傳。)
trunk埠收報文:
收到一個報文,判斷是否有VLAN信息:如果有,判斷該trunk埠是否允許該 VLAN的數據進入:如果可以則轉發,否則丟棄;如果沒有VLAN信息則打上埠的PVID,並進行交換轉發。
trunk埠發報文:
比較將要發送報文的VLAN信息和埠的PVID,如果不相等則直接發送。如果兩者相等則剝離VLAN信息,再發送。(所以,將交換機級連口統統設置為Trunk並允許所有VLAN通過後,VLAN2-VLAN4000直接透傳,而VLAN1則因為和Trunk預設PVID相同,需要通過剝離VLAN信息又添加VLAN信息實現了透傳。而如果更改Trunk的預設PVID,則可以實現某一交換機下的VLAN-X和另一交換機下的VLAN-Y通信。)
hybrid埠收報文:
收到一個報文,判斷是否有VLAN信息:如果有,則判斷該hybrid埠是否允許該VLAN的數據進入:如果可以則轉發,否則丟棄(此時埠上的untag配置是不用考慮的,untag配置只對發送報文時起作用);如果沒有則打上埠的PVID,並進行交換轉發。
hybrid埠發報文:
1、判斷該VLAN在本埠的屬性(disp interface 即可看到該埠對哪些VLAN是untag,哪些VLAN是tag)
2、如果是untag則剝離VLAN信息,再發送,如果是tag則直接發送(所以,Hybrid實現了不同VLAN下的主機的通信。)
下面是交換機接各種口收到和發送數據幀採取的動作:
Access (接收) Tagged = PVID 不接收 註:部分高端產品可能接收。
Access (接收) Tagged =/ PVID 不接收 註:部分高端產品可能接收。
Access (接收) Untagged 接收 增加tag=PVID
從PC
Access (發送) Tagged = PVID 轉發 刪除tag
Access (發送) Tagged =/ PVID 不轉發 不處理
Access (發送) Untagged 無此情況 無此情況 無此情況
Trunk (接收) Tagged = PVID 接收 不修改tag
Trunk (接收) Tagged =/ PVID 接收 不修改tag
Trunk (接收) Untagged 接收 增加tag=PVID
Trunk (發送) Tagged = PVID If Passing then 轉發 刪除tag
Trunk (發送) Tagged =/ PVID If Passing then 轉發 不修改tag
Trunk (發送) Untagged 無此情況 無此情況 無此情況(注)
Hybrid (接收) Tagged = PVID 接收 不修改tag 對端是trunk
Hybrid (接收) Tagged =/ PVID 接收 不修改tag 對端是trunk
Hybrid (接收) Untagged 接收 增加tag=PVID 類Trunk
Hybrid (發送) Tagged = PVID Tag 和 untag 中列出的vlan可以passing 看Tag項和untag項
Hybrid (發送) Tagged =/ PVID Tag 和 untag 中列出的vlan可以passing 看Tag項和untag項
Hybrid (發送) Untagged 無此情況 無此情況 無此情況(注)
註:數據幀在交換機內部轉發過程中不會改變數據中的tag也不會刪除數據幀中的tag; 改變數據幀中的tag只發生在數據幀進入或離開埠時。
下面來解釋上面的幾種狀態:
1,Access (接收) Tagged = PVID 不接收 註:部分高端產品可能接收。
2,Access (接收) Tagged =/ PVID 不接收 註:部分高端產品可能接收。
3,Access (接收) Untagged 接收 增加tag=PVID 從PC(1)這種狀態一般不會發生,在如下的情況會發生accsess埠收到帶tag=pvid的情況。
pc1-----access(switch)trunk----------access(switch2)access------pc2 所有taccess埠都處於同一個vlan中。
pc發送給switch1的數據幀將增加tag=pid然後轉發到switch的trunk口參照「Trunk (發送) Tagged =/ PVID If Passing then 轉發 不修改tag」數據幀將會原樣轉發到swi tch2的access埠。在這裡就出現了我們的第一種情況,Access (接收) Tagged = PVID 不接收。
(2)很容易明白access當然不會接收tagg 不等於pvid的數據幀,不然我們劃分vlan就沒有任何意義。(無法隔離廣播域)
(3)種情況是我們最常用的access埠收到pc發送的untag數據幀會增加tag=pvid 下面來看看access發送數據幀的三種情況。
1,Access (發送) Tagged = PVID 轉發 刪除tag
2,Access (發送) Tagged =/ PVID 不轉發 不處理
2,Access (發送) Untagged 無此情況 無此情況 無此情況
(1)情況比較常見在如下拓撲中 pc1------access1(switch)access2-----pc2 過程大致如下, pc1的untag包到達access1打上Pvid轉發到access2發現發送過來的數據幀tag=pvid 會刪除tag轉發。
(2)情況一般不會發生(還真想不出來哪種情況下會發生)
(3)情況 無此情況無此情況
trunk口的情況:
Trunk (接收) Tagged = PVID 接收 不修改tag
Trunk (接收) Tagged =/ PVID 接收 不修改tag
Trunk (接收) Untagged 接收 增加tag=PVID
Trunk (發送) Tagged = PVID If Passing then 轉發刪除tag
Trunk (發送) Tagged =/ PVID If Passing then 轉發不修改
Trunk (發送) Untagged 無此情況 無此情況 無此情況(注) Trunk口的情況比較容易比較容易理解就不一一解釋了。
用幾個例子來說明上面遇到的幾種情況。
pc1-----fa0/1(switch1)fa0/2------fa0/3(switch2)fa0/4-------pc2 switch上每個埠都是access埠,switch1的埠都加入vlan 10 switch2的埠都加入vlan 20;pc1和pc二的IP地址在同一網段。經測試pc1可以正常訪問 pc2下面我們來看看數據轉發的過程。
fa0/1:Access (接收) Untagged 接收 增加tag=10 然後轉發到fa0/2 fa0/2 :Access (發送) Tagged = 10轉發 刪除tag fa0/3 :Access (接收) Untagged 接收 增加tag=20 然後轉發到fa0/4 fa0/4 : Access (發送) Tagged = 20 轉發 刪除tag PC: 收到untagged包可以正常接收。
pc1-----fa0/1(switch1)fa0/2------fa0/3(switch2)fa0/4-------pc2
pfa0/1 fa0/2 加入vlan 10 fa0/3(trunk) fa0/4(vlan1)pc1和pc二的IP地址在同一網段。經測試pc1可以正常訪問pc2
過程如下:fa0/1:Access (接收) Untagged 接收 增加tag=10 然後轉發到fa0/2 fa0/2:Access (發送) Tagged = 10轉發 刪除tag fa0/3:Trunk (接收) Untagged 接收 增加tag=PVID(默認PVID=1) fa0/4:Access (發送) Tagged = 10轉發 刪除tag pc: 正常接收到pc1的數據。
報班考證請掃我


TAG:SPOTO思博網路 |