动态路由协议RIPOSPFEIGRP.docx

上传人:b****1 文档编号:1857839 上传时间:2023-05-01 格式:DOCX 页数:45 大小:1.07MB
下载 相关 举报
动态路由协议RIPOSPFEIGRP.docx_第1页
第1页 / 共45页
动态路由协议RIPOSPFEIGRP.docx_第2页
第2页 / 共45页
动态路由协议RIPOSPFEIGRP.docx_第3页
第3页 / 共45页
动态路由协议RIPOSPFEIGRP.docx_第4页
第4页 / 共45页
动态路由协议RIPOSPFEIGRP.docx_第5页
第5页 / 共45页
动态路由协议RIPOSPFEIGRP.docx_第6页
第6页 / 共45页
动态路由协议RIPOSPFEIGRP.docx_第7页
第7页 / 共45页
动态路由协议RIPOSPFEIGRP.docx_第8页
第8页 / 共45页
动态路由协议RIPOSPFEIGRP.docx_第9页
第9页 / 共45页
动态路由协议RIPOSPFEIGRP.docx_第10页
第10页 / 共45页
动态路由协议RIPOSPFEIGRP.docx_第11页
第11页 / 共45页
动态路由协议RIPOSPFEIGRP.docx_第12页
第12页 / 共45页
动态路由协议RIPOSPFEIGRP.docx_第13页
第13页 / 共45页
动态路由协议RIPOSPFEIGRP.docx_第14页
第14页 / 共45页
动态路由协议RIPOSPFEIGRP.docx_第15页
第15页 / 共45页
动态路由协议RIPOSPFEIGRP.docx_第16页
第16页 / 共45页
动态路由协议RIPOSPFEIGRP.docx_第17页
第17页 / 共45页
动态路由协议RIPOSPFEIGRP.docx_第18页
第18页 / 共45页
动态路由协议RIPOSPFEIGRP.docx_第19页
第19页 / 共45页
动态路由协议RIPOSPFEIGRP.docx_第20页
第20页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

动态路由协议RIPOSPFEIGRP.docx

《动态路由协议RIPOSPFEIGRP.docx》由会员分享,可在线阅读,更多相关《动态路由协议RIPOSPFEIGRP.docx(45页珍藏版)》请在冰点文库上搜索。

动态路由协议RIPOSPFEIGRP.docx

动态路由协议RIPOSPFEIGRP

第六节课动态路由协议:

RIP、OSPF、EIGRP

杜飞

我们前面已经简单介绍了三种类型的动态路由协议算法分别是距离矢量算法,链路状态算法以及平衡混合算法,那么咱们今天就来看看这几种算法的类型代表:

RIP、OSPF、EIGRP。

而且它们都是内部网关协议(IGP),也就是说它们都运行在一个自治系统内部,什么是自治系统,我们来简单看一下:

自治系统:

就是使用相同路由准则的网络集合,一般是一个ISP,或者是一个大型的行政机构。

大家刚听到这个术语时会感到有点模糊,有点抽象,在CCNP的课程中会有详细的介绍,我们CCNA部分很少会用到自治系统间的协议,使用的基本上都是自治系统内的协议。

所以如果按照在自动系统内运行还是用于连接不同的自治系统,路由协议又分为两种:

IGP:

内部网关协议,在一个自治系统内运行。

比如:

RIP、OSPF、IS-IS、EIGRP等。

EGP:

外部网关协议,用于连接不同的自治系统。

比如:

BGP

RIP:

路由信息协议

在CCNA部门主要介绍的是内部网关协议,那么我们先从RIP开刀。

RIP是一个典型的距离矢量路由协议,全称是Routinginformationprotocol(路由信息协议)。

它使用的是数据包所经过的网关来做为距离的单位,最大跳数为15跳,超过15跳便无法到达,大家从这个数中就可以看出来,RIP是一个元老级的路由协议,正是因为受到15跳的限制,所以现在使用的是越来越少。

它只适合于一些规模不大的网络,路由器的数量不多的网络中。

因为它评价网络的好处就是依靠跳数,但是这个跳数并不一定说就能代表最佳路径。

如图所示:

PC1希望到达PC2,按照RIP协议来说肯定是经过Router3,再转交给Router4就到达PC2,因为这样的话相对于Router3来说,它只要经过两跳,就可以到达PC2所在的网段。

跳数最少。

但是这条线路的带宽是19.2Kbps,而另一条路虽然跳线多,但它是T1线路,带宽大,延迟小。

肯定会比第一条路要优。

