PVID和VID與交換機端口


PVID和VID與交換機端口

來源 https://blog.51cto.com/692344/1061467

參考 http://blog.sina.com.cn/s/blog_dfd128c60102vt4i.html

 

1. PVID (Port VLAN ID)
Untag 的 port 可以轉發哪個 VLAN 的封包(如果是 Tag port 則例外)例如:此 port 的 PVID = 1,代表此 port 可以轉發 VLAN1 的封包,因為 Untag 的封包進入 port 后,會被標上 VID1。

2. VID (VLAN ID)
VLAN內的port可以接收發自這個VLAN的封包。

例如:此 port 的 VID = 2,代表此 port 可以接收 VLAN2 的封包。

PVID 與 VID:
當 port1 同時屬於 VLAN1、VLAN2、VLAN3 時,而它的 PVID 為 1,那么 port1 可以接收到 VLAN1、VLAN2、VLAN3 的封包,但發出的封包只能發到 VLAN1 中。

3. UnTag
此封包不帶 Tag,意思是不帶 VLAN ID。

4. Tag
此封包帶 Tag ,意思是帶 VLAN ID。

5. untagged port
此 port 轉發出的封包上都沒有 Tag (untagged)。 若有 Tag 的封包進入 switch,則其經過 untagged port 時,Tag 將被去除 。(用於連接一般設備、電腦)

6. tagged port
從該 port 轉發出的封包上都將有 Tag (tagged)。 若有非 Tag 的封包進入 switch,則其經過 tagged port 時,Tag 將被加上。 將使用在 ingress (流入)端口上的 pvid 設定作為 Tag 的 VLAN ID。 (用於交換機與交換機之間傳輸)

 

交換機上的端口分為三種一種是接入層端口直連設備的,叫做Access;一種是交換機和交換機之間的端口負責匯聚的叫做Trunk,還有一種是Access與Trunk混合的模式,叫做Hybrid。

ACCESS:

Access端口負責接終端設備,他收到一個幀的時候,如果幀這個沒有標記他就用自己的pvid給他打上標記,他在發出一個幀時如果VID=PVID就去掉標記(解標記)以保證傳送給終端設備的幀沒有被變動過(中間設備添加了標記),pvid是在划分vlan時候每個端口都有的屬性,默認情況下思科交換機中每個端口初始pvid是1,表示他是vlan 1的成員們如果你給他划分了其他VLAN那么PVID相應會發生更改,

PVID並不是加在幀頭的標記,而是端口的屬性,用來標識端口接收到的未標記的幀。
ACCESS端口的特點是只允許符合PVID的流量通過

TRUNK:

Trunk中繼鏈路,允許各種VLAN通過.當收到一個沒有tag的標記的時候就用自己的pvid給他標記,當發送一個幀時候如果vid=pvid則去掉pvid,與Access不同的是,Trunk有一個屬於自己的本征VLAN(Native VLAN,也叫PVID),用來發送一些cdp,bpdu等交換機間聯系的數據或者管理流量,從交換機自身產生的幀在發出去的時候是不會帶標記的,因為VID=pvid所以標記被去掉,而對端接收到沒有標記的幀時候就會用自身本征VLAN的信息給他加上標記,然后查看交換表如果發現目的地址是自己則去掉標記,如果發現目的mac地址不是自己則繼續轉發給其他Trunk同時去掉標記(因為一個交換機只有一個本征VLAN所有pvid=vid去掉標記)

Hybrid:
 Hybrid是Access與Trunk的混合模式,它允許VID=pvid。Hybrid與Trunk一樣,在該端口上可以傳送多個vlan的包,一般用於交換機與交換機之間,或者交換機與服務器之間的鏈接。如果收到的數據包不帶vlan,則加上pvid進行轉發;如果收到的數據包帶vlan,則判斷該端口是否允許該vlan進入,如果可以則進行轉發,否則丟棄。往外發送數據時,允許多個VLAN 的數據幀不打 TAG。

