我们前面已经简单介绍了三种类型的动态路由协议算法分别是距离矢量算法,链路状态算法以及平衡混合算法,那么咱们今天就来看看这几种算法的类型代表:RIP、OSPF、EIGRP。而且它们都是内部网关协议(IGP),也就是说它们都运行在一个自治系统内部,什么是自治系统,我们来简单看一下:
自治系统:就是使用相同路由准则的网络集合,一般是一个ISP,或者是一个大型的行政机构。大家刚听到这个术语时会感到有点模糊,有点抽象,在CCNP的课程中会有详细的介绍,我们CCNA部分很少会用到自治系统间的协议,使用的基本上都是自治系统内的协议。所以如果按照在自动系统内运行还是用于连接不同的自治系统,路由协议又分为两种:
IGP:内部网关协议,在一个自治系统内运行。比如:RIP、OSPF、IS-IS、EIGRP等。
EGP:外部网关协议,用于连接不同的自治系统。比如:BGP
在12.3(2)T之前的Cisco IOS版本中,IP路由选择协议支持的最大平行路由(成本相等的路由)数为6,而在12.3(2)T中,支持的最大平行路由数为16。
BGP要求静态地指定邻居。
Rip v1属于分类路由选择协议。Rip v2、EIGRP、OSPF、IS-IS和BGP属于无类路由选择协议。使用分类路由选择协议时,必须是连续网络,汇总才不会出现问题。使用无类路由选择协议时,支持VLSM。如果路由选择表中有多个与目标地址匹配的条目,则将使用前缀最长的匹配条目。
对于RIPv2和EIGRP,可以使用路由器配置命令no auto-summary来禁用自动汇总。
IGRP、EIGRP、IS-IS是思科私有协议。
路由来源 |
管理距离 |
会聚速度 |
RIP V2 |
120 |
慢 |
ERGIP |
90 |
非常快 |
IS-IS |
115 |
快 |
OSPF |
110 |
快 |
BGP |
内部200,外部20 |
慢 |
管理距离是0-255的值,管理距离越小,协议的可信度越高。
静态路由:
Example:
ip route 172.16.1.0 255.255.255.0 s0/0/0(可用来到达目标网络的本地路由器出站接口)
ip route 172.16.1.0 255.255.255.0 192.168.1.1(可用来到达目标网络的下一跳的IP地址)
静态默认路由:ip route 0.0.0.0 0.0.0.0 172.16.1.0
按需静态路由:
ODR(on demand routing)只适合于中央-分支拓扑。在中央路由器上,使用全局配置命令router odr配置ODR.Example:
R1#conf t
R1(config)#router odr
在末节路由器上,无需配置任何IP路由选择协议。
默认情况下,Cisco路由器全局的启用CDP。CDP每隔60S发送一次更新。要调整定时器时,Example:
R1#conf t
R1(config)#cdp timer <5-254个/S>
RIP:
RIPv1的特征:
使用跳数作为度量值;
最大允许跳数为15;
默认情况下,每隔30s广播一次路由更新;
RIP最多可以在6条(默认为4条)等成本路径之间均衡负载;
不支持身份验证。
可使用接口命令ip rip send version和ip rip receive version。
RIPv2使用组播地址224.0.0.9将更新发给其他RIPv2的路由器。RIPv1使用255.255.255.255。
RIPv2的路由更新时间也是30s。
EIGRP:
EIGRP是cisco专有协议,同时具备链路状态和距离矢量路由选择协议的优点。
EIGRP发送部门更新而不是定期更新,且仅在路由的路径或度量值发生变化时才发送。EIGRP使用的组播地址:224.0.0.10。
EIGRP术语:
通告距离(AD):下一条路由器到目的地的成本。
可行距离(FD):当前路由器到下一跳路由器的成本加上下一条路由器到目的地的成本。
后继站(successor):到目的地的路径成本最低(FD最低)的邻接路由器。
可行后继站(FS):备用路径的下一跳路由器被称为可行后继站。
默认情况下,最多可以将4条前往同一个目的地且度量值相同的路由加入到路由选择表中(通过修改配置最后可以16条)。
EIGRP运行时使用3个表:邻居表(show ip eigrp neighbors);拓扑表;路由选择表。
EIGRP发送5种类型的分组:Hello、更新、查询、应答、确认(ACK)。
默认情况下,在T1(1.544mbps,是美国电信标准)或速度更低的多点接口上,每隔60S就发送一个hello分组;在LAN和其他串行接口上,每隔5S发送一个hello分组。可以使用接口命令ip eigrp hello-interval as-number seconds来调整。保持时间为Hello时间的3倍。可以使用接口命令ip eigrp hold-time as-number seconds来调整。
可以手动汇总。Example:R3(config-if)#ip summary eigrp 50 192.168.0.0 255.255.252.0
RIP:路由信息协议
在CCNA部门主要介绍的是内部网关协议,那么我们先从RIP开刀。RIP是一个典型的距离矢量路由协议,全称是Routing information protocol(路由信息协议)。它使用的是数据包所经过的网关来做为距离的单位,最大跳数为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验证,要求两台路由器在同步路由表的时候必须进行验证,通过才可以进行路由同步,这样可以加强安全性。(rip1和 rip2 的区别)
下面咱们来看一个RIP协议的具体配置:
相对来说RIP的配置还是很简单的,下面咱们就以实验来结束RIP的讨论,我们在此做两个实验,一个使用RIP1来完成,一个使用RIP2来完成。其实它们的配置大同小异,我们先来看RIP1。
Lab1:动态路由协议RIP,使用RIP1协议使得网络中达到全网互通的目的
实验目的:通过设置RIP1路由协议达到全网通的效果
实验设备:三台Cisco系列路由器
拓扑图:
RA上的配置:
Router>enable
Router#conf t
RA(config)#interface s0/0
RA(config-if)#ip address 192.168.0.1 255.255.255.0
RA(config-if)#clock rate 64000
RA(config-if)#no shutdown
RA(config-if)#exit
RA(config)#interface loopback 1
RA(config-if)#ip address 10.10.10.10 255.255.255.0
RA(config-if)#exit
RA(config-router)#network 192.168.0.0
RA(config-router)#network 10.10.10.0
RA配置完毕!
RB的配置:
Router>en
Router#conf t
Router(config)#hostname RB
RB(config)#interface s0/0
RB(config-if)#ip address 192.168.0.2 255.255.255.0
RB(config-if)#no shutdown
RB(config-if)#interface s0/1
RB(config-if)#ip address 192.168.1.1 255.255.255.0
RB(config-if)#clock rate 64000
RB(config-if)#no shutdown
RB(config-if)#end
RB(config)#router rip
RB(config-router)#network 192.168.0.0
RB(config-router)#network 192.168.1.0
RC上的配置
Router>en
Router#config t
Router(config)#hostname RC
RC(config-if)#ip address 192.168.1.2 255.255.255.0
RC(config-if)#no shutdown
RC(config)#interface loopback 1
RC(config-if)#ip address 20.20.20.20 255.255.255.0
RC(config)#router rip
RC(config-router)#network 192.168.1.0
RC(config-router)#network 20.20.20.0
大家可以看到其实RIP的真正配置命令就两个
Router rip 激活RIP协议
Network network-number 选择需要激活接口所在的网段
验证配置:
我们在此没有使用PC,就使用扩展ping来测试我们的配置是否正确。我们先来验证网络的连通性。
OK!网络是通的,说明RIP已经生效了!
那么我们接下来就可以通过show ip router查看路由器的路由表
在此我们可以看到RA这个路由器上的路由表信息:两个直连路由,两个是通过RIP学习到的动态路由,其中[ 120/2] 120代表管理距离,2代表到达对方的跳数。至于其他两个路由器上的路由表我们在此不再查看!
也可以使用show ip protocols来查看当前运行的协议,如图所示:
这里可以看到正在运行的协议,更新时间,失效时间,刷新时间,还可以查看到激活的网络号和默认距离值等信息。还可以使用Debug ip rip 来查看RIP协议的学习过程:
只是大家在选择网段的时候一定要注意:如下图路由器B上network10.0.0.0就把10.1.1.0和10.2.2.0都包含了!
Lab2:和实验1相同,只是RIP2来实现
注意:RIP2与RIP1相比配置命令差不多,只是多了一个命令version 2 因为你不指定,会默认是RIP1
最好执行命令关闭自动聚合:no auto-summary
Router>enable
Router#configure terminal
RA(config-if)#interface serial 0
RA(config-if)#ip address 192.168.0.1 255.255.255.0
RA(config-if)#no shutdown
RA(config-if)#clock rate 64000
RA(config-if)#exit
RA(config)#interface looback 1
RA(config-if)#ip address 10.10.10.10 255.255.255.0
RA(config-if)#exit
RA(config)#router rip
RA(config-router)#version 2
RA(config-router)#no auto-summary
RA(config-router)#network 192.168.0.1
RA(config-router)#network 10.10.10.0
RB的配置:
Router>en
Router#conf t
Router(config)#interface s0
Router(config-if)#ip address 192.168.0.2 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#clock rate 64000
Router(config-if)#interface s1
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#clock rate 64000
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#router rip
Router(config-router)#ver 2
Router(config-router)#no auto-summary
Router(config-router)#network 192.168.0.0
Router(config-router)#network 192.168.1.0
RC的配置:
Router>enable
Router#configure terminal
Router(config)#interface s0
Router(config-if)#ip address 192.168.1.2 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#interface loopback 1
Router(config-if)#ip address 20.20.20.20 255.255.255.0
Router(config-if)#end
Router#configure t
Router(config)#router rip
Router(config-router)#ver 2
Router(config-router)#no auto-summary
Router(config-router)#network 192.168.1.0
Router(config-router)#network 20.20.20.0
到时为止,配置全部完成,我们还是首先来验证网络的连通性
RA上PING
还是使用show ip route来查看路由信息
也可以通过命令 show ip protocols 查看当前的协议信息。可以看到现在的版本已经是2。
还可以通过 defub ip rip 查看RIP的学习过程:
再给出一个思科官方的一个关于RIP2的配置实例,供大家学习使用:
在这个例子中要注意:
1、B使用是RIP2,而C使用的是RIP1,所以需要在B的S3口上定义RIP1版本,目的是为了和C路由器结合,一般最好是都使用同一个版本的RIP。
2、no auto-summary 关闭自动汇总,当路由更新经过主类网络时,会自动向主灯网络号进行汇总,这样就会造成配置不正确,所以我们需要先关闭汇总,再手动开启汇总,再手动开启时就可以指定子网掩码!
关于RIP协议就介绍这么多了,下面咱们看一个链路状态协议的代表:OSPF
OSPF:Open Shortest Path First
开放最短路径优先协议,它是IETF组织开发的一个基于链路状态的内部网关协议。大家从Open这个词就可以看出来,这个协议是公开的,可以支持不同厂家 的设备,而我们下面要讲到的EIGRP就是思科所独有的。OSPF目前使用的是版本2,可适应大规模网络,因为OSPF没有RIP的跳数限制,并且由于引 进了区域的概念也比EIGRP支持的网络规模大。OSPF已经被广泛的用在网络、企业网络、电力网络、金融网络、是一个支持大规模网络的IGP路由协议, 最多可支持几百台路由器的网络规模。
下面咱们来看一下OSPF的优点:
路由变化收敛速度快:OSPF的路由是经过路由器存储在本地的数据库计算出来的,当发生网络更新的时候不需要被动的询问邻居路由器,所以OSPF相对来说收敛速度比较快。
无路由环路:OSPF路由协议采用的是最短路径优先算法(SPF),而且路由器 用Router ID来表示,所以可以保证在一个区域内没有环路,由于 使用直连骨干区域的设计,所以可以保证即使在多载的情况下无环路出现。注意,这里所说的无环路的意思是当网络仅使用OSPF路由协议时没有环路,如果出现 其他路由协议或静态路由的参与,就不能保证没有环路了。
支持CIDR和VLSM:我们前面所讲的RIP路由协议不支持CIDR和VLSM,这被认为是RIP路由不适用于大型网络的又一个重要原因,采用CIDR和VLSM可以在最大限度上节约IP地址。
层次区域划分:在OSPF中,一个网络可以被划分为很多个区域Area,其中分 为两种:骨区域(area 0)和常规区域,其中常规区域可以支持42亿个,2的32次方个区域,绝对够用。但是要求所有的常规区域必须与骨干区域相连,一个区域通过OSPF边界路 由器相连,区域间可以通过路由汇总(Summary)来减少路由信息,减小路由表,提高路由器的运算速度。
组播地址发送协议报文:使用专用的组播地址发送协议报文,因为是在小范围内通讯,所以可以减少对网络中非OSPF设备的影响。
下面咱们要介绍OSPF中一个重要但是很不算复杂的概念:Router ID(RID)
一台路由器如果要运行OSPF协议,就必须存在Router ID。Router ID的作用其实很简单,就是唯一标示一台OSPF路由器,如果没有配置ID号,系统会从当前接口的IP地址中自动选一个作为路由器的ID号。选择顺序通常 是优先从loopback地址中选择一个作为路由器的ID号;也可以从接口地址中选择,这时如果同时存在多个接口,则将接口中最大的IP地址作为路由器的 ID号。也就是说如果有逻辑接口也就是Loopback接口,则使用Loopback地址作为自己的RID,那如果没有逻辑接口,只有物理接口,则会使用 物理接口IP地址比较大的那个作为自己的RIP。那么哪些是物理接口如:Serial口,Ethernet口,ATM口等等,但是如果有两个逻辑接口,则 也是逻辑接口中IP地址较大的那个为RID。
通常建议先Router ID再配置OSPF路由协议,否则如果先启动了OSPF而路由器自己选举的Router ID又不是你希望的,那么重新重新配置Router ID就需要重启动一次OSPF路由进程了。为什么使用Loopback IP地址来优先配置Router ID?因为早期的路由器操作(IOS)中使用物理接口IP地址充当Router ID,如果物理接口出现问题而down了,那么Router ID也就跟着消失了。这样很容易OSPF路由协议的不稳定。虽然现在路由器操作系统已经改掉了这个BUG,但路由器优先考比物理接口稳定的 Loopback口IP地址成为了一个惯例。另外由于Loopback接口一般不参与路由工作,所以可以通过Loopback接口优先配置Router ID。
手动配置Router ID的好处:
因为OSPF协议以Router ID识别邻居路由器,所以当出现各川问题的时候管理员总是看到Router ID路由器有问题。那么在分配Router ID的时候,就可以考虑按照逻辑或物理的地址来进行分配。在Cisco路由器中还有一个特性是通过;架设DNS服务器来解析Router ID名称。这样当网络管理员监视网络状况的时候就可以直接看到对方路由器的名字了。
咱们了解了Router ID之后咱们就要接着来了解另外两个概述DR和BDR:因为Router ID直接影响到DB和BDR的选举,我们来详细看一下,我们先从一个图入手:
那么如果在一个以太网环境中这五台路由器之间希望交换同步路由信息,它们之间使用的是网状的逻辑拓扑。如下图所示:
这时如果希望它们之间能够迅速同步,需要多条链路,这样维护成本是比较大的。我们就想了,我们可以在网络上选择一个路由器出来,让它来当“老大”,然后规 定其他的路由器如果希望与另一个路由器通讯,那么只要经过这个“老大”就可以了。所以如果我们把C当成“老大”,则拓扑就变成了下面这样:
这样所有的路由器之间通讯都通过C路由器,就减少了路由信息在网络上的洪泛。节约了网络带宽。那么这个路由器C就是咱们所说的DR,指定路由器(Designated Rouer)
那关键是如果有一天这个路由器C坏了,怎么办?这和WINDOWS中的DC有点类似,为了实现冗余,我们再来指定一个BDR(Backup DR),如我们在这里再指定路由器D作为BDR,那么这个拓扑图又变了:
其实也就是咱们网络拓扑中所说的部分互连。这样的话冗余实现了,成本也降低了。关键是网络上有这么多路由器,到底哪一个是DR,哪一个是BDR?
我们来看一下选举过程:
当选举DR/BDR的时候要比较hello报文中的优先级。那么什么又是hello报文中,简单来说这个hello报文中包括一些定时器的数 值,DR,BDR,以及自己已知的邻居。也就是说每个路由器在和对方通讯时也是发hello报文,见面先打个照呼!在OSPF中默认每10秒中发一次 Hello报文!如果40秒还没有收到的话,则宣称该邻居死亡。里面就包含了Router ID,Hello报文的时间间隔和死亡时间间隔,邻居信息,区域信息,路由器优先级,DR以及BDR的信息,验证信息以及根区域标记等。如图所示:
其中要求打*的参数必须要完全一样,不然就不可能成为一个邻居。
那么当选举DR/BDR的时候就先比较Hello包中的优先级(priority)优先级最高的为DR,次高的为 BDR,但是默认优先级都为1,所以这个意义不大!那么在优先级相同的情况下就开始比较我们刚刚介绍的一个东西了Router ID,RID值最高的为DR,次高的为BDR,当你把优先级设置为0以后,该路由器就不能成为DR或者是BDR,只能是DROther。
修改优先级可以使用命令: (config-if)#ip ospf cost 0-255 255最高
当选举完成后,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:
(Config)# router ospf 进程ID 范围是 1-65535
其中这个进程ID,用于区分不同的OSPF协议,这只是一个本地进程ID,随便取,也就是说只是区分一个路由器上的多个OSPF协议,跟别的路由器没有关系可以不同。
指定网段
(config-router)network 网络号 反向掩码 area 区域号
注意这里区域号必须要求一样
查看启用的路由协议:
Show ip protocols
查看当前路由表:
Show ip route
查直OSPF样关信息
Show ip ospf interface
同样我们还是通过一个实验来结束OSPF的学习:
Lab:: 动态路由协议OSPF
实验目的:通过OSPF路由协议使得网络中达到全网互通的目的
设备:三台Cisco系统路由器,2条V24线缆
拓扑图:
Router1上的配置:
Router>en
Router#conf t
Router(config)#hostname RA
RA(config)#interface s2/0
RA(config-if)#ip address 192.168.0.1 255.255.255.0
RA(config-if)#clock rate 64000
RA(config-if)#no shutdown
RA(config-if)#exit
RA(config)#interface fa 0/0
RA(config-if)#ip address 10.10.10.1 255.255.255.0
RA(config-if)#no shutdown
RA(config-if)#exit
RA(config)#router ospf 1
RA(config-router)#network 10.10.10.0 0.0.0.255 area 0
RA(config-router)#network 192.168.0.0 0.0.0.255 area 0
Router2的配置:
Router>enable
Router#conf t
Router(config)#hostname RB
RB(config)#interface s2/0
RB(config-if)#ip address 192.168.0.2 255.255.255.0
RB(config-if)#no shutdown
RB(config-if)#exit
RB(config)#interface s3/0
RB(config-if)#ip address 192.168.1.1 255.255.255.0
RB(config-if)#clock rate 64000
RB(config-if)#no shutdown
RB(config-if)#exit
RB(config)#router ospf 1
RB(config-router)#network 192.168.0.0 0.0.0.255 area 0
RB(config-router)#network 192.168.1.0 0.0.0.255 area 0
Router3的配置:
Router>en
Router#conf t
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#interface s2/0
Router(config-if)#ip address 192.168.1.2 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#interface fa 0/0
Router(config-if)#ip address 20.20.20.1 255.255.255.0
Router(config-if)#no shutdown
Router(config-if)#exit
Router(config)#router ospf 1
Router(config-router)#network 192.168.1.0 0.0.0.255 area 0
Router(config-router)#network 20.20.20.0 0.0.0.255 area 0
Router(config-router)#exit
验证我们在PC2上去ping PC1:
反之也可以通讯,在此不再测试。
我们可以使用show ip route,显示当前的路由表
其中O代表的就是OSPF,在此不再详细介绍!
也可以使用show ip rotocols 显示当前正在运行的路由协议
关于OSPF我们就介绍到此,下面我们来看一个平衡混合路由协议的代表EIGRP
EIGRP:Enhanced Interior Gateway Routing Protocol
中文意思是:增加强内部网关路由协议,是早期IGRP的增强版,对IGRP做了一些扩展,原理也差不多,差别不是很大,所以我们在此就介绍EIGRP,不 再介绍IGRP了,以后大家也不会再用到IGRP了。但EIGRP是思科私有的一个路由协议,这其实也制约了EIGRP的使用范围,因为只有在同一个网络 中全部都是思科的产品才会使用EIGRP,但要考虑到一个网络的扩展功能。那万一以后要使用其他厂家的产品怎么办?所以一定要考虑好用不用EIGRP。下 面咱们就花点时间来看一下EIGRP的相关知识点,首先就从EIGRP特性入手:
EIGRP特性:
EIGRP早点是在IOS9.21的时候就支持EIGRP了,现在IOS的版本已经达到12.4了,大家可以从官网找到相关的IOS文件:
关键是EIGRP是一个混合型的路由协议,也就是说它结合了距离矢量和链路状态两种路由协议的特性。但是距离矢量和链路状态都有自己的弊端民。如距离矢量 容易产生环路,而且是以跳数为计算路径不是很准确。那么链路状态协议是没有环路了,而且是以cost来作为metric值作为最佳路由,但是因为它的算法 复杂,所以必须占用一定的资源。那么EIGRP就结合它们有自己的一些特性:
收敛速度快:相对于RIP来说,收敛速度是很多的,不敢说比OSPF绝对快,但 绝对比RIP要快,我们前面介绍RIP的时候我们也看到了RIP有一个30秒的广播时间,有180秒的无效时间,还有240的刷新时间,所以当网络出现更 改时,这个收敛速度是很慢的,在此EIGRP使用的是链路状态的收敛形式,对外宣布的链中状态,所以EIGRP相对来说要快很多。
无环路的无类路由:因为它采用的是一位荷兰的计算机科学家Dijkstra于1959年发现的算法,这种算法有点复杂,但能保证网络中的每一个路由器都有一个整个的网络链路图,不会产生网络环路。
增量路由更新: RIP是将整个路由表都发给对方,而EIGRP是将发生更新的路由发给对方,这和我们平时所说的增量备份和差异备份有点相似,所以相比来说性能要高。而且采用的是trigger update,如果没有更新是不是发送的,这点和RIP也不一样!
支持等价与非等价路径的负载均衡:RIP支持的是4条等价的负载均衡,针对一些厂家可以支持6条cost相同的OSPF负载均衡,但都是等价的负载均衡,但是只有EIGRP可以实现非等价的负载均衡。
使用单播或组播代替广播:
支持多种网络层协议:支持IP、Novell 公司的IPX、Apple的AppleTalk等等协议,主要是因为它有一个协议相关模块!
至于说其他特性就不再细细介绍了,如:支持VLSM和CIDR、支持路由的手动汇总。
EIGRP中的三张表: EIGRP如果想正常工作必须用到三张表,分别是邻居表,拓扑表,路由表,这一点和链路状态差不多!我们来看一下这三张表是如何协同工作的,如图所示:
邻居表中存放的是netxt-hop router 与interface的对应关系,也就是说存放的是下一跳及本地接口,通过本地的哪个接口可以到达下一跳,但是必须是运行EIGRP路由器的直连路由信息。 拓扑表:从邻居表中学过来的所有的路由信息,也就是所有目标网络的信息,其中有successor后继路由以及feasible successor(FS)可行后继路由,当然最终放到路由表的只有后继路由,那这个FS有什么用呢,是说如果万一后继路由坏了,路不通了,那么可行后继 路由就成了后继路由放到路由表中,其实也是一个冗错机制! 路由表:存放的是到达对方的最佳路由信息。 一个数据包能不能被转发最终依靠的是路由表。 下面看一下FD和AD两个概念:这两个概念也很容易理解: FD:Feasible Distance 可行距离 AD:Advertised Distance 宣告距离 它们两个术语之间有什么关系,针对每一个路由器,都会根据它所宣告的距离AD及cost来计算自己到达对方的FD。然后最小的FD就是到达对方的最佳路由。
那有人问这个metric值是怎么算出来的,这里需要参考这么几个参数: 带宽,延迟,可靠性,负载以及MTU那么在这里必须用到的是带宽和延迟 公式如下:256*min(BW)+sum(DLY) 那这里如果不乘以256就是IGRP的metric计算方法,因为IGRP以后大家不会再用了,在此就不再介绍。 其中BW就是带宽,DLY就是延迟 最后咱们来看一下EIGRP的具体配置,配置对大家来说就是张飞吃豆芽,总的来说就两个命令: 启动EIGRP 命令:Router eigrp 自治系统号 注意这个号是1-65535,注意这个自治系统号必须一样,实验中大家可以随便指定,但是工作中由运营商给我们分配好! 宣告主连网络号 命令:Network 网络号 这里有几个和验证相关的命令 显示邻居表的内容:show ip eigrp neighbors 显示拓扑表的内容:show ip eigrp topology 显示当前EIGRP路由表内容: show ip route eigrp 查看EIGRP的流量信息: show ip eigrp traffic 显示当前运行的协议:show ip protocols 关于CCNA部分中的EIGRP就暂且讲这么多了,其实EIGRP还是相当复杂的一个协议,更多内容请参考CCNP部分。下面咱们还是以一个实验来结束这节课! Lab:动态路由协议EIGRP 实验目的:通过EIGRP路由协议使得网络中达到全网互通的效果
ospf与eigrp和rip
RIP的局限性在大型网络中使用所产生的问题:
RIP的15跳限制,超过15跳的路由被认为不可达
RIP不能支持可变长子网掩码(VLSM),导致IP地址分配的低效率
周期性广播整个路由表,在低速链路及广域网云中应用将产生很大问题
收敛速度慢于OSPF,在大型网络中收敛时间需要几分钟
RIP没有网络延迟和链路开销的概念,路由选路基于跳数。拥有较少跳数的路由总是被选为最佳路由即使较长的路径有低的延迟和开销
RIP没有区域的概念,不能在任意比特位进行路由汇总
一些增强的功能被引入RIP的新版本RIPv2中,RIPv2支持VLSM,认证以及组播更新。但RIPv2的跳数限制以及慢收敛使它仍然不适用于大型网络
相比RIP而言,OSPF更适合用于大型网络:
没有跳数的限制
支持可变长子网掩码(VLSM)
使用组播发送链路状态更新,在链路状态变化时使用触发更新,提高了带宽的利用率
收敛速度快
具有认证功能
OSPF与EIGRP的比较
在互联网飞速发展的今天,TCP/IP协议已经成为数据网络互联的主流协议。在各种网络上运行的大大小小各种型号路由器,承担着控制本世纪或许最重要信息的流量,而这成百上千台路由器间的协同工作,离不开路由协议。OSPF和EIGRP都是近年来出现的比较好的动态路由协议,OSPF以协议标准化强,支持厂家多,受到广泛应用,而EIGRP协议由网络界公认的领先厂商Cisco公司发明,并靠其在业界的影响力和绝对的市场份额,也受到用户的普遍认同。然而这两种协议究竟哪种更好,谁更适合网络未来发展的需要?本文就用户普遍关心的问题,从技术角度客观分析这两种协议各自的优缺点,以便网络集成商和企业用户在网络设计规划时,能作为参考。
一、OSPF协议
(一)、OSPF协议简介
OSPF是Open Shortest Path First(即“开放最短路由优先协议”)的缩写。它是IETF组织开发的一个基于链路状态的自治系统内部路由协议。在IP网络上,它通过收集和传递自治系统的链路状态来动态地发现并传播路由。
每一台运行OSPF协议的路由器总是将本地网络的连接状态,(如可用接口信息、可达邻居信息等)用LSA(链路状态广播)描述,并广播到整个自治系统中去。这样,每台路由器都收到了自治系统中所有路由器生成的LSA,这些LSA的集合组成了LSDB(链路状态数据库)。由于每一条LSA是对一台路由器周边网络拓扑的描述,则整个LSDB就是对该自治系统网络拓扑的真实反映。
根据LSDB,各路由器运行SPF(最短路径优先)算法。构建一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由。在图论中,“树”是一种无环路的连接图。所以OSPF计算出的路由也是一种无环路的路由。
OSPF协议为了减少自身的开销,提出了以下概念:
(1). DR:
在各类可以多址访问的网络中,如果存在两台或两台以上的路由器,该网络上要选举出一个“指定路由器”(DR)。“指定路由器”负责与本网段内所有路由器进行LSDB的同步。这样,两台非DR路由器之间就不再进行LSDB的同步。大大节省了同一网段内的带宽开销。
(2). AREA:
OSPF可以根据自治系统的拓扑结构划分成不同的区域(AREA),这样区域边界路由器(ABR)向其它区域发送路由信息时,以网段为单位生成摘要LSA。这样可以减少自治系统中的LSA的数量,以及路由计算的复杂度。
OSPF使用4类不同的路由,按优先顺序来说分别是:
区域内路由
区域间路由
第一类外部路由
第二类外部路由
区域内和区域间路由描述的是自治系统内部的网络结构,而外部路由则描述了应该如何选择到自治系统以外目的地的路由。一般来说,第一类外部路由对应于OSPF从其它内部路由协议所引入的信息,这些路由的花费和OSPF自身路由的花费具有可比性;第二类外部路由对应于OSPF从外部路由协议所引入的信息,它们的花费远大于OSPF自身的路由花费,因而在计算时,将只考虑外部的花费。
(二)、OSPF协议主要优点:
1、OSPF是真正的LOOP- FREE(无路由自环)路由协议。源自其算法本身的优点。(链路状态及最短路径树算法)
2、OSPF收敛速度快:能够在最短的时间内将路由变化传递到整个自治系统。
3、提出区域(area)划分的概念,将自治系统划分为不同区域后,通过区域之间的对路由信息的摘要,大大减少了需传递的路由信息数量。也使得路由信息不会随网络规模的扩大而急剧膨胀。
4、将协议自身的开销控制到最小。见下:
1)用于发现和维护邻居关系的是定期发送的是不含路由信息的hello报文,非常短小。包含路由信息的报文时是触发更新的机制。(有路由变化时才会发送)。但为了增强协议的健壮性,每1800秒全部重发一次。
2)在广播网络中,使用组播地址(而非广播)发送报文,减少对其它不运行ospf 的网络设备的干扰。
3)在各类可以多址访问的网络中(广播,NBMA),通过选举DR,使同网段的路由器之间的路由交换(同步)次数由 O(N*N)次减少为 O (N)次。
4)提出STUB区域的概念,使得STUB区域内不再传播引入的ASE路由。
5)在ABR(区域边界路由器)上支持路由聚合,进一步减少区域间的路由信息传递。
6)在点到点接口类型中,通过配置按需播号属性(OSPF over On Demand Circuits),使得ospf不再定时发送hello报文及定期更新路由信息。只在网络拓扑真正变化时才发送更新信息。
5、通过严格划分路由的级别(共分四极),提供更可信的路由选择。
6、良好的安全性,ospf支持基于接口的明文及md5 验证。
7、OSPF适应各种规模的网络,最多可达数千台。
二、EIGRP协议
EIGRP和早期的IGRP协议都是由Cisco发明,是基于距离向量算法的动态路由协议。EIGRP(Enhanced Interior Gateway Routing Protocol)是增强版的IGRP协议。它属于动态内部网关路由协议,仍然使用矢量-距离算法。但它的实现比IGRP已经有很大改进,其收敛特性和*作效率比IGRP有显著的提高。
EIGRP的收敛特性是基于DUAL ( Distributed Update Algorithm ) 算法的。DUAL 算法使得路径在路由计算中根本不可能形成环路。它的收敛时间可以与已存在的其他任何路由协议相匹敌。
EIGRP协议主要具有如下特点:
1. 精确的路由计算和多路由的支持
EIGRP协议继承了IGRP协议的最大的优点:矢量路由权。EIGRP协议在路由计算中要对网络带宽,网络时延,信道占用率,信道可信度等因素作全面的综合考虑,所以EIGRP的路由计算更为准确,更能反映网络的实际情况。同时EIGRP协议支持多路由,使路由器可以按照不同的路径进行负载分担。
2. 较少的带宽占用
使用EIGRP协议的对等路由器之间周期性的发送很小的hello报文,以此来保证从前发送报文的有效性。路由的发送使用增量发送方法,即每次只发送发生变化的路由。发送的路由更新报文采用可靠传输,如果没有收到确认信息则重新发送,直至确认。EIGRP还可以对发送的EIGRP报文进行控制,减少EIGRP报文对接口带宽的占用率,从而避免连续大量发送
路由报文而影响正常数据业务的事情发生。
3. 无环路由和较快的收敛速度
路由计算的无环路和路由的收敛速度是路由计算的重要指标。EIGRP协议由于使用了DUAL算法,使得EIGRP协议在路由计算中不可能有环路路由产生,同时路由计算的收敛时间也有很好的保证。因为,DUAL算法使得EIGRP在路由计算时,只会对发生变化的路由进行重新计算;对一条路由,也只有此路由影响的路由器才会介入路由的重新计算。
4. MD5认证
为确保路由获得的正确性,运行EIGRP协议进程的路由器之间可以配置MD5认证,对不符合认证的报文丢弃不理,从而确保路由获得的安全。
5. 任意掩码长度的路由聚合
EIGRP协议可以通过配置,对所有的EIGRP路由进行任意掩码长度的路由聚合,从而减少路由信息传输,节省带宽。
6. 同一目的但优先级的路由可实现负载分担
去往同一目的的路由表项,可根据接口的速率、连接质量、可靠性等属性,自动生成路由优先级,报文发送时可根据这些信息自动匹配接口的流量,达到几个接口负载分担的目的。
7. 协议配置简单
使用EIGRP协议组建网络,路由器配置非常简单,它没有复杂的区域设置,也无需针对不同网络接口类型实施不同的配置方法。使用EIGRP协议只需使用router eigrp命令在路由器上启动EIGRP 路由进程,然后再使用network 命令使能网络范围内的接口即可。
三、OSPF和EIGRP的比较
OSPF和EIGRP都是收敛速度较快并且不会形成环路的算法,网络带宽占用较小,使用灵活,安全性较好的路由协议。但是从以上分析可以看出,各自还是有优缺点。
(一)、OSPF的缺点
1、配置相对复杂。由于网络区域划分和网络属性的复杂性,需要网络分析员有较高的网络知识水平才能配置和管理OSPF网络。
2、路由负载均衡能力较弱。OSPF虽然能根据接口的速率、连接可靠性等信息,自动生成接口路由优先级,但通往同一目的的不同优先级路由,OSPF只选择优先级较高的转发,不同优先级的路由,不能实现负载分担。只有相同优先级的,才能达到负载均衡的目的,不象EIGRP那样可以根据优先级不同,自动匹配流量。
(二)、EIGRP的缺点
1. EIGRP没有区域(AREA)的概念,而OSPF在大规模网络的情况下,可以通过划分区域来规划和限制网络规模。所以EIGRP适用于网络规模相对较小的网络,这也是矢量-距离路由算法(RIP协议就是使用这种算法)的局限所在。
2. 运行EIGRP的路由器之间必须通过定时发送HELLO报文来维持邻居关系,这种邻居关系即使在拨号网络上,也需要定时发送HELLO报文,这样在按需拨号的网络上,无法定位这是有用的业务报文还是EIGRP发送的定时探询报文,从而可能误触发按需拨号网络发起连接,尤其在备份网络上,引起不必要的麻烦。所以一般运行EIGRP的路由器,在拨号备份端口还需配置Dialer list和Dialer group,以便过滤不必要的报文,或者运行TRIP协议,这样做增加路由器运行的开销。而OSPF可以提供对拨号网络按需拨号的支持,只用一种路由协议就可以满足各种专线或拨号网络应用的需求。
3. EIGRP的无环路计算和收敛速度是基于分布式的DUAL算法的,这种算法实际上是将不确定的路由信息(active route)散播(向邻居发query报文),得到所有邻居的确认后(reply报文)再收敛的过程,邻居在不确定该路由信息可靠性的情况下又会重复这种散播,因此某些情况下可能会出现该路由信息一直处于active状态(这种路由被称为stuck in active route),并且,如果在active route的这次DUAL计算过程中,出现到该路由的后继(successor)的metric发生变化的情况,就会进入多重计算,这些都会影响DUAL算法的收敛速度。而OSPF算法则没有这种问题,所以从收敛速度上看,虽然整体相近,但在某种特殊情况下,EIGRP还有不理想的情况。
4、EIGRP是Cisco公司的私有协议。Cisco公司是该协议的发明者和唯一具备该协议解释和修改权的厂商。如果要支持EIGRP协议需向Cisco公司购买相应版权,并且Cisco公司修改该协议没有义务通知任何其他厂家和使用该协议的用户。而OSPF是开放的协议,是IETF组织公布的标准。世界上主要的网络设备厂商都支持该协议,所以它的互*作性和可靠性由于公开而得到保障,并且在众多的厂商支持下,该协议也会不断走向更加完善