看三層交換機如何進行VLAN間路由通信
三層交換機還是比較常用的,于是我研究了一下三層交換機如何進行VLAN間路由通信,在這里拿出來和大家分享一下,希望對大家有用。現在,我們知道只要能提供VLAN間路由,就能夠使分屬不同VLAN的計算機互相通信。但是,如果使用路由器進行VLAN間路由的話,隨著VLAN之間流量的不斷增加,很可能導致路由器成為整個網絡的瓶頸。
交換機使用被稱為ASIC(Application Specified Integrated Circuit)的專用硬件芯片處理數據幀的交換操作,在很多機型上都能實現以纜線速度(Wired Speed)交換。而路由器,則基本上是基于軟件處理的。即使以纜線速度接收到數據包,也無法在不限速的條件下轉發出去,因此會成為速度瓶頸。就VLAN間路由而言,流量會集中到路由器和交換機互聯的匯聚鏈路部分,這一部分尤其特別容易成為速度瓶頸。并且從硬件上看,由于需要分別設置路由器和交換機,在一些空間狹小的環境里可能連設置的場所都成問題。
三層交換機(Layer 3 Switch)
為了解決上述問題,三層交換機應運而生。三層交換機,本質上就是“帶有路由功能的(二層)交換機”。路由屬于OSI參照模型中第三層網絡層的功能,因此帶有第三層路由功能的交換機才被稱為“三層交換機”。
在一臺本體內,分別設置了交換機模塊和路由器模塊;而內置的路由模塊與交換模塊相同,使用ASIC硬件處理路由。因此,與傳統的路由器相比,可以實現高速路由。并且,路由與交換模塊是匯聚鏈接的,由于是內部連接,可以確保相當大的帶寬。
使用三層交換機進行VLAN間路由(VLAN內通信)
在三層交換機內部數據究竟是怎樣傳播的呢?基本上,它和使用匯聚鏈路連接路由器與交換機時的情形相同。假設有如下圖所示的4臺計算機與三層交換機互聯。當使用路由器連接時,一般需要在LAN接口上設置對應各VLAN的子接口;而三層交換機則是在內部生成“VLAN接口(VLAN Interface)”。VLAN接口,是用于各VLAN收發數據的接口。(注:在Cisco的Catalyst系列交換機上,VLAN Interface被稱為SVI——Switched Virtual Interface)
為了與使用路由器進行VLAN間路由對比,讓我們同樣來考慮一下計算機A與計算機B之間通信時的情況。首先是目標地址為B的數據幀被發到交換機;通過檢索同一VLAN的MAC地址列表發現計算機B連在交換機的端口2上;因此將數據幀轉發給端口2。
使用三層交換機進行VLAN間路由(VLAN間通信)
接下來設想一下計算機A與計算機C間通信時的情形。針對目標IP地址,計算機A可以判斷出通信對象不屬于同一個網絡,因此向默認網關發送數據(Frame 1)。交換機通過檢索MAC地址列表后,經由內部匯聚鏈接,將數據幀轉發給路由模塊。在通過內部匯聚鏈路時,數據幀被附加了屬于紅色VLAN的VLAN識別信息(Frame 2)。
路由模塊在收到數據幀時,先由數據幀附加的VLAN識別信息分辨出它屬于紅色VLAN,據此判斷由紅色VLAN接口負責接收并進行路由處理。因為目標網絡192.168.2.0/24是直連路由器的網絡、且對應藍色VLAN;因此,接下來就會從藍色VLAN接口經由內部匯聚鏈路轉發回交換模塊。在通過匯聚鏈路時,這次數據幀被附加上屬于藍色VLAN的識別信息(Frame 3)。
交換機收到這個幀后,檢索藍色VLAN的MAC地址列表,確認需要將它轉發給端口3。由于端口3是通常的訪問鏈接,因此轉發前會先將VLAN識別信息除去(Frame 4)。最終,計算機C成功地收到交換機轉發來的數據幀。