簡介
IEEE 802.1q以及
VLAN Tagging屬於
網際網路下
IEEE 802.1的標準規範,允許多個網橋(Bridge)在信息不被外泄的情況下公開的共享同一個實體網上。IEEE 802.1q-英文縮寫寫為dot1q,經常在實現
乙太網封裝協定的架構下被提及。
用途
以VLAN的架構而言,可以想像一個公司的IT部門希望能夠只使用一個實體企業網上端以提供個別獨立的邏輯網上端,其他每個部門能夠分配到一個獨特的VLAN網上。企業網上中的Edge switch用來替所有從設備儀器中送抵各個部門的數據幀(Data frames),插入適合的VLAN標記。當幀(frames)在網上中被交換時,VLAN標籤會在被送回部門底下的設備時被移除。用這種方法信息在被傳到其它部門時就不會外泄或被
嗅探。
數據包格式
802.1q 並非實際封入原始幀中。相反,在
乙太網幀格式里,在
MAC地址源與
乙太網類型/長度的原始幀里添加一個32位的域(field)。VLAN標籤領域必須遵守下列格式:
16 bits | 3 bits | 1 bit | 12 bits |
---|
TPID | PCP | CFI | VID |
標籤協定識別符(Tag Protocol Identifier, TPID): 一組16位的域其數值被設定在0x8100,以用來辨別某個IEEE 802.1q的幀成為“已被標註的”,而這個域所被標定位置與以太形式/長度與未標籤幀的域相同,這是為了用來區別未標籤的幀。
優先權代碼點(Priority Code Point, PCP): 以一組3比特的域當作
IEEE 802.1p優先權的參考,從0(最低)到7(最高),用來對數據流(音頻、視頻、檔案等等)作傳輸的優先權。
標準格式指示(Canonical Format Indicator, CFI): 1比特的域。若是這個域的值為1,則MAC地址則為非標準格式;若為0,則為標準格式;在以太交換器中他通常默認為0。在以太和
令牌環中,CFI用來做為兩者的兼容。若幀在以太端中接收數據則CFI的值須設為1,且這個連線埠不能與未標籤的其他連線埠橋接。
虛擬區域網路識別符(VLAN Identifier, VID): 12位的域,用來具體指出幀是屬於哪個特定VLAN。值為0時,表示幀不屬於任何一個VLAN;此時,802.1q標籤代表優先權。12位的值0x000和0xFFF為保留值,其他的值都可用來做為共4094個VLAN的識別符。在橋接器上,VLAN1在管理上做為保留值。這個12位的域可分為兩個6比特的域以延伸目的(Destination)與源(Source)之48位地址,18位的三重標記(Triple-Tagging)可和原本的48位相加成為66比特的地址。
使用
IEEE 802.2/
SNAP涵蓋了一組值為00-00-00的OUI域(所以SNAP信頭的協定ID域屬於以太形式)。在乙太網以外的情況下,SNAP信頭的以太形式數值被設為0x8100且前述的額外4個比特會被附加在SNPA開頭之後。
因為插入VLAN標籤會改變幀,在以太外掛里802.1q概括(encapsulation)會強迫檢驗原始的幀檢查序列(Frame Check Sequence, FCS)域。這同時也會增加幀4位組的上限容量。
雙重標記(IEEE 802.1ad)對於網際網路提供者(ISP)是非常有用的。他允許當已被VLAN標籤的混合數據從客戶端提交時ISP仍能在內部使用VLAN。
外部(outer, next to Source MAC and represening ISP VLAN)標籤會先於
內部(inner)標籤。此時,一個可變的TPID在16進制值可能為9100、9200或是9300,通常作為外部標籤;然而在值為88a8時會違反
802.1ad而無法作為外部標籤。
三重標記也同樣可行。12位的VID延伸出48位的目的與源地址成66比特。中間3比特的PCP域可作為虛擬TTL或Hop-Count以確保數據包不會成為無限循環;更複雜的形式則是使其中一比特超載成為ingress-egress的編碼形式。PCP域的末三碼用來替檔案內容分層,從000 NR至111 XXX。在Payload段落找到的CFI3比特被組合併編碼成Next Header(或是協定),僅有其中兩碼會被使用而產生4個協定,[NOP、ICMP、UDP、ENCAP]。 NOP, No Protocol:用作IP byte/管流(pipe streams)中微小的Payload段落。 ICMP供做控制用途。UDP增加連線埠數量,是一個從IP提交的半冗沉(semi-redundant)即可選擇的校驗和。ENCAP協定或是Payload形是允許前述所有的協定,不需序文就可以封中;其中內容必須包含CRC\FCS標籤。TTL和長度(length)被置於48位的地址域前讓硬體優先讀取以減少延遲。
中繼連線埠及原生VLAN
1998 802.1q標準定義封裝協定的第9項,藉由加入VLAN標籤可使複數VLAN透過一個連結
多路復用,然而他卻能夠傳送所有幀不論是否已被標記。因此,為了能夠識別所傳送的幀是否需要標籤,有些廠商(尤其是
思科系統)經常將
中繼連線埠以及
原生VLAN的想法套用在中繼器上。
中繼連線埠的想法基於設計一個中繼連線埠,他能夠接收並轉送幀。若中繼連線埠接收到未標籤的幀,此幀就會連結這個連線埠與原生VLAN。
假設有個802.1q的連線埠有VLAN2、3、4,且VLAN2被當作原生VLAN,則在VLAN2中的幀會在不帶有802.1q信頭的情況下離開前述的連線埠(它們屬於普通的乙太網)。;在此幀未帶802.1q信頭時進入連線埠會被放入VLAN2里。與VLAN3和VLAN4的信息流行為是可預測的,也就是說送抵VLAN3和4的幀是帶有標記以識別他們,而離開VLAN3和4的幀也會攜帶各自的VLAN標籤。
然而並不是所有的廠商都會使用這樣的概念。
多重VLAN註冊協定
另外,IEEE 802.1q定義了多重VLAN註冊協定(Mutiple VLAN Registration Protocol, MVRP),它可套用於橋接器在具體網上上與VLAN的溝通。
在2007年,MVRP和IEEE 802.1ak-2007修正案取代了速度較慢的GARP VALN註冊協定(GVRP)。
多重生成樹協定
2003年時推行了多重生成樹協定(Mutiple Spanning Tree Protocol, MSTP)並定義了原始的IEEE 802.1s。