本書以Cisco硬件模擬器——Dynamips和GNS3為實驗平臺(模擬Cisco c1700、c2600、c3600、c3700、c7200系列路由器和交換機),以Cisco IOS(12.4版本)為操作系統(tǒng)平臺,講解了一系列緊扣計算機網(wǎng)絡理論知識,同時又貼近實戰(zhàn)的實驗內容。 全書以計算機網(wǎng)絡TCP/IP體系結構為組織線索,分別為網(wǎng)絡接口層、網(wǎng)絡層、運輸層和應用層上的重要知識點提供了配套實驗,依次介紹了實驗環(huán)境的安裝使用、以太網(wǎng)交換機和路由器的基本配置方法、局域網(wǎng)技術(VTP、STP協(xié)議以及VLAN間路由)和廣域網(wǎng)技術(PPP封裝和PAP、CHAP認證)、路由協(xié)議(靜態(tài)路由協(xié)議、路由信息協(xié)議和OSPF路由協(xié)議)、訪問控制列表(ACL)、網(wǎng)絡地址轉換(NAT),以及應用層上的動態(tài)主機配置協(xié)議(DHCP)和域名系統(tǒng)(DNS)。 本書適合作為高等院校計算機、軟件工程等專業(yè)開設了“計算機網(wǎng)絡”課程的本科生學習“計算機網(wǎng)絡”的配套實驗教材,同時可供對計算機網(wǎng)絡設備需進一步了解的廣大開發(fā)人員和研究人員作為參考。
第5章
路 由 協(xié) 議
本章學習目標
掌握路由協(xié)議的分類、作用和工作原理;
理解路由表各項的含義;
掌握路由協(xié)議配置方法;
掌握對路由協(xié)議配置的檢查與測試;
能夠使用路由技術實現(xiàn)網(wǎng)絡互通。
本章首先向讀者介紹路由協(xié)議的作用、工作原理和類型,接著分別介紹靜態(tài)路由、RIP動態(tài)路由協(xié)議和OSPF動態(tài)路由協(xié)議三種路由協(xié)議的配置方法,讓讀者能夠自行使用路由協(xié)議實現(xiàn)網(wǎng)絡互通。
5.1路由協(xié)議概述
通過網(wǎng)絡接口層上的設備(如交換機),可以組建一個個獨立的網(wǎng)絡,這些網(wǎng)絡各自采用不同網(wǎng)絡號的IP地址,邏輯上是分開的。路由器(Router)用于連接多個邏輯上分開的網(wǎng)絡,轉發(fā)這些網(wǎng)絡之間的通信數(shù)據(jù)。同時,網(wǎng)絡接口層上的協(xié)議多種多樣(如前面學習過的以太網(wǎng)CSMA/CD和廣域網(wǎng)的PPP協(xié)議等),基于這些不同的協(xié)議,組建各種異構的網(wǎng)絡,這些異構網(wǎng)絡無法通信。而路由器為異構網(wǎng)絡提供了互聯(lián)的機制,實現(xiàn)了異構網(wǎng)絡之間的數(shù)據(jù)通信。
路由信息是用于指導網(wǎng)絡間數(shù)據(jù)(IP數(shù)據(jù)報)通信的路徑信息。由于網(wǎng)絡路徑選擇是一個非常復雜的問題,路由器之間往往需要通過一定的協(xié)議通信才能獲取這些路由信息。路由協(xié)議是路由器事先約定好的交換路由信息的規(guī)定和標準。路由協(xié)議通過路由信息的交換生成并維護轉發(fā)引擎所需的路由表。路由協(xié)議作為TCP/IP協(xié)議族中重要成員之一,其尋徑過程實現(xiàn)的好壞將顯著地影響整個Internet網(wǎng)絡的通信效率。
1. 路由原理
路由是把數(shù)據(jù)從一個網(wǎng)絡轉發(fā)到另一個網(wǎng)絡的過程,完成這個過程的設備就是路由器。數(shù)據(jù)在網(wǎng)絡上以數(shù)據(jù)包為單元傳送。每個數(shù)據(jù)包都攜帶兩個邏輯地址(在Internet中這個邏輯地址就是IP地址),一個是數(shù)據(jù)的源地址,另一個是數(shù)據(jù)的目的地地址,所以每個數(shù)據(jù)包可以被獨立地轉發(fā)。以圖5.1為例解釋一下路由過程。
圖5.1路由過程示意圖
在圖5.1中,兩臺路由器R1和R2使用兩條鏈路把兩個網(wǎng)絡連接起來,它們是192.168.1.0/24和192.168.2.0/24。兩臺路由器互連又占用了兩個網(wǎng)段號,它們是10.0.0.0/8和11.0.0.0/8。
假如Host1向Host2發(fā)送數(shù)據(jù)。拓撲顯示,Host1和Host2不在同一個網(wǎng)絡,數(shù)據(jù)要到達Host2有兩條路可選,一條路是由路由器R1的s0/0接口和路由器R2的s0/0接口互連所形成的鏈路; 另一條路是由路由器R1的f0/1接口和路由器R2的f0/0接口互連所形成的鏈路。
Host1是看不到這個拓撲圖的,它的首要任務是判斷Host2是否與自己在同一個網(wǎng)段內。它的做法是: 用自己的IP地址和子網(wǎng)掩碼做“與”運算,計算出自己的網(wǎng)絡號是192.168.1.0; 再用Host2的IP地址(這個地址Host1知道)和自己的掩碼進行“與”運算,計算出Host2的網(wǎng)絡號是192.168.2.0。然后比較這兩個計算結果,結果相同表示在同一網(wǎng)段內,結果不同則表示兩者不在同一個網(wǎng)絡中。
不同網(wǎng)絡之間的主機通信需要借助路由器完成。路由器就像是郵局,用戶把數(shù)據(jù)送到路由器后,具體怎么“郵遞”就是路由器的工作,用戶不必操心。因此,Host1只需將數(shù)據(jù)包送到距它最近的路由器(R1)即可,如同生活中人們只需要把信件投遞到最近的郵局一樣。因此,Host1需要知道路由器R1的位置。在Host1上除了配置IP地址和掩碼外,還配置了另外一個參數(shù)——默認網(wǎng)關地址,其實就是路由器R1與Host1處于同一個網(wǎng)絡的接口——f0/0的地址。在Host1上設置默認網(wǎng)關的目的就是把那些去往外網(wǎng)(不同于自己所在的網(wǎng)絡)的數(shù)據(jù)發(fā)送給默認網(wǎng)關。為了找到路由器R1的f0/0接口的MAC地址,Host1使用了地址解析協(xié)議(ARP)。
獲得了必要信息之后,Host1開始封裝數(shù)據(jù):
(1) 把f0/0接口的MAC地址封裝在數(shù)據(jù)鏈路層的目的地址域;
(2) 把自己的MAC地址封裝在數(shù)據(jù)鏈路層的源地址域;
(3) 把自己的IP地址封裝在網(wǎng)絡層的源地址域;
(4) 把Host2的IP地址封裝在網(wǎng)絡層的目的地址域。
之后,Host1把數(shù)據(jù)發(fā)送出去。
路由器R1收到Host1送來的數(shù)據(jù)后,把數(shù)據(jù)解開到第三層,讀取數(shù)據(jù)包中的目的IP地址,然后查閱路由表決定如何轉發(fā)數(shù)據(jù)。路由表是路由器轉發(fā)數(shù)據(jù)的依據(jù)。如果路由表中沒有任何可用的路徑,路由器就會把該數(shù)據(jù)丟棄。路由表中記錄有以下內容:
(1) 已知的目標網(wǎng)絡號(目的地網(wǎng)絡);
(2) 到達目標網(wǎng)絡的距離;
(3) 到達目標網(wǎng)絡應該經(jīng)由自己哪一個接口;
(4) 到達目標網(wǎng)絡的下一臺路由器的地址是什么。
路由器使用最近的路徑轉發(fā)數(shù)據(jù),而且只把數(shù)據(jù)交給路徑中的下一臺路由器,并不負責把數(shù)據(jù)送到最終目的地。
對于本例來說,路由器R1有兩種選擇,一種選擇是經(jīng)由自己的s0/0接口把數(shù)據(jù)交給路由器R2; 一種選擇是經(jīng)由自己的f0/1接口把數(shù)據(jù)交給路由器R2。選擇路徑的依據(jù)是: 經(jīng)由哪一條鏈路到達目標網(wǎng)絡的距離近,路由器就使用哪一條鏈路。這里假設經(jīng)由f0/1接口的路徑近。路由器R1經(jīng)由f0/1接口把數(shù)據(jù)轉發(fā)給路由器R2。
路由器R2收到路由器R1的數(shù)據(jù)后所做的工作跟前面的R1所做的工作一樣,即查閱路由表。不同的是在自己的路由表里有一條記錄,該記錄表明它的f0/1接口正好和數(shù)據(jù)聲稱到達的網(wǎng)絡相連,也就是說,Host2和它的f0/1接口在同一個網(wǎng)絡中。路由器R2使用ARP獲得Host2的MAC地址之后開始封裝數(shù)據(jù):
(1) 把Host2的MAC地址封裝在數(shù)據(jù)鏈路層的目的地址域;
(2) 把自己f0/1接口的MAC地址封裝在數(shù)據(jù)鏈路層的源地址域;
(3) 網(wǎng)絡層的兩個IP地址不變。
然后把數(shù)據(jù)傳送給Host2。
至此,數(shù)據(jù)傳遞的一個單程完成了。
Host2回應給Host1的數(shù)據(jù)經(jīng)過同樣的處理過程到達目的地——Host1,只不過是數(shù)據(jù)包中的目的地IP地址是Host1的地址,先經(jīng)過路由器R2再經(jīng)由路由器R1,最后到達Host1。
從數(shù)據(jù)轉發(fā)的過程看出,為了能夠轉發(fā)數(shù)據(jù),路由器必須對整個網(wǎng)絡拓撲有個清晰的了解,并把這些信息反映在路由表里。當網(wǎng)絡拓撲結構發(fā)生變化時,路由器也需要及時地在路由表里反映出這些變化,這項工作由路由器的路由計算功能來完成。路由器還有一項獨立于路由計算功能的工作就是交換/轉發(fā)數(shù)據(jù),即把數(shù)據(jù)從進入接口轉移到外出接口的過程。路由器必須具備這兩種功能。
2. 路由的分類
根據(jù)產生的方式、依據(jù)的算法和應用范圍的不同,路由可進行如下分類:
1) 按產生的方式分類
路由信息根據(jù)產生的方式和特點可以分為直連路由、靜態(tài)路由和動態(tài)路由。
2) 按依據(jù)的算法分類
路由協(xié)議分為距離矢量(Distance Vector)型路由協(xié)議、鏈路狀態(tài)(Link State)型路由協(xié)議和混合(Hybrid)型路由協(xié)議。在IP協(xié)議集中,典型的距離矢量路由協(xié)議有RIP、RIPv2和IGRP; 典型的鏈路狀態(tài)協(xié)議有OSPF。Cisco專有協(xié)議EIGRP協(xié)議屬于混合型路由協(xié)議。
3) 按應用范圍分類
根據(jù)路由協(xié)議運行在自治系統(tǒng)內還是運行在自治系統(tǒng)之間,路由協(xié)議又分為內部網(wǎng)關路由協(xié)議(Interior Gateway routing Protocol,IGP)和外部網(wǎng)關路由協(xié)議(Exterior Gateway routing Protocol,EGP)。在IP協(xié)議集中,屬于IGP的有RIP、RIPv2、IGRP、EIGRP和OSPF; 屬于EGP的是邊界網(wǎng)關協(xié)議(Border Gateway Protocol,BGP)。
3. 路由表的形成
路由器在轉發(fā)數(shù)據(jù)時,要先在路由表(Routing Table)中查找相應的路由。路由器有以下三種途徑建立路由。
(1) 直連路由: 路由器自動添加和自己直接連接的網(wǎng)絡的路由;
(2) 靜態(tài)路由: 網(wǎng)絡管理員手動輸入到路由器的路由;
(3) 動態(tài)路由: 由路由協(xié)議(Routing Protocol)動態(tài)建立的路由。
4. 管理距離(AD)
管理距離用來表示路由的可信度,路由器可能從多種途徑獲得同一路由,例如,一個路由器要獲得“10.2.0.0/24”網(wǎng)絡的路由,可以來自RIP,也可以是靜態(tài)路由。不同途徑獲得的路由可能采取不同的路徑到達目的網(wǎng)絡,為了區(qū)分不同路由協(xié)議的可信度,用管理距離加以表示。表5.1是通過各種路由協(xié)議獲得的路由的默認管理距離。路由表中管理距離越小,說明路由的可靠程度越高; 靜態(tài)路由的管理距離為1,說明手工輸入的路由優(yōu)先于其他路由。
atic Route)是一種特殊的路由,它是由網(wǎng)絡管理員手工配置的路由信息。當網(wǎng)絡的拓撲結構或鏈路的狀態(tài)發(fā)生變化時,網(wǎng)絡管理員需要手工去修改路由表中相關的靜態(tài)路由信息。靜態(tài)路由信息在默認情況下是私有的,不會傳遞給其他的路由器。當然,網(wǎng)絡管理員也可以通過對路由器進行設置使之成為共享的。靜態(tài)路由一般適用于比較簡單的網(wǎng)絡環(huán)境,在這樣的環(huán)境中,網(wǎng)絡管理員易于清楚地了解網(wǎng)絡的拓撲結構,便于設置正確的路由信息。
1. 靜態(tài)路由的優(yōu)點
(1) 手工配置,可以對路由表查詢實施精確的控制,改進網(wǎng)絡的性能。
(2) 不需要動態(tài)路由協(xié)議參與,這將會減少路由器的開銷,為重要的應用保證帶寬,減少路由器之間鏈路上的數(shù)據(jù)傳輸量,因為網(wǎng)絡在使用靜態(tài)路由后,路由器之間沒有必要進行路由信息的交換。
(3) 在一個支持DDR(DialonDemand Routing)的網(wǎng)絡中,撥號鏈路只在需要時才撥通,因此不能為動態(tài)路由信息表提供路由信息的變更情況。在這種情況下,網(wǎng)絡也適合使用靜態(tài)路由。
(4) 網(wǎng)絡安全保密性高。動態(tài)路由因為需要路由器之間頻繁地交換各自的路由表,而對路由表的分析可以揭示網(wǎng)絡的拓撲結構和網(wǎng)絡地址等信息。因此,出于安全方面的考慮網(wǎng)絡也可以采用靜態(tài)路由。
2. 靜態(tài)路由的缺點
大型和復雜的網(wǎng)絡環(huán)境通常不宜采用靜態(tài)路由,很明顯,既然是人為的手工輸入信息,那么如果網(wǎng)絡規(guī)模過大,需要的工作量很大。一方面,網(wǎng)絡管理員難以全面地了解整個網(wǎng)絡的拓撲結構; 另一方面,當網(wǎng)絡的拓撲結構和鏈路狀態(tài)發(fā)生變化時,路由器中的靜態(tài)路由信息需要大范圍地調整,這一工作的難度和復雜程度非常高。
3. 默認路由
默認路由是一種特殊的路由。當路由器在查找路由表,沒有找到與目標相匹配的路由表項時,默認路由則是路由器為數(shù)據(jù)指定的路由。在路由表中,默認路由是以到網(wǎng)絡0.0.0.0/0的路由形式出現(xiàn)。所有的網(wǎng)絡都會和這條路由記錄符合,由于路由器在查詢路由表時采用的是深度優(yōu)先原則,也就是子網(wǎng)掩碼位數(shù)長的路由記錄先作轉發(fā)。而默認路由的掩碼為0,所以最后考慮。這樣就保證了路由器將在路由表中查詢不到數(shù)據(jù)包的相關路由信息時最后采用默認路由轉發(fā)。默認路由可以通過靜態(tài)路由手工配置,某些動態(tài)路由協(xié)議也可以自動生成默認路由,如OSPF。默認路由通常會在存根網(wǎng)絡(Stub Network,即只有一個出口的網(wǎng)絡)中使用。在存根網(wǎng)絡出口上配置這樣一條默認路由可以代替大量具體路由項,因此可以極大地減少路由表大小。
4. 靜態(tài)路由的匯總
匯總路由指的是通過對一組子網(wǎng)匯總,可以使靜態(tài)路由項的數(shù)目迅速減少。但是在對地址進行匯總的時候需要小心,當匯總不正確的時候,可能會有意想不到的路由行為發(fā)生。下面是一個匯總路由的例子。
……