分享
 
 
 

新手上路:RIP路由协议快速入门

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

路由器的工作不外乎两个,一是路径选择,二是数据转发。进行数据转发相对轻易一些,难的是如何判定到达目的网络的最佳路径。所以,路径选择就成了路由器最重要的工作。

许多路由协议可以完成路径选择的工作,常见的有RIP,OSPF,IGRP和 EIGRP协议等等。这些算法中,我们不能简单的说谁好谁坏,因为算法的优劣要依据使用的环境来判定。比如RIP协议,它有时不能准确地选择最优路径,收敛的时间也略显长了一些,但对于小规模的,没有专业人员维护的网络来说,它是首选的路由协议,我们看中的是它的简单性。

假如你手头正有一个小的网络项目,那么,就让我们来安排一个计划,30分钟读完本文(一读),20分钟再细看一遍本文提及的命令和操作方法(二读),用30分钟配置网络上的所有路由器(小网络,没有几台路由器可以配的),最后20分钟,检查一下网络工作是否正常。好了,一百分钟,你的RIP网络运转起来了。就这么简单,不信,请继续往下看。

一、RIP是什么

RIP(RoutingInformationProtocols,路由信息协议)是使用最广泛的距离向量协议,它是由施乐(Xerox)在70年代开发的。当时,RIP是XNS(XeroxNetworkService,施乐网络服务)协议簇的一部分。TCP/IP版本的RIP是施乐协议的改进版。RIP最大的特点是,无论实现原理还是配置方法,都非常简单。

度量方法

RIP的度量是基于跳数(hopscount)的,每经过一台路由器,路径的跳数加一。如此一来,跳数越多,路径就越长,RIP算法会优先选择跳数少的路径。RIP支持的最大跳数是15,跳数为16的网络被认为不可达。

路由更新

RIP中路由的更新是通过定时广播实现的。缺省情况下,路由器每隔30秒向与它相连的网络广播自己的路由表,接到广播的路由器将收到的信息添加至自身的路由表中。每个路由器都如此广播,最终网络上所有的路由器都会得知全部的路由信息。正常情况下,每30秒路由器就可以收到一次路由信息确认,假如经过180秒,即6个更新周期,一个路由项都没有得到确认,路由器就认为它已失效了。假如经过240秒,即8个更新周期,路由项仍没有得到确认,它就被从路由表中删除。上面的30秒,180秒和240秒的延时都是由计时器控制的,它们分别是更新计时器(UpdateTimer)、无效计时器(InvalidTimer)和刷新计时器(FlushTimer)。

路由循环

距离向量类的算法轻易产生路由循环,RIP是距离向量算法的一种,所以它也不例外。假如网络上有路由循环,信息就会循环传递,永远不能到达目的地。为了避免这个问题,RIP等距离向量算法实现了下面4个机制。

水平分割(splithorizon)。水平分割保证路由器记住每一条路由信息的来源,并且不在收到这条信息的端口上再次发送它。这是保证不产生路由循环的最基本措施。

毒性逆转(poisonreverse)。当一条路径信息变为无效之后,路由器并不立即将它从路由表中删除,而是用16,即不可达的度量值将它广播出去。这样虽然增加了路由表的大小,但对消除路由循环很有帮助,它可以立即清除相邻路由器之间的任何环路。

触发更新(triggerupdate)。当路由表发生变化时,更新报文立即广播给相邻的所有路由器,而不是等待30秒的更新周期。同样,当一个路由器刚启动RIP时,它广播请求报文。收到此广播的相邻路由器立即应答一个更新报文,而不必等到下一个更新周期。这样,网络拓扑的变化会最快地在网络上传播开,减少了路由循环产生的可能性。

抑制计时(holddowntimer)。一条路由信息无效之后,一段时间内这条路由都处于抑制状态,即在一定时间内不再接收关于同一目的地址的路由更新。假如,路由器从一个网段上得知一条路径失效,然后,立即在另一个网段上得知这个路由有效。这个有效的信息往往是不正确的,抑制计时避免了这个问题,而且,当一条链路频繁起停时,抑制计时减少了路由的浮动,增加了网络的稳定性。

