假裝網絡工程師4——多VLAN間通信

一、背景介紹

交換是疏通領域另一個知識塊,與路由一樣有着舉足輕重的地方,本片就通過不同vlan間通信的三個實現方式來講解交換的通信過程。

二、不同vlan間通信實現方法

1.使用二層設備實現

如下圖所示,兩個交換機之間使用端口綁定的方式以trunk連接,下聯2臺同網段的pc,但不屬於同一個vlan,大部分的案例都是不同的vlan屬於不同網段通過子接口進行通信,本示例則以純二層網絡設備進行通信,順便說明通信的過程。
假裝網絡工程師4——多VLAN間通信
(1)創建vlan2,並將連接pc的端口加入vlan2

[SW1]vlan 2  
[SW1-vlan2]q  
[SW1]int e0/0/1  
[SW1-Ethernet0/0/1]port link-type access   
[SW1-Ethernet0/0/1]port default vlan 2  

(2)創建eth-trunk接口,並將10/11接口加入eth-trunk

[SW1]int Eth-Trunk 1  
[SW1-Eth-Trunk1]int e0/0/10  
[SW1-Ethernet0/0/10]eth-trunk 1  
[SW1-Ethernet0/0/10]int e0/0/11  
[SW1-Ethernet0/0/11]eth-trunk 1  

(3)將eth-trunk口類型設置爲trunk,並將SW1上eth-trunk口pvid改爲2

[SW1]int Eth-Trunk 1  
[SW1-Eth-Trunk1]port link-type trunk   
[SW1-Eth-Trunk1]port trunk pvid vlan 2  

(4)通過display interface brief命令查看端口都已激活
假裝網絡工程師4——多VLAN間通信
(5)再通過display port vlan查看每個端口的vlan信息,此時可以看到eth-trunk1的pvid雖然已經爲2,但是默認放通vlan仍爲1,1爲默認放通的管理vlan,所有端口默認pvid也爲1
假裝網絡工程師4——多VLAN間通信
此時ping操作發現pc1與pc2之間無法正常通信,原因就在於儘管sw1的eth-trunk口pvid是2,但是他並沒有放通vlan 2,sw2也是沒有放通vlan 3,只有當使用命令

[SW1]int Eth-Trunk 1  
[SW1-Eth-Trunk1]undo port trunk allow-pass vlan 1  #取消默認放通的vlan 1,可省略
[SW1-Eth-Trunk1]port trunk allow-pass vlan 2  

再查看sw1確認vlan2已經放通,兩個pc間才能正查光通信,sw2上的配置類似,不再贅述。
假裝網絡工程師4——多VLAN間通信
通過本實例可以總結出數據通信的過程爲:
(1)pc1發出報文從sw1的e0/0/1口進入,再通過e0/0/1口時被打上該端口的default vlan
(2)報文再通過eth-trunk 1口發出前先判斷是否允許通過,如果沒有放通,即使tag等於該端口的pvid也會丟棄,本例中pvid與tag相同,所以從eth-trunk 1口出來時剝離tag變爲純以太網幀
(3)報文進入sw2的eth-trunk 1口時打上該端口的pvid
(4)從sw2的e0/0/1流出時,因爲tag等於該端口的pvid所以脫掉tag變爲純以太網幀發送給pc2。tag是由交換機添加的信息,pc並不能識別,pc只能識別純以太網幀
這樣,儘管沒有借用三層設備但最終pc1和oc2實現了通信。

2.藉助路由器子接口

拓撲如下圖所示,此時交換機上聯路由器,屬於不同vlan的pc1和pc2將通過路由器子接口的方式進行通信。
假裝網絡工程師4——多VLAN間通信
(1) SW1上的配置
創建vlan10,20

[SW1]vlan batch 10 20   

將e0/0/1口加入vlan 10

[SW1]int e0/0/1  
[SW1-Ethernet0/0/1]port link-type access  
[SW1-Ethernet0/0/1]port default vlan 10  

將e0/0/1口加入vlan 20

[SW1-Ethernet0/0/1]int e0/0/2  
[SW1-Ethernet0/0/2]port link-type access   
[SW1-Ethernet0/0/2]port default vlan 20  

將g0/0/1口配置成trunk模式,並放通vlan 10/20

[SW1]int g0/0/1  
[SW1-GigabitEthernet0/0/1]port link-type trunk   
[SW1-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 20  
[SW1-GigabitEthernet0/0/1]undo port trunk allow-pass vlan 1  

檢查配置,至此SW上配置完成
假裝網絡工程師4——多VLAN間通信
(2) 路由器上配置
首先能看到,在交換機上並沒有三層口,g0/0/1屬於二層端口
假裝網絡工程師4——多VLAN間通信
而在路由器上g0/0/1是三層端口,此時是用交換機的二層口連接路由器的三層口,且tag是二層標籤,三層口無法直接識別,所以要先進行dot1q封裝
假裝網絡工程師4——多VLAN間通信
路由器上創建子接口,用dot1q封裝用於終結vlan標籤,並將網關地址配置在該端口上

[R1]interface g0/0/1.10  
[R1-GigabitEthernet0/0/1.10]dot1q termination vid 10  
[R1-GigabitEthernet0/0/1.10]ip add 192.168.10.254 24  
[R1-GigabitEthernet0/0/1.10]arp broadcast enable   
[R1]interface g0/0/1.20  
[R1-GigabitEthernet0/0/1.20]dot1q termination vid 10  
[R1-GigabitEthernet0/0/1.20]ip add 192.168.20.254 24  
[R1-GigabitEthernet0/0/1.20]arp broadcast enable 

至此,R1的配置完成,此時pc1與pc2就能正常通信了,需要注意的是:當開啓子接口後,物理接口的功能就將小時此時的物理接口只是接收數據,子接口默認情況下不啓用arp廣播,所以需要手動開啓。

3.使用vlanif子接口實現

方法2的方法固然能實現不同vlan間通信,但實際生產環境中很少會用到,原因是:單臂路由引入了單點故障,儘管可以通過eth-trunk的方式將多跟鏈路綁定做冗餘,但vlan的1次間通信會在該鏈路上一進一出,該鏈路的負載較大,所以常見的方式是使用三層交換機完成,如下圖所示:
假裝網絡工程師4——多VLAN間通信
創建vlan10/20,並加入對應vlan

SW1]vlan batch 10 20  
[SW1]int e0/0/1  
[SW1-Ethernet0/0/1]port link-type access   
[SW1-Ethernet0/0/1]port default vlan 10  
[SW1-Ethernet0/0/1]int e0/0/2  
[SW1-Ethernet0/0/2]port link-type access   
[SW1-Ethernet0/0/2]port default vlan 20  

創建vlanif子接口,並將網關配置到該接口上

[SW1]interface Vlanif 10  
[SW1-Vlanif10]ip address 192.168.10.254 24  
[SW1-Vlanif10]int vlanif 20  
[SW1-Vlanif20]ip add 192.168.20.254 24  

至此,SW1配置完成pc1與pc2之間能夠正常通信,此時有幾個需要注意的地方:
(1)vlanif的子接口必須要跟vlan號保持一致
(2)vlanif是一個三層邏輯端口,使用三層交換機進行多vlan間通信時,不需要進行dot1q封裝,因爲二層的tag信息在交換機的物理口就已經被剝離

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章