VLAN是一個怎樣的工作過程呢?它是如何做到隔離的功能,帶著這些疑問,今天一起來看看吧
VLAN基本通信原理
為了提高處理效率,交換機內(nèi)部的數(shù)據(jù)幀一律都帶有VLAN Tag,已統(tǒng)一方式處理。當一個數(shù)據(jù)進入交換機接口時,如果沒有帶VLAN Tag標簽,且該接口上配置了PVID,那么,該數(shù)據(jù)幀就會被標記上接口的PVID。如果數(shù)據(jù)幀已經(jīng)帶有VLAN Tag,那么,即使接口已經(jīng)配置了PVID,交換機不會再給數(shù)據(jù)幀標記VLAN Tag。
由于接口類型不同,交換機對數(shù)據(jù)幀的處理過程也不同,具體的請查閱《交換機三種端口模式Access、Hybrid和Trunk對數(shù)據(jù)包Tag的處理過程》
下面通過兩個案例來說明一下VLAN的工作原理:
同一交換機不同VLAN情況
上圖交換機分別配置了VLAN 10 20,同時把相應的PC加入不同的VLAN中,通過在交換機上GE0/01和GE0/0/3抓包,發(fā)現(xiàn)GE0/0/1能抓取數(shù)據(jù)包,而GE0/0/3沒有數(shù)據(jù)包經(jīng)過。這也證實了VLAN的一個特性,隔離廣播風暴。
正常的情況先,PC1在和PC2的第一次通信,先廣播一個ARP請求,在交換機的所有端口,除了自己發(fā)送數(shù)據(jù)端口之外,其他端口都能正常收到的。但是上述拓撲由于劃分了VLAN,所以ARP廣播被GE0/0/3端口丟棄。所以導致PC1不能獲取PC2的mac地址,導致無法通信。
小伙伴們看到這里,可能會說,我們能不能提前把PC2的MAC地址告訴PC1,這樣PC1就不用再發(fā)ARP廣播包去請求MAC地址啦。
通過在PC1和PC2中相互把對方的MAC地址進行添加,執(zhí)行如下命令
PC1>arp -s 192.168.1.3 54-89-98-C1-58-5A PC2>arp -s 192.168.1.2 54-89-98-05-20-B9
添加完之后,重新在交換機GE0/0/1和GE0/0/3端口進行抓包,如下圖,GE0/0/3還是沒有數(shù)據(jù)抓取到,這次GE0/0/1端口到ICMP包的請求超時。
通過提前綁定MAC地址信息,但是,依然PC1和PC2不能相互訪問。那么VLAN數(shù)據(jù)包是如何工作的呢?先來看Access端口在接收和發(fā)送數(shù)據(jù)包的是都做了什么操作。
Access接口對接收不帶Tag的報文處理:接收該報文,并打上缺省的VLAN ID
Access接口對接收帶Tag的報文處理:當VLAN ID 與缺省VLAN ID相同時,接收該報文;當VLAN ID與缺省VLAN ID不同時,丟棄該報文;
發(fā)送幀處理過程:先剝離幀的PVID Tag,然后再轉(zhuǎn)發(fā)。
注意:如果端口為access類型,并加入了一個vlan ,那么這端口的PVID屬性值變成和VID值一樣;缺省VLAN ID 就是當前加入的VLAN ID
從以上access端口接收發(fā)送數(shù)據(jù)包,可以大致推測出PC1和PC2的通信過程如下:
1、當PC1發(fā)送數(shù)據(jù)包時,數(shù)據(jù)包是不帶Tag標簽的。進入交換機GE0/0/1端口后,則被帶上VLAN 10 的標簽。
2、當交換機GE0/0/3端口接收到GE0/0/1端口發(fā)來的數(shù)據(jù)包,然后檢查發(fā)現(xiàn)是帶上Tag標簽的,進一步比較與自己的缺省VLAN是否一致,結(jié)果發(fā)現(xiàn)不一致,直接發(fā)數(shù)據(jù)包丟棄了。
同一交換機相同VLAN情況
上圖兩臺交換機通過GE0/0/24端口互聯(lián),并把GE0/0/24配置成trunk口模式,允許VLAN 10、20通過。那么垮交換機的VLAN又是怎么一個流程呢?
先分別在SW1和SW2的GE0/0/24端口抓包,看看什么樣的數(shù)據(jù)包經(jīng)過GE0/0/24。
從上圖看到通過SW1和SW2的G0/0/24端口數(shù)據(jù)包都是一樣的,攜帶了Tag標簽。再來看看trunk收發(fā)數(shù)包的流程。
trunk端口對不帶Tag的報文處理:
- 打上缺省的VLAN ID,當缺省VLAN ID在允許通過的VLAN ID列表時,接收該報文。
- 當缺省VLAN ID不在允許通過的VLAN ID列表時,丟棄該報文。
trunk端口對帶Tag的報文處理:
- 當VLAN ID在接口允許通過的VLAN ID列表里時,接收該報文;
- 當VLAN ID不在接口允許通過的VLAN ID列表時,丟棄報文。
發(fā)送幀處理過程:
- 當VLAN ID與缺省VLAN ID相同,且是該接口允許通過的VLAN ID時,去掉Tag,發(fā)送該報文;
- 當VLAN ID與缺省VLAN ID不同,且是該接口允許通過的VLAN ID時,保持原有Tag,發(fā)送該報文。
從以上Trunk端口收發(fā)數(shù)據(jù)包的處理過程,大致可以推測出PC1和PC3的過程如下:
- 當PC1發(fā)送數(shù)據(jù)包到SW1端口(數(shù)據(jù)包不帶Tag標簽),進入SW1交換機的GE0/0/1端口后,被加上該端口VLAN ID 20進行轉(zhuǎn)發(fā)。
- 進行ARP廣播請求PC3端MAC地址,數(shù)據(jù)包進入SW1的GE0/0/24端口,由于SW1的GE0/0/24端口為trunk模式,允許VLAN 10 和20通過,并根據(jù)trunk端口發(fā)送幀處理過程。數(shù)據(jù)包順利到達SW2的G0/0/24端口。
- 由于ARP廣播包攜帶了Tag標簽,只有對應的端口對此廣播進行處理,并相應。
- PC1得到PC3的MAC地址,進行數(shù)據(jù)包封裝轉(zhuǎn)發(fā),進行通信。