端口tagged和untagged详解
情況列舉 Switch收發 Switch對標記的處理 remark
 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?無此情況 無此情況 無此情況(注)
 我來解釋一下
 收報文:
 Acess端口1、收到一個報文,判斷是否有VLAN信息:如果沒有則打上端口的PVID,并進行交換轉發,如果有則直接丟棄(缺省)
 發報文:
 Acess端口: 1、將報文的VLAN信息剝離,直接發送出去???????
 收報文:
 trunk端口: 1、收到一個報文,判斷是否有VLAN信息:如果沒有則打上端口的PVID,并進行交換轉發,如果有判斷該trunk端口是否允許該 VLAN的數據進入:如果可以則轉發,否則丟棄
 發報文:
 trunk端口: 1、比較端口的PVID和將要發送報文的VLAN信息,如果兩者相等則剝離VLAN信息,再發送,如果不相等則直接發送
 收報文:
 hybrid端口: 1、收到一個報文
 ????? 2、判斷是否有VLAN信息:如果沒有則打上端口的PVID,并進行交換轉發,如果有則判斷該hybrid端口是否允許該VLAN的數據進入:如果可以則轉發,否則丟棄
 發報文:
 hybrid端口:1、判斷該VLAN在本端口的屬性(disp interface?即可看到該端口對哪些VLAN是untag, 哪些VLAN是tag)
 ????? 2、如果是untag則剝離VLAN信息,再發送,如果是tag則直接發送
先呈請一下上面的幾個帖子的術語:
Tag為IEEE802.1Q協議定義的VLAN的標記在數據幀中的標示;
 ACCESS端口,TRUNK端口是廠家對某一種端口的叫法,并非IEEE802.1Q協議的標準定義;
這個數據交換的過程比較復雜,如果想解釋的話,首先要了解一下幾個IEEE802.1Q協議的定理;
 1、下面是定義的各種端口類型對各種數據幀的處理方法;
?
?
Tagged數據幀
Untagged數據幀
in
out
in
out
Tagged端口
原樣接收
原樣發送
按端口PVID打TAG標記
按照PVID打TAG標記
Untagged端口
丟棄
去掉TAG標記
按端口PVID打TAG標記
原樣發送
?
2、所謂的Untagged Port和tagged Port不是講述物理端口的狀態,而是講訴物理端口所擁有的某一個VID的狀態,所以一個物理端口可以在某一個VID上是Untagged Port,在另一個VID上是tagged Port;
3、一個物理端口只能擁有一個PVID,當一個物理端口擁有了一個PVID的時候,必定會擁有和PVID的TAG等同的VID,而且在這個VID上,這個物理端口必定是Untagged Port;
4、PVID的作用只是在交換機從外部接受到Untagged?數據幀的時候給數據幀添加TAG標記用的,在交換機內部轉發數據的時候PVID不起任何作用;
5、擁有和TAG標記一致的VID的物理端口,不論是否在這個VID上是Untagged Port或者tagged Port,都可以接受來自交換機內部的標記了這個TAG標記的tagged?數據幀;
6、擁有和TAG標記一致的VID的物理端口,只有在這個VID上是tagged Port,才可以接受來自交換機外部的標記了這個TAG標記的tagged?數據幀;
以下是神州數碼對命令的定義(各個廠家對命令的定義可能不一定一致,但是都必須遵循上面的定理):
1、Trunk端口就是在一個物理端口上增加這個交換機所有VLAN的VID標示,并且除了和這個物理端口PVID標示一致的VID標示為Untagged Port外,在其他的VID上都是Tagged Port;
2、Access端口就是指擁有一個和PVID標記相同的VID的物理端口,在這個VID上,遵循定理一定為untagged Port;
在了解了以上的基礎理論之后,我們在來看一下樓主的問題:
一個數據包從PC機發出經過ACCESS端口->TRUNK端口->TRunk->ACCESS->PC數據包發生了怎么樣的變化?
我們先把上述的描述變換為IEEE802.1Q的標準描述:
一個數據包從PC機發出經過(Untagged?數據幀)
ACCESS端口(PVID定義為100,VID=100=Untagged Port)->
TRUNK端口(PVID定義為1〈出廠配置,沒有更改〉,VID=1=Untagged Port,VID=100=tagged Port)->
另一個交換機的TRunk端口(PVID定義為1〈出廠配置,沒有更改〉,VID=1=Untagged Port,VID=100=tagged Port)->
另一個交換機的ACCESS端口(PVID定義為100,VID=100=Untagged Port)->
PC數據包發生了怎么樣的變化?(Untagged?數據幀)
首先假設兩臺交換機剛剛開機(MAC地址表為空)從PC機發出的數據幀進入交換機的ACCESS端口以后,會按照這個端口的PVID打100的Tag標記,根據交換機的轉發原理,交換機會把這個數據幀轉發給VID=100的所有端口(除了進口以外),這個過程叫做VLAN Flood;參照上面的定理1;
由于Trunk端口擁有VID=100,所以才可接受這個標記Tag為100的tagged數據幀;參照上面的定理5;
由于Trunk端口在VID=100上為tagged Port,所以在發送數據幀出交換機的時候,不改變Tagged數據幀的結構;參照上面的定理1;
到了另一個交換機的Trunk端口的時候,由于Trunk端口擁有VID=100,所以才可接受這個標記Tag為100的tagged數據幀;參照上面的定理6;
另一個交換機的Trunk端口,接收到標記tag為100的tagged數據幀,并不作任何的更改;參照上面的定理1;
另一個交換機收到到標記tag為100的tagged數據幀,根據交換機的轉發原理,交換機會把這個數據幀轉發給VID=100的所有端口(除了進口以外);參照交換機交換原理(受到一個未知目的MAC數據幀);
這樣另一個交換機的ACCESS端口就可以收到標記tag為100的tagged數據幀;參照上面的定理5;
另一個交換機的ACCESS端口在發出標記tag為100的tagged數據幀的時候,會去掉TAG標記,轉發untagged數據幀給PC;參照上面的定理1;
這樣PC機就收到了這個數據;
本文轉自 qq8658868 51CTO博客,原文鏈接:http://blog.51cto.com/hujizhou/1040038,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的端口tagged和untagged详解的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 请问如何让Dundas chart fo
 - 下一篇: JS 问题集锦