09211311班实验报告课程名称:计算机网络技术基础实验名称:实验三RIP和OSPF路由协议的配置及协议流程班级:2009211311姓名:schnee学号:实验日期:2012-4-06实验报告:2012-4-0809211311班1.环境(详细说明运行的操作系统,网络平台,网络拓扑图)1.1.运行的操作系统Windows7(在老师的指导下改了部分配置之后可以不安装XP虚拟机。)配置步骤:控制面板-程序-程序和功能,打开或关闭windows功能,然后Telnet服务器和Telnet客户端打开(因为win7默认关闭)。控制面板-系统与安全-管理工具-服务,开启Telnet服务;采用Dynamips仿真环境。1.2.网络拓扑图包含5个路由器,5个PC机,12个网段。网络拓扑图:09211311班2.实验目的复习和进一步掌握实验一二的内容。自己会设计较复杂的网络物理拓扑和逻辑网段。掌握路由器上RIP协议的配置方法,能够在模拟环境中进行路由器上RIP协议的配置,并能通过debug信息来分析RIP协议的工作过程,并观察配置水平分割和没有配置水平分割两种情况下RIP协议工作过程的变化。掌握路由器上OSPF协议的配置方法,能够在模拟环境中上进行路由器上OSPF协议的配置,并能够通过debug信息分析OSPF协议的工作工程。3.实验内容及步骤3.1.协议前的基础配置(实验一二)3.1.1.修改.net文件,设计网络物理拓扑和逻辑网段。(见附录)用list列出网络成员,如下图所示。3.1.2.用start命令启动所有的路由器和主机并配置idlepc值。用idlepcget命令获取到R1和PC1的idlepc值,配置好R1和PC1的idlepc值并保存。(同一类只需配置一次,所以只需配置R1和PC1的idlepc值即可)。3.1.3.打开10个控制台窗口,每个窗口都使用Telnet客户端分别登录到路由和主机上。比如登录到R1的命令行为:telnet127.0.0.13001.登录到PC1的命令行为:telnet127.0.0.1300609211311班3.1.4.配置路由器之间的串口连接并启动串口配置时从底层向高层配置,先配置物理层的时钟信息,再配置数据链路层协议,最后配置网络层的IP协议,并开启串口。在配置串口时,一端需要配置成为DCE端,另一端要配置成为DTE端。DCE端提供时钟,DTE端跟随时钟。所以只要在DCE端配置时钟即可,配置了时钟的那端就是DCE端,没有配置时钟的那端就是DTE端。在此实验中我将所有串口的数据链路层都配置成PPP协议。如果不配置,默认的数据链路层采用的是HDLC协议。IP协议方面,注意串口两端的IP地址要在同一网段。noshutdown启动接口。具体步骤以R1和R2之间的串口连接的配置为例。同理,配置好其他路由器对间的串口连接。具体参数参见网络拓扑图。3.1.5.配置主机和路由器之间的以太网连接接口并启动路由器和主机间采用以太网连接,以太网不用配置物理层和数据链路层,只要配置网络层IP协议即可。具体步骤以R1和PC1为例。同理配置好其他四个主机与对应路由之间的以太网连接接口并启动。至此,同一网段之间已经可以进行数据传输了。但是不同网络之间的设备还是不能进行通信,这需要配置静态路由。09211311班同一网段间PC1pingR1同一网段间R1pingR23.1.6.给PC配置默认路由由于网络拓扑比较复杂,此次实验我们仅配置主机的默认路由。至于路由器,由于之后要用RIP或OSPF协议动态学习,所以不需配置。具体步骤以PC1为例进行默认路由配置。默认路由为1.1.1.1。3.1.7.未学习时的路由表用showiproute查看未动态学习时的路由表。仅以R1为例截图如下。我们发现现在R1只知道和它直接相连的网段和路由器端口(并且都标注为C)。09211311班3.2.RIP协议配置和实验3.2.1.进入各路由器配置RIP协议具体步骤以R1为例截图说明如下。其他路由器同理配置。network配置与R1直连的网络,neighbor配置R1的邻居路由器。3.2.2.在各种情况下检测网络的连通情况各路由器均已经开启RIP协议,即均动态学习过了。同一网段之间的检测见3.1.5.的说明。在此仅说明不同网段之间的连通检测。不同网段间主机和路由器R1pingR4由于路由器通过动态学习,已经获得了整个网络的拓扑,所以能够ping通。不同网段间主机和主机PC1pingPC4我们注意到PC1pingPC4时第一次有丢包,但是之后就能完全ping通了。09211311班3.2.3.在路由器特权模式下打开调试信息,根据交互信息分析RIP协议的工作过程具体调试信息仅以R1和R3的交互为例。R1:R3:RIP协议基于距离矢量路由算法,它的基本工作原理是:每一个路由器维护一张路由表,该路由表以每一个目标网络为索引,记录到达该目标网络的时间开销或距离开销,以及对应的输出接口。所有使用RIP协议的路由器周期性地向外发送路由刷新报文,再接收到来自各个邻居路由器的路由表后,根据这些路由表来重新计算自己到达各个网络的最佳路由。从上面的调试信息,我们可以看到R1接收来自各个邻居路由的路由表,R3向外发送路由刷新报文,更新路由表的三个最重要的动作。3.2.4.比较禁止水平分割和开水平分割两种情况下RIP协议交互过程的变化进入R3的s1/1接口的配置模式,禁止水平分割(默认打开水平分割)。命令行为:R3(config-if)#noipsplit-horizon有水平分割的R3调试信息:09211311班关闭水平分割后的R3调试信息:水平分割方法让路由器记住每一条路由信息的来源,也就是标记收到该路由信息的端口号,当本路由器向外广播路由信息时,不会将该路由信息想收到这条信息的端口上发送,从而可以避免一些路由循环的产生。有上面两个截图的比较,我们发现关闭水平分割后,从s1/1传来的网段7的信息又发送给了s1/1。此外,对于有水平分割的s1/0接口,传送的是已经筛选过的距离表。这就是关闭水平分割的区别。虽然在上图中没有明显区别,但是当链路出现故障时,水平分割就是一种防止出现无穷计数问题的高效同步的方法。3.2.5.采用showiproute观察路由器在RIP协议中学习到的路由表项我们以R1为例进行分析。比较学习前(3.1.7.截图)和学习后(下图)的路由表。我们发现多了标记为R的表项,并且现在路由知道了与其不直接相连的网段、主机和路由。我们以第二行:R2.0.0.0/8[120/1]via8.1.1.2,00:00:04,Serial1/2为例说明:R表示此路由表项是通过RIP协议学习到的,而时间00:00:04表示学习到这个路由表项距离现在的时间,时间越小表示路由表项越新,它的可信度也就越高。而时间较大时表示这个路由表项是很久之前学习到的,现在网络状况可能已经发生了变化。09211311班3.2.6.跟踪路由,观察RIP协议实验结果我们观察PC1pingPC3的包所经过的路径,由下图可知路径为:1.1.1.21.1.1.17.1.1.23.1.1.2其中*表示失败。09211311班3.3.OSPF协议配置和实验3.3.1.删除各路由器上的RIP协议以R3为例。通过指令norouterrip删除RIP协议。我们还发现,删除RIP协议后,R3的路由表又变为未学习前的路由表。3.3.2.在各路由器上配置OSPF协议以R1为例配置OSPF协议。具体步骤为:进入OSPF配置模式配置与R1直连的网络并指明该网络所属的区域进入路由串口(s)分别配置从接口发送hello包的时间间隔和认为通过该接口相连的邻居已经不存在的时间间隔。09211311班3.3.3.检测OSPF路由结果以最具代表性的PC1pingPC4为例。3.3.4.利用debugipospfevents打开调试信息,分析OSPF协议工作工程以R1为例。OSPF是基于链路状态算法的分层路由协议。在开启OSPF协议之后路由器之间交互的是链路状态信息,不过上图只有相邻链路Hello包的交互,这是因为OSPF的主要协议交互过程是在刚配置完OSPF协议时就进行了,而在网络运行过程中,如果没有链路状态的变化就没有交互链路状态信息。也就是说,一旦网络稳定,信息不再更新,则只会有Hello包。只有链路发生变化时,相应路由器才会广播改变的信息给其余路由器。Hello协议是OSPF协议中比较重要的部分,用于检测邻居并维护邻接关系。3.3.5.修改链路状态,观察广播信息的交互3.3.5.1.通过debugipospfflood打开R1的洪泛状态打开后,维持下面状态不变,直到链路状态出现变化。可靠泛洪机制是OSPF的重要部分,其在某条链路状态发生变化时,会将变09211311班化的信息发送给同一域中的所有OSPF路由器,从而确保整个域内的路由器始终具有一致的链路状态数据库。3.3.5.2.观察路由器端口失效时信息的交互关闭与R1直连的R3的s1/1接口R1的反应的部分截图:我们发现,R3的接口一关闭后,就收到了来自R3的11.1.1.2的洪泛信息。OSPF路由器收到链路状态更新报文时,更新自己的链路状态数据库,然后采用SPF算法重新计算路由表。在重新计算过程中,路由器继续使用旧路由表,直到SPF完成新路由表的计算。最终R1端又会恢复链路改变前的平静状态,不会再有信息输出。但是即使链路状态没有发生变化,OSPF路由信息也会自动更新,默认时间为30分钟。09211311班3.3.5.3.观察IP地址失效时信息的交互删除与R1直连的R5的s1/1的IP地址。观察R1信息的变化(部分截图),同理于上,我们发现来自R5的12.1.1.2的更新信息。3.4.利用各个路由器的OSPF的邻居路由器命令行为:shipospfneighbor。其中,NeighborID表示邻居路由器的路由ID,路由ID是路由器在OSPF网络中的唯一标识。(是该路由器各IP地址中的一个)Pri表示路由器的优先级,默认为1。State表示路由器的状态,FULL即开着。DOWN即该端口被shutdown了。DeadTime表示最后学习到路由信息的时间。Address表示邻居路由器与本路由器相连的接口的IP地址。Interface表示连接邻居路由器的本地接口。09211311班4.实验结果详细每一步的实验结果见3.实验内容和步骤的分析与截图。4.1.RIP协议通过实验,我深入理解了RIP协议的工作原理。RIP协议是基于距离矢量算法的内部动态路由协议。其基本工作原理是:每一个路由表维护一张路由表,记录到达该目标网络的时间开销或距离开销,以及对应的输出接口。所有路由器通过周期性地向外发送路由刷新报文,在接收到来自各个邻居路由器的路由表后,根据这些路由表来重新计算自己到达各个网络的最佳路由。通过对比水平分割关闭前后的交互变化,真切理解到RIP协议通过水平分割来优化,避免路由循环的产生,提高效率。4.2.OSPF协议OSPF协议基于链路状态路由算法。在分层次的网络结构中,每个区域内部维持一张唯一的本域拓扑结构图,各域内部的路由器根据所在域的拓扑图各自计算路由,域边界路由器把本域的内部路由总结后向其他域进行扩散。实验中还着重研究了OSPF的Hello协议和可靠泛洪机制。Hello协议用于09211311班检测邻居并维护邻接关系,可靠泛洪机制在链路状态发生变化时更新状态。我们从邻居路由表中可以发现,路由器标识为端口IP中最大的IP地址。debug时,可以看到OSPF协议中路由器先和邻居交互链路状态信息,交互描述信息DBD而非具体的路由信息,然后当路由器知道自己没有哪些信息而对方有时,会启动DatabaseRequire请求交互,然后再Exchange真正的路由信息,知道达到同步为止。在点到点链路中,常选择IP地址较大的作为主路由,或者通过elect选举出多个成员中的主路由,其他路由需与主路由进行数据库同步。5.实验中的问题及心得5.1.实验中遇到的问题在实验中,