究竟是交換器?還是路由器?

大概約五年多前,「Layer 3 Switch」一詞大量出現在各媒體的版面及專題報導,然後「Route Once,Switch Many」或「Cut-Through Routing」之類的口號殺聲震天,彷彿傳統的路由器(路由器)就要被這些所謂的「第三層交換器」所取代了。事後證明:好像什麼事情都沒有發生過,路由器也沒有因此消失在市場上。更重要的是,第三層交換器並沒有動搖某些大廠的領導地位。現在,我們就來給所謂的第三層交換器一個明確的定義,我們也釐清第三層交換器和IP Switch之間的差別,並解釋第四層交換器的定義及功能。什麼是第三層交換器?

摩爾定律預言晶片的電晶體數目以18個月增加一倍的速度持續成長,更多的電晶體數目也意味著更強大的晶片功能。所以,在過去倚賴處理器執行軟體去執行的路由計算,或是IP Table Lookup等,也有可能透過ASIC去實作以得到更好的效能及更低的成本。簡而言之,第三層交換器本質上是一種透過ASIC技術的高速路由器,和路由器運作方式原理大同小異,但是在過去靠軟體製作、由處理器執行的功能,改用硬體ASIC去處理。

其實,所謂「Switch」一詞本身就隱含著「透過硬體實作」的含意。最好的例子,莫過於早期倚賴處理器執行軟體的橋接器(Bridge),後來Switch一詞由Kalpana公司所發明,代表著「硬體實作的多埠橋接器」(Multi-port Bridge)。所以,L3甚至更高層「Switch」的出現,可以說是自然的發展-姑且不論這些Switch全部的功能,究竟都是硬體實作,還是透過處理器去執行軟體。

另外一個關鍵性的因素,在於IP以及Ethernet已經分別成為網路通訊協定以及區域網路技術的主流,單純針對這兩者特化的路由器也成為一個趨勢。當然,如此一來,第三層交換器自然在多樣化的通訊協定支援上不如傳統的路由器,也以Ethernet為主要的實體層規格。由於不少路由協定架構及運作原理都相當的複雜,很難透過硬體去實作,所以第三層交換器所提供的路由協定支援都會受限。更重要的是,越複雜的路由通訊協定需要更大的改版彈性(例如修正Bug,很多動態路由協定都是經過無數次的改版才逐漸成熟),這些都比較適合透過軟體實作。

那麼,第三層交換器的主要用途究竟為何?首先,就是必須使用IP等OSI第三層通訊協定的環境,但卻又不需要執行複雜的路由協定,例如進行橫跨不同實體區網或VLAN的IP路由,這個單純倚靠L2 VLAN絕對做不到。其次,由於第二層交換器並無法有效的阻絕廣播網域(Broadcast Domain)、如ARP/RARP及Win95/98中大量使用的NetBEUI協定均大量使用廣播封包,因此,就算第二層交換器以VLAN的方式將經常要通訊的群組構成廣播網域(Broadcast Domain)來試圖降低廣播封包對網路層的影響,但仍無法完全避免廣播風暴問題,因為同一個VLAN內仍會產生廣播風暴。加上現今網路對內及對外的流量已不是80/20規則,而是逐漸轉為20/80規則,且考量Client/Server 及Distributor Server之運用,因此單靠第二層或傳統路由器便無法符合對效能及安全之要求。第三層交換器不等於IP Switch

第三層交換器和IP Switch之間的差別非常容易引起觀念上的混淆,尤其在這兩者幾乎在同一時間出現,導致很多媒體將兩者搞混在一起。簡而言之,前者僅為透過硬體實作的高速低價(且功能受限)路由器,後者則是改善IP路由效能的Cut-Through路由方式。傳統的路由方式,路由器必須針對每一個封包個別查詢路由表(Routing Table),相當的沒有效率。我們可以想出一種方法,那就是IP flow僅需在第一個封包route的時候查詢一次(route once),之後此flow的封包只需要forward到先前的port即可(switch many)。值得注意的是,這和ATM的Label Switching觀念是相同的。

然而,這需要制定新的通訊協定。這幾年來,IP Switch分為兩種設計方式,分別是Flow-driven(Data-driven)和Topology-driven(Control-driven)。前者最具代表性的是Ipsilon IP Switching,後者則是Cisco Tag Switching以及後來成為業界標準的MPLS。