即便采用了上面的4种方法,路由循环的问题也不能完全解决,只是得到了最大程度的减少。一旦路由循环真的出现,路由项的度量值就会出现计数到无穷大(CounttoInfinity)的情况。这是因为路由信息被循环传递,每传过一个路由器,度量值就加1,一直加到16,路径就成为不可达的了。RIP选择16作为不可达的度量值是很巧妙的,它既足够的大,保证了多数网络能够正常运行,又足够小,使得计数到无穷大所花费的时间最短。

邻居

有些网络是NBMA(Non-BroadcastMultiAccess,非广播多路访问)的,即网络上不答应广播传送数据。对于这种网络,RIP就不能依靠广播传递路由表了。解决方法有很多,最简单的是指定邻居(neighbor),即指定将路由表发送给某一台特定的路由器。

RIP的缺陷

RIP虽然简单易行,并且久经考验,但是也存在着一些很重要的缺陷,主要有以下几点:

过于简单,以跳数为依据计算度量值,经常得出非最优路由;

度量值以16为限,不适合大的网络;

安全性差,接受来自任何设备的路由更新;

不支持无类IP地址和VLSM(VariableLengthSubnetMask,变长子网掩码);

收敛缓慢,时间经常大于5分钟;

消耗带宽很大。

二、路由器怎么配

路由器本身就是一台有多个网络接口的计算机,同普通计算机一样,它也有中心处理器(CPU)、系统主存(RAM)和只读存储器(ROM)等部件。

除此之外,一个很重要的部分是它的网络接口(Interface),为了连结不同类型的网络,路由器的网络接口种类繁多,比如应用在局域网中的以太、快速以太、令牌环接口,应用于广域网的V.35、RS232、ISDNBRIPRI接口等等。

路由器的外存储器主要有两种:NVRAM(Non-VolatileRAM,非易失性RAM)和Flash(闪存)。NVRAM存储路由器的配置文件,Flash用于存放操作系统IOS(InternetOperatingSystem)。

配置模式

CISCO路由器最基本的配置模式有两种:用户(user)和特权(privileged)。在用户模式下,只能显示路由器的状态,特权模式还可以更改路由器的配置。

特权模式下可以进入安装(setup)模式、全局配置(globalconfig)模式,局部配置(subconfig)模式。

安装模式提供菜单提示,引导用户进行路由器的基本配置。新路由器第一次启动后,自动进入安装模式。

局配置模式中可以改变路由器的全局参数,如主机名、密码等等。

局部配置改变路由器的局部参数,例如某一个网络接口的配置、某一种路由协议的配置等等。

配置方法

路由器的配置可以使用多种方法,下面这五种是最常见的:

使用超级终端类的工具通过串行口登录控制台(consoleport)。

将调制解调器连结至路由器的辅助口(auxiliaryport),远程拨号登录控制台。

远程登录(telnet)至路由器的某一IP地址,通过VTY(virtueterminalline,虚拟终端)方式访问路由器。

编辑配置文件,并通过TFTP上传至路由器。

通过网络治理软件(networkmanagementsystem)远程设置路由器参数。

安装路由器

假设我们的项目网络中只有三台路由器。它们放在北京、上海和天津,名字分别叫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命令。

testBJenable

testBJ#

和UNIX主机一样,“#”代表特权(root)用户的系统提示符,它表示你进入了特权模式。与enable作用相反,即从特权模式返回用户模式的命令是disable。

特权模式下,可以使用configterminal命令进入全局配置模式。全局配置模式下,可以使用一些配置子项的名称进入局部配置模式。返回的方法都是exit命令。其中,从局部配置模式直接返回特权模式的命令是end。如下所示。

testBJ#configterminal

