VLAN間通信(單臂路由和SVI)

不同VLAN在二層肯定不能通信,如果要通信只能走三層。例如交換機上接了兩臺處於不同VLAN的PC,它們間要通信只能走三層。你可以將每個VLAN的以太口和路由器連接,但VLAN多的話路由器口不夠用。所以通常路由器只用一個以太接口和交換機連接,交換機的這個接口設置爲trunk接口。這些概念在VLANTRUNK裏都有介紹。

那不同VLAN在三層如何通信呢?以下圖爲例:


R2要訪問R3,但R2和R3處於不同VLAN,因此二層轉發肯定是行不通的。要走三層,用單臂路由技術:

單臂路由

在交換機上接一臺路由器R1。交換機端的接口配置成Trunk口。路由器端接口根據不同VLAN配置成不同的子接口(因爲一個VLAN代表一個子網,因此子接口IP爲VLAN的網關地址)。R2發出數據,交換機收到後,打上VLAN2標籤,通過Trunk口發送給R1。路由器查找本地路由表發現該數據要發給VLAN3上的R3,因此用VLAN3重新封裝數據幀後,通過Trunk回給交換機。交換機收到後,去掉VLAN3標籤,轉發給VLAN3上的R3,這就是VLAN單臂路由,實現了不同VLAN間的通信。

單臂路由優點是配置簡單。缺點是有帶寬限制,單點故障等問題(如果R1出故障了,那R2就不能訪問R3了)。

單臂路由配置

(前提:交換機上設置VLAN2,VLAN3。並將f1/2口劃入VLAN2,f1/3口劃入VLAN3。交換機連接路由器的端口配成Trunk)

路由器的端口要劃分子接口:


R2和R3的網關ip default-gateway分別設成SW1的兩個子接口的IP。這樣處於不同VLAN的R2就能ping通R3了。R2的數據包經由R1打上VLAN3的標記後傳給交換機,交換機去掉標記後轉發給R3。

SVI(Switch Virtual Interface)

因爲單臂路由有帶寬限制和單點故障問題,所以用的更多的是SVI虛擬交換接口,來讓不同VLAN間通信。SVI要用三層交換機。每個VLAN都有且僅有一個SVI口,在SVI口上配置IP,終端的的網關指向三層交換機上本VLAN的IP地址即可。

SVI配置:


(前提:交換機上設置VLAN2,VLAN3。並將f1/1口劃入VLAN2,f1/2口劃入VLAN3)


R1和R2的網關ip default-gateway分別設成兩個SVI口的IP。這樣處於不同VLAN的R1就能ping通R2了。再來看一下SVI口信息和交換機的路由表(三層交換機開啓路由功能後就能像普通路由器一樣查看路由表):


注意點:如果SVI口沒有Up,可能是該VLAN下沒有任何活動端口

那如果如上面單臂路由的拓撲圖,交換機換成三層交換機,即配好單臂路由,又配好SVI口。那R2去ping R3,究竟是走二層單臂路由,還是走三層SVI口呢?問題等價於,三層交換機收到幀時,是走二層交換還是走三層路由?這取決於幀的目標MAC地址究竟是誰?如果幀的目標MAC地址是SVI口地址,那就走三層SVI口。如果幀的目標MAC地址不是SVI口地址,那就走二層單臂路由。

比如R2去ping R3,目標IP地址肯定是R3的IP,但目標MAC地址可不一定是R3的MAC地址,取決於R2和R3是否處於同一網段。如果處於同一網段,發ARP請求目標R3的MAC地址,如果不是同一網段那就ARP請求網關的MAC地址。拓撲裏R2和R3處於不同VLAN,理應是處於不同網段,因此目標MAC地址是網關(即SVI口)地址,因此走三層SVI口通信。

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