Flow-driven針對每個IP session的資料流來做switching,利用偵測資料流並建起ATM Virtual Circuit的方法,將資料流導入ATM中,以加快資料的吞吐量。但是,這必須透過新的通訊協定(例如Ipsilon的IFMP/GSMP)向上游switch通知要將某一IP flow導入使用某一VCI,才能在此switch以switching方式通過。Topology-driven是針對所有往某個目的位址的全部資料流做switching,將每一個封包加上標籤(Tag),以利每一站switch,針對所有往同一目的位址的所有flow進行switching。

後來由於Flow-driven架構因實作不易,導致Topology-driven架構成為主流,Cisco的Tagging也成為MPLS的技術基礎。至於Flow-driven架構的創始者Ipsilon,後來被Nokia併購後即消聲匿跡,其註冊專利的IP Switching一詞也在教科書上成為供後人憑弔的歷史陳跡。那麼,什麼是第四層交換器?

在TCP/IP中的傳輸層(Transport Layer)有許多眾所皆知的service及埠號(Port),例如HTTP是80、telnet是23、FTP是20/21、SMTP是25等等。換言之,有這些埠號配上IP位址,就可以找到某臺機器上執行的某個程式。顧名思義,第四層交換器就是可以用ASIC硬體分析封包至傳輸層的TCP或UDP埠號。所以相較於第二層和第三層交換器,第四層交換器更可以做到針對每個flow的switching,保障關鍵性、即時性應用程式的服務品質。另外,這也可以針對不同的應用程式設定不同的頻寬優先權,例如為了避免影響網路效能,將常見的P2P程式所使用的埠號降低頻寬優先權。

由於可以針對每個flow做處理,便可以發展一些特殊功能,虛擬伺服器(Virtual Server)便是其中之一。多個IP位址不同、功能卻相同的伺服器連接到交換器後,藉由一個共用的虛擬伺服器IP位址,第四層交換器會按照各伺服器的流量負載,決定讓不同的flow連線到不同的伺服器。其他特殊功能如當防火牆、更好的網管,甚至還有廠商推出用硬體來偵測網頁內的資料型式以區別不同網頁的傳輸品質。

所以,支援第四層以及更高層的交換器,可以提供網路管理者更強、更細節的政策性(Policy)管理。當初發明第四層交換器一詞的Cabletron,就喊出「L2 Switching,L3 Routing,L4 Policy」的口號。不過,這些複雜的第四層功能,是否真的完全透過ASIC去實作,就只有廠商自己心知肚明了。諸多的名詞,僅為商業手段的延伸

第三層和第四層交換器只是基於行銷手段而生的商業名詞,且透過ASIC及硬體技術改善路由器效能的方式早已行之有年,並非什麼新奇的技術突破,第三層/第四層交換器和路由器之間早已不再逕渭分明了,眾多新型Switch和路由器都同時整合ASIC和處理器執行軟體的設計,以兼顧效能和日後升級的彈性。事實上,高階路由器和第三層/第四層交換器的內部結構已經非常相似,採取殊途同歸的設計方向。

第三層交換器一詞出現的背景,說穿了,在於很多廠商無法挑戰Cisco在路由器市場上的優勢地位,尤其是高階的路由器。既然如此,不如另闢戰場,創造一個新的「產品」且高喊「路由器已死」來和Cisco競爭。不過,後來Cisco自己也推出了眾多的第三層交換器和「Routing Switch」,然後Cisco在高階市場依然保有壓倒性的優勢。

這種情況,就很像多年來一直很多廠商高喊「大型主機已死」,但是幾十年來IBM依然靠大型主機賺進大把鈔票,而且大型主機的發展歷經40年依然毫無疲態。套句IDC分析師的評論:這塊墓碑還頗值錢,價值達數十億美金。由於「Switch」堪稱90年代網路產業界最好用的宣傳名詞,目前我們也看到不少「第七層」產品出現在市場上。但是,就算能作到如此高層的功能,效能恐怕也是一堆問號。

更重要的是,企業在採購的時候,千萬不能被眾多的商業行銷名詞所迷惑,必須搞清楚本身的環境和需求,以免花大錢買到一堆用不到的功能,或是買到剛好的功能卻又無法滿足效能上的需求。文⊙劉人豪

熱門新聞

Advertisement