VLAN虛擬局域網知識筆記之(四)
VLAN間路由原理與配置方法
部署了VLAN的傳統交換機不能實現不同VLAN間的二層報文轉發,因此必須引入路由技術來實現不同VLAN間的通信。VLAN路由可以通過二層交換機配合路由器來實現,也可以通過三層交換機來實現。
本次筆記主要介紹VLAN間路由的原理以及不同的實現方式,以及對應的配置方法。
VLAN的局限性
VLAN在分割廣播域的同時也限制了不同VLAN間的主機進行二層通信。
VLAN隔離了二層廣播域,也嚴格地隔離了各個VLAN之間的任何二層流量,屬於不同VLAN的用戶之間不能進行二層通信。
那么,可以用什么方法解決這個問題,使不同VLAN間可以進行通信呢?接下來將會介紹三種方法實現VLAN間路由。
VLAN間路由實現方法之一:每個VLAN一個物理連接
在二層交換機上配置VLAN,每一個VLAN使用一條獨占的物理鏈路連接到路由器的一個接口上。
因為不同VLAN之間的主機是無法實現二層通信的,所以必須通過三層路由才能將報文從一個VLAN轉發到另外一個VLAN。
解決VLAN間通信問題的第一種方法是:
在路由器上為每個VLAN分配一個單獨的接口,並使用一條物理鏈路連接到二層交換機上。當VLAN間的主機需要通信時,數據會經由路由器進行三層路由,並被轉發到目的VLAN內的主機,這樣就可以實現VLAN之間的相互通信。
然而,隨着每個交換機上VLAN數量的增加,這樣做必然需要大量的路由器接口,而路由器的接口數量是極其有限的。並且,某些VLAN之間的主機可能不需要頻繁進行通信,如果這樣配置的話,會導致路由器的接口利用率很低。因此,實際應用中一般不會采用這種方案來解決VLAN間的通信問題。
本筆記不着重介紹這種極少使用的方法。
VLAN間路由實現方法之二:單臂路由
(1)基本原理
將交換機和路由器之間的鏈路配置為Trunk鏈路,並且在路由器上創建子接口以支持VLAN路由。
解決VLAN間通信問題的第二種方法是:
在交換機和路由器之間僅使用一條物理鏈路連接。在交換機上,把連接到路由器的端口配置成Trunk類型的端口,並允許相關VLAN的幀通過。在路由器上需要創建子接口,邏輯上把連接路由器的物理鏈路分成了多條。一個子接口代表了一條歸屬於某個VLAN的邏輯鏈路。
事實上單臂路由的實現方法與上面的第一種方法是相似的。區別在於第一種方法是用實際的多條物理鏈路對VLAN數據進行區分,通過路由轉發。而單臂路由是在此基礎上,將一條實際的物理鏈路割分為多條邏輯存在的鏈路(也就是創建端口的子接口),再對其VLAN數據進行區分。從而解決了第一種方法需要耗費大量端口資源的難題。
配置子接口時,需要注意以下幾點:
①必須為每個子接口分配一個IP地址。該IP地址與子接口所屬VLAN位於同一網段,且是作為該VLAN中主機的網關而存在。
②需要在子接口上配置802.1Q封裝,來剝掉和添加VLAN Tag,從而實現VLAN間互通。
③在子接口上執行命令arp broadcast enable使能子接口的ARP廣播功能。
本例中,主機A發送數據給主機B時,RTA會通過G0/0/1.1子接口收到此數據,然后查找路由表,將數據從G0/0/1.2子接口發送給主機B,這樣就實現了VLAN2和VLAN3之間的主機通信。
(2)配置步驟
拓撲如上圖所示。屬於VLAN 2的PC A和屬於VLAN 3的PC B連接在交換機SWA上。正常來說不同VLAN間的設備是相互不能通信的,所以加入路由設備RA,通過三層路由功能實現跨VLAN間的通信。
Step 1:創建VLAN 2和VLAN 3,並將PC A和PC B分別加入各自的VLAN中
G0/0/2加入VLAN 2
G0/0/3加入VLAN 3
Step 2:在交換機SWA上配置與路由器RA連接的端口G0/0/1為Trunk端口,並允許VLAN 2和VLAN 3通過。
通過配置我們可以知道,當攜帶有VLAN 2或VLAN 3的標簽的報文通過G0/0/1時,Trunk端口不會對其做任何處理而是直接進行轉發。
Step 3:在路由器上配置單臂路由
(1)創建子接口。將一個物理端口划分為兩個或多個的邏輯端口(即子接口),每個子接口分別處理不同VLAN發送來的數據包。
命令:interface interface-type interface-number.sub-interface number
用來創建子接口。其中sub-interface number代表物理接口內的邏輯接口通道。
Tips:就是將路由器上的接口G0/0/0在邏輯上分為G0/0/0.1和G0/0/0.2兩個子接口
(2)為子接口配置dot1Q封裝
命令:dot1q termination vid
用來配置子接口dot1q封裝的單層VLAN ID。缺省情況,子接口沒有配置dot1q封裝的單層VLAN ID。
本命令執行成功后,子接口對報文的處理如下:接收報文時,剝掉報文中攜帶的Tag后進行三層轉發。
轉發出去的報文是否帶Tag由出接口決定。發送報文時,將相應的VLAN信息添加到報文中再發送。
(3)使能子接口的ARP廣播功能
命令:arp broadcast enable
用來使能子接口的ARP廣播功能。
缺省情況下,子接口的ARP廣播功能是關閉的,所以子接口不能轉發廣播報文,在收到廣播報文后它們直接把該報文丟棄。為了允許子接口能轉發廣播報文,可以通過在子接口上執行此命令。
(4)為子接口配置IP地址
由於這個子接口是作為對VLAN三層路由所使用的網關而存在的,這個IP地址必須與對應的VLAN同處於一個網段。
作為對VLAN 2主機(192.168.2.1)的網關,將該子接口配置的IP為192.168.2.254/24。
同理,也要為VLAN 3配置對應的子接口,接口IP配置為與VLAN 3同網段的網關,配置的IP為192.168.3.254/24。
Step 4:配置驗證
PC A配置如下:
PC B配置如下:
配置完成單臂路由后,可以使用ping命令來驗證主機之間的連通性。如上所示,VLAN2中的主機A(IP地址:192.168.2.1)可以Ping通VLAN 3中的主機B(IP地址:192.168.3.1)。
最后我們查看路由表,可以發現192.168.2.0/24網段的路由下一跳為子接口G0/0/0.1,192.168.3.0/24網段的路由下一跳為G0/0/0.2。
綜上所述:我們就可以大概還原出數據包的轉發過程:
①首先數據包從主機PC A發出,交換機SWA從端口G0/0/2(配置為Access端口)接收,則為該數據包打上VLAN 2的標簽並轉發給端口G0/0/1(配置為Trunk端口)。
②根據Trunk端口的定義,由於其配置了允許攜帶VLAN 2標簽的報文通過,則G0/0/1會不剝離Tag的情況下對該數據包進行轉發給路由器RA。
③路由器接收到該數據包,根據數據包的VLAN 2標簽確定因為交給子接口G0/0/0.1進行處理,子接口將數據包的VLAN 2標簽去除。
④路由器查看數據包的目的地址為192.168.3.1,則查看路由表,發現應該交給子接口G0/0/0.2處理。
⑤子接口G0/0/0.2會為數據包打上VLAN 3的標簽,並轉發給SWA,最后從SWA的G0/0/3(配置為Access端口)轉發給主機B。
Tips:子接口為什么要開啟ARP廣播?
剛開始主機A(192.168.2.1)並不知道主機B(192.168.3.1)的MAC地址,則發送ARP Request廣播出去詢問,若子接口不開啟ARP廣播功能,則該ARP Request就不可能轉發到不同VLAN的主機B。
VLAN間路由實現方法之三:三層交換
解決VLAN間通信問題的第三種方法是:
在三層交換機上配置VLANIF接口來實現VLAN間路由。如果網絡上有多個VLAN,則需要給每個VLAN配置一個VLANIF接口,並給每個VLANIF接口配置一個IP地址。用戶設置的缺省網關就是三層交換機中VLANIF接口的IP地址。
拓撲圖如下所示:有一台三層交換機SWA和兩台主機PC A和PC B。其中PC A屬於VLAN 2,PC B屬於VLAN 3。他們的網關分別對應三層交換機SWA的兩個VLANIF接口的IP地址。
配置步驟如下所示:
Step 1:基礎配置,選擇一台三層交換機(只要可以進行三層路由的交換機均可。這里使用的是eNSP的s5700),配置相對應的所屬VLAN。
創建VLAN 2和VLAN 3。並將PC A和PC B連接交換機的端口加入到對應的VLAN中。
Step 2:創建VLANIF接口並配置IP地址
命令:interface vlanif vlan-id
用來創建VLANIF接口並進入到VLANIF接口視圖。vlan-id表示與VLANIF接口相關聯的VLAN編號。VLANIF接口的IP地址作為主機的網關IP地址,和主機的IP地址必須位於同一網段。
=
Step 3:配置PC A和PC B的IP地址
Step 4:配置驗證
配置三層交換后,可以用ping命令驗證主機之間的連通性。如上所示,VLAN2中的主機A(IP地址:192.168.2.2)可以Ping通VLAN 3中的主機B(IP地址:192.168.3.2)。
Tips:一些小知識
①配置命令dot1q termination vid <vlan-id> 的目的是什么?
dot1q termination vid vlan-id命令有兩個功能:
(1)第一個功能是刪除VLAN標簽。接口在收到VLAN報文后,剝掉報文中攜帶的Tag后進行三層轉發。
(2)第二個功能是添加VLAN標簽。接口在發送VLAN報文時,將相應的VLAN信息添加到報文中再發送。
②配置單臂路由時,交換機連接路由器的接口需要哪些配置?
必須把接口配置成Trunk口,並允許相應VLAN的數據通過。
至此,VLAN間路由的原理和配置基本介紹完畢。而更進一步的了解設計VLAN的高級特性,VXLAN等都會在以后有時間時再做筆記。敬請期待。