作者:佚名 文章来源:不详 点击数: 更新时间:2007-2-11 9:34:07  |
RIP路由协议快速入门 RIP路由协议快速入门 路由器的工作不外乎两个,一是路径选择,二是数据转发。进行数据转发相对容易一些,难的是如何判断到达目的网络的最佳路径。所以,路径选择就成了路由器最重要的工作。 许多路由协议可以完成路径选择的工作,常见的有RIP,OSPF,IGRP和 EIGRP协议等等。这些算法中,我们不能简单的说谁好谁坏,因为算法的优劣要依据使用的环境来判断。比如RIP协议,它有时不能准确地选择最优路径,收敛的时间也略显长了一些,但对于小规模的,没有专业人员维护的网络来说,它是首选的路由协议,我们看中的是它的简单性。 如果你手头正有一个小的网络项目,那么,就让我们来安排一个计划,30分钟读完本文(一读),20分钟再细看一遍本文提及的命令和操作方法(二读),用30分钟配置网络上的所有路由器(小网络,没有几台路由器可以配的),最后20分钟,检查一下网络工作是否正常。好了,一百分钟,你的RIP网络运转起来了。就这么简单,不信,请继续往下看。 一、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分钟; 消耗带宽很大。 二、路由器怎么配 路由器本身就是一台有多个网络接口的计算机,同普通计算机一样,它也有中央处理器(CPU)、系统主存(RAM)和只读存储器(ROM)等部件。 除此之外,一个很重要的部分是它的网络接口(Interface),为了连结不同类型的网络,路由器的网络接口种类繁多,比如应用在局域网中的以太、快速以太、令牌环接口,应用于广域网的V.35、RS232、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> enabletestBJ# 和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 配置文件是一个文本文件,其中包含着你键入的每一条配置命令。可以将配置文件下载到计算机上,用文本编辑器修改之后,再传回路由器。 三、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,到达3、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 1
[1] [2] 下一页
|