北邮计算机网络实践第三次实验报告.docx
《北邮计算机网络实践第三次实验报告.docx》由会员分享,可在线阅读,更多相关《北邮计算机网络实践第三次实验报告.docx(21页珍藏版)》请在冰豆网上搜索。
北邮计算机网络实践第三次实验报告
计算机网络技术实践
实验报告
实验名称RIP和OSPF路由协议的配置及协议流程
姓名___(-…-)_____________实验日期:
2014年4月11日
学号_242_______实验报告日期:
2014年4月16日
报告退发:
(订正、重做)
一.环境(详细说明运行的操作系统,网络平台,网络拓扑图)
1.运行操作系统
由于本人电脑上的操作系统是WIN7旗舰版,尝试直接安装Dynamips模拟器,但一直没有成功。
于是在电脑上安装了VMwareWorkstation,并安装WINXP虚拟操作系统。
在WINXP虚拟操作系统上安装Dynamips模拟器,才顺利完成了实验环境的搭建。
2.网络平台
Dynamips模拟器
3.网络拓扑图
二.实验目的
✧复习和进一步掌握实验一二的容。
✧ 学会设计较复杂的网络物理拓扑和逻辑网段。
✧ 掌握路由器上RIP协议的配置方法,能够在模拟环境中进行路由器上RIP协议的配置,并能通过debug信息来分析RIP协议的工作过程,并观察配置水平分割和没有配置水平分割两种情况下RIP协议工作过程的变化。
✧ 掌握路由器上OSPF协议的配置方法,能够在模拟环境中上进行路由器上OSPF协议的配置,并能够通过debug信息分析OSPF协议的工作工程。
三.实验容及步骤(包括主要配置流程,重要部分需要截图)
1.实验前的基础设置(实验一、二)
2.物理拓扑设计
修改.net文件,设计物理拓扑,修改后的.net文件见附录。
3.逻辑网段设计
3.1.用list命令列出所有网络成员,如下图所示。
3.2.输入命令start/all启动所有网络成员
配置路由器以及PC的idle-pcvalue并保存。
3.3.同过telnet登陆到主机或路由器
打开八个控制台窗口,每个窗口都使用telnet登陆到路由器或主机上。
例如登陆到PC1的命令为telnet127.0.0.13001,登陆到RT1的命令为telnet127.0.0.13002
3.4.配置路由器之间的串口并启动串口
配置从底层向高层配置,先配置物理层的时钟信息,再配置数据链路层协议,最后配置网络层的IP协议,并开启串口。
在配置串口时,已选需要配置成为DCE端,另一端要配置成为DTE端。
DCE端提供时钟,DTE端跟随时钟。
所以只要在DCE端配置时钟即可,配置了时钟的那端就是DCE端,没有配置时钟的那端就是DTE端。
在此实验中我将所有的串口的数据链路层都配置成PPP协议。
如果不配置,默认的数据链路层采用的是HDLC协议。
IP协议方面,注意串口两端的IP地址要在同一网段。
noshutdown启动窗口。
具体步骤以RT1和RT2之间的串口连接的配置为例
用这种方法将其他路由器对之间的串口连接,具体参数参见网络拓扑图。
3.5.配置主机和路由器之间的以太网连接接口并启动
主机和路由器之间通过以太网相连,以太网不用配置物理层和数据链路层,只要配置网络层IP协议即可。
以PC1和RT1为例。
同理配置好其他三个主机和路由器之间的以太网连接接口并启动。
至此,同一网段中的设备已经可以进行数据传输了。
测试同意网段中的设配的传输数据情况。
以PC1和RT1以及RT1和RT2之间为例:
RT1pingPC1:
PC1pingRT1:
RT1ping RT2:
RT2pingRT1:
4.配置RIP协议。
4.1.为拓扑图中的主机配置默认路由
由于拓扑图中的网络比较复杂,主机采用配置默认路由的方式可以减少工作量,默认路由配置如下例。
4.2.配置RIP协议
以RT1为例,配置RIP协议,network为与RT1直连的网络,neighbor为RT1的邻居路由器。
让窗口打印RIP协议调试信息,我们发现RT1在更新路由表。
4.3.检测不同网段中网络的联通情况
各路由器均已开启RIP协议,即各个路由器之间已经交换过信息。
PC1pingPC4
PC4pingRT2
RT4pingRT1
RT4pingPC1
各网段路由器经过动态学习,已经获得了整个网络的拓扑,所以拓扑中的模块均能够ping通。
4.4.分析RIP协议工作过程。
RT1:
RT2:
RIP协议基于距离矢量路由算法,它的基本工作原理是:
每一个路由器维护一路由表,该路由表以每一个目标网络为索引,记录到达该目标网络的时间开销或距离开销,以及对应的输出接口。
所有使用RIP协议的路由器周期性地向外发送路由刷新报文,再接收到来自各个邻居路由器的路由表后,根据这些路由表来重新计算自己到达各个网络的最佳路由。
从上面的调试信息,我们可以看到RT2接收来自各个邻居路由的路由表,RT1向外发送路由刷新报文,更新路由表的三个最重要的动作。
4.5.比较禁止水平分割和打开水平分割两种情况下RIP协议交互过程的变化。
进入RT1的s1/0接口的配置模式,禁止水平分割(默认打开水平分割)。
命令行为:
RT1(config-if)#noipsplit-horizon
有水平分割RT1的调试信息
禁止水平分割后RT1的调试信息
水平分割方法让路由器记住每一条路由信息的来源,也就是标记收到该路由信息的端口号,当本路由器向外广播路由信息时,不会将该路由信息向收到这条信息的端口上发送,从而可以避免一些路由循环产生。
有上面两个截图的比较,我们发现关闭水平分割后,从s1/0传来的网段1,2,3,4,5,6,7,8的信息又发给s1/0。
此外,对于有水平分割的s1/0接口,传送的是已经筛选过的距离表。
这就是关闭水平分割的区别。
虽然在上图中没有明显的区别,但是当链路出现故障时,水平分割就是一种防止出现无穷计算问题的高效同步的方法。
4.6.采用showiproute观察路由器在RIP协议中学到的路由表项
我们以R1为例进行分析。
RIP协议配置前的R1的路由表
我们发现路由表中只有与它直接相连的路由信息且都标注为C。
启动RIP协议后RT1的路由信息。
比较学习前和学习后的路由表,我们发现多了标记为R的表项,并且现在路由知道了与其不相连的网段、主机和路由。
我们以第二行:
R2.0.0.0/8[120/1]via7.1.242.2,00:
00:
08,Serial1/0为例说明:
R表示此路由表项是通过RIP协议学习到的,而时间00:
00:
08表示学习到这个路由表项距离现在的时间,时间越小表示路由表项越新,它的可信度也就越高。
而时间较大时表示这个路由表项是很久之前学习到的,现在网络状况可能已经发生了变化。
4.7.跟踪路由,观察RIP协议实验结果
我们观察PC1pingPC4的包所经过的路径,由下图可知路径为:
1.1.242.1->1.1.242.2->6.1.242.1->8.1.242.2->4.1.242.1*表示失败。
5.OSPF协议配置和实验
5.1.删除各路由器上的RIP协议
在配置模式下输入norouterrip
在特权模式下输入showiproute查看删除RIP协议后的路由信息,由下图可知删除RIP协议后,路由器只认识和它直连的网络信息。
5.2.在路由器上配置OSPF协议
以RT1为例配置OSPF协议。
具体步骤为:
进入OSPF配置模式->配置与RT1直连的网络并指明该网络所在的区域->进入路由串口(s)分别配置从接口发送hello包的时间间隔和认为通过该接口相连的邻居已经不存在的时间间隔。
当网络中所有路由器都已经配好OSPF协议后,在RT1中输入showiproute,如下图可知RT1已经知道了所有没有直接相连的网络。
5.3.检测OSPF路由结果
以PC1pingPC4为例
开始时丢了两包,收到了三包,说明网络连接没有问题。
5.4.利用debugipospfevent打开调试信息,分析OSPF协议工作过程
以RT1为例
OSPF是基于链路状态算法的分层路由协议。
在开启OSPF协议之后路由器之间交互的是链路状态信息,不过上图只有相邻链路Hello包的交互,这是因为OSPF的主要协议交互过程是在刚配置完OSPF协议时就进行了,而在网络运行过程中,如果没有链路状态的变化就没有交互链路状态信息。
也就是说,一旦网络稳定,信息不再更新,则只会有Hello包。
只有链路发生变化时,相应路由器才会广播改变的信息给其余路由器。
Hello协议是OSPF协议中比较重要的部分,用于检测邻居并维护邻接关系。
5.5.修改链路状态,观察广播信息的交互
5.5.1.通过debugiposdfflood打开RT1的洪泛状态
打开后,维持下面状态不变,知道链路状态出现变化。
可靠洪泛机制是OSPF的重要部分,在其某条链路状态发生变化时,会将变化的信息发送给同一域中的所有OSPF路由器,从而确保整个域的路由器始终具有一致的链路状态数据库。
5.5.2.观察路由器端口失效时信息的交互
关闭与RT1直连的RT3的s1/0接口
RT1反应部分截图
我们发现,RT3的接口一关闭后,就收到了来自RT3的11.1.1.2的洪泛信息。
OSPF路由器收到链路状态更新报文时,更新自己的链路状态数据库,然后采用SPF算法重新计算路由表。
在重新计算过程中,路由器继续使用旧路由表,直到SPF完成新路由表的计算。
最终RT1端又会恢复链路改变前的平静状态,不会再有信息输出。
但是即使链路状态没有发生变化,OSPF路由信息也会自动更新,默认时间为30分钟。
5.5.3.观察IP地址失效时信息的交互
删除与RT1直连的RT3的s1/0的IP地址
观察RT1的变化
我们发现RT1收到来自RT3s1/2的洪泛信息。
5.6.利用各个路由器的OSPF的邻居路由器
命令行为:
shipospfneighbor。
其中,NeighborID表示邻居路由器的路由ID,路由ID是路由器在OSPF网络中的唯一标识。
(是该路由器各IP地址中的一个)。
Pri标识路由器的优先级,默认为1。
State标识路由器的状态,FULL即开着。
DOWN即该端口被shutdown了。
DeadTime表示最后学习到路由信息的时间。
Address标识邻居路由器与本路由器相连的接口的IP地址。
Interface标识连接邻居路由器的本地接口。
四.实验结果(包括最终实验结果,需要截图)
详细实验结果见三中的实验步骤、分析与截图。
a)RIP协议
通过实验,我深入理解了RIP协议的工作原理。
RIP协议是基于距离矢量算法的部动态路由协议。
其基本工作原理是:
每一个路由表维护一路由表,记录到达该目标网络的时间开销或距离开销,以及对应的输出接口。
所有路由器通过周期性地向外发送路由刷新报文,在接收到来自各个邻居路由器的路由表后,根据这些路由表来重新计算自己到达各个网络的最佳路由。
通过对比水平分割关闭前后的交互变化,真切理解到RIP协议通过水平分割来优化,避免路由循环的产生,提高效率。
b)OSPF协议
OSPF协议基于链路状态路由算法。
在分层次的网络结构中,每个区域部维持一唯一的本域拓扑结构图,各域部的路由器根据所在域的拓扑图各自计算路由,域边界路由器把本域的部路由总结后向其他域进行扩散。
实验中还着重研究了OSPF的Hello协议和可靠泛洪机制。
Hello协议用于检测邻居并维护邻接关系,可靠泛洪机制在链路状态发生变化时更新状态。
我们从邻居路由表中可以发现,路由器标识为端口IP中最大的IP地址。
debug时,可以看到OSPF协议中路由器先和邻居交互链路状态信息,交互描述信息DBD而非具体的路由信息,然后当路由器知道自己没有哪些信息而对方有时,会启动DatabaseRequire请求交互,然后再Exchange真正的路由信息,知道达到同步为止。
在点到点链路中,常选择IP地址较大的作为主路由,或者通过elect选举出多个成员中的主路由,其他路由需与主路由进行数据库同步。
五.实验中的问题及心得(需要认真写,不要写空话、套话)
a)试验中遇到的问题
在创建物理链路状态时,由于没有经验,每个PC机的端口也写了slot0=PA-C7200-IO-FE,导致系统根本启动不起来。
经历数次失败的后,终于发现了问题。
程序顺利启动。
在配置RIP协议后,发现各个路由器之间能够ping通而但PC与PC或者PC与非直连路由器之间无法传送数据。
仔细回想实验步骤,发现PC没有配置路由,刚开始采用配置静态路由的方法,比较繁琐;后来学到配置默认路由来减少工作量。
b)实验总结
本次实验建立在实验一二的基础上,通过仿真环境下做具体的配置实践和观察,很好地复习了上学期计算机网络课程中所学的距离矢量路由(RIP)和链路状态路(OSPF)由算法。
通过实验,对运行在网络中各层的协议也有了更进一步的认识,知道了网络协议的分工与合作。
对网络的分层结构有了具体的认识,过去书本上学到的知识很抽象,动手实践后认识更加深刻,有些理解错误的地方也更正了过来。
六.实验思考(需要认真写,不要写空话、套话)
本次实验做的时间较长,由于我的电脑装软件总是装不上,无奈之下装了虚拟机+XP操作系统。
其间由于不熟悉虚拟机使用规,虚拟机还死掉一次,无奈又重装。
在做实验时,一步步跟着实验步骤来,一点点熟悉指令。
也犯过致命的错误,仔细检查实验流程重要发现了问题并顺利解决了问题。
到网上查找资料,实验过程也优化了很多。
实验大概做了三遍,收获颇丰。
对网络的分层结构有了更深的认识,明白了网络各层协议的分工合作。
从物理层到数据链路层再到网络层,对数据的传输脑海中形成了清晰的流程。
在书写实验报告的过程中,学会了用Visio绘制精美的网络拓扑图,报告层次也更加规,严谨。
七.附录
物理拓扑结构
autostart=false
[localhost]
port=7200
udp=10000
workingdir=..\tmp\
[[routerR1]]
image=..\ios\unzip-c7200-is-mz.122-37.bin
model=7200
console=3002
npe=npe-400
ram=64
confreg=0x2102
exec_area=64
mmap=false
slot0=PA-C7200-IO-FE
slot1=PA-4T
f0/0=PC1f0/0
s1/0=R2s1/0
s1/1=R3s1/0
[[routerR2]]
image=..\ios\unzip-c7200-is-mz.122-37.bin
model=7200
console=3004
npe=npe-400
ram=64
confreg=0x2102
exec_area=64
mmap=false
slot0=PA-C7200-IO-FE
slot1=PA-4T
f0/0=PC2f0/0
s1/1=R3s1/1
[[routerR3]]
image=..\ios\unzip-c7200-is-mz.122-37.bin
model=7200
console=3006
npe=npe-400
ram=64
confreg=0x2102
exec_area=64
mmap=false
slot0=PA-C7200-IO-FE
slot1=PA-4T
f0/0=PC3f0/0
s1/2=R4s1/0
[[routerR4]]
image=..\ios\unzip-c7200-is-mz.122-37.bin
model=7200
console=3007
npe=npe-400
ram=64
confreg=0x2102
exec_area=64
mmap=false
slot0=PA-C7200-IO-FE
slot1=PA-4T
f0/0=PC4f0/0
[[routerPC1]]
model=2621
ram=20
image=..\ios\unzip-c2600-i-mz.121-3.T.bin
mmap=False
confreg=0x2102
console=3001
[[routerPC2]]
model=2621
ram=20
image=..\ios\unzip-c2600-i-mz.121-3.T.bin
mmap=False
confreg=0x2102
console=3003
[[routerPC3]]
model=2621
ram=20
image=..\ios\unzip-c2600-i-mz.121-3.T.bin
mmap=False
confreg=0x2102
console=3005
[[routerPC4]]
model=2621
ram=20
image=..\ios\unzip-c2600-i-mz.121-3.T.bin
mmap=False
confreg=0x2102
console=3008