隨著當今網絡業務流量呈幾何級數爆炸式增長,并且業務流模式改變為更多的業務流跨越子網邊界,穿越路由器的業務流也大大增加,傳統路由器低速、復雜所造成的網絡瓶頸凸現出來。第三層交換技術的出現,很好地解決了局域網中業務流跨網段引起的低轉發速率、高延時等網絡瓶頸問題。第三層交換設備的應用領域也從最初的骨干層、匯聚層一直滲透到邊緣的接入層。第三層交換設備在網絡互聯中的應用日益普及。然而,人們對第三層交換技術及其設備的理解卻存在較大差異。一些專業雜志和科普文摘對第三層交換技術原理的不準確介紹容易引起誤導。第三層交換作為新一代局域網路由和交換技術,其產品在體系結構、所實現的功能和性能上都有別于二層以太網交換機和傳統路由器。本文分析第三層交換技術的基本特征、分類及實現原理,希望能對人們進一步理解和使用第三層交換設備有所裨益。
1 第三層交換技術基本特征
第三層交換技術也稱為IP交換技術。它將第二層交換機和第三層路由器兩者的優勢結合成為一個有機的整體,是一種利用第三層協議中的信息來加強第二層交換功能的機制,是新一代局域網路由和交換技術。第三層交換技術具有以當前系統1/10的代價獲得傳輸性能于過去10倍的能力。既然第三層交換機能夠代替路由器執行傳統路由器的大多數功能,它應該具有路由的基本特征。我們知道,路由的核心功能主要包括數據報文轉發和路由處理兩方面。數據報文轉發是路由器和第三層交換機最基本的功能,用來在子網間傳送數據報文;路由處理子功能包括創建和維護路由表,完成這一功能需要啟用路由協議如或OSPF來發現和建立網絡拓撲結構視圖,形成路由表。路由處理一旦完成,將數據報文發送至目的地就是報文轉發子功能的任務了。報文轉發子功能的工作包括檢查IP報文頭、IP數據包的分片和重組、修改存活時間(TTL)參數、重新計算IP頭校驗和、MAC地址解析、IP包的數據鏈路封裝以及IP包的差錯與控制處理(ICMP)等等。第三層交換也包括一系列特別服務功能,如數據包的格式轉換,信息流優先級別劃分,用戶身份驗證及報文過濾等安全服務,IP地址管理,局域網協議和廣域網協議之間的轉換。當第三層交換機僅用于局域網中子網間或VLAN間轉發業務流時可以不執行路由處理,只作第三層業務流轉發,這種情況下設備可以不需要路由功能。
由于傳統路由器是一種軟件驅動型設備,所有的數據包交換、路由和特殊服務功能,包括處理多種底層技術和多種第三層協議幾乎都由軟件來實現,并可通過軟件升級增強設備功能,因而具有良好的擴展性和靈活性。但它也具有配置復雜、價格高、相對較低的吞吐量和相對較高的吞吐量變化等缺點。第三層交換技術在很大程度上彌補了傳統路由器這些缺點。在設計第三層交換產品時通常使用下面一些方法:
·削減處理的協議數,常常只對IP;
·只完成交換和路由功能,限制特殊服務;
·使用專用集成電路(ASIC)構造更多功能,而不是采用RSIC處理器之上的軟件運行這些功能。
第三層交換產品采用結構化、模塊化的設計方法,體系結構具有很好的層次感。軟件模塊和硬件模塊分工明確、配合協調,信息可為整個設備集中保存、完全分布或高速緩存。例如,IP報文的第三層目的地址在幀中的位置是確定的,地址位就可被硬件提取,并由硬件完成路由計算或地址查找;另一方面,路由表構造和維護則可繼續由RSIC芯片中的軟件完成。總之,第三層交換技術及產品的實現歸功于現代芯片技術特別是ASIC技術的迅速發展。
2 第三層交換技術分類、原理及實現方法
目前主要存在兩類第三層交換技術:第一類是報文到報文交換,每一個報文都要經歷第三層處理(即至少是路由處理),并且數據流轉發是基于第三層地址的;第二類是流交換,它不在第三層處理所有報文,而只分析流中的第一個報文,完成路由處理,并基于第三層地址轉發該報文,流中的后續報文使用一種或多種捷徑技術進行處理,此類技術的設計目的是方便線速路由。理解第三層交換技術的關鍵首先需要區分這兩類報文的不同轉發方式。
報文到報文處理方法的一個顯著特征是其能夠適應路由的拓撲變化。通過運行標準協議并維護路由表,報文到報文交換設備可動態地重新路由報文,繞過網絡故障點和擁塞點而無需等待高層的協議檢測報文丟失。流交換方法沒有這些特征,因為后續報文走捷徑而無需第三層處理,這樣,它就不能識別標準協議對路由表的改變。因此,流交換方法可能需要另外的協議取得拓撲變化或擁塞信息,以便到達交換系統正確的地方。 2.1 報文到報文交換技術原理及實現方法
報文到報文交換遵循這樣一個數據流過程:報文進入系統中OSI參考模型的第一層,即物理接口,然后在第二層接受目的MAC檢查,若在第二層能交換則進行二層交換,否則進入到第三層,即網絡層。在第三層,報文要經過路徑確定、地址解析及某些特殊服務。處理完畢后報文已更新,確定合適的輸出端口后,報文通過第一層傳送到物理介質上。傳統路由器是一種典型的符合第三層報文到報文交換技術的設備,它的完全基于軟件的工作機制所產生的固有缺陷已被現代基于硬件的第三層交換設備所克服。
目前各個廠商所提供的第三層交換設備在體系結構上幾乎具有相同的硬件結構。
中央硅交換陣列通過CPU接口總線連接CPU模塊,通過I/O接口總線連接I/O接口模塊,是設備各端口流量匯聚和交換的集中點,由它提供設備各進出端口的并行交換路徑,所有跨I/O接口模塊的數據流都要通過硅交換陣列進行轉發。每個I/O接口模塊包含一個或多個轉發引擎,其上的ASIC完成所有的報文*作,包括路由查找、報文分類、第三層轉發和業務流決策,這一將報文轉發分布于每一個I/O端口的ASIC的方法是第三層交換設備能夠線速路由的關鍵部分。CPU模塊主要完成設備的背景*作,如運行與路由處理相關的各種路由協議、創建和維護路由表、系統配置等,并把路由表信息導入每一個I/O接口模塊分布式轉發引擎的ASIC中。這樣,各接口模塊的分布式轉發引擎ASIC直接根據路由表做出報文的轉發策略,無需像傳統路由器那樣所有報文必須經過CPU的處理。
流交換技術原理及實現方法
在流交換中,第一個報文被分析以確定其是否標識一個“流”或者一組具有相同源地址或目的地址的報文。流交換節省了檢查每一個報文要花費的處理時間。同一流中的后續報文被交換到基于第二層的目的地址。流交換需要兩個技巧,第一個技巧是要識別第一個報文的哪一個特征標識一個流,這個流可以使其余報文走捷徑,即第二層路徑。第二個技巧是,一旦建立穿過網絡的路徑,就讓流足夠長以便利用捷徑的優點。怎樣檢測流、識別屬于特定流的報文以及建立通過網絡的流通路隨實現機制的變化而不同。目前出現了多種流交換技術,如3Com公司的快速IP、由Cisco提交給IETF的多協議標記交換(MPLS)、ATM論壇的多協議(MPOA)以及Ipsilon公司的IP交換。我們可將其劃分成兩個主要類型:端系統驅動流交換和網絡中心式流交換。限于篇幅,現只簡單介紹3Com公司的快速IP工作原理。
3Com公司的快速IP屬于端系統驅動流交換技術,其工作原理基于NHRP標準(草案)。源端主機發送一個快速IP連接請求,該請求就像數據報文一樣被路由穿過網絡,如果目的端主機也運行快速IP,則它發送一個包含其MAC地址的NHRP應答報文給源端主機,如果源端主機和目的端主機存在二層交換通路,當NHRP應答報文到達源端主機時將在經過的交換機中建立目的端主機MAC地址和端口的映射表,隨后源端主機可根據目的端主機MAC地址直接通過交換機二層通路交換數據報文,不再經過路由器;如果兩端主機之間沒有交換路徑而無NHRP應答返回,則報文如前進行路由。
快速IP軟件主要運行在源、目的端主機的網絡接口卡(NIC)的驅動程序之上。它與主機的IP協議棧和NIC驅動程序接口,以協調NHRP交換。總之,快速IP試圖改善在交換網絡上完成路由的轉發性能,但它沒有潛在的靈活性,也不能通過報文過濾提供任何安全保障,而且需要在參與快速IP交換的主機上安裝NHRP協議軟件。實際上增加了設備的維護工作量。
多種流交換技術最初是在路由選擇比較慢和代價比較大的前提下開發的。報文到報文交換產品已經證明了情況不再如此。與報文到報文交換產品相比,流交換方法顯得更復雜和難以理解。在動態網絡環境下,成功地標識、建立、管理和撤消大量的流需要哪些措施,仍然是一個有待研究的問題。目前應用在局域網互聯的第三層交換設備多是基于報文到報文交換技術。流交換更可能在廣域網中找到其位置。
3 對第三層交換機“路由一次,處處交換”或“基于目的MAC地址的第二層交換”這一觀點提出質疑
當前,很多文章對三層交換機的工作原理進行過介紹,在交換機對三層報文轉發機制上基本趨向一致觀點,那就是“路由一次,處處交換”或“基于目的MAC地址的第二層交換”。
“第三層交換的原理是,假設兩個使用IP的主機A、B通過第三層交換機進行通信。發送站點A在開始發送時,把自己的IP地址與B站的IP地址比較,判斷B站是否與自己在同一子網內。若目的站B與發送站A在同一子網內,則進行二層的轉發。若兩個站點不在同一子網內,如發送站A要與目的站B通信,發送站A要向“缺省網關”發出ARP請求(地址解析)封包,而“缺省網關”的IP地址其實是三層交換機的三層交換模塊。當發送站A對“缺省網關”的IP地址廣播出一個ARP請求時,如果三層交換模塊在以前的通信過程中已經知道B站的MAC地址,則向發送站A回復B的MAC地址。否則三層交換模塊根據路由信息向B站廣播一個ARP請求,B站得到此ARP請求后向三層交換模塊回復其MAC地址,三層交換模塊保存此地址并回復給發送站A,同時將B站的MAC地址發送到二層交換引擎的MAC地址表中。從這以后,A向B發送的數據包便全部交給二層交換處理,信息得以高速交換。由于僅僅在路由過程中才需要三層處理,絕大部分數據都通過二層交換轉發,因此第三層交換機的速度很快,接近第二層交換機的速度,同時比相同路由器的價格低很多”。
分析上面這段文章,筆者認為這種觀點違背了主機與缺省網關通信的基本原理。文章提到“當發送站A對“缺省網關”的IP地址廣播出一個ARP請求時,如果三層交換模塊在以前的通信過程中已經知道B站的MAC地址,則向發送站A回復B的MAC地址。否則三層交換模塊根據路由信息向B站廣播一個ARP請求”。實際上,A站向三層交換模塊發送網關IP地址的ARP請求時,ARP請求報文并不包含B站IP地址,三層交換模塊只會把自己IP地址對應的MAC地址回復給A站,根本不會向發送站A回復B的MAC地址。這是錯誤之一。
退一步說,即便三層交換模塊回復B站的MAC地址,由于B站和A站不在同一子網,A站也不會把B站的目的MAC地址封裝在A站要發送的以太網幀中。這是錯誤之二。
再者,三層交換模塊接收A站發送到B站的以太網幀,三層交換模塊從以太網幀的IP包中提取B站的IP地址,通過查找路由表,尋找到B站的下一跳,若B站與第三層交換機某一接口在同一網段,第三層交換機向B站IP地址廣播ARP請求,從B站的ARP應答中可得知B站的MAC地址;若B站與三層交換機某一接口不在同一網段,中間相隔了好幾跳,三層交換模塊只會向下一跳IP地址廣播ARP請求,下一跳ARP應答的應是下一跳IP地址的MAC地址,三層交換模塊無從得知B站的MAC地址。這是錯誤之三。
要達到“路由一次,處處交換”或“基于目的MAC地址的第二層交換”的目的,必須改變現存主機與缺省網關的通信機制或第三層交換機的路由規則,換句話說,以一種新的主機與缺省網關的通信機制替代現有的通信機制。就像前面描述的3Com公司的快速IP技術一樣。實際網絡中主機和第三層交換機都工作得很好,無需主機做任何改變,也無需改變原有的網絡設施。在第三層交換機替代傳統路由器的場合,子網間的流量轉發性能卻得到了空前的提高。這并不是改變了交換機對三層報文轉發機制的結果,即“路由一次,處處交換”或“基于目的MAC地址的第二層交換”的結果,而是第三層交換機基于硬件快速轉發三層報文的結果。