一、相關定義
1、Trunk口 Trunk口上可以同時傳送多個VLAN的包,一般用於交換機之間的鏈接。
2、Hybrid口 Hybrid口上可以同時傳送多個VLAN的包,一般用於交換機之間的鏈接或交換機於服務器的鏈 接。
3、Access口 Access口只能屬於1個VLAN,一般用於連接計算機的端口。
4、Tag和Untag tag是指vlan的標簽,即vlan的id,用於指名數據包屬於那個vlan,untag指數據包不屬於任何vlan,沒有vlan標記。
5、pvid 即端口vlan id號,是非標記端口的vlan id 設定,當非標記數據包進入交換機,交換機將檢查vlan設定並決定是否進行轉發。一個ip包進入交換機端口的時候,如果沒有帶tag頭,且該端口上配置了pvid,那么,該數據包就會被打上相應的tag頭!如果進入的ip包已經帶有tag頭(vlan數據)的話,那么交換機一般不會再增加tag頭,即使是端口上配置了pvid號;當非標記數據包進入交換機。
二、端口的Tag和Untag
若某一端口在vlan設定中被指定為非標記端口, 所有從此端口轉發出的數據包上都沒有標記 (untagged)。若有標記的數據包進入交換機,則其經過非標記端口時,標記將被去除。因為目前眾多設備並不支持標記數據包,其也無法識別標記數據包,因此,需要將與其連接的端口設定為非標記。
若某一端口在vlan設定中被指定為標記端口tagged port, 所有從此端口轉發出的數據包上都將有標記 (tagged)。若有非標記的數據包進入交換機,則其經過標記端口時,標記將被加上。此時,其將使用在ingress 端口上的pvid設定作為增加的標記中的vlan id號。
三、端口的封裝類型:ISL、802.1Q
ISL Trunk上所有的包都是tag的(Cisco專用);
802.1q 設計的時候為了兼容與不支持VLAN的交換機混合部署,特地設計成可以不tag:但是只有一個VLAN允許不tag,這樣N個VLAN,(N-1)個都tag了,不tag的包一定是來自那個特殊VLAN的,所以不會亂套。(當然也可以所有VLAN都tag)
三、端口的封裝類型:ISL、802.1Q
ISL Trunk上所有的包都是tag的(Cisco專用);
802.1q 設計的時候為了兼容與不支持VLAN的交換機混合部署,特地設計成可以不tag:但是只有一個VLAN允許不tag,這樣N個VLAN,(N-1)個都tag了,不tag的包一定是來自那個特殊VLAN的,所以不會亂套。(當然也可以所有VLAN都tag)
四、各端口收發數據的區別
端口類型 | 收發 | 描述 |
Access | 收報文 | 判斷是否有VLAN信息:如果沒有則打上端口的PVID,並進行交換轉發,如果有則直接 丟棄(缺省) |
發報文 | 將報文的VLAN信息剝離,直接發送出去 | |
Trunk | 收報文 | 收到一個報文,判斷是否有VLAN信息:如果沒有則打上端口的PVID,並進行交換轉發, 如果有判斷該trunk端口是否允許該 VLAN的數據進入:如果可以則轉發,否則丟棄 |
發報文 | 比較端口的PVID和將要發送報文的VLAN信息,如果兩者相等則剝離VLAN信息,再發送, 如果不相等則直接發送 |
|
Hybrid | 收報文 | 收到一個報文判斷是否有VLAN信息:如果沒有則打上端口的PVID,並進行交換轉發, 如果有則判斷該hybrid端口是否允許該VLAN的數據進入:如果可以則轉發,否則丟棄 |
發報文 | 判斷該VLAN在本端口的屬性(disp interface 即可看到該端口對哪些VLAN是untag, 哪些VLAN是tag)如果是untag則剝離VLAN信息,再發送,如果是tag則直接發送 |
以下案例可以幫助大家深入理解華為交換機的hybrid端口模式
[Switch-Ethernet0/1]int e0/1
[Switch-Ethernet0/1]port link-type hybrid
[Switch-Ethernet0/1]port hybrid pvid vlan 10
[Switch-Ethernet0/1]port hybrid vlan 10 20 untagged
[Switch-Ethernet0/1] int e0/2
[Switch-Ethernet0/2]port link-type hybrid
[Switch-Ethernet0/2]port hybrid pvid vlan 20
[Switch-Ethernet0/2]port hybrid vlan 10 20 untagged
此時inter e0/1和inter e0/2下的所接的PC是可以互通的,但互通時數據所走的往返vlan是不同的。
以下以inter e0/1下的所接的pc1訪問inter e0/2下的所接的pc2為例進行說明
pc1所發出的數據,由inter0/1所在的pvid vlan10封裝vlan10的標記后送入交換機,交換機發現inter e0/2允許vlan 10的數據通過,於是數據被轉發到inter e0/2上,由於inter e0/2上vlan 10是untagged的,於是交換機此時去除數據包上vlan10的標記,以普通包的形式發給pc2,此時pc1->p2走的是vlan10
再來分析pc2給pc1回包的過程,pc2所發出的數據,由inter0/2所在的pvid vlan20封裝vlan20的標記后送入交換機,交換機發現inter e0/1允許vlan 20的數據通過,於是數據被轉發到inter e0/1上,由於inter e0/1上vlan 20是untagged的,於是交換機此時去除數據包上vlan20的標記,以普通包的形式發給pc1,此時pc2->pc1走的是vlan20