Jul 18, 2007

不同Switching Mode的比較

Switching是一種將Layer 2對應至Layer 3位址並且轉送至目的地介面的一種程序。

Switching Mode有很多種,每種模式都有其特別的對應方式,了解它們的不同對我們合理的應用上有著非常重要的意義。另外還有一些QoS和Security技巧都需要特定的Switching Mode。

我們來看看以下幾種Switching Mode:

1、Process Switching

這是一種最基本的交換模式,在這種模式下,某資料流中的第一個封包將會被放置於系統緩衝區(system buffer)。其目的地位址將會被拿到路由表中去查詢比對,路由器的中央處理器(CPU)同時將進行CRC check,檢查封包是否正確。然後Frame中的Layer 2 MAC Address將會被重寫,被置換成next-hop interface的MAC Address。這樣的程序將會持續進行,針對此資料流的第二個、第三個封包…進行相同的運作,包括查詢路由表、重寫MAC Address、CRC check等。

這種方式無疑是延遲時間最長的,因為它要使用到系統緩衝(system buffer)以及中央處理器(CPU)去處理每個接收到的封包。但是我們仍然有機會使用這種交換方式,比如在進行以封包為處理單位的負載平衡時(ip load-sharing per-packet)時,或是debug ip packet時。

在預設情況之下,Cisco路由器會啟用Fast Switching或是Optimum Switching又或是CEF Switching,而不是Process Switching,所以我們只能透過以下指令:no ip route-cache來關閉Fast Switching,另一方面來說,這個指令則是啟動了Process Switching。



2、Fast Switching

Fast Switching優於Process Switching,它採用了路由快取(route cache)功能,來儲存關於某資料流的特定資訊,包括像是目的地MAC Address、目的地interface等內容。這時我們只需要對某個資料流中的第一個封包進行Process Switching,並把結果訊息存入cache中,所有後續的封包,可以不必再打斷系統中央處理器去執行查詢等動作,直接從cache中擷取目的地interface,目的地MAC Address等,這樣大大加速了封包轉送的速度。

Fast Switching在某些文件上可能被稱之為Route-cache Switching正是這個原因。
Cisco 1600、1700、2500、2600系列的路由器Ethernet、FastEthernet、Serial interface預設採用的就是Fast Switching。

我們可以用ip route-cache指令,在interface上啟用Fast Switching;我們可以用show ip cache來檢查Fast Switching的相關訊息。



3、Optimum and Distributed Switching

這兩種Switching Mode,從原理上來說跟Fast Switching極為相像,比如說Optimum Switching其實採用了一種優化交換快取(Optimumed switching cache),它的速度要比平常的cache還要快速。

Distributed Switching Mode需要使用Versatile Interface Card這種硬體模組介面,又稱之為VIP card。它會自己保留一份route cache,這樣在查詢時就不必要等待使用共享的系統緩衝(system buffer),無論相對於Fast Switching或是Optimum Switching來說,Distributed Switching還是比較快的。

這兩種模式一般只在思科高階設備上有所應用,比如說Cisco 7200/7500系列路由或是GSR 12000系統路由器。

相關指令:
ip route-cache distributed
ip route-cache optimum



4、Netflow Switching

這種模式值得各位思考是否要應用,它完全以其他Switching Mode為基礎,重點在於針對流經的封包進行計費、監控、網路管理。但是不得不提的是,這種模式因為要儲存相關的訊息,根據統計結果,大約65536份資料流會耗用4MB左右的系統緩衝。

相關指令:
ip route-cache flow
show ip cache flow
ip flow-export(將NETFLOW統計資料轉送到指定設備伺服器)



5、Cisco Express Forwarding

Cisco Express Forwarding(CEF)是最有效率的一種Layer 3協定,很多人容易對CEF產生誤解,所以我們仍然要說明它的來源。

CEF採用了以硬體為基礎的platform,但是它不僅僅是將數據都存入系統緩衝,而是將整份路由表、拓樸表中,以及所有Next-hop Address、MAC Address全部進行"預存"的動作,只要路由表、拓樸表中存在的項目,無論是否有封包請求轉送其目的地位址,都會提前預先讀取,預先放置於緩衝區。這樣,當有新的封包請求轉送時,就不需要中央處理器(CPU)去查詢目的地interface、目的地MAC Address等訊息,而是直接從緩衝區中讀取,進而使得轉送速度得以大大地提昇。

相關指令:
ip route-cache cef