三層交換機 原理解析
三層交換機
1.使用路由器進行VLAN間路由時的問題
現在,我們知道只要能提供VLAN間路由,就能夠使分屬不同VLAN的計算機互相通訊。但是,如果使用路由器進行VLAN間路由的話,隨著VLAN之間流量的不斷增加,很可能導致路由器成為整個網路的瓶頸。
交換機使用被稱為ASIC(ApplicationSpecified Integrated Circuit)的專用硬體晶片處理資料幀的交換操作,在很多機型上都能實現以纜線速度(Wired Speed)交換。而路由器,則基本上是基於軟體處理的。即使以纜線速度接收到資料包,也無法在不限速的條件下轉發出去,因此會成為速度瓶頸。就VLAN間路由而言,流量會集中到路由器和交換機互聯的匯聚鏈路部分,這一部分尤其特別容易成為速度瓶頸。並且從硬體上看,由於需要分別設定路由器和交換機,在一些空間狹小的環境裡可能連設定的場所都成問題。
2.三層交換機(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成功地收到交換機轉發來的資料幀。
整體的流程,與使用外部路由器時的情況十分相似——都需要經過“傳送方→交換模組→路由模組→交換模組→接收方”。
加速VLAN間通訊的手段
1.流(Flow)
根據到此為止的學習,我們已經知道VLAN間路由,必須經過外部的路由器或是三層交換機的內建路由模組。但是,有時並不是所有的資料都需要經過路由器(或路由模組)。
例如,使用FTP(File Transfer Protocol)傳輸容量為數MB以上的較大的檔案時,由於MTU的限制,IP協議會將資料分割成小塊後傳輸、並在接收方重新組合。這些被分割的資料,“傳送的目標”是完全相同的。傳送目標相同,也就意味著同樣的目標IP地址、目標埠號(注:特別強調一下,這裡指的是TCP/UDP埠)。自然,源IP地址、源埠號也應該相同。這樣一連串的資料流被稱為“流”(Flow)。
只要將流最初的資料正確地路由以後,後繼的資料理應也會被同樣地路由。
據此,後繼的資料不再需要路由器進行路由處理;通過省略反覆進行的路由操作,可以進一步提高VLAN間路由的速度。
2.加速VLAN間路由的機制
接下來,讓我們具體考慮一下該如何使用三層交換機進行高速VLAN間路由。
首先,整個流的第一塊資料,照常由交換機轉發→路由器路由→再次由交換機轉發到目標所連埠。這時,將第一塊資料路由的結果記錄到快取裡儲存下來。需要記錄的資訊有:
(1)目標IP地址
(2)源IP地址
(3)目標TCP/UDP埠號
(4)源TCP/UDP埠號
(5)接收埠號(交換機)
(6)轉發埠號(交換機)
(7)轉發目標MAC地址
等等。
同一個流的第二塊以後的資料到達交換機後,直接通過查詢先前儲存在快取中的資訊查出“轉發埠號”後就可以轉發給目標所連埠了。
這樣一來,就不需要再一次次經由內部路由模組中繼,而僅憑交換機內部的快取資訊就足以判斷應該轉發的埠。
這時,交換機會對資料幀進行由路由器中繼時相似的處理,例如改寫MAC地址、IP包頭中的TTL和Check Sum校驗碼資訊等。
通過在交換機上快取路由結果,實現了以纜線速度(Wired Speed)接收發送方傳輸來資料的資料、並且能夠全速路由、轉發給接收方。
需要注意的是,類似的加速VLAN間路由的手法多由各廠商獨有的技術所實現,並且該功能的稱謂也因廠商而異。例如,在Cisco的Catalyst系列交換機上,這種功能被稱為“多層交換”(Multi Layer Switching)。另外,除了三層交換機的內部路由模組,外部路由器中的某些機型也支援類似的高速VLAN間路由機制。
傳統型路由器存在的意義
1.路由器的必要性
三層交換機的價格,在問世之初非常昂貴,但是現在它們的價格已經下降了許多。目前國外一些廉價機型的售價,摺合成人民幣後僅為一萬多元,而且還在繼續下降中。
既然三層交換機能夠提供比傳統型路由器更為高速的路由處理,那麼網路中還有使用路由器的必要嗎?
答案是:“是”。
使用路由器的必要性,主要表現在以下幾個方面:
(1)用於與WAN連線
三層交換機終究是“交換機”。也就是說,絕大多數機型只配有LAN(乙太網)介面。在少數高階交換機上也有用於連線WAN的序列介面或是ATM介面,但在大多數情況下,連線WAN還是需要用到路由器。
(2)保證網路安全
在三層交換機上,通過資料包過濾也能確保一定程度的網路安全。但是使用路由器所提供的各種網路安全功能,使用者可以構建更為安全可靠的網路。
路由器提供的網路安全功能中,除了最基本的資料包過濾功能外,還能基於IPSec構建VPN(VirtualPrivate Network)、利用RADIUS進行使用者認證等等。
(3)支援除TCP/IP以外的異構網路架構
儘管TCP/IP已經成為當前網路協議架構的主流,但還有不少網路利用Novell Netware下的IPX/SPX或Macintosh下的AppleTalk等網路協議。三層交換機中,除了部分高階機型外基本上還只支援TCP/IP。因此,在需要使用除TCP/IP之外其他網路協議的環境下,路由器還是必不可少的。
注:在少數高階交換機上,也能支援上述路由器的功能。例如Cisco的Catalyst 6500系列,就可以選擇與WAN連線的介面模組;還有可選的基於IPSec實現VPN的模組;並且也能支援TCP/IP以外的其他網路協議。
2.路由器和交換機配合構建LAN的例項
下面讓我們來看一個路由器和交換機搭配構建LAN的例項。
利用在各樓層配置的二層交換機定義VLAN,連線TCP/IP客戶計算機。各樓層間的VLAN間通訊,利用三層交換機的高速路由加以實現。如果網路環境要求高可靠性,還可以考慮冗餘配置三層交換機。
與WAN的連線,則通過帶有各種網路介面的路由器進行。並且,通過路由器的資料包過濾和VPN等功能實現網路安全。此外,使用路由器還能支援Novell Netware等TCP/IP之外的網路。
只有在充分掌握了二層、三層交換機以及傳統路由器的基礎上,才能做到物競其用,構築出高效率、高性價比的網路。
使用VLAN設計區域網
1.使用VLAN設計區域網的特點
通過使用VLAN構建區域網,使用者能夠不受物理鏈路的限制而自由地分割廣播域。
另外,通過先前提到的路由器與三層交換機提供的VLAN間路由,能夠適應靈活多變的網路構成。
但是,由於利用VLAN容易導致網路構成複雜化,因此也會造成整個網路的組成難以把握。
可以這樣說,在利用VLAN時,除了有“網路構成靈活多變”這個優點外,還搭配著“網路構成複雜化”這個缺點。
下面,就讓我們來看看具體的例項。
2.不使用VLAN的區域網中網路構成的改變
假設有如圖所示的由1臺路由器、2臺交換機構成的“不使用VLAN構建”的網路。
圖中的路由器,帶有2個LAN介面。左側的網路是192.168.1.0/24,右側是192.168.2.0/24。
現在如果想將192.168.1.0/24這個網路上的計算機A轉移到192.168.2.0/24上去,就需要改變物理連線、將A接到右側的交換機上。
並且,當需要新增一個地址為192.168.3.0/24的網路時,還要在路由器上再佔用一個LAN介面並添置一臺交換機。而由於這臺路由器上只帶了2個LAN介面,因此為了新增網路還必須將路由器升級為帶有3個以上LAN介面的產品。
3.使用VLAN的區域網中網路構成的改變
接下來再假設有一個由1臺路由器、2臺交換機構成的“使用VLAN”的區域網。交換機與交換機、交換機與路由器之間均為匯聚鏈路;並且假設192.168.1.0/24對應紅色VLAN、192.168.2.0/24對應藍色VLAN。
需要將連線在交換機1上192.168.1.0/24這個網段的計算機A轉屬192.168.2.0/24時,無需更改物理佈線。只要在交換機上生成藍色VLAN,然後將計算機A所連的埠1加入到藍色VLAN中去,使它成為訪問連結即可。
然後,根據需要設定計算機A的IP地址、預設閘道器等資訊就可以了。如果IP地址相關的設定是由DHCP獲取的,那麼在客戶機方面無需進行任何設定修改,就可以在不同網段間移動。
利用VLAN後,我們可以在免於改動任何物理佈線的前提下,自由進行網路的邏輯設計。如果所處的工作環境恰恰需要經常改變網路佈局,那麼利用VLAN的優勢就非常明顯了。
並且,當需要新增一個地址為192.168.3.0/24的網段時,也只需要在交換機上新建一個對應192.168.3.0/24的VLAN,並將所需的埠加入它的訪問鏈路就可以了。
如果網路環境中還需要利用外部路由器,則只要在路由器的匯聚埠上新增一個子介面的設定就可以完成全部操作,而不需要消耗更多的物理介面(LAN介面)。要使用的是三層交換機內部的路由模組,則只需要新設一個VLAN介面即可。
網路環境的成長,往往是難以預測的,很可能經常會出現需要分割現有網路或是增加新網路的情況。而充分活用VLAN後,就可以輕易地解決這些問題。
4.利用VLAN而導致的網路結構複雜化
雖然利用VLAN可以靈活地構建網路,但是同時,它也帶來了網路結構複雜化的問題。
特別是由於資料流縱橫交錯,一旦發生故障時,準確定位並排除故障會比較困難。
為了便於理解資料流向的複雜化,假設有下圖所示的網路。計算機A向計算機C傳送資料時,資料流的整體走向如下:
計算機A→交換機1→路由器→交換機1→交換機2→計算機C
首先計算機A向交換機1送出資料(①),其後資料被轉發給路由器(②)進行VLAN間路由。路由後的資料,再從匯聚鏈路返回交換機1(③)。由於通訊目標計算機C並不直連在交換機1上,因此還需要經過匯聚鏈路轉發到交換機2(④)。在交換機2上,資料最終被轉發到C所連的埠2上,這才完成整個流程(⑤)。
在這個例子中,僅由2臺交換機構成網路,其資料流已經如此複雜,如果構建橫跨多臺交換機的VLAN的話,每個資料流的流向顯然會更加難以把握。
5. 網路的邏輯結構與物理結構
為了對應日漸複雜化的資料流,管理員需要從“邏輯結構”與“物理結構”兩方面入手,把握好網路的現狀。
物理結構,指的是從物理層和資料鏈路層觀察到的網路的現狀,表示了網路的物理佈線形態和VLAN的設定等等。
而邏輯結構,則表示從網路層以上的層面觀察到的網路結構。下面我們就試著以路由器為中心分析一個IP網路的邏輯結構。
還是先前的那個例子,描繪了佈線形態和VLAN設定的“物理結構”如下圖所示。
分析這個物理結構並轉換成以路由器為中心的邏輯結構後,會得到如下的邏輯結構圖。當我們需要進行路由或是資料包過濾的設定時,都必須在邏輯結構的基礎上進行。
把握這兩種網路結構圖的區別是十分重要的,特別是在VLAN和三層交換機大行其道的現代企業級網路當中。