Enterconfigurationcommands,oneperline.EndwithCNTL/Z.

testBJ(config)#routerrip

testBJ(config-router)#exit

testBJ(config)#exit

testBJ#

CISCOIOS的一个非常引人的特色是它的命令行帮助,一个?解决了所有的问题。?可以显示当前模式下的命令列表,可以显示命令全称,还可以显示命令的参数和帮助信息。在任何对命令不确定的地方键入?,系统会给出提示信息。

CISCO路由器还支持命令简写功能,只要不引起歧义,可以用命令的前几个字符替代整个命令,这样,配置时的打字工作量就小多了。

路由器的全部配置信息都保存在配置文件中,当前正在使用的配置文件是running-config,它存放在系统内存里,我们在特权模式下对配置的修改会立即反映到running-config中。startup-config是存储在NVRAM中的配置文件,只有它是掉电不丢失的,所以假如想使所做的修改到下一次启动时仍然有效,就必须保存当前配置。存盘命令如下:

testBJ#copyrunning-configstartup-config

Buildingconfiguration...

[OK]

testBJ#

更改路由器名、密码

路由器的名字可以用hostname命令修改。

Router(config)#hostnametestBJ

testBJ(config)#

enablepassWord和enablesecret命令可以修改特权模式的密码。

testBJ(config)#enablepasswordcisco

testBJ(config)#enablesecretcisco

进入lineconsole局部配置模式下,修改console登录密码;进入linevty局部配置模式,修改telnet登录的密码。login命令指出需要登录,修改密码的命令都是password。

testBJ(config)#lineconsole0

testBJ(config-line)#login

testBJ(config-line)#passwordcisco

testBJ(config-line)#exit

testBJ(config)#linevty04

testBJ(config-line)#login

testBJ(config-line)#passwordcisco

测试连通性

打开其余两台路由器,按上述方法进行配置,然后就可以检查它们之间是否连通了。

测试线路连通性的方法有三种,ping、traceroute和telnet。ping可以检测目的地是否可达;trace不仅检测连通性,还给出到达目的地所经过的路径;telnet测试应用层软件的连通性,如下所示。

testBJ#ping172.16.4.2

Typeescapesequencetoabort.

Sending5,100-byteICMPEchosto172.16.4.2,timeoutis2seconds:

!!!!!

SUCcessrateis100percent(5/5),round-tripmin/avg/max=24/25/28ms

testBJ#traceroute172.16.4.2

Typeescapesequencetoabort.

Tracingtherouteto172.16.4.2

1172.16.2.216msec16msec*

testBJ#telnet1

72.16.4.2

Trying172.16.4.2...Open

UserAccessVerification

Password:

testTJ

172.16.4.2是路由器testTJ上的一个端口,我们在testBJ上运行上述三个命令,得知它运行正常。

显示当前状态

为了使网络治理员能够方便地了解路由器的状态,CISCO路由器提供了丰富的show命令。我们在这里介绍最简单的几个,如下所示。

showversion命令显示路由器的硬软件版本号及配置信息。

showflash:命令相当于DOS的dir命令,显示flash中包含的文件信息。

showinterface命令显示网络接口的状态。

配置路由器的过程中,最重要的一个show命令莫过于查看配置文件的内容,可以用show命令查看running-config或startup-config,如下所示。

showrunning-config

showstartup-config

配置文件是一个文本文件,其中包含着你键入的每一条配置命令。可以将配置文件下载到计算机上,用文本编辑器修改之后,再传回路由器。

三、RIP要配什么

IP地址配置

我们可以使用interface命令进入局部配置模式,然后利用ipaddress设置接口的IP地址。如下所示。

testBJ#conft

Enterconfigurationcommands,oneperline.EndwithCNTL/Z.

testBJ(config)#interfacee0/1

testBJ(config-if)#ipaddress172.16.1.2255.255.255.0

testBJ(config-if)#

为了便于配置和记忆,你还可以给每个端口添加一些描述信息。如下所示,在端口局部配置模式下使用description命令。

