生活随笔
收集整理的這篇文章主要介紹了
交换机中tag、untag的理解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| 交換機中tag、untag的理解 |
| 情況列舉 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數據幀 Tagged數據幀 Untagged數據幀 ? 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機就收到了這個數據;
|
轉載于:https://blog.51cto.com/baigoogledu/282768
總結
以上是生活随笔為你收集整理的交换机中tag、untag的理解的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。