配CISCO RIP

路由器 (http://www.ydaedu.com.cn)的工做不外乎兩個,一是路徑選擇,二是數據轉發。進行數據轉發相對容易一些,難的是如何判斷到達目的網絡的最佳路徑。因此,路徑選擇就成了路由器最重要的工做。  許多路由協議能夠完成路徑選擇的工做,常見的有RIP,OSPF,IGRP和EIGRP協議等等。這些算法中,咱們不能簡單的說誰好誰壞,由於算法的優劣要依據使用的環境來判斷。好比RIP協議,它有時不能準確地選擇最優路徑,收斂的時間也略顯長了一些,但對於小規模的,沒有專業人員維護的網絡來講,它是首選的路由協議,咱們看中的是它的簡單性。    若是你手頭正有一個小的網絡項目,那麼,就讓咱們來安排一個計劃,30分鐘讀完本文(一讀),20分鐘再細看一遍本文說起的命令和操做方法(二讀),用30分鐘配置網絡上的全部路由器(小網絡,沒有幾臺路由器能夠配的),最後20分鐘,檢查一下網絡工做是否正常。好了,一百分鐘,你的RIP網絡運轉起來了。就這麼簡單,不信,請繼續往下看。    1、RIP是什麼  RIP(Routing Information Protocols,路由信息協議)是使用最普遍的距離向量協議,它是由施樂(Xerox)在70年×××發的。當時,RIP是XNS(Xerox Network Service,施樂網絡服務)協議簇的一部分。TCP/IP版本的RIP是施樂協議的改進版。RIP最大的特色是,不管實現原理仍是配置方法,都很是簡單。    度量方法  RIP的度量是基於跳數(hops count)的,每通過一臺路由器,路徑的跳數加一。如此一來,跳數越多,路徑就越長,RIP算法會優先選擇跳數少的路徑。RIP支持的最大跳數是15,跳數爲16的網絡被認爲不可達。    路由更新  RIP中路由的更新是經過定時廣播實現的。缺省狀況下,路由器每隔30秒向與它相連的網絡廣播本身的路由表,接到廣播的路由器將收到的信息添加至自身的路由表中。每一個路由器都如此廣播,最終網絡上全部的路由器都會得知所有的路由信息。正常狀況下,每30秒路由器就能夠收到一次路由信息確認,若是通過180秒,即6個更新週期,一個路由項都沒有獲得確認,路由器就認爲它已失效了。若是通過240秒,即8個更新週期,路由項仍沒有獲得確認,它就被從路由表中刪除。上面的30秒,180秒和240秒的延時都是由計時器控制的,它們分別是更新計時器(Update Timer)、無效計時器(Invalid Timer)和刷新計時器(Flush Timer)。    路由循環  距離向量類的算法容易產生路由循環,RIP是距離向量算法的一種,因此它也不例外。若是網絡上有路由循環,信息就會循環傳遞,永遠不能到達目的地。爲了不這個問題,RIP等距離向量算法實現了下面4個機制。  ? 水平分割(split horizon)。水平分割保證路由器記住每一條路由信息的來源,而且不在收到這條信息的端口上再次發送它。這是保證不產生路由循環的最基本措施。  ? 毒性逆轉(poison reverse)。當一條路徑信息變爲無效以後,路由器並不當即將它從路由表中刪除,而是用16,即不可達的度量值將它廣播出去。這樣雖然增長了路由表的大小,但對消除路由循環頗有幫助,它能夠當即清除相鄰路由器之間的任何環路。  ? 觸發更新(trigger update)。當路由表發生變化時,更新報文當即廣播給相鄰的全部路由器,而不是等待30秒的更新週期。一樣,當一個路由器剛啓動RIP時,它廣播請求報文。收到此廣播的相鄰路由器當即應答一個更新報文,而沒必要等到下一個更新週期。這樣,網絡拓撲的變化會最快地在網絡上傳播開,減小了路由循環產生的可能性。  ? 抑制計時(holddown timer)。一條路由信息無效以後,一段時間內這條路由都處於抑制狀態,即在必定時間內再也不接收關於同一目的地址的路由更新。若是,路由器從一個網段上得知一條路徑失效,而後,當即在另外一個網段上得知這個路由有效。這個有效的信息每每是不正確的,抑制計時避免了這個問題,並且,當一條鏈路頻繁起停時,抑制計時減小了路由的浮動,增長了網絡的穩定性。  即使採用了上面的4種方法,路由循環的問題也不能徹底解決,只是獲得了最大程度的減小。一旦路由循環真的出現,路由項的度量值就會出現計數到無窮大(Count to Infinity)的狀況。這是由於路由信息被循環傳遞,每傳過一個路由器,度量值就加1,一直加到16,路徑就成爲不可達的了。RIP選擇16做爲不可達的度量值是很巧妙的,它既足夠的大,保證了多數網絡可以正常運行,又足夠小,使得計數到無窮大所花費的時間最短。    鄰居  有些網絡是NBMA(Non-Broadcast MultiAccess,非廣播多路訪問)的,即網絡上不容許廣播傳送數據。對於這種網絡,RIP就不能依賴廣播傳遞路由表了。解決方法有不少,最簡單的是指定鄰居(neighbor),即指定將路由表發送給某一臺特定的路由器。    RIP的缺陷  RIP雖然簡單易行,而且久經考驗,可是也存在着一些很重要的缺陷,主要有如下幾點:  ? 過於簡單,以跳數爲依據計算度量值,常常得出非最優路由;  ? 度量值以16爲限,不適合大的網絡;  ? 安全性差,接受來自任何設備的路由更新;  ? 不支持無類IP地址和VLSM(Variable Length Subnet Mask,變長子網掩碼);  ? 收斂緩慢,時間常常大於5分鐘;  ? 消耗帶寬很大。    2、路由器怎麼配    路由器自己就是一臺有多個網絡接口的計算機,同普通計算機同樣,它也有中央處理器(CPU)、系統主存(RAM)和只讀存儲器(ROM)等部件。  除此以外,一個很重要的部分是它的網絡接口(Interface),爲了連結不一樣類型的網絡,路由器的網絡接口種類繁多,好比應用在局域網中的以太、快速以太、令牌環接口,應用於廣域網的V.3五、RS23二、ISDN BRI PRI接口等等。  路由器的外存儲器主要有兩種:NVRAM(Non-Volatile RAM,非易失性RAM)和Flash(閃存)。NVRAM存儲路由器的配置文件,Flash用於存放操做系統IOS(Internet Operating System)。    配置模式  CISCO路由器最基本的配置模式有兩種:用戶(user)和特權(privileged)。在用戶模式下,只能顯示路由器的狀態,特權模式還能夠更改路由器的配置。  特權模式下能夠進入安裝(setup)模式、全局配置(global config)模式,局部配置(sub config)模式。   ? 安裝模式提供菜單提示,引導用戶進行路由器的基本配置。新路由器第一次啓動後,自動進入安裝模式。  ? 全局配置模式中能夠改變路由器的全局參數,如主機名、密碼等等。  ? 局部配置改變路由器的局部參數,例如某一個網絡接口的配置、某一種路由協議的配置等等。    配置方法  路由器的配置可使用多種方法,下面這五種是最多見的:  ? 使用超級終端類的工具經過串行口登陸控制檯(console port)。  ? 將調制解調器連結至路由器的輔助口(auxiliary port),遠程撥號登陸控制檯。  ? 遠程登陸(telnet)至路由器的某一IP 地址,經過VTY(virtue terminal line,虛擬終端)方式訪問路由器。  ? 編輯配置文件,並經過TFTP上傳至路由器。  ? 經過網絡管理軟件(network management system)遠程設置路由器參數。    安裝路由器  假設咱們的項目網絡中只有三臺路由器。網絡拓撲以下圖:      它們放在北京、上海和天津,名字分別叫testBJ、testSH和testTJ。咱們採用B類保留IP地址172.16.0.0,共劃分了四個子網172.16.1.0、172.16.2.0、172.16.3.0和172.16.4.0,子網掩碼均爲255.255.255.0。    基本配置  將包裝中附帶的串行電纜一端鏈接到Beijing路由器的console口上,另一端鏈接到計算機的com口上。啓動超級終端程序(Win95/NT中),做適當配置,鏈接路由器。給路由器加電,連續鍵入數個回車,出現以下提示符,顯示路由器處於用戶模式。  testBJ>  由用戶模式轉入特權模式,使用enable命令。  testBJ> enable  testBJ#  和UNIX主機同樣,「#」表明特權(root)用戶的系統提示符,它表示你進入了特權模式。與enable做用相反,即從特權模式返回用戶模式的命令是disable。  特權模式下,可使用config terminal命令進入全局配置模式。全局配置模式下,可使用一些配置子項的名稱進入局部配置模式。返回的方法都是exit命令。其中,從局部配置模式直接返回特權模式的命令是end。以下所示。  testBJ#config terminal  Enter configuration commands, one per line. End with CNTL/Z.  testBJ(config)#router rip  testBJ(config-router)#exit  testBJ(config)#exit  testBJ#  CISCO IOS的一個很是引人的特點是它的命令行幫助,一個?解決了全部的問題。?能夠顯示當前模式下的命令列表,能夠顯示命令全稱,還能夠顯示命令的參數和幫助信息。在任何對命令不肯定的地方鍵入?,系統會給出提示信息。  CISCO路由器還支持命令簡寫功能,只要不引發歧義,能夠用命令的前幾個字符替代整個命令,這樣,配置時的打字工做量就小多了。    路由器的所有配置信息都保存在配置文件中,當前正在使用的配置文件是running-config,它存放在系統內存裏,咱們在特權模式下對配置的修改會當即反映到running-config中。startup-config是存儲在NVRAM中的配置文件,只有它是掉電不丟失的,因此若是想使所作的修改到下一次啓動時仍然有效,就必須保存當前配置。存盤命令以下:  testBJ#copy running-config startup-config  Building configuration...  [OK]  testBJ#    更改路由器名、密碼  路由器的名字能夠用hostname命令修改。  Router(config)#hostname testBJ  testBJ(config)#  enable password和enable secret命令能夠修改特權模式的密碼。  testBJ(config)#enable password cisco  testBJ(config)#enable secret cisco  進入line console局部配置模式下,修改console登陸密碼;進入line vty局部配置模式,修改telnet登陸的密碼。login命令指出須要登陸,修改密碼的命令都是password。  testBJ(config)#line console 0  testBJ(config-line)#login  testBJ(config-line)#password cisco  testBJ(config-line)#exit  testBJ(config)#line vty 0 4  testBJ(config-line)#login  testBJ(config-line)#password cisco    測試連通性  打開其他兩臺路由器,按上述方法進行配置,而後就能夠檢查它們之間是否連通了。  測試線路連通性的方法有三種,ping、traceroute和telnet。ping能夠檢測目的地是否可達;trace不只檢測連通性,還給出到達目的地所通過的路徑;telnet測試應用層軟件的連通性,以下所示。  testBJ#ping 172.16.4.2  Type escape sequence to abort.  Sending 5, 100-byte ICMP Echos to 172.16.4.2, timeout is 2 seconds:  !!!!!  Success rate is 100 percent (5/5), round-trip min/avg/max = 24/25/28 ms  testBJ#traceroute 172.16.4.2  Type escape sequence to abort.  Tracing the route to 172.16.4.2  1 172.16.2.2 16 msec 16 msec *  testBJ#telnet 172.16.4.2  Trying 172.16.4.2 ... Open  User Access Verification  Password:  testTJ>  172.16.4.2是路由器testTJ上的一個端口,咱們在testBJ上運行上述三個命令,得知它運行正常。    顯示當前狀態  爲了使網絡管理員可以方便地瞭解路由器的狀態,CISCO路由器提供了豐富的show命令。咱們在這裏介紹最簡單的幾個,以下所示。  show version命令顯示路由器的硬軟件版本號及配置信息。  show flash:命令至關於DOS的dir命令,顯示flash中包含的文件信息。  show interface命令顯示網絡接口的狀態。  配置路由器的過程當中,最重要的一個show命令莫過於查看配置文件的內容,能夠用show命令查看running-config或startup-config,以下所示。  show running-config  show startup-config  配置文件是一個文本文件,其中包含着你鍵入的每一條配置命令。能夠將配置文件下載到計算機上,用文本編輯器修改以後,再傳回路由器。    3、RIP要配什麼    IP地址配置  咱們可使用interface命令進入局部配置模式,而後利用ip address設置接口的IP地址。以下所示。  testBJ#conf t  Enter configuration commands, one per line. End with CNTL/Z.  testBJ(config)#interface e0/1  testBJ(config-if)#ip address 172.16.1.2 255.255.255.0  testBJ(config-if)#  爲了便於配置和記憶,你還能夠給每一個端口添加一些描述信息。以下所示,在端口局部配置模式下使用description命令。  testBJ(config-if)#description connect to testSH  testBJ(config-if)#end  testBJ#  有些網絡是NBMA(Non-Broadcast MultiAccess,非廣播多路訪問)的,即網絡上不容許廣播傳送數據。對於這種網絡,RIP就不能依賴廣播傳遞路由表了。解決方法有不少,最簡單的是指定鄰居(neighbor),即指定將路由表發送給某一臺特定的路由器。  有些網絡是NBMA(Non-Broadcast MultiAccess,非廣播多路訪問)的,即網絡上不容許廣播傳送數據。對於這種網絡,RIP就不能依賴廣播傳遞路由表了。解決方法有不少,最簡單的是指定鄰居(neighbor),即指定將路由表發送給某一臺特定的路由器。    RIP配置  RIP是最容易配置的路由協議。配置它只須要兩步操做,首先,指定使用RIP協議,而後,聲明所鏈接的網絡號,以下所示。  testBJ(config)#router rip  testBJ(config-router)#network 172.16.0.0  testBJ(config-router)#end  testBJ#  router rip命令用於指定使用RIP協議,network命令聲明網絡號,因爲RIP是一個有類路由協議,因此沒必要聲明各個子網號。  對每一臺路由器重複上述操做,一個使用RIP路由的網絡就建成了。    測試配置正確性  配置RIP以後,要檢查數據是否能夠被正確路由。除了可使用上面提到的連通性測試工具以外,還有如下幾個命令:  ? sh ip route用於檢測路由表;  ? sh ip protocols用於檢查路由協議情況;  ? debug ip rip用於調試RIP協議信息。  使用sh ip route命令顯示各臺路由器的路由表。  testBJ#sh ip route  Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP  D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area  N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2  E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP  i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2,   * - candidate default, U - per-user static route, o - ODR  Gateway of last resort is not set  172.16.0.0/24 is subnetted, 4 subnets  R 172.16.4.0 [120/1] via 172.16.2.2, 00:00:12, Serial1/0  C 172.16.1.0 is directly connected, Ethernet0/1  C 172.16.2.0 is directly connected, Serial1/0  R 172.16.3.0 [120/1] via 172.16.1.3, 00:00:09, Ethernet0/1  [120/1] via 172.16.2.2, 00:00:22, Serial1/0  上面顯示的是北京路由器的路由信息。字母C開頭的是直接相連的網絡,有172.16.1.0和172.16.2.0,分別鏈接在e0/1和s1/0端口上。字母R開頭的是RIP協議學習到的路由,有172.16.3.0和172.16.4.0,其中,到172.16.3.0有兩條路徑供選擇,分別經由testSH和testTJ路由器。對比網絡拓撲圖,能夠看出實際狀況與設計的徹底一致。  中括號裏的內容是路由項的管理距離和度量值,RIP的缺省管理距離是120,到達三、4子網的度量值是1,即通過1個路由器可達。  一樣的命令在另外兩臺路由器上運行,結果以下。  testSH#sh ip route  Gateway of last resort is not set  172.16.0.0/24 is subnetted, 4 subnets  R 172.16.4.0 [120/1] via 172.16.3.2, 00:00:13, Ethernet0/0  C 172.16.1.0 is directly connected, Ethernet0/1  R 172.16.2.0 [120/1] via 172.16.1.2, 00:00:11, Ethernet0/1  [120/1] via 172.16.3.2, 00:00:13, Ethernet0/0  C 172.16.3.0 is directly connected, Ethernet0/0    testTJ#sh ip route  Gateway of last resort is not set  172.16.0.0/24 is subnetted, 4 subnets  C 172.16.4.0 is directly connected, Ethernet0/0  R 172.16.1.0 [120/1] via 172.16.3.3, 00:00:07, Ethernet0/1  [120/1] via 172.16.2.3, 00:00:19, Serial1/0  C 172.16.2.0 is directly connected, Serial1/0  C 172.16.3.0 is directly connected, Ethernet0/1  分析上述命令輸出時,必定要隨時參照拓撲圖,離開網絡拓撲,上面的信息就沒有任何意義。動態路由的靈活性體如今一條鏈路出現故障,路由算法會自動切換到迂迴鏈路上。例如咱們將testBJ和testTJ之間的串行線纜斷開,一段時間後,再檢查路由表,以下所示。  testBJ#sh ip route  Gateway of last resort is not set  172.16.0.0/24 is subnetted, 3 subnets  R 172.16.4.0 [120/2] via 172.16.1.3, 00:00:22, Ethernet0/1  C 172.16.1.0 is directly connected, Ethernet0/1  R 172.16.3.0 [120/1] via 172.16.1.3, 00:00:22, Ethernet0/1  咱們發現串行鏈路所在的子網2斷開了,到網絡172.16.4.0網絡的數據包都將繞經testSH路由器。  sh ip protocols命令能夠顯示當前路由協議的情況,以下所示。  testBJ#sh ip protocols  Routing Protocol is "rip"  Sending updates every 30 seconds, next due in 19 seconds  Invalid after 180 seconds, hold down 180, flushed after 240  Outgoing update filter list for all interfaces is not set  Incoming update filter list for all interfaces is not set  Redistributing: connected, rip  Default version control: send version 1, receive any version  Interface Send Recv Key-chain  Ethernet0/1 1 1 2  Serial1/0 1 1 2  Routing for Networks:  172.16.0.0  Routing Information Sources:  Gateway Distance Last Update  172.16.2.2 120 00:00:05  172.16.1.3 120 00:00:27  Distance: (default is 120)  從命令輸出中,能夠看出RIP協議的基本配置,還能夠得知與當前路由器交換信息的路由器有testTJ(172.16.2.2)和testSH(172.16.1.3)兩臺路由器,上次接收路由信息分別在5秒和27秒以前。  要了解路由器之間交換路由信息的詳情,可使用debug ip rip命令。以下所示,輸入命令後,隔一段時間,控制檯上出現接收或者發送RIP廣播的信息。  testBJ#debug ip rip  RIP protocol debugging is on  testBJ#  RIP: received v1 update from 172.16.2.2 on Serial1/0  172.16.4.0 in 1 hops  172.16.3.0 in 1 hops  RIP: received v1 update from 172.16.1.3 on Ethernet0/1  172.16.4.0 in 2 hops  172.16.3.0 in 1 hops  RIP: sending v1 update to 255.255.255.255 via Ethernet0/1 (172.16.1.2)  subnet 172.16.4.0, metric 2  subnet 172.16.2.0, metric 1  RIP: sending v1 update to 255.255.255.255 via Serial1/0 (172.16.2.3)  subnet 172.16.1.0, metric 1  RIP: received v1 update from 172.16.1.3 on Ethernet0/1  172.16.4.0 in 2 hops  172.16.3.0 in 1 hops  RIP: received v1 update from 172.16.2.2 on Serial1/0  172.16.4.0 in 1 hops  172.16.3.0 in 1 hops  testBJ#no debug all  All possible debugging has been turned off  testBJ#  從上述信息中能夠獲得RIP廣播的詳情。路由器先是從testTJ收到子網三、4的信息,而後又從testSH收到子網三、4的信息。其中,到子網4走testTJ一跳,走testSH兩跳,因此,路由表中反映出來的是經由testTJ到子網4;到子網3的距離都是一跳,因此,路由表中有兩條並列的路由。  一段時間後,當前路由器的更新計時達到30秒,因而,它在兩條鏈路上廣播自身的路由表信息。注意,廣播路由更新時,RIP採用了水平分割機制,從一個端口上學得的信息就不在這個端口上進行廣播,因此當前路由器testBJ只發送子網172.16.1.0的路由信息。  使用no debug all命令結束調試信息的顯示。須要注意的是debug命令很是消耗路由器資源,因此不要在通信繁忙的路由器上使用,不然,路由器就會象死機同樣中止反應。    怎麼樣,你看一遍這篇文章用了多少時間。下面能夠找幾臺路由器,試着配置一下,不是很困難吧。  體會網絡連通時的樂趣,將這裏做爲你學習路由器的起點,IGRP、OSPF、HSRP等等,不過,再日後學,100分鐘可就不夠了…… 
相關文章
相關標籤/搜索