但是RIP是以跳数计算最佳路径,所以它就选择了第一条路。

所以大家也感觉到了,RIP有点笨笨的感觉,以至于现在用的不多了!

当启用RIP协议时,RIP会从RIP的相关接口上向外发广播包。

这里使用的是520/UDP端口。

广播包的内容主要是请求信息,侦听来自其他路由器的请求信息和应答信息,当邻居收到请求信息以后,就发送应答息给该路由器。

在RIP启动成功之后,平均每30秒,注意这里是平均每30称,不是正好是30秒。

就会发送应答信息,又称为update包。

这个update包中包含了路由器完整的路由表。

这里应该还有路由无效值,路由刷新时间等参数,这一部分应该是CCNP的内容,在此简单介绍一下,详细内容大家可以参考NP部分。

我们来看下图

如果Router3所连接的40网段断开了。

那么相对于Router2来说,如果在180秒内,没有得到关于40网段的路由消息,就会认为它失效了,但仅仅是失效而已,将Router2上关于40网段的路由设置为holddown状态,默认时间为180秒。

如果在这180秒里,Router2接收到40网段可行路由后会中止计时,并将原来关于40网段的路由改为可用路由;如果经过240秒,仍没有得到关于40网段的确认,就认为这个网段直的“死悄悄”了,那就把它从路由表中删除。

关于RIP还要提到一点是RIP分为RIP1与RIP2两个版本,区别在于RIP1是一个有类路由协议,即所有的更新包中不含子网掩码,不支持VLSM,所以就要求网络中所有设备必须使用相同的子网掩码,否则就会出错,而RIP2是一个无类的路由协议,它使用子网掩码;第二个不同的地方是RIP1是发送更新包的时候使用的是广播包,而RIP2使用的是组播224.0.0.9这样相对于RIP1来说就节省了一部分网络带宽。

第三个就是RIP2支持明文或者是MD5验证,要求两台路由器在同步路由表的时候必须进行验证,通过才可以进行路由同步,这样可以加强安全性。

下面咱们来看一个RIP协议的具体配置:

相对来说RIP的配置还是很简单的,下面咱们就以实验来结束RIP的讨论,我们在此做两个实验,一个使用RIP1来完成,一个使用RIP2来完成。

其实它们的配置大同小异,我们先来看RIP1。

Lab1:

动态路由协议RIP,使用RIP1协议使得网络中达到全网互通的目的

实验目的:

通过设置RIP1路由协议达到全网通的效果

实验设备:

三台Cisco系列路由器

拓扑图:

RA上的配置:

Router>enable

Router#conft

RA(config)#interfaces0/0

RA(config-if)#ipaddress192.168.0.1255.255.255.0

RA(config-if)#clockrate64000

RA(config-if)#noshutdown

RA(config-if)#exit

RA(config)#interfaceloopback1

RA(config-if)#ipaddress10.10.10.10255.255.255.0

RA(config-if)#exit

RA(config)#routerrip

RA(config-router)#network192.168.0.0

RA(config-router)#network10.10.10.0

RA配置完毕!

RB的配置:

Router>en

Router#conft

Router(config)#hostnameRB

RB(config)#interfaces0/0

RB(config-if)#ipaddress192.168.0.2255.255.255.0

RB(config-if)#noshutdown

RB(config-if)#interfaces0/1

RB(config-if)#ipaddress192.168.1.1255.255.255.0

RB(config-if)#clockrate64000

RB(config-if)#noshutdown

RB(config-if)#end

RB(config)#routerrip

RB(config-router)#network192.168.0.0

RB(config-router)#network192.168.1.0

RC上的配置

Router>en

Router#configt

Router(config)#hostnameRC

RC(config-if)#ipaddress192.168.1.2255.255.255.0

RC(config-if)#noshutdown

RC(config)#interfaceloopback1

RC(config-if)#ipaddress20.20.20.20255.255.255.0

RC(config)#routerrip

RC(config-router)#network192.168.1.0

RC(config-router)#network20.20.20.0

大家可以看到其实RIP的真正配置命令就两个

Routerrip激活RIP协议

Networknetwork-number选择需要激活接口所在的网段

验证配置:

我们在此没有使用PC,就使用扩展ping来测试我们的配置是否正确。

我们先来验证网络的连通性。

OK!

网络是通的,说明RIP已经生效了!

那么我们接下来就可以通过showiprouter查看路由器的路由表

在此我们可以看到RA这个路由器上的路由表信息:

两个直连路由,两个是通过RIP学习到的动态路由,其中[120/2]120代表管理距离,2代表到达对方的跳数。

至于其他两个路由器上的路由表我们在此不再查看!

也可以使用showipprotocols来查看当前运行的协议,如图所示:

这里可以看到正在运行的协议,更新时间,失效时间,刷新时间,还可以查看到激活的网络号和默认距离值等信息。

还可以使用Debugiprip来查看RIP协议的学习过程:

只是大家在选择网段的时候一定要注意:

如下图路由器B上network10.0.0.0就把10.1.1.0和10.2.2.0都包含了!

Lab2:

和实验1相同,只是RIP2来实现

注意:

RIP2与RIP1相比配置命令差不多,只是多了一个命令version2因为你不指定,会默认是RIP1

最好执行命令关闭自动聚合:

noauto-summary

Router>enable

Router#configureterminal

RA(config-if)#interfaceserial0

RA(config-if)#ipaddress192.168.0.1255.255.255.0

RA(config-if)#noshutdown

RA(config-if)#clockrate64000

RA(config-if)#exit

RA(config)#interfacelooback1

RA(config-if)#ipaddress10.10.10.10255.255.255.0

RA(config-if)#exit

RA(config)#routerrip

RA(config-router)#version2

RA(config-router)#noauto-summary

RA(config-router)#network192.168.0.1

RA(config-router)#network10.10.10.0

RB的配置:

Router>en

Router#conft

Router(config)#interfaces0

Router(config-if)#ipaddress192.168.0.2255.255.255.0

Router(config-if)#noshutdown

Router(config-if)#clockrate64000

Router(config-if)#interfaces1

Router(config-if)#ipaddress192.168.1.1255.255.255.0

Router(config-if)#clockrate64000

Router(config-if)#noshutdown

Router(config-if)#exit

Router(config)#routerrip

Router(config-router)#ver2

Router(config-router)#noauto-summary

Router(config-router)#network192.168.0.0

Router(config-router)#network192.168.1.0

RC的配置:

Router>enable

Router#configureterminal

Router(config)#interfaces0

Router(config-if)#ipaddress192.168.1.2255.255.255.0

Router(config-if)#noshutdown

Router(config-if)#interfaceloopback1

Router(config-if)#ipaddress20.20.20.20255.255.255.0

Router(config-if)#end

Router#configuret

Router(config)#routerrip

Router(config-router)#ver2

Router(config-router)#noauto-summary

Router(config-router)#network192.168.1.0

Router(config-router)#network20.20.20.0

到时为止,配置全部完成,我们还是首先来验证网络的连通性

RA上PING

还是使用showiproute来查看路由信息

也可以通过命令showipprotocols查看当前的协议信息。

可以看到现在的版本已经是2。

还可以通过defubiprip查看RIP的学习过程:

再给出一个思科官方的一个关于RIP2的配置实例,供大家学习使用:

在这个例子中要注意:

1、B使用是RIP2,而C使用的是RIP1,所以需要在B的S3口上定义RIP1版本,目的是为了和C路由器结合,一般最好是都使用同一个版本的RIP。

2、noauto-summary关闭自动汇总,当路由更新经过主类网络时,会自动向主灯网络号进行汇总,这样就会造成配置不正确,所以我们需要先关闭汇总,再手动开启汇总,再手动开启时就可以指定子网掩码!

关于RIP协议就介绍这么多了,下面咱们看一个链路状态协议的代表:

OSPF

OSPF:

OpenShortestPathFirst

开放最短路径优先协议,它是IETF组织开发的一个基于链路状态的内部网关协议。

大家从Open这个词就可以看出来,这个协议是公开的,可以支持不同厂家的设备,而我们下面要讲到的EIGRP就是思科所独有的。

OSPF目前使用的是版本2,可适应大规模网络,因为OSPF没有RIP的跳数限制,并且由于引进了区域的概念也比EIGRP支持的网络规模大。

OSPF已经被广泛的用在网络、企业网络、电力网络、金融网络、是一个支持大规模网络的IGP路由协议,最多可支持几百台路由器的网络规模。

下面咱们来看一下OSPF的优点:

路由变化收敛速度快:

OSPF的路由是经过路由器存储在本地的数据库计算出来的,当发生网络更新的时候不需要被动的询问邻居路由器,所以OSPF相对来说收敛速度比较快。

无路由环路:

OSPF路由协议采用的是最短路径优先算法(SPF),而且路由器用RouterID来表示,所以可以保证在一个区域内没有环路,由于使用直连骨干区域的设计,所以可以保证即使在多载的情况下无环路出现。

