發展前景
在今天的網路建設中,新出現的三層交換機已成為我們的首選。它以其高效的性能、優良的性能價格比得到用戶的認可和讚許。目前,三層交換機在企業網/校園網建設、智慧型社區接入等等許多場合中得到了大量的套用,市場的需求和技術的更新推動這種套用向縱深發展。傳統交換技術
傳統的區域網路交換機是一種二層網路設備,它在操作過程中不斷收集信息去建立起它本身的一個MAC地址表。這個表相當簡單,基本上說明了某個MAC 地址是在哪個連線埠上被發現的。這樣當交換機收到一個乙太網包時,它便會查看一下該乙太網包的目的MAC地址,核對一下自己的地址表以確認該從哪個連線埠把包發出去。但當交換機收到一個不認識的包時,也就是說如果目的MAC地址不在MAC地址表中,交換機便會把該包“擴散”出去,即從所有連線埠發出去,就如同交換機收到一個廣播包一樣,這就暴露出傳統區域網路交換機的弱點:不能有效的解決廣播、異種網路互連、安全性控制等問題。因此,產生了交換機上的VLAN(虛擬區域網路)技術。第三層交換技術
三層交換(也稱多層交換技術,或IP交換技術)是相對於傳統交換概念而提出的。眾所周知,傳統的交換技術是在OSI網路標準模型中的第二層――數據鏈路層進行操作的,而三層交換技術在網路模型中的第三層實現了分組的高速轉發。簡單的說,三層交換技術就是“二層交換技術 + 三層轉發”。三層交換技術的出現,解決了區域網路中網段劃分之後網段中的子網必須依賴路由器進行管理的局面,解決了傳統路由器低速、複雜所造成的網路瓶頸問題。一個具有三層交換功能的設備,是一個帶有第三層路由功能的第二層交換機,但它是兩者的有機結合,而不是簡單地把路由器設備的硬體及軟體疊加在區域網路交換機上。我們可以通過以下例子說明三層交換機是如何工作的。
假設兩個使用IP協定的站點A、B通過第三層交換機進行通信,傳送站點A在開始傳送時,會先拿自己的IP位址與B站的IP位址進行比較,判斷B站是否與自己在同一子網內。若目的站B與傳送站A在同一子網內,則進行二層的轉發。具體步驟如下:為了得到站點B的 MAC地址,站點A首先發一個ARP廣播報文,請求站點B的MAC地址。該ARP請求報文進入交換機後,首先進行源MAC地址學習,晶片自動把站點A的MAC地址以及進入交換機的連線埠號等信息填入到晶片的MAC地址表中,然後在MAC地址表中進行目的地址查找。由於此時是一個廣播報文,交換機則會把這個廣播報文從進入交換機連線埠所屬的VLAN中進行廣播。B站點收到這個ARP請求報文之後,會立刻傳送一個ARP回復報文,這個報文是一個單播報文,目的地址為站點A的MAC地址。該包進入交換機後,同樣,首先進行源MAC地址學習,然後進行目的地址查找,由於此時MAC地址表中已經存在了A站點MAC地址的匹配條目,所以交換機直接把此報文從相應的連線埠中轉發出去。通過以上一次ARP過程,交換晶片就把站點A和B的信息保存在其MAC地址表中。以後A、B之間進行通信或者同一網段的其它站點想要與A或B通信,交換機就知道該把報文從哪個連線埠送出。還必須說明的一點是,當查找MAC地址表的時候發現找不到匹配表項,該報文又不是廣播或多播報文,此時此報文被稱為DLF(Destination Lookup Failure)報文,交換機對此類報文的處理就象對收到一個廣播報文處理一樣,將此報文從進入連線埠所屬的VLAN中擴散出去。從以上過程可以看出,所有二層轉發都是由硬體完成的,無論是MAC地址表的學習過程還是目的地址查找確定輸出連線埠過程都沒有軟體進行干預。
實現跨網段通信過程
實例
站點A、B通過三層交換機進行通信。站點A和B所在網段都屬於交換機上的直連網段,若站點A和站點B不在同一子網內,傳送站A首先要向其“預設網關”發出ARP請求報文,而“預設網關”的IP位址其實就是三層交換機上站點A所屬VLAN的IP位址。當傳送站A對“預設網關”的IP位址廣播出一個ARP請求時,交換機就向傳送站A回一個ARP回復報文,告訴站點A交換機此VLAN的MAC地址,同時可以通過軟體把站點A的IP位址、MAC地址、與交換機直接相連的連線埠號等信息設定到交換晶片的三層硬體表項中。站點A收到這個ARP回復報文之後,進行目的MAC地址替換,把要發給B的包首先發給交換機。交換原理
交換機收到這個包以後,同樣首先進行源MAC地址學習,目的MAC地址查找,由於此時目的MAC地址為交換機的MAC地址,在這種情況下將會把該報文送到交換晶片的三層引擎處理。一般來說,三層引擎會有兩個表,一個是主機路由表,這個表是以IP位址為索引的,裡面存放目的IP位址、下一跳MAC地址、連線埠號等信息。若找到一條匹配表項,就會在對報文進行一些操作(例如目的MAC與源MAC替換、TTL減1等)之後將報文從表中指定的連線埠轉發出去。若主機路由表中沒有找到匹配條目,則會繼續查找另一個表――網段路由表。這個表存放網段地址、下一跳MAC地址、連線埠號等信息。一般來說這個表的條目要少得多,但覆蓋的範圍很大,只要設定得當,基本上可以保證大部分進入交換機的報文都走硬體轉發,這樣不僅大大提高轉發速度,同時也減輕了CPU的負荷。若查找網段路由表也沒有找到匹配表項,則交換晶片會把包送給CPU處理,進行軟路由。由於站點B屬於交換機的直連網段之一,CPU收到這個IP報文以後,會直接以B的IP為索引檢查ARP快取,若沒有站點B的MAC地址,則根據路由信息向B站廣播一個ARP請求,B站得到此ARP請求後向交換機回復其MAC地址,CPU在收到這個ARP回復報文的同時,同樣可以通過軟體把站點B的IP位址、MAC地址、進入交換機的連線埠號等信息設定到交換晶片的三層硬體表項中,然後把由站點A發來的IP報文轉發給站點B,這樣就完成了站點A到站點B的第一次單向通信。注意事項
由於晶片內部的三層引擎中已經保存站點A、B的路由信息,以後站點A、B之間進行通信或其它網段的站點想要與A、B進行通信,交換晶片則會直接把包從三層硬體表項中指定的連線埠轉發出去,而不必再把包交給CPU處理。這種通過“一次路由,多次交換”的方式,大大提高了轉發速度。需要說明的是,三層引擎中的路由表項大都是通過軟體設定的。至於何時設定、怎么設定並不存在一個固定的標準,我們在此也不詳細討論。一個單波IP報文從進入三層交換機到轉發出去一般來說走以下流程:傳統交換機和路由器結合過程
通過以上流程我們可以了解報文在交換機中的執行過程,同時我們也可以清楚的看出三層交換機是如何充分把傳統交換機和路由器的優勢有機的結合在一起。在實際套用的網路環境中,對於跨網段通信的需求不斷提高,過去的網路在一般情況下按“80/20分配”規則,即只有20%的流量是通過骨幹路由器與中央伺服器或企業網的其他部分通信,而80%的網路流量主要仍集中在不同的部門子網內。而今天,這個比例已經提高到了50%,甚至80%(倒二八,20/80),這是因為今天的網路正在經歷著諸多套用的集合影響。網路套用已經超越了組件和電子信函,新型套用已經如此迅速和深刻地衝擊著網路,比如,任何人通過任何一個瀏覽器便可進行訪問設定的網頁,支持諸如銷售、服務和財務之類商業功能的數據倉庫。這種變化對傳統路由器產生了直接的衝擊。因為傳統的路由器更注重對多種介質類型和多種傳輸速度的支持,而目前數據緩衝和轉換能力比線速吞吐能力和低時延更為重要。處於網路核心位置的路由器的高費用、低性能使其成為網路的瓶頸,但由於網路間互連的需求,它又是不可缺少的。雖然也開發了高速路由器,但是由於其成本太高,所以僅用於Internet主幹部分。三層交換機將二層交換機和三層路由器兩者的優勢有機而智慧型化的結合在一起,在各個層次上提供線速性能,從而解決了傳統路由器低速、複雜所造成的網路瓶頸問題。在沒有廣域網連線需求的場合,用於連線不同子網的傳統路由器正在以極快的速度被三層交換機所代替。