為什麼三層交換機無法替代路由器?


從硬體上說,三層交換機是通過交換晶元轉發數據的,交換晶元是帶有三層轉發能力的,也就是路由的功能。

路由器則是通過CPU轉發的,所有的報文的重新計算和轉發任務是在CPU的計算下完成的。

我看到之前有人說交換晶元的路由功能很差。我想說,你們都是從什麼時代過來的?現在國產廠商的設備,09年我做交換機那會,三層路由表表項都能達到64K個,這還不夠多嗎?支持OSPF/BGP/IS-IS這些都是軟體層面的事情,跟交換晶元沒什麼關係。至於防火牆/ACL等功能,交換晶元都自帶的,寫幾個寄存器就可以搞定的。並且路由器的表項一旦變大,CPU查找的時間會更長,轉發速度會更慢的。

三層交換機無法取代路由器是因為以下幾個致命的弱點:

1、交換機(下面所有的交換機都指的是三層交換機)網路打通速度很慢,有一個專業的說法叫做線速轉發,比如交換機的帶寬是1Gbps,帶在沒有達到線速轉發之前,速度是很低的,並且達到線速轉發的時間可能要很久,以IPv6為例,有些設備需要十幾分鐘才能達到線速轉發,而路由器是不需要消耗這麼久的,路由器的路由表計算是走CPU的,任何時間都是線速轉發的(當然如果CPU負載太重則例外)——這是交換機最致命的弱點。

2、交換機支持的網路類型很少,串列鏈路,ATM,這些口一般交換機支持的都很差,有些大型交換機會用專門的一個板卡提供這些網路介面的支持。交換機通常支持的都是乙太網光口或者電口。路由器則不一樣,一個核心路由器通常是帶一堆各種各樣的介面,反而是乙太網口不太多。雖然如今大部分線路都改造成光纖了,但在ISP那邊,串列鏈路還是很多的,所以路由器就排上用場了。

3、路由器可以改造成網關或者防火牆——帶日誌記錄的網關,因為所有報文都走CPU,所以CPU有能力記錄下所有的報文,但交換機的交換晶元則沒有這個能力——因為交換晶元太快了。路由器的這個特點,也用在了很多企業、ISP的出口網路上,以及偉大的GFW也是工作在路由器這個層面上的。

4、三層交換機的轉發速度很快,但設計複雜,不管是交換機還是路由器,都有一個控制CPU,路由器里轉發CPU跟控制CPU通常是分開的。對於所有發往路由器或者交換機自身的報文,走控制CPU。對於路由器來說,如果加防火牆之類的,都是軟體實現的,代碼可以是一套。但對於三層交換機則不同,三層交換機的交換晶元控制的防火牆等ACL控制(訪問控制列表)是分成兩套代碼的,一套是控制走晶元轉發的部分,另一套是控制走控制CPU的部分,實際上是多出了一套代碼。

5、交換機抗網路震蕩能力很弱,前面說了線速轉發的問題,同樣,網路一旦開始震蕩,路由表不穩定的時候,交換機就又不能線速轉發了,而路由器則基本不受影響。

因為上面幾個原因,路由器是不可替代的。但確實路由器已經被邊緣化了,路由器在核心網路里,一般都充當著出口和核心轉發這一塊,接入層和匯聚層基本上都被三層交換機所取代了。


現在在測試華為的邊緣路由器。就我認為:

1:產品的定位:交換機的主要目的實現數據包的線速轉發否則區域網的延時都可以大的驚人了,違背初衷。路由器是為了鏈接不同的「區域網」所以需要計算一些數據信息。

2:協議計算,路由表,收斂時間等等都體現在大型網路中,中小型網路這些基本上可以忽視所以沒所謂。

3:三層交換先路由後交換有專門的交換晶元實現,就是先緩存後交換但是如果發生網路抖動在預定時間內沒有同類數據包通過就刪除緩存,那麼再次處理該數據包時就要做路由的操作調用CPU。

4:回答樓上的問題:不同網段不能互訪是由於TCP/IP本身的隔離,廣播域的問題。無法通過ARP獲取MAC地址。廣播域越大需要佔用的存儲空間就越大。關於VLAN是一個軟體虛擬出來的東西,在設備上軟體實現廣播域的細分實現的。


接觸過一些路由器和三層交換機說下我的理解,所說的大多為平時總結,找不到具體來源了。

我們看現在的結果,難理解的話,往前找,看看歷史。

先說下歷史:

就是普通的2層交換機,和路由器。

如果要執行三層轉發,必須使用2層交換機和路由器配合。

