计算机网络技术实践实验报告实验名称:RIP和OSPF路由协议的配置及协议流程姓名:学号:实验日期:2014年4月11日实验报告日期:2014年4月12日报告退发:(订正、重做)一、环境(详细说明运行的操作系统,网络平台,网络拓扑图)●操作系统:windows8.1●网络平台:Dynamips 仿真平台●网络拓扑:二、实验目的三、实验内容及步骤(包括主要配置流程,重要部分需要截图)RIP:1.设计网拓扑2.配置ip地址以配置R1的s1/1 的ip地址为例:配置完后,输入命令no shutdown打开端口。
类似的配置完一共12个端口的ip地址。
3.配置rip路由协议:以配置R1的路由协议为例:4.配置PC的默认路由,以PC1为例:5.配置完成后,测试从PC1到网络中各个节点的连通情况:a)到5.1.30.2:b)到1.1.30.2:c)到2.1.30.2:d)到3.1.30.2:e)到4.1.30.2:f)到6.1.30.1:6.打开调试模式:以R1为例:不久之后接收到R4发来的路由信息:同时,R1也在向周围路由器发送路由信息:从上图中我们路由器R4从端口S1/0发送路由信息告诉R1,R4到网络2.0.0.0需要两跳,到网络3.0.0.0需要一跳,到网络6.0.0.0需要两跳。
R1通过计算从各个端口接收到的路由信息,需要到各个网络的最优路径之后,也会向外发出路由信息。
如上图所示,R1把路由信息从S1/0端口发出。
他告诉这个端口另一端所连的设备,R1到网络1.0.0.0需要一跳,到网络2.0.0.0需要两跳,到网路5.0.0.0需要一跳。
收到这个路由信息的设备也会根据这个路由信息来计算自己到各个网络的最优路径。
通过获得的路由信息不难看出rip协议的工作过程:每个路由器都维护这一张路由表,这张路由表中写明了网络号、到该网络的最短路径(实验中的路径长短由跳数来衡量)以及转发的出口。
路由器会周期性得向周围路由器发送自己的路由表,同时也会接受周围路由器发来的路由表,以此来刷新自己的路由器,适应网络拓扑变化。
路由器在收到路由信息之后会根据某些路由算法、收到的路由信息和原先自己的路由表来计算到达各个网络最优的转发路径(即下一跳的出口),这便是距离矢量路由算法的工作过程。
7.在控制台中关闭路由器R2后(以此来改变网络拓扑),R1开始收到不可达的路由刷新报文:一段时间后,R1的路由表被刷新:重新打开R2一段时间后,路由表被刷新:解释:在路由器R2下线之后,邻居路由器将会长时间收不到,R2方向过来的路由信息,一段时间后,路由表会被重新计算。
上图中,R1收到R4发来的路由信息,告诉R1,网络1.0.0.0和网络2.0.0.0已经被判定为不可达的网络。
到网络3.0.0.0需要一跳,到网络6.0.0.0需要两跳。
于是,R1的路由表会被刷新,从上图中可以看出,R1的路由表中已经没有了网络1.0.0.0和网络2.0.0.0的表项。
重新打开R2之后,由于R2又开始想周围发送路由器信息,周围路由器会知道R2又恢复正常了,在相互交换路由信息一段时间之后,路由表成功收敛,恢复了正常的状态。
可以从R1的路由表中看出,网络1.0.0.0、网络4.0.0.0和网络5.0.0.0是分别和端口s1/1、端口s1/0和端口f0/0直接相连的。
发向网络2.0.0.0的数据包从端口s1/1转发,发向网络3.0.0.0的数据包从端口s1/0转发,发向网络6.0.0.0的数据包可以从s1/0和1/1转发。
8.RIP协议中观察没有配置水平分割和配置水平分割后协议的工作流程:a)配置水平分割:b)没有配置水平分割:解释:从上图可以看出,配置了水平分割的情况下,更新报文相对于没有配置水平分割的情况少了网络1.0.0.0、2.0.0.0和6.0.0.0的路由信息。
因为从上面的几张截图和网络拓扑图中可以明显看出发向网络1.0.0.0、网络2.0.0.0和网络6.0.0.0的数据包会被从端口s1/1转发,也就是说路由表表项中的这三个网络的转发路径的计算最终一定是根据从s1/1收到的路由信息计算出来的。
所以在开启水平分割的前提下,这三个网络的路由信息在R1向s1/1端口发送路由信息的时候一定会被过滤掉。
从以上对截图的分析可以很明显得看出水平分割的作用。
水平分割就是记录下每一条路由信息的来源,这样在发送路由更新报文的时候,不会将从一个端口中收到的信息再从这个端口转发出去,这样可以避免无穷计算的问题,也就是避免了路由器根据自己转发出去的路由器信息来计算路由信息。
OSPF:1.配置OSPF路由协议:以R1为例:先使用no router rip命令关闭rip协议,然后输入router ospf 10命令开始配置ospf协议,如上图。
2.配置完成后,测试PC1到各个节点的连通性:a)到5.1.30.2:b)到1.1.30.2:c)到2.1.30.2:d)到3.1.30.2:e)到4.1.30.2:f)到6.1.30.1:3.打开调试:输入命令debug ip ospf event 打开调试模式,如下图:打开调试后,不断有hello包显示出来:解释:从上图可以看出,路由器R1在00:15:35的时候在端口s1/1收到了来自2.1.30.1的hello报文,hello报文顾名思义被用来维护检测邻接关系。
OSPF协议的工作过程大致如下,它是基于链路状态算法的分层路由协议。
在开启OSPF协议之后路由器之间交互的是链路状态信息,路由器在知道自己附近的网络的链路信息之后会把这些链路信息发给相邻的路由器,然后这些路由器也会把自己的链路信息再转发下去。
这样在一定的转发次数之后,每个路由器都能知道整个网络的拓扑了。
但是在网络比较庞大的情况下,这下链路信息会成为一个相当庞大的数据集,因此OSPF协议又提供了“区域”的概念,就是将一个大的网络切分成几个相对小的区域,区域分为骨干区域和常规区域,骨干区域和常规区域之间会交换链路信息,二常规区域之间不会交换链路信息。
这样就能减少链路信息的规模。
上图中就可以看出有“area0”的属性。
不过上图只有相邻链路hello包的交互,这是因为OSPF的主要协议交互过程是在刚配置完OSPF协议时就进行了,而在网络运行过程中,如果没有链路状态的变化就没有交互链路状态信息。
也就是说,一旦网络稳定,信息不再更新,则只会有Hello包。
只有链路发生变化时,相应路由器才会广播改变的信息给其余路由器。
4.在控制台中关闭路由器R2,以改变网络拓扑在超过配置ospf协议所设置的dead-interval后,调试信息中出现如下信息:此时路由表发生了变化:原先的路由表:解释:在上图中可以看出,R1由于长时间没有收到R2发来的hello报文,在超出配置OSPF协议是设置的时间之后,R1会将R2的状态判定为down。
代表从s1/1端口到网络2.0.0.0已经不通了。
R1会以此修改自己路由表。
从两张路由表的对比中可以看出,网络1.0.0.0和网络2.0.0.0的表项已经不见。
5.在开启R1的flood之后关闭R2的s1/1端口:开启flood:关闭R2的s1/1端口之后,R1收到如下信息:解释:可靠泛洪机制是OSPF的重要部分,其在某条链路状态发生变化时,会将变化的信息发送给同一域中的所有OSPF路由器,从而确保整个域内的路由器始终具有一致的链路状态数据库。
6.在开启R1的flood之后打开R2的s1/1端口:7.运行指令:sh ip ospf neighbor解释:可以从上图看出,R1有两个邻居,分别是s1/0接口上的R2(4.1.30.1)和s1/1接口上的R4(1.1.30.2).四、实验结果实验结果见实验过程中的截图。
五、实验中的问题及心得问题:在配置ip地址和路由表时,出现错误之后,比较难找出错误。
解决:在没配置一个设备之后应该相互检查一下,看一下能不能ping通,这样每做一点就检查一点,比较容易发现错误。
问题:从以太网发送数据包需要mac地址,但似乎在路由器之间通过串口进行发送数据就不需要mac 地址。
解决:因为路由器和pc之间采用的以太网,路由器和路由器之间是串口通信,所以以太网接口即f0/0等需要有mac地址,传输也需要有mac地址。
但是串口就不需要mac地址。
问题:在rip的路由信息中出现了via 0.0.0.0,开始不太懂这个是什么意思,认为下一跳不该是一个本机地址。
解决:rip发给邻居路由器的路由表的下一跳地址是对自己来说的,但是这个下一跳地址发给邻居路由器之后,其实没有任何意义。
如果邻居路由器经过计算之后,选择的就是这一条路径,那么这个路由信息中的下一跳就是本机。
心得:相对于计算机网络课上所学的内容,更加深刻得理解了rip和ospf协议工作的过程。
了解了配置rip,ospf协议的过程,学习到ospf协议为了减小链路信息的开销,ospf协议将一个大网划分成几个小区域。
这就是配置ospf协议时输入的area 0的含义。
真实得看见了水平分割的工作过程,发现路由器能够智能得过滤掉那些从该端口收到的路由信息。
六、实验思考(1)实验中,采用下一跳和转发接口这两种方式配置PC1和PC2有什么区别?会导致在你的拓扑结构中丢包数有什么变化?用arp表中的内容来解释。
Ping前的arp表:Ping:Ping后的arp表:解释:PPP链路网络中使用转发接口,不需要进行arp解析即可发送数据。
以太网则需要进行ARP解析,每次解析都会发生丢包。
(2)OSPF中广播的信息有哪些?i.OSPF路由器会周期性地发送hello数据包,该数据包是路由器建立通信的基础.ii.两个OSPF路由器建立双向通信这后还需要进行数据库同步,即发送DBD信息。
iii.链路状态请求(LSR)、更新(LSU)、确认(LSA)信息。
(3)写出在你的拓扑中,数据包从PC1到PC2发送的完整过程,包括Arp表的内容。
以ping为例。
Ping之前:PC1的arp表:R1的arp表:R2的arp表:R3的arp表:Ping命令:ping之后:PC1的arp表:R1的arp表:R2的arp表:R3的arp表:解释:上图中:在ping命令之前,PC1的arp表只有自己的f0/0端口5.1.30.1的mac地址,R1只有自己的f0/0端口5.1.30.2的mac地址。
R2的arp表为空,R3的arp表只有自己的f0/0端口6.1.30.2的mac地址,PC2的arp表只有自己的f0/0端口6.1.30.1的mac地址。
在ping 6.1.30.1的时候,PC2会把包发向默认路由器5.1.30.2,但是PC1并不知道5.1.30.2的mac地址,而链路层一定是要mac地址来寻址的。