注意,这里所说的无环路的意思是当网络仅使用OSPF路由协议时没有环路,如果出现其他路由协议或静态路由的参与,就不能保证没有环路了。

支持CIDR和VLSM:

我们前面所讲的RIP路由协议不支持CIDR和VLSM,这被认为是RIP路由不适用于大型网络的又一个重要原因,采用CIDR和VLSM可以在最大限度上节约IP地址。

层次区域划分:

在OSPF中,一个网络可以被划分为很多个区域Area,其中分为两种:

骨区域(area0)和常规区域,其中常规区域可以支持42亿个,2的32次方个区域,绝对够用。

但是要求所有的常规区域必须与骨干区域相连,一个区域通过OSPF边界路由器相连,区域间可以通过路由汇总(Summary)来减少路由信息,减小路由表,提高路由器的运算速度。

组播地址发送协议报文:

使用专用的组播地址发送协议报文,因为是在小范围内通讯,所以可以减少对网络中非OSPF设备的影响。

下面咱们要介绍OSPF中一个重要但是很不算复杂的概念:

RouterID(RID)

一台路由器如果要运行OSPF协议,就必须存在RouterID。

RouterID的作用其实很简单,就是唯一标示一台OSPF路由器,如果没有配置ID号,系统会从当前接口的IP地址中自动选一个作为路由器的ID号。

选择顺序通常是优先从loopback地址中选择一个作为路由器的ID号;也可以从接口地址中选择,这时如果同时存在多个接口,则将接口中最大的IP地址作为路由器的ID号。

也就是说如果有逻辑接口也就是Loopback接口,则使用Loopback地址作为自己的RID,那如果没有逻辑接口,只有物理接口,则会使用物理接口IP地址比较大的那个作为自己的RIP。

那么哪些是物理接口如:

Serial口,Ethernet口,ATM口等等,但是如果有两个逻辑接口,则也是逻辑接口中IP地址较大的那个为RID。

通常建议先RouterID再配置OSPF路由协议,否则如果先启动了OSPF而路由器自己选举的RouterID又不是你希望的,那么重新重新配置RouterID就需要重启动一次OSPF路由进程了。

为什么使用LoopbackIP地址来优先配置RouterID?

因为早期的路由器操作(IOS)中使用物理接口IP地址充当RouterID,如果物理接口出现问题而down了,那么RouterID也就跟着消失了。

这样很容易OSPF路由协议的不稳定。

虽然现在路由器操作系统已经改掉了这个BUG,但路由器优先考比物理接口稳定的Loopback口IP地址成为了一个惯例。

另外由于Loopback接口一般不参与路由工作,所以可以通过Loopback接口优先配置RouterID。

手动配置RouterID的好处:

因为OSPF协议以RouterID识别邻居路由器,所以当出现各川问题的时候管理员总是看到RouterID路由器有问题。

那么在分配RouterID的时候,就可以考虑按照逻辑或物理的地址来进行分配。

在Cisco路由器中还有一个特性是通过;架设DNS服务器来解析RouterID名称。

这样当网络管理员监视网络状况的时候就可以直接看到对方路由器的名字了。

咱们了解了RouterID之后咱们就要接着来了解另外两个概述DR和BDR:

因为RouterID直接影响到DB和BDR的选举,我们来详细看一下,我们先从一个图入手:

那么如果在一个以太网环境中这五台路由器之间希望交换同步路由信息,它们之间使用的是网状的逻辑拓扑。

如下图所示:

这时如果希望它们之间能够迅速同步,需要多条链路,这样维护成本是比较大的。

我们就想了,我们可以在网络上选择一个路由器出来,让它来当“老大”,然后规定其他的路由器如果希望与另一个路由器通讯,那么只要经过这个“老大”就可以了。

所以如果我们把C当成“老大”,则拓扑就变成了下面这样:

这样所有的路由器之间通讯都通过C路由器,就减少了路由信息在网络上的洪泛。

节约了网络带宽。

那么这个路由器C就是咱们所说的DR,指定路由器(DesignatedRouer)

那关键是如果有一天这个路由器C坏了,怎么办?

这和WINDOWS中的DC有点类似,为了实现冗余,我们再来指定一个BDR(BackupDR),如我们在这里再指定路由器D作为BDR,那么这个拓扑图又变了:

其实也就是咱们网络拓扑中所说的部分互连。

这样的话冗余实现了,成本也降低了。