僅僅使用三層轉發,增加路由器很不划算。於是演進出了三層轉發。

三層轉發晶元,替代了cpu,帶有更強的轉發能力,而且容易擴展,後來發展成專門的NP網路處理器。

網路發展都向著高性能,低成本發展。

三層交換機就有專門的np和弱點的cpu組成,主要執行轉發任務,轉發表多或者方法來自於直聯路由和靜態路由。ospf,bgp也是支持的,算點小型的網路還可以,大型的根本無法計算。

路由器除了轉發功能為了成本,也會使用NP,來降低CPU的使用,還要負責計算。這樣必須使用強的cpu,來負責計算路由,支持mpls,組播,vpn等路由,介面齊全:E1,Ether,xDsl,支持多種接入。特殊的需求,時鐘同步,1588等協議,這些都是交換機所不擅長的.

說了這麼多,簡單的說說數通設備(交換機,路由器等)的結構,幫你理解下。

一般分為轉發平面,而控制平面.

轉發平面一般決定性能,比如同時支持多少G或者多少T的轉發能力.

比如可以做到200 * 1G的埠同時線性轉發, 那麼轉發能力就是200G的容量.現在可以做到上T的能力.

控制平面決定如何將轉發表計算出來,然後下發到轉發平面,比如支持多少路由表.比如省出口,運營商出口,國家出口需要支持多少萬條路由.比如出現斷路了,需要路由切換,需要多少秒收斂.

那麼交換機能注重轉發平面,而路由器更注重控制平面.

高端交換機除了轉發平面非常強以外,同時控制平面也會做到很強.

高端路由器除了控制平面強大以為,轉發平面也會做的很強.

所以差距就沒那麼明顯.

一句話:同樣的價錢,買交換機能買到轉發能力很強的設備,買路由器能買到協議計算能力更強的設備.

補充說下:以上僅僅是我的理解,來源四面八方,如有理解錯誤,歡迎指出,糾正


補充上面的回答.

一般三層交換機不能做NAT (思科的65, 45系列, 華為9700以上系列增加板卡是可以支持的), 所以最外層介面還是需要一台路由或者防火牆.

PS: 謝謝 @北極 的提醒.


交換機架構基於ASIC進行硬體轉發,其他特性都得依賴CPU,成本低,轉發容量大,業務性能差,擴展性差,未來演進能力差

路由器架構基於可編程的網路處理器(NP)進行轉發,是微碼轉發,NP的可編程能力強大,隨著軟體升級可以支持各種新業務,成本高,轉發容量相對小,業務性能強,擴展能力強,未來演進能力強。

所以雖然三層交換機不停蠶食低端企業級路由器市場,但是路由器依然是不可替代的。


這麼說吧,A要把包裹送給C,但是A不知道C在哪裡,於是A去詢問B,B是管理員,他通過一系列操作查詢找到了C的地址,A要一直向C送東西,於是B幫他們鋪了一條傳送帶,以後不用問B直接發送就行;如果A又想給D發包裹了,需要在找B,然後B再去進行一系列操作,然後再鋪設傳送帶。這就是三層交換機的作用,傳送帶相當於交換轉發晶元,B相當於控制CPU,只要一次找到了以後它就不管了交給傳送帶來做。

對於路由器,同樣是A想發給C發包裹,他不知道地址於是去找B,這個B能力很強聰明手巧,B說我可以給你找到C送給他,另外我還能幫你再包裝一下美化一下上個保險啥的,於是A每次發包裹都找到B去做,B相當於路由器的CPU,路由器所有的數據轉發都走CPU。

綜上可見,在進行大量的傳送時使用「傳送帶」的三層交換機顯然更快也更省時省力,但是一旦遇上複雜的網路情況,比如C的地址到處變,A還要給EFGHIJ...等等地方發送時三層交換機的B就忙不過來了,它本身就不怎麼擅長找路,還要不斷拆裝傳動帶,很快就手忙腳亂了;這種情況下對路由器的B而言不過是送包裹任務量大了一點兒,他還是走正常的流程,找路然後送過去,而且它本身找路的能力就非常強,只是多跑幾趟。反之如果A只是固定給C、D們送東西,不過每次都是成噸的送,對於三層交換機的傳送帶而言無所謂,都給范廚師裝上走你┏ (゜ω゜)=?,但是路由器的B可累壞了,很快就完蛋了。

簡言之,三層交換機就像是鐵路,運量大但是靈活性差,太偏僻的地方送起來有難度;路由器就像汽車,運量小但是再偏僻再難找的地方都能送到。

