pvid和vid的區別是什麼

PVID和VID完全研究(上)——PVID的做用及和VID的區別Pvid和Vid常常出現於2、三層交換機裏,因爲PVID和VID的設置不合理,形成VLAN劃分變得混亂。本文就對PVID和VID進行了完全研究。pvid是交換機上的概念,說的是進入該端口的報文若是沒有打vlan id就按pvid的值打上,vid是報文上的vlan tag的意思.不是同個概念哦.首先解釋一下什麼是PVID,PVID英文解釋爲Port-base VLAN ID,是基於端口的VLAN ID,一個端口能夠屬於多個vlan,可是隻能有一個PVID,收到一個不帶tag頭的數據包時,會打上PVID所表示的vlan號,視同該vlan的數據包處理,因此也有人說PVID就是某個端口默認的vlan ID號。默認狀況下,簡單的理解爲:ACCESS端口接PC,VID=PVIDTRUNK端口級聯,VID=所有,PVID=1簡單的說,VID(VLAN ID)是VLAN的標識,定義其中的端口能夠接收發自這個VLAN的包;而PVID(Port VLAN ID)定義這個untag端口能夠轉發哪一個VLAN的包。好比,當端口1同時屬於VLAN一、VLAN2和VLAN3時,而它的PVID爲1,那麼端口1能夠接收到VLAN1,2,3的數據,但發出的包只能發到VLAN1中在網上發現一個比較好的解釋是:PVID並非加在幀頭的標記,而是端口的屬性,用來標識端口接收到的未標記的幀。也就是說,當端口收到一個未標記的幀時,則把該幀轉發到VID和本端口PVID相等的VLAN中去。爲了驗證這一說法,在S3026上作了如下實驗:在S3026上選兩個端口,鏈接兩臺主機A、B,按照下表給端口設置不一樣的PVID和VID,用A ping B,並在B上抓包,記錄實驗結果。注:結果中「有」表示抓包有ICMP的包(但ping不一樣),「無」表示沒有,「通」表示能夠ping通。VID爲「無」表示該端口沒有加到任何VLAN裏。全部結果爲「無」的能夠解釋爲:當端口1收到無標記的幀後,轉發到VID=PVID=1的端口去,因爲端口2無VID,故主機B收不到包。全部結果爲「有」的能夠解釋爲:當端口1收到無標記的幀後,轉發到VID=PVID=1的端口去,因爲端口2的VID=1,故主機B收到ICMP的ECHO包,併發出ECHO Reply,因爲此種狀況下端口1的VID不等於1,故B的Reply並不能到達A。因此只有當兩個端口的PVID和VID同樣時,才能夠互通。到此我和你們同樣有個疑問,一個VLAN幹嘛要設置PVID和VID兩種標識呀?方正只有當PVID=VID時才能互通,只有一個不就夠了嗎?請往下看。當全部VLAN都在一個交換機裏時,確實只須要一個標識就夠了,但跨設備的VLAN就須要另外一種標識,這就是802.1Q的VLAN ID,即VID。咱們知道802.1Q的VLAN是在二層幀里加進VLAN標識,俗稱打tag,而計算機不能解析這種二層的幀,因此交換機的一個端口在分到一個VLAN時有tag和untag屬性,tag端口用來鏈接設備,untag端口用來鏈接計算機。Tag端口出去的幀通常都打上了tag,tag中的VID有的來自PVID,有的則來自其它tag端口中自己就含有tag的幀。設備互連時,由tag中的VID決定了一個二層幀屬於哪一個VLAN,而計算機不具有打tag的功能,因此只有給鏈接計算機的端口添加一個屬性,用來決定計算機發出的未標記的幀屬於哪一個VLAN,這個屬性就是PVID。咱們來總結一下,S3026的VLAN轉發的機制:在一個端口接收到一個無標記幀時,僅僅由該端口的PVID決定該幀轉發到哪一個VLAN中,即轉發到VID=PVID的VLAN中。到此咱們理解了PVID的含義和做用,但彷佛只有untag端口下的PVID才具備意義,而實際上tag端口也有PVID屬性,PVID對tag端口會形成什麼影響呢?請看中篇。PVID和VID完全研究(中)——PVID值對TAG端口影響在上篇,咱們理解了PVID的含義和做用,本篇將經過實驗,分別在S3026和S3526上研究PVID值對tag端口的影響。首先在S3026上進行實驗,以下圖所示:咱們將用到3個端口:Port 一、二、3,各端口PVID設置以下:Port 1:PVID = nPort 2:PVID = 2Port 3:PVID = 3建立2個VLAN:vlan2:VID = 2,包含Port 1 (tag)、Port 2 (untag)vlan3:VID = 3,包含Port 1 (tag)、Port 3 (untag)將3臺主機A、B、C分別接在Port 一、二、3上,分別用主機B、C去ping主機A,在主機A上抓包。實際上tag端口接計算機是沒有意義的,由於計算機沒法解析打了tag的二層包文,但經過抓包軟件能夠抓到這種二層報文,經過這種方法能夠進行分析。實驗時主機B和C能夠是同一臺計算機,只不過接到不通端口上,爲了方便說明,將它們分開表示。實驗結果以下:當n = 1時,能夠看到來自B和C的包頭前都含有802.1Q的Packet,B、C都不能ping通A(ping不通的因爲主機A沒法解析打了tag的二層包);當n = 2時,能夠看到來自B的包頭前不含有802.1Q的Packet,而來自C的有,僅B可ping通A;;當n = 3時,能夠看到來自C的包頭前不含有802.1Q的Packet,而來自B的有,僅C可ping通A;;經過分析,得出S3026轉發機制大體以下:一、由主機B發出的包到接口2(因爲此時B不知道A的MAC地址,會發出arp廣播包)二、根據接口2的PVID的值(PVID=2),發往VID=2的VLAN中的全部接口三、接口1屬於VLAN 2,因此接口1能收到此包四、此時若是VLAN 2中接口1是tag端口,則將接口1的PVID值和VID進行比較:若是PVID=VID則從接口1出去的包不打tag若是PVID!=VID則從接口1出去的包打tag因而可知,之前設爲tag端口的PVID不起做用的說法在S3026上並不適用,正確的說法應該是:S3026上的某個VLAN中的tag端口,在轉發在此VLAN中包時出去前,先檢查該tag端口的PVID是否等於VID,若相等則發出的包不打tag,若不等則打上tag。而在S3526上重複這個實驗時,獲得了不一樣的結果:在S3526上,只要某個VLAN中的端口設爲tag端口,在轉發來在此VLAN中包時出無論該端口的PVID值是多少,都打上tag。(不一樣廠家設備的實現方式不同,須要注意!)到此,咱們都只是在單獨一個設備上研究PVID的影響,下篇將結合一個故障實例,解釋跨設備時PVID的影響。PVID和VID完全研究(下)——一個故障實例的分析某網組網結構以下圖所示,某路由器下掛S3526,S3526下掛S3026,S3026下面接了4個用戶:其中S3526的接口1上接路由器,打tag標記;接口2接S3026,打tag標記,PVID爲1。S3026的配置是這樣的:S3026的接口1上接S3526,打tag標記,屬於VLAN 二、三、四、5,PVID爲2;接口2接用戶2,屬於VLAN 2,PVID爲2;接口3接用戶3,屬於VLAN 3,PVID爲3;接口4接用戶4,屬於VLAN 4,PVID爲4;接口5接用戶5,屬於VLAN 5,PVID爲5;故障現象爲:用戶2的用戶沒法上網,而其它的用戶能夠上網;若是將S3026的上連口的PVID值配置爲3,那麼用戶3的用戶沒法上網,其它的用戶能夠上網;最後咱們將S3026的上連口的PVID值設置爲1,4個用戶的用戶就均可以上網了。根據前兩篇的結論,咱們發現,接口1的PVID=2,故從VLAN 2來的包從接口1出去後不打tag,而此時S3526的接口2的PVID=1,收到未標記得包後,將其送到VLAN 1裏。本來VLAN 2的包送到了錯誤的VLAN裏,因此VLAN 2下的用戶上不了網。當咱們將S3026接口1的PVID設爲1時,它不等於所屬任何VLAN地VID,送出去的包都打了tag,此時S3526能根據tag將接受到的包送到正確的VLAN裏,故全部VLAN下用戶都能上網了。咱們能夠補充一個實驗,將S3026的接口1和S3526的接口2的PVID都設爲2,此時全部用戶都能正常上網,緣由是這樣的:S3026將VLAN 2的包不打tag的從接口1送出去,S3526的接口2收到的包有打tag的(VLAN 三、四、5),也有不打tag的(VLAN 2)。S3526的接口2對於打tag的包,可以發往正確的VLAN;不打tag的包,根據接口2的PVID值,送到VID=PVID的VLAN裏,而此時接口2的PVID=2,也恰巧正確的送到了VLAN 2裏。全部VLAN的包在跨設備後,經過不一樣的方式,都正確的發往所在的VLAN,因而全部用戶都能正常上網,只不過VLAN 2和其它的VLAN途徑有點不一樣。可見,設備兩端的PVID一致時,在解決問題的同時,也把潛在問題給隱藏起來。例如在把S3526隔接爲其它設備時,可能會又形成某個VLAN的用戶上不了網,而此時故障緣由不容易找到。咱們來總結一下,交換機的PVID和VID給VLAN配置帶來了靈活性,同時也帶來了一些麻煩,配置的很差可能帶來問題很隱蔽。因此咱們之後在配置VLAN時要注意如下幾點:一、 對於untag端口,PVID要和所屬VLAN的VID一致;二、 對於tag端口,PVID要不一樣於全部所屬VLAN的VID;三、 兩臺設備互聯時,兩端接口的PVID保持一致時,有弊也有利;到此,咱們真正意義上理解了基於端口的VLAN,也理解了PVID的做用,但願本文能給困惑於PVID和VID的人帶來一點幫助。
相關文章
相關標籤/搜索