testBJ(config-if)#descriptionconnecttotestSH

testBJ(config-if)#end

testBJ#

有些网络是NBMA(Non-BroadcastMultiAccess,非广播多路访问)的,即网络上不答应广播传送数据。对于这种网络,RIP就不能依靠广播传递路由表了。解决方法有很多,最简单的是指定邻居(neighbor),即指定将路由表发送给某一台特定的路由器。

有些网络是NBMA(Non-BroadcastMultiAccess,非广播多路访问)的,即网络上不答应广播传送数据。对于这种网络,RIP就不能依靠广播传递路由表了。解决方法有很多,最简单的是指定邻居(neighbor),即指定将路由表发送给某一台特定的路由器。

RIP配置

RIP是最轻易配置的路由协议。配置它只需要两步操作,首先,指定使用RIP协议,然后,声明所连接的网络号,如下所示。

testBJ(config)#routerrip

testBJ(config-router)#network172.16.0.0

testBJ(config-router)#end

testBJ#

routerrip命令用于指定使用RIP协议,network命令声明网络号,由于RIP是一个有类路由协议,所以不必声明各个子网号。

对每一台路由器重复上述操作,一个使用RIP路由的网络就建成了。

测试配置正确性

配置RIP之后,要检查数据是否可以被正确路由。除了可以使用上面提到的连通性测试工具之外,还有以下几个命令:

shiproute用于检测路由表;

shipprotocols用于检查路由协议状况;

debugiprip用于调试RIP协议信息。

使用shiproute命令显示各台路由器的路由表。

testBJ#shiproute

Codes:C-connected,S-static,I-IGRP,R-RIP,M-mobile,B-BGP

D-EIGRP,EX-EIGRPexternal,O-OSPF,IA-OSPFinterarea

N1-OSPFNSSAexternaltype1,N2-OSPFNSSAexternaltype2

E1-OSPFexternaltype1,E2-OSPFexternaltype2,E-EGP

i-IS-IS,L1-IS-ISlevel-1,L2-IS-ISlevel-2,

*-candidatedefault,U-per-userstaticroute,o-ODR

Gatewayoflastresortisnotset

172.16.0.0/24issubnetted,4subnets

R172.16.4.0[120/1]via172.16.2.2,00:00:12,Serial1/0

C172.16.1.0isdirectlyconnected,Ethernet0/1

C172.16.2.0isdirectlyconnected,Serial1/0

R172.16.3.0[120/1]via172.16.1.3,00:00:09,Ethernet0/1

[120/1]via172.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和tes

tTJ路由器。对比网络拓扑图,可以看出实际情况与设计的完全一致。

中括号里的内容是路由项的治理距离和度量值,RIP的缺省治理距离是120,到达3、4子网的度量值是1,即经过1个路由器可达。

同样的命令在另外两台路由器上运行,结果如下。

testSH#shiproute

Gatewayoflastresortisnotset

172.16.0.0/24issubnetted,4subnets

R172.16.4.0[120/1]via172.16.3.2,00:00:13,Ethernet0/0

C172.16.1.0isdirectlyconnected,Ethernet0/1

R172.16.2.0[120/1]via172.16.1.2,00:00:11,Ethernet0/1

[120/1]via172.16.3.2,00:00:13,Ethernet0/0

C172.16.3.0isdirectlyconnected,Ethernet0/0

testTJ#shiproute

Gatewayoflastresortisnotset

172.16.0.0/24issubnetted,4subnets

C172.16.4.0isdirectlyconnected,Ethernet0/0

R172.16.1.0[120/1]via172.16.3.3,00:00:07,Ethernet0/1

[120/1]via172.16.2.3,00:00:19,Serial1/0

C172.16.2.0isdirectlyconnected,Serial1/0

C172.16.3.0isdirectlyconnected,Ethernet0/1

