一、 爲什麼要產生VLAN?
衝突域和廣播域:
衝突域指的是會產生衝突的最小範圍,在同一個衝突域中的每一個節點都能收到所有被髮送的幀。衝突域是基於OSI的第一層物理層,第二層的設備如交換機才能隔離衝突域,交換機的每一個端口就是一個衝突域。
廣播域:如果站點發出一個廣播信號,所有能接收到這個信號的設備範圍稱爲一個廣播域。廣播域基於OSI的第三層,第三層才能隔離廣播域。
一般交換機只能分割衝突域,而不能分割廣播域。如果用交換機構造一個大型的網絡,將會形成一個巨大的廣播域,可能會造成網絡擁堵以及安全問題。因此需要一種技術來分割這些廣播域。根據路由器子網劃分的原理,建立一種VLAN(虛擬局域網)即在邏輯上將廣播域劃分成幾個獨立的廣播域。每一個VLAN就相當於一個廣播域。這樣某一個VLAN成員在發送廣播域時就只會將數據包發給同一VLAN中的成員,而不會發給其他成員。這樣就會減少了網絡擁堵的可能,也提高了安全性能。
二、 VLAN原理
VLAN有三種連接方式:access、truck、hybrid。
Access連接:
接收端:
無tag,直接進入並打上端口所屬的PVID
有tag,比較與端口是否一致,一致進入,否則丟棄。
發送端:
將標籤去掉,直接轉發。
Truck連接:
接收端:
無tag,直接進入並打上端口所屬的PVID
有tag,判斷是否允許轉發,允許則進入,否則丟棄。
發送端:
報文所在VLAN與端口PVID一致的,去掉tag轉發,不一致的帶tag轉發。
Hybrid連接:(不常用)
接收端:
無tag,直接進入並打上端口所屬的PVID
有tag,判斷是否允許轉發,允許則進入,否則丟棄。
發送端:
判斷該VLAN在本端口的屬性是帶tag還是不帶tag,帶的話就帶tag轉發,不帶就去掉tag轉發。
只說access和trunk口。交換機對不帶tag報文和帶tag報文的處理原則:
Access端口:
Access端口的PVID |
接收報文的VLAN ID |
發送報文的VLAN ID |
處理結果 |
VLAN 2 |
無 |
|
打上VLAN2標記後轉發 |
VLAN 2 |
VLAN 3 |
|
丟棄 |
VLAN2 |
VLAN2 |
|
在VLAN 2內轉發 |
VLAN 2 |
|
VLAN 2 |
去掉VLAN 2標記後轉發 |
VLAN 2 |
|
VLAN 3 |
丟棄 |
Trunk端口:
Trunk端口的PVID |
接收報文的VLAN ID |
發送報文的VLAN ID |
處理結果 |
VLAN 1 |
無 |
|
打上VLAN 1標記後在VLAN1內轉發 |
VLAN2 |
無 |
|
打上VLAN 2標記後在VLAN2內轉發 |
VLAN2 |
VLAN 2端口允許 |
|
去掉VLAN2標記轉發 |
VLAN2 |
VLAN 3端口允許 |
|
在VLAN3直接轉發 |
VLAN2 |
VLAN3端口不允許 |
|
丟棄 |
VLAN2 |
|
VLAN 2 |
去掉VLAN2標記發送 |
VLAN2 |
|
VLAN 3 |
直接發送 |
三.實驗
1、
1、PC發出的是不帶tag的報文
LSW1的GE1口
2、SW1的GE1口給報文打上VLAN 2的tag,並在VLAN2內轉發
LSW1的GE2口:
3、SW1的GE2口允許VLAN2通過,比較報文的VLAN ID是否與端口的PVID相同,不同,不會去掉tag。在VLAN2內轉發。
4、同理,LSW2的ge2和LSW3的ge1收到的報文都是上圖的帶tag的報文。
5、LSW3的GE2口收到報文後查看報文的VLAN ID與自己的相同,允許轉發,而且與自己的PVID相同。去掉tag發送給PC。
LSW3的GE2口的報文不帶tag:
二、
LSW1的GE2的PVID與報文的VLAN ID相同,將tag去掉
交換機2的GE1口會給報文打上vlan 3的tag,在VLAN3內轉發。
LSW3的GE2將tag去掉後發送給PC2,當然如果GE 2不在VLAN3則GE2口會直接丟棄該報文。
四、 VLAN攻擊
1、單tag攻擊
思科交換機有一個動態中繼協議,默認所有的access口都想成爲trunk口,交換機如果連得不是PC,而是交換機,那麼端口會立馬從access口變爲trunk口。這時,攻擊者只需要將pc僞造DTP使交換機將pc認爲成交換機,交換機就會將access口變爲trunk口,這是攻擊者只需要給報文加上想要通信的主機所在的VLAN的tag就可以了。
2、雙tag攻擊
交換機僞造報文加上兩個tag,如下圖:
VLAN 5 |
VLAN20 |
這樣交換機就可以在LSW4的出口會將第一層的標籤VLAN5去掉,PC1和PC2就可以通信了。