1. 程式人生 > >VLAN間通訊(單臂路由和SVI)

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口通訊。