現在的三層交換機路由功能越來越強,路由器的轉發能力也越來越強,但是終究術業有專攻,在高壓和極端情況下它們依然不能相互取代。


小企業網管。

倒是覺得,所用的那種企業級路由器都在向三層交換機方向發展。。。


補充幾點

1、三層交換機具備VLAN劃分的功能,不同VLAN之間通過路由協議傳輸數據。在區域網內,不同VLAN之間的數據量很大,如果不同VLAN之間的數據也通過路由器來傳輸的話,路由器的CPU恐怕承受不了。因此,三層交換機是區域網內不同VLAN之間數據通信的很好的解決方案。

2、路由器和三層交換機在數據包交換步驟上存在著明顯區別。路由器一般由CPU的路由引擎執行數據包交換,而三層交換機通過硬體執行數據包交換。三層交換機在對第一個數據流進行路由後,它將會產生一個路由表項,當同樣的數據流再次通過時,將直接通過硬體查詢路由出口,從而消除了路由器由CPU進行路由選擇而造成的網路延遲,提高了數據包轉發的效率。

(好吧,這裡我回答的都是:為什麼路由器無法取代三層交換機)。


從內部上來說,三層交換機無法代替路由器有幾點:

1、交換機的轉發是通過MAC晶元實現的,MAC晶元是交換機的靈魂,而路由器一般主要的作用不是為了轉發數據,而是計算數據,即路由器的CPU會非常強悍,相反交換機的CPU會比較弱,因為它不需要非常強悍的CPU;

2、交換機的CPU無法實現更複雜的三層協議,例如MPLS VPN,MPLS TE,更細化的QoS,更豐富的IPv6功能等;

3、兩者的使用場景不同。交換機一般用於單個園區網中,不會涉及到縱向網以及大型的跨園區網的連接;而路由器一般需要用於縱向網、城域網,以及廣域網中,並且乙太網的路由器一般也支持POS口,ATM口等非乙太網口。


交換機是頭腦簡單四肢發達的傻大個,適合做簡單量大的體力活。

路由器頭腦發達四肢簡單,適合處理複雜數據。


突然想到的一個回答,雖然第一的答案基本已經解決了全部的問題

單純用一種很不貼實際的理論來解釋一下

三層交換機 歸根結底還是交換機 它更注重的是MAC和PORT的關係 路由晶元只是輔助去找尋MAC和PORT的關係 在沒有這個關係的時候, 路由晶元進行定址 所以他大多數時間都工作在二層 只有在一個新的MAC不知道向哪轉發的時候 才需要將報文上升到三層來解析IP

可是路由器 他根本不關心MAC 某種程度來說

他關心的只有IP和PORT的關係

所以所有報文都要上升到L3來進行解析

對於三層交換機,如果認識的MAC 根本不會有機會上升到L3

所以根本沒有後面的事

而如果每個報文都上升到L3 那就不是交換機了

畢竟交換機得定義還是工作在L2的設備

所以,三層交換機並不能完全替代路由器(除去協議轉換這些完全屬於路由器範疇的內容,單純就數據轉發交換層面的理解)

輕噴-。-


一個主要的功能Nat,還有包轉沒有路由器強!


你讓交換機怎麼在業界混


我主要是搞開發的,而且現在也原理網路設備的開發,可能在這方面的知識不夠深入,說下我的理解,不知道對不對。

1 三層交換機是處理第三層的設備,基本上和路由器就是一層了,但是交換機是基於硬體實現的,路由器更多的是軟體實現,所以功能可以擴展。

2 兩者對於數據處理其實是一樣的,只是三層交換機是在硬體實現,某些性能會更強。

3 三層交換機不能取代路由,因為目前更多複雜的協議或者功能,用硬體實現可能在成本上或者難度上都比軟體難,而且網路技術發展迅速,硬體的更新永遠趕不上軟體,也許等到某些路由的功能穩定下來了,離硬體實現就不遠了。

在這裡順便提高小問題,二層交換機不同網段不能訪問,是否由於考慮到假如可以訪問,廣播的範圍更廣,容易出現問題所以才不從技術上實現。


誰講路由器都是是軟體轉發的?都是CPU轉發的?怎麼都這麼土啊

你家裡的小貓當然是軟體轉發的,你以為企業和運營商用的路由器也是軟體轉發的啊


推薦閱讀:

如何搭建複式建築的無線路由?
家庭網路架構和路由器,nas布置方案?
路由器直連埠不同網段互通的問題?
關於CIDR聚合我有個問題想了很久都沒想明白?
如何去劫持一個路由器的DNS?

TAG:路由器 | 計算機網路 |