VLAN解惑

一,爲何有VLAN?

    以太網中廣播無處不在,如何在二層分隔廣播域?(參考《vlan學習筆記大全》)

    物理位置上相差萬里的計算機如何統一管理?(有待進一步確認)

 

二,VLAN有何效果?

    可以認爲制定了這樣一個規則:只有屬於同一個組內的成員纔可以互相通信,不同組之間的成員是不能直接通信的。而且通信採用廣播的形式告知組內成員,而非組內的成員都被隔離於廣播之外。

    那麼引申出一個問題:不同組的成員間如何通信呢?見一中已經說明VLAN是在二層分離廣播域,所以,要解決這個問題,就需要用到三層的路由功能。

 

三,VLAN基礎知識

    建議參考《vlan學習筆記大全》,說得非常清楚。

 

四,VLAN技術, tag , untag, vid...

    自己設過vlan的人可能都知道,涉及到計算機的端口一般都設置爲untag,例如管理vlan就是untag的。

    untag就是普通的ethernet報文,普通PC機的網卡是可以識別這樣的報文進行通訊;
   tag報文結構的變化是在源mac地址和目的mac地址之後,加上了4bytes的vlan信息,也就是vlan tag頭;一般來說這樣的報文普通PC機的網卡是不能識別的;

   帶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的歸屬。 

  爲什麼會有這種區別呢?因爲可能一條鏈接上不能僅僅能配一個vlan,我們先了解access, trunk, hybrid的概念。

以太網端口的三種鏈路類型:Access、Hybrid和Trunk:
 Access類型的端口只能屬於1個VLAN,一般用於連接計算機的端口;
 Trunk類型的端口可以允許多個VLAN通過,可以接收和發送多個VLAN的報文,一般用於交換機之間連接的端口;
 Hybrid類型的端口可以允許多個VLAN通過,可以接收和發送多個VLAN的報文,可以用於交換機之間連接,也可以用於連接用戶的計算機。
 Hybrid端口和Trunk端口在接收數據時,處理方法是一樣的,唯一不同之處在於發送數據時:Hybrid端口可以允許多個VLAN的報文發送時不打標籤,而Trunk端口只允許缺省VLAN的報文發送時不打標籤。

 

五,PVID

    這是個很常見的詞,什麼意思呢?PVID vlan就是cisco中的native vlan,也就是我們說的缺省vlan。

   Access端口只屬於1個VLAN,所以它的缺省VLAN就是它所在的VLAN,不用設置;當Acess端口收到一個報文時,先判斷是否有VLAN信息:如果沒有則打上端口的PVID,並進行交換轉發,如果有則直接丟棄;Acess端口發報文時,將報文的VLAN信息剝離,直接發送出去。


    Hybrid端口和Trunk端口屬於多個VLAN,所以需要設置缺省VLAN ID。缺省情況下,Hybrid端口和Trunk端口的缺省VLAN爲VLAN 1
如果設置了端口的缺省VLAN ID,當端口接收到不帶VLAN Tag的報文後,則將報文轉發到屬於缺省VLAN的端口;當端口發送帶有VLAN Tag的報文時,如果該報文的VLAN ID與端口缺省的VLAN ID相同,則系統將去掉報文的VLAN Tag,然後再發送該報文。

    trunk端口收到一個報文,判斷是否有VLAN信息:如果沒有則打上端口的PVID,並進行交換轉發,如果有判斷該trunk端口是否允許該 VLAN的數據進入:如果可以則轉發,否則丟棄;發報文時比較端口的PVID和將要發送報文的VLAN信息,如果兩者相等則剝離VLAN信息,再發送,如果不相等則直接發送;

    hybrid端口收到一個報文,判斷是否有VLAN信息:如果沒有則打上端口的PVID,並進行交換轉發,如果有則判斷該hybrid端口是否允許該VLAN的數據進入,如果可以則轉發,否則丟棄(此時端口上的untag配置是不用考慮的,untag配置只對發送報文時起作用);hybrid端口發報文:1、判斷該VLAN在本端口的屬性(disp interface 即可看到該端口對哪些VLAN是untag, 哪些VLAN是tag)2、如果是untag則剝離VLAN信息,再發送,如果是tag則直接發送。

 

六,802.1Q協議說明

VLAN Identified( VID ): 這是一個12位的域 指明VLANID ,一共4096個,每個支持802.1Q協議的主機發送出來的數據包都會包含這個域 以指明自己所屬的VLAN

   Canonical Format Indicator( CFI ) 這一位主要用於總線型的以太網與FDDI 令牌環網交換數據時的禎格式。Priority 3 位指明禎的優先級 一共有8種優先級 主要用於當交換機阻塞時 優先發送優先級高的數據包。

Vid取值

意義

0

空的vid,表示該標籤頭所包含的信息中vid是無效的,但是優先級信息是有效的。該vid是保留的,任何設備不能將0配置成端口pvid或者是vlan條目的vid

1

在橋端口處理輸入數據時使用的缺省vid,該vid可以修改。

FFF

保留vid,任何設備不能將FFF配置成端口pvid或者是vlan條目的vid

 

七,QinQ詳解

參考:http://cisco.chinaitlab.com/VLan/729550.html

參考文章可以解答,爲什麼有QinQ?

QinQ中常說的C-Vlan和S-Vlan怎麼回事呢?

C-Vlan = Custom Vlan; S-Vlan: Service Vlan;其中,C-Vlan用於在公網中穿梭,爲外層vlan;S-Vlan爲內層VLAN。

 

八,各模式簡單說明

transparent: keep c-vlan; Add 0;

tag: keep c-vlan; Add s-vlan;

retag: remove c-vlan, add c-vlan;

remove: remove c-vlan, add 0;

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