路由器基礎知識
1 網(wǎng)絡(luò )互連
——把自己的網(wǎng)絡(luò )同其它的網(wǎng)絡(luò )互連起來(lái),從網(wǎng)絡(luò )中獲取更多的信息和向網(wǎng)絡(luò )發(fā)布自己的消息,是網(wǎng)絡(luò )互連的最主要的動(dòng)力。網(wǎng)絡(luò )的互連有多種方式,其中使用最多的是網(wǎng)橋互連和路由器互連。
1.1 網(wǎng)橋互連的網(wǎng)絡(luò )
——網(wǎng)橋工作在OSI模型中的第二層,即鏈路層。完成數據幀(frame)的轉發(fā),主要目的是在連接的網(wǎng)絡(luò )間提供透明的通信。網(wǎng)橋的轉發(fā)是依據數據幀中的源地址和目的地址來(lái)判斷一個(gè)幀是否應轉發(fā)和轉發(fā)到哪個(gè)端口。幀中的地址稱(chēng)為“MAC”地址或“硬件”地址,一般就是網(wǎng)卡所帶的地址。
——網(wǎng)橋的作用是把兩個(gè)或多個(gè)網(wǎng)絡(luò )互連起來(lái),提供透明的通信。網(wǎng)絡(luò )上的設備看不到網(wǎng)橋的存在,設備之間的通信就如同在一個(gè)網(wǎng)上一樣方便。由于網(wǎng)橋是在數據幀上進(jìn)行轉發(fā)的,因此只能連接相同或相似的網(wǎng)絡(luò )(相同或相似結構的數據幀),如以太網(wǎng)之間、以太網(wǎng)與令牌環(huán)(token ring)之間的互連,對于不同類(lèi)型的網(wǎng)絡(luò )(數據幀結構不同),如以太網(wǎng)與X.25之間,網(wǎng)橋就無(wú)能為力了。
——網(wǎng)橋擴大了網(wǎng)絡(luò )的規模,提高了網(wǎng)絡(luò )的性能,給網(wǎng)絡(luò )應用帶來(lái)了方便,在以前的網(wǎng)絡(luò )中,網(wǎng)橋的應用較為廣泛。但網(wǎng)橋互連也帶來(lái)了不少問(wèn)題:一個(gè)是廣播風(fēng)暴,網(wǎng)橋不阻擋網(wǎng)絡(luò )中廣播消息,當網(wǎng)絡(luò )的規模較大時(shí)(幾個(gè)網(wǎng)橋,多個(gè)以太網(wǎng)段),有可能引起廣播風(fēng)暴(broadcasting storm),導致整個(gè)網(wǎng)絡(luò )全被廣播信息充滿(mǎn),直至完全癱瘓。第二個(gè)問(wèn)題是,當與外部網(wǎng)絡(luò )互連時(shí),網(wǎng)橋會(huì )把內部和外部網(wǎng)絡(luò )合二為一,成為一個(gè)網(wǎng),雙方都自動(dòng)向對方完全開(kāi)放自己的網(wǎng)絡(luò )資源。這種互連方式在與外部網(wǎng)絡(luò )互連時(shí)顯然是難以接受的。問(wèn)題的主要根源是網(wǎng)橋只是最大限度地把網(wǎng)絡(luò )溝通,而不管傳送的信息是什么。
1.2 路由器互連網(wǎng)絡(luò )
——路由器互連與網(wǎng)絡(luò )的協(xié)議有關(guān),我們討論限于TCP/IP網(wǎng)絡(luò )的情況。
——路由器工作在OSI模型中的第三層,即網(wǎng)絡(luò )層。路由器利用網(wǎng)絡(luò )層定義的“邏輯”上的網(wǎng)絡(luò )地(即IP地址)來(lái)區別不同的網(wǎng)絡(luò ),實(shí)現網(wǎng)絡(luò )的互連和隔離,保持各個(gè)網(wǎng)絡(luò )的獨立性。路由器不轉發(fā)廣播消息,而把廣播消息限制在各自的網(wǎng)絡(luò )內部。發(fā)送到其他網(wǎng)絡(luò )的數據茵先被送到路由器,再由路由器轉發(fā)出去。
——IP路由器只轉發(fā)IP分組,把其余的部分擋在網(wǎng)內(包括廣播),從而保持各個(gè)網(wǎng)絡(luò )具有相對的獨立性,這樣可以組成具有許多網(wǎng)絡(luò )(子網(wǎng))互連的大型的網(wǎng)絡(luò )。由于是在網(wǎng)絡(luò )層的互連,路由器可方便地連接不同類(lèi)型的網(wǎng)絡(luò ),只要網(wǎng)絡(luò )層運行的是IP協(xié)議,通過(guò)路由器就可互連起來(lái)。
——網(wǎng)絡(luò )中的設備用它們的網(wǎng)絡(luò )地址(TCP/IP網(wǎng)絡(luò )中為IP地址)互相通信。IP地址是與硬件地址無(wú)關(guān)的“邏輯”地址。路由器只根據IP地址來(lái)轉發(fā)數據。IP地址的結構有兩部分,一部分定義網(wǎng)絡(luò )號,另一部分定義網(wǎng)絡(luò )內的主機號。目前,在Internet網(wǎng)絡(luò )中采用子網(wǎng)掩碼來(lái)確定IP地址中網(wǎng)絡(luò )地址和主機地址。子網(wǎng)掩碼與IP地址一樣也是32bit,并且兩者是一一對應的,并規定,子網(wǎng)掩碼中數字為“1”所對應的IP地址中的部分為網(wǎng)絡(luò )號,為“0”所對應的則為主機號。網(wǎng)絡(luò )號和主機號合起來(lái),才構成一個(gè)完整的IP地址。同一個(gè)網(wǎng)絡(luò )中的主機IP地址,其網(wǎng)絡(luò )號必須是相同的,這個(gè)網(wǎng)絡(luò )稱(chēng)為IP子網(wǎng)。
——通信只能在具有相同網(wǎng)絡(luò )號的IP地址之間進(jìn)行,要與其它IP子網(wǎng)的主機進(jìn)行通信,則必須經(jīng)過(guò)同一網(wǎng)絡(luò )上的某個(gè)路由器或網(wǎng)關(guān)(gateway)出去。不同網(wǎng)絡(luò )號的IP地址不能直接通信,即使它們接在一起,也不能通信。
——路由器有多個(gè)端口,用于連接多個(gè)IP子網(wǎng)。每個(gè)端口的IP地址的網(wǎng)絡(luò )號要求與所連接的IP子網(wǎng)的網(wǎng)絡(luò )號相同。不同的端口為不同的網(wǎng)絡(luò )號,對應不同的IP子網(wǎng),這樣才能使各子網(wǎng)中的主機通過(guò)自己子網(wǎng)的IP地址把要求出去的IP分組送到路由器上。
2 路由原理
——當IP子網(wǎng)中的一臺主機發(fā)送IP分組給同一IP子網(wǎng)的另一臺主機時(shí),它將直接把IP分組送到網(wǎng)絡(luò )上,對方就能收到。而要送給不同IP于網(wǎng)上的主機時(shí),它要選擇一個(gè)能到達目的子網(wǎng)上的路由器,把IP分組送給該路由器,由路由器負責把IP分組送到目的地。如果沒(méi)有找到這樣的路由器,主機就把IP分組送給一個(gè)稱(chēng)為“缺省網(wǎng)關(guān)(default gateway)”的路由器上。“缺省網(wǎng)關(guān)”是每臺主機上的一個(gè)配置參數,它是接在同一個(gè)網(wǎng)絡(luò )上的某個(gè)路由器端口的IP地址。
——路由器轉發(fā)IP分組時(shí),只根據IP分組目的IP地址的網(wǎng)絡(luò )號部分,選擇合適的端口,把IP分組送出去。同主機一樣,路由器也要判定端口所接的是否是目的子網(wǎng),如果是,就直接把分組通過(guò)端口送到網(wǎng)絡(luò )上,否則,也要選擇下一個(gè)路由器來(lái)傳送分組。路由器也有它的缺省網(wǎng)關(guān),用來(lái)傳送不知道往哪兒送的IP分組。這樣,通過(guò)路由器把知道如何傳送的IP分組正確轉發(fā)出去,不知道的IP分組送給“缺省網(wǎng)關(guān)”路由器,這樣一級級地傳送,IP分組最終將送到目的地,送不到目的地的IP分組則被網(wǎng)絡(luò )丟棄了。
——目前TCP/IP網(wǎng)絡(luò ),全部是通過(guò)路由器互連起來(lái)的,Internet就是成千上萬(wàn)個(gè)IP子網(wǎng)通過(guò)路由器互連起來(lái)的國際性網(wǎng)絡(luò )。這種網(wǎng)絡(luò )稱(chēng)為以路由器為基礎的網(wǎng)絡(luò )(router based network),形成了以路由器為節點(diǎn)的“網(wǎng)間網(wǎng)”。在“網(wǎng)間網(wǎng)”中,路由器不僅負責對IP分組的轉發(fā),還要負責與別的路由器進(jìn)行聯(lián)絡(luò ),共同確定“網(wǎng)間網(wǎng)”的路由選擇和維護路由表。
——路由動(dòng)作包括兩項基本內容:尋徑和轉發(fā)。尋徑即判定到達目的地的最佳路徑,由路由選擇算法來(lái)實(shí)現。由于涉及到不同的路由選擇協(xié)議和路由選擇算法,要相對復雜一些。為了判定最佳路徑,路由選擇算法必須啟動(dòng)并維護包含路由信息的路由表,其中路由信息依賴(lài)于所用的路由選擇算法而不盡相同。路由選擇算法將收集到的不同信息填入路由表中,根據路由表可將目的網(wǎng)絡(luò )與下一站(nexthop)的關(guān)系告訴路由器。路由器間互通信息進(jìn)行路由更新,更新維護路由表使之正確反映網(wǎng)絡(luò )的拓撲變化,并由路由器根據量度來(lái)決定最佳路徑。這就是路由選擇協(xié)議(routing protocol),例如路由信息協(xié)議(RIP)、開(kāi)放式最短路徑優(yōu)先協(xié)議(OSPF)和邊界網(wǎng)關(guān)協(xié)議(BGP)等。
——轉發(fā)即沿尋徑好的最佳路徑傳送信息分組。路由器首先在路由表中查找,判明是否知道如何將分組發(fā)送到下一個(gè)站點(diǎn)(路由器或主機),如果路由器不知道如何發(fā)送分組,通常將該分組丟棄;否則就根據路由表的相應表項將分組發(fā)送到下一個(gè)站點(diǎn),如果目的網(wǎng)絡(luò )直接與路由器相連,路由器就把分組直接送到相應的端口上。這就是路由轉發(fā)協(xié)議(routed protocol)。
——路由轉發(fā)協(xié)議和路由選擇協(xié)議是相互配合又相互獨立的概念,前者使用后者維護的路由表,同時(shí)后者要利用前者提供的功能來(lái)發(fā)布路由協(xié)議數據分組。下文中提到的路由協(xié)議,除非特別說(shuō)明,都是指路由選擇協(xié)議,這也是普遍的習慣。
3。 路由協(xié)議
——典型的路由選擇方式有兩種:靜態(tài)路由和動(dòng)態(tài)路由。
——靜態(tài)路由是在路由器中設置的固定的路由表。除非網(wǎng)絡(luò )管理員干預,否則靜態(tài)路由不會(huì )發(fā)生變化。由于靜態(tài)路由不能對網(wǎng)絡(luò )的改變作出反映,一般用于網(wǎng)絡(luò )規模不大、拓撲結構固定的網(wǎng)絡(luò )中。靜態(tài)路由的優(yōu)點(diǎn)是簡(jiǎn)單、高效、可靠。在所有的路由中,靜態(tài)路由優(yōu)先級最高。當動(dòng)態(tài)路由與靜態(tài)路由發(fā)生沖突時(shí),以靜態(tài)路由為準。
——動(dòng)態(tài)路由是網(wǎng)絡(luò )中的路由器之間相互通信,傳遞路由信息,利用收到的路由信息更新路由器表的過(guò)程。它能實(shí)時(shí)地適應網(wǎng)絡(luò )結構的變化。如果路由更新信息表明發(fā)生了網(wǎng)絡(luò )變化,路由選擇軟件就會(huì )重新計算路由,并發(fā)出新的路由更新信息。這些信息通過(guò)各個(gè)網(wǎng)絡(luò ),引起各路由器重新啟動(dòng)其路由算法,并更新各自的路由表以動(dòng)態(tài)地反映網(wǎng)絡(luò )拓撲變化。動(dòng)態(tài)路由適用于網(wǎng)絡(luò )規模大、網(wǎng)絡(luò )拓撲復雜的網(wǎng)絡(luò )。當然,各種動(dòng)態(tài)路由協(xié)議會(huì )不同程度地占用網(wǎng)絡(luò )帶寬和CPU資源。
——靜態(tài)路由和動(dòng)態(tài)路由有各自的特點(diǎn)和適用范圍,因此在網(wǎng)絡(luò )中動(dòng)態(tài)路由通常作為靜態(tài)路由的補充。當一個(gè)分組在路由器中進(jìn)行尋徑時(shí),路由器首先查找靜態(tài)路由,如果查到則根據相應的靜態(tài)路由轉發(fā)分組;否則再查找動(dòng)態(tài)路由。
——根據是否在一個(gè)自治域內部使用,動(dòng)態(tài)路由協(xié)議分為內部網(wǎng)關(guān)協(xié)議(IGP)和外部網(wǎng)關(guān)協(xié)議(EGP)。這里的自治域指一個(gè)具有統一管理機構、統一路由策略的網(wǎng)絡(luò )。自治域內部采用的路由選擇協(xié)議稱(chēng)為內部網(wǎng)關(guān)協(xié)議,常用的有RIP、OSPF;外部網(wǎng)關(guān)協(xié)議主要用于多個(gè)自治域之間的路由選擇,常用的是BGP和BGP-4。下面分別進(jìn)行簡(jiǎn)要介紹。
3.1 RIP路由協(xié)議
——RIP協(xié)議最初是為Xerox網(wǎng)絡(luò )系統的Xerox parc通用協(xié)議而設計的,是Internet中常用的路由協(xié)議。RIP采用距離向量算法,即路由器根據距離選擇路由,所以也稱(chēng)為距離向量協(xié)議。路由器收集所有可到達目的地的不同路徑,并且保存有關(guān)到達每個(gè)目的地的最少站點(diǎn)數的路徑信息,除到達目的地的最佳路徑外,任何其它信息均予以丟棄。同時(shí)路由器也把所收集的路由信息用RIP協(xié)議通知相鄰的其它路由器。這樣,正確的路由信息逐漸擴散到了全網(wǎng)。
——RIP使用非常廣泛,它簡(jiǎn)單、可靠,便于配置。但是RIP只適用于小型的同構網(wǎng)絡(luò ),因為它允許的最大站點(diǎn)數為15,任何超過(guò)15個(gè)站點(diǎn)的目的地均被標記為不可達。而且RIP每隔30s一次的路由信息廣播也是造成網(wǎng)絡(luò )的廣播風(fēng)暴的重要原因之一。
3.2 OSPF路由協(xié)議
——80年代中期,RIP已不能適應大規模異構網(wǎng)絡(luò )的互連,0SPF隨之產(chǎn)生。它是網(wǎng)間工程任務(wù)組織(1ETF)的內部網(wǎng)關(guān)協(xié)議工作組為IP網(wǎng)絡(luò )而開(kāi)發(fā)的一種路由協(xié)議。
——0SPF是一種基于鏈路狀態(tài)的路由協(xié)議,需要每個(gè)路由器向其同一管理域的所有其它路由器發(fā)送鏈路狀態(tài)廣播信息。在OSPF的鏈路狀態(tài)廣播中包括所有接口信息、所有的量度和其它一些變量。利用0SPF的路由器首先必須收集有關(guān)的鏈路狀態(tài)信息,并根據一定的算法計算出到每個(gè)節點(diǎn)的最短路徑。而基于距離向量的路由協(xié)議僅向其鄰接路由器發(fā)送有關(guān)路由更新信息。
——與RIP不同,OSPF將一個(gè)自治域再劃分為區,相應地即有兩種類(lèi)型的路由選擇方式:當源和目的地在同一區時(shí),采用區內路由選擇;當源和目的地在不同區時(shí),則采用區間路由選擇。這就大大減少了網(wǎng)絡(luò )開(kāi)銷(xiāo),并增加了網(wǎng)絡(luò )的穩定性。當一個(gè)區內的路由器出了故障時(shí)并不影響自治域內其它區路由器的正常工作,這也給網(wǎng)絡(luò )的管理、維護帶來(lái)方便。
3.3 BGP和BGP-4路由協(xié)議
——BGP是為T(mén)CP/IP互聯(lián)網(wǎng)設計的外部網(wǎng)關(guān)協(xié)議,用于多個(gè)自治域之間。它既不是基于純粹的鏈路狀態(tài)算法,也不是基于純粹的距離向量算法。它的主要功能是與其它自治域的BGP交換網(wǎng)絡(luò )可達信息。各個(gè)自治域可以運行不同的內部網(wǎng)關(guān)協(xié)議。BGP更新信息包括網(wǎng)絡(luò )號/自治域路徑的成對信息。自治域路徑包括到達某個(gè)特定網(wǎng)絡(luò )須經(jīng)過(guò)的自治域串,這些更新信息通過(guò)TCP傳送出去,以保證傳輸的可靠性。
——為了滿(mǎn)足Internet日益擴大的需要,BGP還在不斷地發(fā)展。在最新的BGp4中,還可以將相似路由合并為一條路由。
評論