分析上述命令输出时,一定要随时参照拓扑图,离开网络拓扑,上面的信息就没有任何意义。动态路由的灵活性体现在一条链路出现故障,路由算法会自动切换到迂回链路上。例如我们将testBJ和testTJ之间的串行线缆断开,一段时间后,再检查路由表,如下所示。

testBJ#shiproute

Gatewayoflastresortisnotset

172.16.0.0/24issubnetted,3subnets

R172.16.4.0[120/2]via172.16.1.3,00:00:22,Ethernet0/1

C172.16.1.0isdirectlyconnected,Ethernet0/1

R172.16.3.0[120/1]via172.16.1.3,00:00:22,Ethernet0/1

我们发现串行链路所在的子网2断开了,到网络172.16.4.0网络的数据包都将绕经testSH路由器。

shipprotocols命令可以显示当前路由协议的状况,如下所示。

testBJ#shipprotocols

RoutingProtocolis"rip"

Sendingupdatesevery30seconds,nextduein19seconds

Invalidafter180seconds,holddown180,flushedafter240

Outgoingupdatefilterlistforallinterfacesisnotset

Incomingupdatefilterlistforallinterfacesisnotset

Redistributing:connected,rip

Defaultversioncontrol:sendversion1,receiveanyversion

InterfaceSendRecvKey-chain

Ethernet0/1112

Serial1/0112

RoutingforNetworks:

172.16.0.0

RoutingInformationSources:

GatewayDistanceLastUpdate

172.16.2.212000:00:05

172.16.1.312000:00:27

Distance:(defaultis120)

从命令输出中,可以看出RIP协议的基本配置,还可以得知与当前路由器交换信息的路由器有testTJ(172.16.2.2)和testSH(172.16.1.3)两台路由器,上次接收路由信息分别在5秒和27秒之前。

要了解路由器之间交换路由信息的详情,可以使用debugiprip命令。如下所示,输入命令后,隔一段时间,控制台上出现接收或者发送RIP广播的信息。

testBJ#debugiprip

RIPprotocoldebuggingison

testBJ#

RIP:receivedv1updatefrom172.16.2.2onSerial1/0

172.16.4.0in1hops

172.16.3.0in1hops

RIP:receivedv1updatefrom172.16.1.3onEthernet0/1

172.16.4.0in2hops

172.16.3.0in1hops

RIP:sendingv1updateto255.255.255.255viaEthernet0/1(172.16.1.2)

subnet172.16.4.0,metric2

subnet172.16.2.0,metric

RIP:sendingv1updateto255.255.255.255viaSerial1/0(172.16.2.3)

subnet172.16.1.0,metric1

RIP:receivedv1updatefrom172.16.1.3onEthernet0/1

172.16.4.0in2hops

172.16.3.0in1hops

RIP:receivedv1updatefrom172.16.2.2onSerial1/0

172.16.4.0in1hops

172.16.3.0in1hops

testBJ#nodebugall

Allpossibledebugginghasbeenturnedoff

testBJ#

从上述信息中可以得到RIP广播的详情。路由器先是从testTJ收到子网3、4的信息,然后又从testSH收到子网3、4的信息。其中,到子网4走testTJ一跳,走testSH两跳,所以,路由表中反映出来的是经由testTJ到子网4;到子网3的距离都是一跳,所以,路由表中有两条并列的路由。

一段时间后,当前路由器的更新计时达到30秒,于是,它在两条链路上广播自身的路由表信息。注重,广播路由更新时,RIP采用了水平分割机制,从一个端口上学得的信息就不在这个端口上进行广播,所以当前路由器testBJ只发送子网172.16.1.0的路由信息。

使用nodebugall命令结束调试信息的显示。需要注重的是debug命令非常消耗路由器资源,所以不要在通讯繁忙的路由器上使用,否则,路由器就会象死机一样停止反应。

怎么样,你看一遍这篇文章用了多少时间。下面可以找几台路由器,试着配置一下,不是很困难吧

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有