802.1Q的VLAN是在二層幀里加進VLAN標識,俗稱打tag,而計算機不能解析這種二層的幀,所以交換機的一個端口在分到一個VLAN時有tag和untag屬性兩種屬性,tag端口用來連接設備,untag端口用來連接計算機。Tag端口出去的幀一般都打上了tag,tag中的VID有的來自PVID,有的則來自其它tag端口中本身就含有tag的幀。
設備互連時,由tag中的VID決定了一個二層幀屬於哪個VLAN,而計算機不具備打tag的功能,所以只有給連接計算機的端口添加一個屬性,用來決定計算機發出的未標記的幀屬於哪個VLAN,這個屬性就是PVID。

 

----------------------

 

OpenWrt 802.1Q VLAN

Trunk口   Trunk口上可以同時傳送多個VLAN的包,一般用於交換機之間的鏈接。
Access口  Access口只能屬於1個VLAN,一般用於連接計算機的端口。
pvid     即端口vlan id號,是非標記端口的vlan id 設定,當非標記數據包進入交換機,交換機將檢查vlan設定並決定是否進行轉發。一個ip包進入交換機端口的時候,如果沒有帶tag頭,且該端口上配置了pvid,那么,該數據包就會被打上相應的tag頭!如果進入的ip包已經帶有tag頭(vlan數據)的話,那么交換機一般不會再增加tag頭,即使是端口上配置了pvid號;當非標記數據包進入交換機。
vid    即vlan id;  1:vlan1(eth0.1); 2:vlan2(eth0.2);

 

----------------------

 

在openwrt系統下划分vlan來隔離端口

組網環境:

 

port0:為wan口,連接外網,剩下的都是lan口;

port1,port2,port3分別直連pc0,pc1,pc2,並配置好ip地址


預想結果:

pc0,pc1,pc2分別為三個不同的網段,pc1與pc2不能相互通信,其他都可以互通,並且可以上網


實際配置:

1.先划分vlan(頁面-網絡-交換機)

id為1:關聯cpu0,不關聯port1,關閉port2,關閉port3,不關聯port4   (這個vlan1默認就存在)

id為2:關聯cpu0,關閉port1,不關聯port2,關閉port3,關閉port4

id為3:關聯cpu0,關閉port1,關閉port2,不關聯port3,關閉port4

2.配置接口(頁面-網絡-接口)

接口名為lan1  選擇虛擬接口eth1.1 配置靜態ip為172.168.0.1/16  (這個接口也是默認存在的,下面的虛擬接口eth1.2中的2其實就是vlan的id,也就是vlan2)

接口名為lan2  選擇虛擬接口eth1.2 配置靜態ip為192.16.2.2/24

接口名為lan3  選擇虛擬接口eth1.3 配置靜態ip為1792.16.3.3/24

3.其實雖然配置了上面的vlan,但是並沒有真正的隔離(pc1能ping同pc2,因為這個設備不是真正的二層交換機,有路由功能),需要防火牆配置,用命令iptables進行過濾

iptables -I FORWARD -d 192.168.2.126 -i eth1.3 -j DROP
iptables -I FORWARD -d 192.168.3.126 -i eth1.2 -j DROP 也就是針對端口進行隔離ip,檢查port2的端口,不允許192.168.3.126這個ip進來

根據以上三點配置,可以實現需求了。


用到的原理:

vlan就不多說了,划分地址,進行隔離。由於這個設備相當於既有交換機功能,又有路由功能,所以vlan隔離不能生效。

因為是openwrt系統,不支持acl配置,所以這里選擇了iptables命令。

粘貼兩個相關鏈接,講的不錯,學習很多。

http://blog.chinaunix.net/uid-26495963-id-3279216.html
https://www.cnblogs.com/metoy/p/4320813.html

 

============ End

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM