詳解路由與交換
路由和交換是網(wǎng)絡(luò)世界中兩個(gè)重要的概念。傳統(tǒng)的交換發(fā)生在網(wǎng)絡(luò)的第二層,即數(shù)據(jù)鏈路層,而路由則發(fā)生在第三層,網(wǎng)絡(luò)層。在新的網(wǎng)絡(luò)中,路由的智能和交換的性能被有機(jī)的結(jié)合起來(lái),三層交換機(jī)和多層交換機(jī)在園區(qū)網(wǎng)絡(luò)中大量使用。本文將介紹一些路由和交換的基本概念,分為網(wǎng)絡(luò)層次結(jié)構(gòu)、交換、路由和全交換園區(qū)網(wǎng)絡(luò)四個(gè)部分。
網(wǎng)絡(luò)層次結(jié)構(gòu)
網(wǎng)絡(luò)參考模型的定義給出了清晰的功能層次劃分。最常被提及的是ISO OSI參考模型和TCP/IP協(xié)議簇。
國(guó)際標(biāo)準(zhǔn)化組織定義的OSI參考模型將計(jì)算機(jī)網(wǎng)絡(luò)按功能劃分為七個(gè)層次,這就是我們常說(shuō)的七層模型或七層結(jié)構(gòu)。網(wǎng)絡(luò)功能分層的直接好處是這些層次可以各司其職,由不同廠家開發(fā)的不同層次的軟硬件設(shè)備可以配合使用。一個(gè)層次的設(shè)備更新或軟件重寫也不會(huì)影響到其它層次。TCP/IP協(xié)議體系中的各個(gè)層次和ISO的參考模型有大致的對(duì)應(yīng)關(guān)系。
OSI中間一層,即第四層執(zhí)行傳輸功能,它負(fù)責(zé)提供從一臺(tái)計(jì)算機(jī)到另外一臺(tái)計(jì)算機(jī)之間的可靠數(shù)據(jù)傳輸。傳輸層(Transport Layer)是承上啟下的一層,在它的下面有三層,都是與數(shù)據(jù)傳輸相關(guān)的功能;上面也有三層,提供與網(wǎng)絡(luò)應(yīng)用相關(guān)的功能。
OSI下三層中。物理層(Physical Layer)負(fù)責(zé)實(shí)際的傳送數(shù)據(jù)信號(hào),數(shù)據(jù)鏈路層(Data Link Layer)負(fù)責(zé)網(wǎng)絡(luò)內(nèi)部的幀傳輸,而網(wǎng)絡(luò)層(Network Layer)負(fù)責(zé)網(wǎng)絡(luò)間的計(jì)算機(jī)尋址和數(shù)據(jù)傳輸。
OSI上三層中。應(yīng)用層(Application Layer)是最高的層次,它負(fù)責(zé)提供用戶操作的界面,因特網(wǎng)中常用的電子郵件服務(wù),文件傳輸服務(wù)等都是這一層提供的。表示層(Presentation Layer)負(fù)責(zé)數(shù)據(jù)的表示,比如發(fā)送數(shù)據(jù)之前的加密,接收數(shù)據(jù)時(shí)的解密,中英文的翻譯等等都是這一層提供的功能。會(huì)話層(Session Layer)負(fù)責(zé)建立和終止網(wǎng)絡(luò)的數(shù)據(jù)傳輸,計(jì)算機(jī)名字轉(zhuǎn)換成地址的工作也在這層完成。
傳統(tǒng)意義上的交換是第二層的概念。數(shù)據(jù)鏈路層的功能是在網(wǎng)絡(luò)內(nèi)部傳輸幀。所謂"網(wǎng)絡(luò)內(nèi)部"是指這一層的傳輸不涉及網(wǎng)間的設(shè)備和網(wǎng)間尋址。通俗的理解,一個(gè)以太網(wǎng)內(nèi)的傳輸,一條廣域網(wǎng)專線上的傳輸都由數(shù)據(jù)鏈路層負(fù)責(zé)。所謂"幀"是指所傳輸?shù)臄?shù)據(jù)的結(jié)構(gòu),通常幀有幀頭和幀尾,頭中有源目二層地址,而幀尾中通常包含校驗(yàn)信息,頭尾之間的內(nèi)容即是用戶的數(shù)據(jù)。
數(shù)據(jù)鏈路層涵蓋的功能很多,所以又將它劃分為兩個(gè)子層, MAC(Media Access Control,介質(zhì)訪問(wèn)控制)層和LLC(Logical Link Control,邏輯鏈路控制)層。常見的局域網(wǎng)和城域網(wǎng)的二層標(biāo)準(zhǔn)是IEEE的802協(xié)議。而在廣域網(wǎng)中,HDLC(High-level Data Link Control,高級(jí)鏈路控制)、PPP(Point-to-Point Protocol,點(diǎn)對(duì)點(diǎn)協(xié)議)和Frame Relay(幀中繼)等協(xié)議都有廣泛的使用。
路由是第三層的概念。網(wǎng)絡(luò)層在Internet中是最重要的,它的功能是端到端的傳輸,這里端到端的含義是無(wú)論兩臺(tái)計(jì)算機(jī)相距多遠(yuǎn),中間相隔多少個(gè)網(wǎng)絡(luò),這一層保障它們可以互相通信。例如我們常用的PING命令就是一個(gè)網(wǎng)絡(luò)層的命令,PING通了,就是指網(wǎng)絡(luò)層的功能正常了。通常,網(wǎng)絡(luò)層不保障通訊的可靠性,也就是說(shuō),雖然正常情況下數(shù)據(jù)可以到達(dá)目的地,但即便出現(xiàn)異常,網(wǎng)絡(luò)層也不作任何更正和恢復(fù)的工作。
網(wǎng)絡(luò)層常用的協(xié)議有IP、IPX、APPLETALK等等,其中IP協(xié)議更是Internet的基石。在TCP/IP協(xié)議體系中,第三層的其他輔助協(xié)議還包括ARP(地址解析) 、RARP(反向地址解析)、 ICMP(網(wǎng)際報(bào)文控制)和IGMP(組管理協(xié)議)等等。由于網(wǎng)絡(luò)互連設(shè)備都具有路徑選擇功能,所以我們經(jīng)常將 RIP、OSPF等路選協(xié)議也放在這一層討論。
交換
談到交換的問(wèn)題,從廣義上講,任何數(shù)據(jù)的轉(zhuǎn)發(fā)都可以稱作交換。當(dāng)然,現(xiàn)在我們指的是狹義上的交換,僅包括數(shù)據(jù)鏈路層的轉(zhuǎn)發(fā)。做網(wǎng)絡(luò)的人理解交換大多是從交換機(jī)開始的,電路交換機(jī)在通信網(wǎng)中已經(jīng)使用了幾十年了,做幀交換的設(shè)備,尤其是以太網(wǎng)交換機(jī)的大規(guī)模使用則是近幾年的事情。
理解以太網(wǎng)交換機(jī)的作用還要從網(wǎng)橋的原理講起。傳統(tǒng)以太網(wǎng)是共享型的,如果網(wǎng)段上有四臺(tái)計(jì)算機(jī)A、B 、C和D,那么A與B通信的同時(shí),C和D只能是被動(dòng)的收聽。假如將纜段分開(即微化),A、B在一段上,C、D在另一段上,那么A和B通信的同時(shí),C和D也可以通信,這樣原有10M的帶寬從理論上講就變成20M了。同時(shí),為了確保這兩個(gè)網(wǎng)段可以互相通信,需要用橋?qū)⑺鼈冞B接起來(lái),橋是有兩塊網(wǎng)卡的計(jì)算機(jī)。
在整個(gè)網(wǎng)絡(luò)剛剛啟動(dòng)時(shí),橋?qū)W(wǎng)絡(luò)的拓樸一無(wú)所知。這時(shí),假設(shè)A發(fā)送數(shù)據(jù)給B,因?yàn)榫W(wǎng)絡(luò)是廣播式的,所以橋也收到了,但橋不知到B在自己的左邊還是右邊,它就進(jìn)行缺省的轉(zhuǎn)發(fā),即在另外一塊網(wǎng)卡上發(fā)送這個(gè)信息。雖然做了一次無(wú)用的轉(zhuǎn)發(fā),但通過(guò)這個(gè)過(guò)程,橋?qū)W習(xí)到數(shù)據(jù)的發(fā)送者A在自己的左邊。當(dāng)網(wǎng)絡(luò)上的每一臺(tái)計(jì)算機(jī)都發(fā)送過(guò)數(shù)據(jù)之后,橋就是智能的了,它了解每一臺(tái)計(jì)算機(jī)在哪一個(gè)網(wǎng)段上。當(dāng)A再發(fā)送數(shù)據(jù)給B時(shí),橋就不進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)了,與此同時(shí),C可以發(fā)送數(shù)據(jù)給D。
從上面的例子可以看出,橋可以減少網(wǎng)絡(luò)沖突發(fā)生的幾率,這就是我們使用橋的主要目的,稱作減小沖突域。但橋并不能阻止廣播,廣播信息的隔絕要靠三層的連接設(shè)備,路由器。
按照纜段微化的思想,纜段越多,可用帶寬就越高。極限情況是每一臺(tái)計(jì)算機(jī)處在一個(gè)獨(dú)立的纜段上,如果網(wǎng)絡(luò)上有十臺(tái)計(jì)算機(jī),就需要一個(gè)十端口的橋?qū)⑺鼈冞B接起來(lái)。但實(shí)現(xiàn)這樣一個(gè)橋不太現(xiàn)實(shí),軟件轉(zhuǎn)發(fā)的速度也跟不上,于是有了交換機(jī),交換機(jī)就是將上述多端口的橋硬件或固件化,以達(dá)到更低的成本和更高的性能。
交換機(jī)的一個(gè)重要的功能是避免交換循環(huán),這就涉及到了STP(Spanning Tree Protocol,分支樹協(xié)議)。分支樹協(xié)議的功能是避免數(shù)據(jù)幀在交換機(jī)構(gòu)成的網(wǎng)絡(luò)中循環(huán)傳送。如下圖所示,如果網(wǎng)絡(luò)中有冗余鏈路的話,STP協(xié)議現(xiàn)選出根交換機(jī)(Route Bridge),然后確定每一臺(tái)非根交換機(jī)到根交換機(jī)之間的路徑,最后,將此路徑上的所有鏈路置成轉(zhuǎn)發(fā)(Forward)狀態(tài),其余的交換機(jī)之間的連接就是冗余鏈路,置為阻塞(Block)狀態(tài)。
交換機(jī)的另外一個(gè)重要功能是VLAN(Virtual LAN,虛擬局域網(wǎng))。VLAN的好處主要有三個(gè):
端口的分隔。即便在同一個(gè)交換機(jī)上,處于不同VLAN的端口也是不能通信的。這樣一個(gè)物理的交換機(jī)可以當(dāng)作多個(gè)邏輯的交換機(jī)使用。
網(wǎng)絡(luò)的安全。不同VLAN不能直接通信,杜絕了廣播信息的不安全性。
靈活的管理。更改用戶所屬的網(wǎng)絡(luò)不必?fù)Q端口和聯(lián)線,只該軟件配置就可以了。
VLAN可以按端口或MAC地址來(lái)劃分。
有時(shí),我們需要在交換機(jī)所構(gòu)成的網(wǎng)絡(luò)上保持VLAN的配置的一致性。這就需要交換機(jī)之間按照VTP(VLAN Trunk Protocol,VLAN骨干協(xié)議)交流VLAN信息。VTP協(xié)議只在骨干端口(Trunk Port),即交換機(jī)之間的端口,上運(yùn)行。
路由器是網(wǎng)絡(luò)間的連接設(shè)備,它重要工作之一是路徑選擇。這個(gè)功能是路由器智能的核心,它是由管理員的配置和一系列的路由算法實(shí)現(xiàn)的。
路由算法有動(dòng)靜之分,靜態(tài)路由是一種特殊的路由,它是由管理員手工設(shè)定的。手工配置所有的路由雖然可以使網(wǎng)絡(luò)正常運(yùn)轉(zhuǎn),但是也會(huì)帶來(lái)一些局限性。網(wǎng)絡(luò)拓?fù)浒l(fā)生變化之后,靜態(tài)路由不會(huì)自動(dòng)改變,必須有網(wǎng)絡(luò)管理員的介入。缺省路由是靜態(tài)路由的一種,也是由管理員設(shè)置的。在沒有找到目標(biāo)網(wǎng)絡(luò)的路由表項(xiàng)時(shí),路由器將信息發(fā)送到缺省路由器(gateway of last resort)。而動(dòng)態(tài)的算法,顧名思義,是由路由器自動(dòng)計(jì)算出的路由,常說(shuō)的RIP、OSPF等等都是動(dòng)態(tài)算法的典型代表。
另外還可以將路由算法分為DV和LS兩種。DV(Distance,距離向量)算法將當(dāng)前路由器的路由信息傳送給相鄰路由器,相鄰路由器將這些信息加入自身的路由表。而LS(Link State,鏈路狀態(tài))算法將鏈路狀態(tài)信息傳給域內(nèi)所有的路由器,接收路由器利用這些信息構(gòu)建網(wǎng)絡(luò)拓?fù)鋱D,并利用圖論中的最短路徑優(yōu)先算法決定路由。相比之下,距離向量算法比較簡(jiǎn)單,而鏈路狀態(tài)算法較為復(fù)雜,占用的CPU和內(nèi)存也要多一些。但是由于鏈路狀態(tài)算法采用的是自身的計(jì)算結(jié)果,所以比較不容易產(chǎn)生路由循環(huán)。RIP是DV類算法的典型代表,而OSPF是LS的代表協(xié)議。
四種最常見路由協(xié)議是RIP、IGRP、OSPF和EIGRP。
RIP(Routing Information Protocols,路由信息協(xié)議)是使用最廣泛的距離向量協(xié)議,它是由施樂(Xerox)在70年代開發(fā)的。當(dāng)時(shí),RIP是XNS(Xerox Network Service,施樂網(wǎng)絡(luò)服務(wù))協(xié)議簇的一部分。TCP/IP版本的RIP是施樂協(xié)議的改進(jìn)版。RIP最大的特點(diǎn)是,無(wú)論實(shí)現(xiàn)原理還是配置方法,都非常簡(jiǎn)單。RIP基于跳數(shù)計(jì)算路由,并且定期向鄰居路由器發(fā)送更新消息。
IGRP是CISCO專有的協(xié)議,只在CISCO路由器中實(shí)現(xiàn)。它也屬于距離向量類協(xié)議,所以在很多地方與RIP有共同點(diǎn),比如廣播更新等等。它和RIP最大的區(qū)別表現(xiàn)在度量方法、負(fù)載均衡等幾方面。IGRP支持多路徑上的加權(quán)負(fù)載均衡,這樣網(wǎng)絡(luò)的帶寬可以得到更加合理的利用。另外,與RIP僅使用跳數(shù)作為度量依據(jù)不同,IGRP使用了多種參數(shù),構(gòu)成復(fù)合的度量值,這其中可以包含的因素有:帶寬、延遲、負(fù)載、可靠性和MTU(最大傳輸單元)等等。
OSPF協(xié)議是80年代后期開發(fā)的,90年代初成為工業(yè)標(biāo)準(zhǔn),是一種典型的鏈路狀態(tài)協(xié)議。OSPF的主要特性包括:支持VLSM(變長(zhǎng)的子網(wǎng)掩嗎)、收斂迅速、帶寬占用率低等等。OSPF協(xié)議在鄰居之間交換鏈路狀態(tài)信息,以便路由器建立鏈路狀態(tài)數(shù)據(jù)庫(kù)(LSD),之后,路由器根據(jù)數(shù)據(jù)庫(kù)中的信息利用SPF(Shortest Path First,最短路徑優(yōu)先)算法計(jì)算路由表,選擇路徑的主要依據(jù)是帶寬。
EIGRP是IGRP的增強(qiáng)版,它也是CISCO專有的路由協(xié)議。EIGRP采用了擴(kuò)散更新(DUAL)算法,在某種程度上,它和距離向量算法相似,但具有更短的收斂時(shí)間和更好的可操作性。作為對(duì)IGRP的擴(kuò)展,EIGRP支持多種可路由的協(xié)議,如IP、IPX和AppleTalk等等。運(yùn)行在IP環(huán)境時(shí),EIGRP還可以與IGRP進(jìn)行平滑的連接,因?yàn)樗鼈兊亩攘糠椒ㄊ且恢碌摹?/p>
以上四種路由協(xié)議都是域內(nèi)路由協(xié)議,他們通常使用在自治系統(tǒng)的內(nèi)部。當(dāng)進(jìn)行自治系統(tǒng)間的連接時(shí),往往采用諸如BGP(Border Gateway Protocols,邊界路由協(xié)議)和EGP(External Gateway Protocols,外部路由協(xié)議)這樣的域間路由協(xié)議。目前在Internet上使用的域間路由協(xié)議是BGP第四版。
收斂是路由算法選擇時(shí)所遇到的一個(gè)重要問(wèn)題。收斂時(shí)間是指從網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)發(fā)生變化到網(wǎng)絡(luò)上所有的相關(guān)路由器都得知這一變化,并且相應(yīng)地做出改變所需要的時(shí)間。這一時(shí)間越短,網(wǎng)絡(luò)變化對(duì)全網(wǎng)的擾動(dòng)就越小。收斂時(shí)間過(guò)長(zhǎng)會(huì)導(dǎo)致路由循環(huán)的出現(xiàn)。
在上述幾種域內(nèi)路由算法中,RIP和IGRP的收斂時(shí)間相對(duì)較長(zhǎng),都是分鐘數(shù)量級(jí)的;OSPF要短一些,數(shù)十秒內(nèi)可以收斂;EIGRP最短,網(wǎng)絡(luò)拓?fù)浒l(fā)生變化之后,幾秒鐘即可達(dá)到收斂狀態(tài)。
全交換園區(qū)網(wǎng)絡(luò)
傳統(tǒng)的園區(qū)網(wǎng)絡(luò)是路由器加交換機(jī)的結(jié)構(gòu)。交換機(jī)負(fù)責(zé)網(wǎng)絡(luò)內(nèi)部的傳輸,劃分VLAN以保證二層的安全性和靈活性,路由器則完成網(wǎng)間的尋址和數(shù)據(jù)轉(zhuǎn)發(fā)工作。
通常,路由器的性能比交換機(jī)要差一些,因?yàn)槁酚善魇腔谲浖牟楸磙D(zhuǎn)發(fā),而交換機(jī)可以實(shí)現(xiàn)硬件的直通式轉(zhuǎn)發(fā)。但在傳統(tǒng)的園區(qū)網(wǎng)絡(luò)中,路由器并不會(huì)成為網(wǎng)絡(luò)的瓶頸。因?yàn)?0%的數(shù)據(jù)量是在網(wǎng)絡(luò)內(nèi)部的通訊,只有20%的數(shù)據(jù)是做遠(yuǎn)程訪問(wèn),也就是說(shuō),大多數(shù)經(jīng)過(guò)交換機(jī)的信息并不經(jīng)過(guò)路由器。這就是傳統(tǒng)網(wǎng)絡(luò)的80/20流量模型。
近年來(lái)由于Internet/Intranet計(jì)算模式的興起,應(yīng)用被集中管理,而不是象從前那樣分散在各個(gè)部門的網(wǎng)絡(luò)中,園區(qū)網(wǎng)絡(luò)的流量模型發(fā)生了很大的變化。大量的網(wǎng)絡(luò)訪問(wèn)是遠(yuǎn)程的,也就是要經(jīng)過(guò)路由器的。這被稱為新的20/80流量模型。因此,路由器逐漸成為網(wǎng)絡(luò)的瓶頸。
為了從技術(shù)上解決這個(gè)問(wèn)題,網(wǎng)絡(luò)廠商開發(fā)了三層交換機(jī),也叫做路由交換機(jī)。它是傳統(tǒng)交換機(jī)的性能和路由器的智能的結(jié)合。路由選擇仍由路由器完成,但路選的結(jié)果被交換機(jī)保留在自身的路由緩存中。這樣,一個(gè)數(shù)據(jù)流中的第一個(gè)數(shù)據(jù)包經(jīng)過(guò)路由器,后繼的所有數(shù)據(jù)包直接由交換機(jī)查表轉(zhuǎn)發(fā)。得益于硬件轉(zhuǎn)發(fā),三層交換機(jī)可以做到線速路由,如下圖所示。
許多廠家生產(chǎn)的三層交換機(jī)本身即是交換機(jī)和路由器的結(jié)合體,如Cisco的5000,5500,6500系列的交換機(jī)可以選配路由模塊,實(shí)現(xiàn)三層功能。
如此一來(lái),園區(qū)網(wǎng)的內(nèi)部就是交換機(jī)和三層交換機(jī)的天下了,全交換的園區(qū)網(wǎng)絡(luò)適應(yīng)新的流量模型,徹底克服了傳統(tǒng)網(wǎng)絡(luò)的路由器瓶頸,極大地提高了網(wǎng)絡(luò)的效率。同時(shí),路由器并沒有失業(yè),仍然被用在遠(yuǎn)程連接、撥號(hào)訪問(wèn)等場(chǎng)合。
本文第一部分中回顧了網(wǎng)絡(luò)的層次結(jié)構(gòu),接下來(lái)談了傳統(tǒng)的路由和交換的原理,最后介紹了在現(xiàn)在的園區(qū)網(wǎng)絡(luò)中如何將路由和交換的優(yōu)勢(shì)相結(jié)合,最好地滿足用戶的流量模型。
路由,交換,路由交換是本文的主要三個(gè)問(wèn)題。