关键是网络上有这么多路由器,到底哪一个是DR,哪一个是BDR?

我们来看一下选举过程:

当选举DR/BDR的时候要比较hello报文中的优先级。

那么什么又是hello报文中,简单来说这个hello报文中包括一些定时器的数值,DR,BDR,以及自己已知的邻居。

也就是说每个路由器在和对方通讯时也是发hello报文,见面先打个照呼!

在OSPF中默认每10秒中发一次Hello报文!

如果40秒还没有收到的话,则宣称该邻居死亡。

里面就包含了RouterID,Hello报文的时间间隔和死亡时间间隔,邻居信息,区域信息,路由器优先级,DR以及BDR的信息,验证信息以及根区域标记等。

如图所示:

其中要求打*的参数必须要完全一样,不然就不可能成为一个邻居。

那么当选举DR/BDR的时候就先比较Hello包中的优先级(priority)优先级最高的为DR,次高的为BDR,但是默认优先级都为1,所以这个意义不大!

那么在优先级相同的情况下就开始比较我们刚刚介绍的一个东西了RouterID,RID值最高的为DR,次高的为BDR,当你把优先级设置为0以后,该路由器就不能成为DR或者是BDR,只能是DROther。

修改优先级可以使用命令:

(config-if)#ipospfcost0-255255最高

当选举完成后,DROther只和DR/BDR形成邻接关系也就是说在它们的眼里只有DR和BDR是它们的邻居,所有的路由器将组播Hello包到地址224.0.0.5以便它们能跟踪其他邻居的信息,即DR将洪泛LSU到224.0.0.5这个组播地址上;DROther只能能过组播地址224.0.0.6将LSU(链路状态更新)到所有的DR上。

只有DR/BDR监听这个组播地址。

如果两台路由器刚刚启动没有配置OSPF时,则相关的端口都是DOWN的。

如果配置好OSPF,这个时候如果双方开始发送一个初始化状态,我们以Router1为例,此时它会宣告我是192.168.10.10这其实就是它的RID,它会告诉对方我是192.168.10.10我现在没有任何邻居。

这个时候Router2在自己的Fa0/0中收到了Router2发过来的宣告信息就是把这个信息加到自己的邻居表里面并注明是通过Fa0/0中连接。

,然后再反馈给Router1说我是192.168.10.20,我有一个邻居是192.168.10.10;此时Router1又收到Router2的宣告信息就会把Router2的地址加到自己的路由表中并注明是通过Fa0/0连接的。

这个状态称为:

Two-way状态,相对稳定状态但是还没有真正成为邻居关系。

接下来进行Exstart状态,还没有真正进行信息交换呢,只是一个选举DR的过程:

Router1会发出一个数据包说我来负责更新路由表,因为我的RID是192.168.10.10,但是Router2会说,不行,我不认可,因为我的RID比你大。

所以经过协商,Roter2应该是BDR了。

再往下就是一个Exchange状态:

交换双方LSDB中的链路状态数据库的摘要信息,注意仅仅是摘要信息,为同步双方的数据库做准备。

注意这里使用的不再是hello报文,是DD报文,也就是说Router1发出一个DD报文给对方,对方收到后会发出LSACK,大家一看ACK太熟悉了,好多地方我们都使用过ACK,如TCP建立连接,通讯,拆除连接过程中,DHCP的工作过程中等等,都用到达ACK这个词,在这里也是一个意思就是给对方一个确认,因为如果没有确认,对方会重传!

再往下就进入了Load状态,这才是真正根据需要来调整自己的链路状态数据库,没有的加进来,如果我已经有了,再做出比较应该不应该做更新,等等操作。

最后完全结束之后进行是一个FULL状态,完全状态。

所有的链路状态数据库保持同步!

那么如果又有网络链路发生改变了,则LSU的信息(LSU更新包中包含LSA状态信息)只会发给DR,然后由DR再通过组播洪泛到本区域的其他路由器上。

其他路由器再根据链路状态重新计算出新的路由表出来。

这中间会用到链路状态树和最短路径树两个概念,我们简单看一下:

在OSPF中是用带宽作为metric的标准叫cost,一般每个路由器都是以自己为根来计算到达对方所需要的一个开销,用10的8次方来除以带宽,越小说明带宽越大,路径最优,就放到路由表中也就是最短路径树中。

以上只是简单分析了一下OSPF的工作过程。

在此给出一张截图供大家参考:

OSFP虽然说理论知识很多,但是配置起来很简单,我们来看一下具体的配置:

启用OSPF:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2