静态路由及动态路由

1.路由器的简单介绍

路由器(Router)是一种负责寻径、转发的网络层设备, 它从网络中选取一条最佳的通信路径提供给客户。路由器可连接几个分开的网络,用过IP逻辑地址连接到一起。路由器通过路由表转发数据,路由表中记录着网络地址以及各地址之间距离的清单,路由器利用路由表清单选择最佳转发路径。路由器使用时间最少和路径最短的算法进行工作,用以保证当某条路径发生故障断开或者出现拥堵是仍能正常通信。通过端口的转换,路由器可以实现不同网段的网络间进行通信。

2.路由器的工作原理

1.静态路由

**静态路由的原理:**静态路由不同于动态路由,不会自动生成识别目标端的IP地址,需要网络管理员手动输入目标段的IP地址,通过ARP协议获得对端的MAC地址,从而建立连接,是单方的。
**静态路由器的优缺点:**静态路由器不会自动识别IP,配置比较简单,同时也严重缺乏灵活性,连接也是单方向的。

2.默认路由

**默认路由的原理:**默认路由本质上也是属于静态路由的,默认路由的一端固定连接大网的一个接口,当找不到目标网络的路由时,路由器会请求转发到默认路由接口。

3.浮点路由

**浮点路由的原理:**设置优先级,做备选路线,增加网络冗余性,以确保网络传送的安全可靠。

**浮点路由的优缺点:**浮动保证了网络传输的安全可靠性,保障了工作环境的良好运行,但是成本相对较高,配置和维护相对困难。

3.路由配置

1、静态路由配置
首先我们可以先进行常规操作

#undo terminal monitor 关闭弹窗

#进入用户视图更改命名

#interface +端口号 ,进入端口视图

#ip add +ip , 添加ip地址(如下图示例)
请添加图片描述
接下来我们要观察各路由的目标网段及下一跳的IP,然后给每台路由做设置。

#ip route-static +目标网段+子网掩码+下一跳IP

如图中所示,给两台路由都做好配置,就可实现跨网段信息交互了。

2、默认路由配置
同静态路由,先设置常规操作,方便后面配置

#进入用户视图更改命名

#interface +端口号 ,进入端口视图

#ip add +ip , 添加ip地址
请添加图片描述
下面的步骤就与静态路由稍有区别了。

同样,先观察每台路由的目标网段及下一跳IP

以图为示例

我们设置R1和R3为默认路由

#ip route-static 0.0.0.0 0.0.0.0 +下一跳IP

R2我们需要进行双向设置,既与R1通又与R3通,需要设置两次

#ip route-static +目标网段+子网掩码+下一跳IP (R1方向)

#ip route-static +目标网段+子网掩码+下一跳IP(R2方向)

3、浮动路由配置
先进行常规操作

#undo terminal monitor 关闭弹窗

#进入用户视图更改命名

#interface +端口号 ,进入端口视图

#ip add +ip , 添加ip地址(如下图示例)
请添加图片描述
第一步,先观察各路由的目标网段及下一跳IP,对R1和R2设置一个最优路径的配置。

这里我们需要设一个环回IP,用于测试

#int lookback0

#ip add +IP地址(如1.1.1.1 24)

后面的配置与静态路由相同。

第二步,设置备选路径,由R1,R3,R2构成

同样需要用到第一步设置的环回IP lookback0

对R2进行设置

#ip route-static 目标网段+子网掩码 +下一跳IP preference +优先级数(优先级数要比60大)

R1同理

#ip route-static 目标网段+子网掩码 +下一跳IP preference +优先级数(优先级数要比60大)

R3设置需要双向,不用再设优先级

#ip route-static 目标网段+子网掩码 +下一跳IP(R1方向)

#ip route-static 目标网段+子网掩码 +下一跳IP(R2方向)

最后我们可以用PC机和环回IP进行PING通,测试配置是否无误。

4.动态路由

1.动态路由概述
动态路由是与静态路由相对的一个概念,指路由器能够根据路由器之间的交换的特定路由信息自动地建立自己的路由表,并且能够根据链路和节点的变化适时地进行自动调整。当网络中节点或节点间的链路发生故障,或存在其它可用路由时,动态路由可以自行选择最佳的可用路由并继续转发报文。
动态路由协议:路由器之间用来交换信息的语言

2.动态路由特点
1.减少了网络管理
2.占用了网络带宽(少量,可忽略不计)

3.选择依据:度量值
跳数、带宽、时延、可靠性、成本、负载
路由器会通过度量值来确定最优路由路径

4.收敛
使所有路由器都到达一致状态的过程

5.动态路由协议分类
距离矢量路由协议
——依据从源网络到目标网络所经过的路由器的个数选择路由 - - RIP、IGIP(思科私有协议)
链路状态路由协议
——综合考虑从源网络到目标网络的各条路径的情况选择路由 - - OSPF、ISIS

一、RIP协议

1.概述:

RIP(Routing Information Protocol,路由信息协议)是一种内部网关协议(IGP),是一种动态路由选择协议,用于自治系统(AS)内的路由信息的传递。

RIP 被定义为距离矢量路由协议,而距离矢量路由协议的根本特征就是自己的路由表是完全从其它路由器学来的,并且将收到的路由条目一丝不变地放进自己的路由表,以供数据转发。正因为如此,对于路由是否正确,对于目标是否可达,RIP全然不知。

“距离”的定义 :
从一路由器到直接连接的网络的距离定义为 1。
从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。

RIP 使用跳数作为 metric,跳数就是到达目标网络所需要经过的路由器个数,因为直连网络不需要经过任何路由器,所以直连网络的 metric 为 0。RIP 所支持网络的最大跳数为 15,也就是 metric 值最大为 15,一但大于 15,如 16,被 RIP 认为目标不可达,由此可见,RIP 并不适合大型网络

RIP协议的管理距离为120。当路由表中出现了多条目标网段、子网掩码相同的路由信息时,优先选择管理距离小的协议所生成的路由信息。

RIP协议一共有两个版本:
Version 1 有类路由协议,广播更新。(由于不支持VLSM,RIPV1已经被淘汰,以RIPv2为主
Version 2 无类路由协议,支持VLSM

RIP协议的三个要素:
(1)仅和相邻路由器交换信息。
(2)交换的信息是当前本路由器所知道的全部信息,即自己的路由表。RIP交换的是本路由器上完整的路由表。
(3)按固定的时间间隔交换路由信息,例如,每隔 30 秒

2.RIP协议工作原理及流程
RIP协议在整个工作流程中主要使用四个定时器:
更新定时器(Update timer):
当此定时器超时时,立即发送更新报文。(30s)
老化定时器(Age timer):
RIP设备如果在老化时间内没有收到邻居发来的路由更新报文,则认为该路由不可达。(180s)
垃圾收集定时器(Garbage-collect timer):
如果在垃圾收集时间内不可达路由没有收到来自同一邻居的更新,则该路由将被从RIP路由表中彻底删除。(240s)
抑制定时器(Suppress timer):
默认时长为180s,当RIP设备收到对端的路由更新,其cost为16,对应路由进入抑制状态,并启动抑制定时器。为了防止路由震荡,在抑制定时器超时之前,即使再收到对端路由cost小于16的更新,也不接受。当抑制定时器超时后,就重新允许接受对端发送的路由更新报文。

3.路由表的建立
路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为1)。路由表中也只有到直连网络的直连路由。
以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。
请添加图片描述
4.RIPv2认证功能
由于 RIP 没有邻居的概念,所以自己并不知道发出去的路由更新是不是有路由器收到,同样也不知道会被什么样的路由器收到,因为 RIP 的路由更新是明文的,网络中无论谁收到,都可以读取里面的信息,这就难免会有不怀好意者窃听 RIP 的路由信息。为了防止路由信息被非法窃取,RIP ver 2 可以相互认证,只有能够提供密码的路由器,才能够获得路由更新。而 RIP ver 1 是不支持认证的。RIP ver 2 可以支持明文与 MD5 认证。

路由器之间,当一方开启认证之后,另一方也同样需要开启认证,并且密码一致,才能读取路由信息。认证是基于接口配置的,密码使用 key chain 来定义,key chain中可以定义多个密码,每个密码都有一个序号,RIP ver 2 在认证时,只要双方最前面的一组密码相同,认证即可通过,双方密码序号不一定需要相同,key chain 名字也不需要相同,但在某些低版本 IOS 中,会要求双方的密码序号必须相同,才能认证成功,所以建议大家配置认证时,双方都配置相同的序号和密码。

5.RIP协议优缺点:

优点:
对于小型网络,RIP就所占带宽而言开销小,易于配置、管理和实现;
“好”消息传的快;

缺点:
(1)网络规模被限制,最大跳数为15跳
(2)使用“跳数”作为度量值,以跳数的多少比较路由路径的优劣。 RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。
(3)收敛速度慢。当网络中出现拓扑变化时,需要较长的时间才会收敛。可能会导致网络中路由表信息不一致。
(4)路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。

6.RIP协议路由环路发生原理及处理方式
6.1 路由环路形成
请添加图片描述
如上图所示,当正常运行的网1突然不可达时,R1路由器将到网1的路由条目删除,但是还没来的及向 R2路由器进行更新。此时R2路由器更新计时器先超时,R2将自己的路由信息发送给R1,R1就从R2处又学习到了网1的路由信息,并且将距离设置成2。此时,R1 的路由表已经出现了错误,但路由器并不知道。

当R1的更新计时器超时后,R1又向R2发送自己的路由信息,R2用从R1路由表内学习到的路由信息将自己的到网1的路由信息进行覆盖,此时R2到网1的路由信息中,距离字段被改为3。

以此类推,在不断的路由更新中,到网1的距离会逐渐增加直至无穷大,同时R1与R2之间在到网1的路由信息上形成了路由环路。如果没有一定的措施去解决 的话,路由器将永远无法发现这个错误。

6.2路由环路的危害
路由环路会对网络造成严重影响,导致网络性能降低,甚至使网络瘫痪。
路由环路可能造成以下后果:
①环路内的路由器占用链路带宽来反复收发流量。
②路由器的 CPU 因不断循环数据包而不堪重负。
③路由器的 CPU 承担了无用的数据包转发工作,从而影响到网络收敛。
④路由更新可能会丢失或无法得到及时处理。这些状况可能会导致更多的路由环路,使情况进一步恶化。
⑤数据包可能丢失在“黑洞”中。

6.3路由环路解决方法
距离矢量路由环路的解决方法有如下五种:
1)最大跳计数(maximum metric),RIP允许跳计数最大可以达到15,任何需要经过16跳才能到达的网络都被认为是不可达的。解决了环路时跳数会增加到无限大的问题
2)水平分隔(split horizon),限制路由器不能按照接收信息的方向去将接收到的信息再发回去。
例:路由器从f1/0口收到去往Net1的路由信息,在发送更新时,不会将关于Net1的路由信息再从f1/0口发出去。
3)路由中毒(路由毒化)或毒性反转。路由毒化用于在发往其它路由器的路由更新中将路由标记为不可达。标记“不可达”的方法是将度量设置为最大值。对于 RIP,毒化路由的度量为 16。
毒性反转:R3发现10.4.0.0不可达,立刻向外发送毒化路由,告知R2该网段不可达。R2在收到毒化路由后,会根据毒性反转,立刻向R3发送一条毒化路由。确保 R3 不会轻易受到有关网络 10.4.0.0 的错误更新的影响。
请添加图片描述
4)抑制计时器
抑制计时器可用来防止定期更新消息错误地恢复某条可能已经发生故障的路由。抑制计时器指示路由器将那些可能会影响路由的更改保持一段特定的时间。如果确定某条路由为 down(不可用)或 possibly down(可能不可用),则在规定的时间段内,任何有关该路由的信息都将被忽略。这表示路由器将在一段足够长的时间内将路由标记为 unreachable(不可达),以便路由更新能够传递带有最新信息的路由表。
5)触发更新:路由器周期性发送更新,RIP是默认每隔30秒。 触发更新就是当检测到网络拓扑发生变动时,路由器会立即发送一个更新信息给邻居路由器,而不用等待更新计时器,并依次产生触发更新通知它们的邻居路由器,此过程就叫触发更新。

7.RIP 的配置
以R1配置为例:
router rip
version 2
no auto-summary
network 192.168.20.0
network 192.168.1.0
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

二、OSPF协议

1.OSPF概述
路由协议 OSPF 全称为 Open Shortest Path First,也就开放的最短路径优先协议,因为 OSPF 是由 IETF 开发的,它的使用不受任何厂商限制,所有人都可以使用,所以称为开放的,而最短路径优先(SPF)只OSPF的核心思想,其使用的算法是Dijkstra算法,最短路径优先并没有太多特殊的含义,并没有任何一个路由协议是最长路径优先的,所有协议,都会选最短的。

距离矢量路由协议的根本特征就是自己的路由表是完全从其它路由器学来的,并且将收到的路由条目一丝不变地放进自己的路由表,运行距离矢量路由协议的路由器之间交换的是路由表,距离矢量路由协议是没有大脑的,路由表从来不会自己计算,总是把别人的路由表拿来就用;而 OSPF 完全抛弃了这种不可靠的算法,OSPF是典型的链路状态路由协议,路由器之间交换的并不是路由表,而是链路状态,OSPF通过获得网络中所有的链路状态信息,从而计算出到达每个目标精确的网络路径。

OSPF 工作在单个 AS,是个绝对的内部网关路由协议(Interior Gateway Protocol, 即 IGP)。

OSPF 对网络没有跳数限制,支持 CIDR和VLSM,没有自动汇总功能,但可以手工在任意比特位汇总,并且手工汇总没有任何条件限制,可以汇总到任意掩码长度。

OSPF 并不会周期性更新路由表,而采用增量更新,即只在路由有变化时,才会发送更新,并且只发送有变化的路由信息;事实上,OSPF 是间接设置了周期性更新路由的规则,因为所有路由都是有刷新时间的,当达到刷新时间阀值时,该路由就会产生一次更新,默认时间为 1800 秒,即 30 分钟,所以 OSPF 路由的定期更新周期默认为 30 分钟。

OSPF 所有路由的管理距离(Ddministrative Distance)为 110,OSPF 只支持等价负载均衡。

OSPF 支持认证,并且支持明文和 MD5 认证;OSPF 不可以通过 Offset list 来改变路由的度量值( metric)。

2.OSPF协议相关术语

Router-ID:
唯一标识一个路由器
OSPF 路由器之间相互通告链路状态,如果路由器之间分不清谁是谁,没有办法确定各自的身份,那么通告的链路状态就是毫无意义的,所以必须给每一个 OSPF 路由器定义一个身份。这就是 Router-ID,并且 Router-ID 在网络中绝对不可以有重名,否则路由器收到的链路状态,就无法确定发起者的身份,也就无法通过链路状态信息确定网络位置,OSPF 路由器发出的链路状态都会写上自己的 Router-ID,可以理解为该链路状态的签名,不同路由器产生的链路状态,签名绝不会相同。
每一台 OSPF 路由器只有一个 Router-ID,Router-ID 使用 IP 地址的形式来表示,确定 Router-ID 的方法为:
★1 .手工指定 Router-ID。
★2 .路由器上活动 Loopback 接口中 IP 地址最大的,也就是数字最大的,如 C 类
地址优先于 B 类地址,一个非活动的接口的 IP 地址是不能被选为 Router-ID 的。
★3 .如果没有活动的 Loopback 接口,则选择活动物理接口 IP 地址最大的。

COST:
OSPF 使用接口的带宽来计算 度量值。计算方法:cost=100Mbit/接口带宽
如果路由器要经过两个接口才能到达目标网络,那么很显然,两个接口的 Cost值要累加起来,才算是到达目标网络的 Metric 值,所以 OSPF 路由器计算到达目标网络的 Metric 值,必须将沿途中所有接口的 Cost 值累加起来,在累加时,只计算出接口,不计算进接口。
OSPF 会自动计算接口上的 Cost 值,但也可以通过手工指定该接口的 Cost 值,手工指定的优先于自动计算的值。OSPF 计算的 Cost,同样是和接口带宽成反比,带宽越高,Cost 值越小。到达目标相同 Cost 值的路径,可以执行负载均衡,最多 6 条链路同时执行负载均衡。

链路状态(Link-State):
链路状态(LSA)就是 OSPF 接口上的描述信息,例如接口上的 IP 地址,子网掩码,网络类型,Cost 值等等,OSPF 路由器之间交换的并不是路由表,而是链路状态(LSA),OSPF 通过获得网络中所有的链路状态信息,从而计算出到达每个目标精确的网络路径。OSPF 路由器会将自己所有的链路状态毫不保留地全部发给邻居,邻居将收到的链路状态全部放入链路状态数据库(Link-State Database),邻居再发给自己的所有邻居,并且在传递过程种,绝对不会有任何更改。通过这样的过程,最终,网络中所有的 OSPF 路由器都拥有网络中所有的链路状态,并且所有路由器的链路状态应该能描绘出相同的网络拓朴。
与距离矢量路由不同,距离矢量路由中交换的是完整的路由表,这样如果有人恶意攻击的话,就能够知道整个网络拓扑结构。而链路状态路由则交换链路的状态,用户无法通过这个清晰的得知整个链路拓扑。

邻居(Neighbor):
在同一网络中都有接口的两台路由器,通过Hello包建立和维护邻居关系
OSPF 邻居靠发送 Hello 包来建立和维护,Hello 包会在启动了 OSPF 的接口上周期性发送,在不同的网络中,发送 Hello 包的间隔也会不同,当超过 4 倍的 Hello 时间,也就是 Dead 时间过后还没有收到邻居的 Hello 包,邻居关系将被断开。
两台 OSPF 路由器必须满足 4 个条件,才能形成 OSPF 邻居,4 个必备条件如下:
(1)Area-id(区域号码):即路由器之间必须配置在相同的 OSPF 区域,否则无法形成邻居。
(2)Hello 时间与 Dead 时间:即路由器之间的 Hello 时间和 Dead 时间必须一致,否则无法形成邻居。
(3)Authentication(认证):路由器之间必须配置相同的认证密码,如果密码不同,则无法形成邻居。
(4)Stub Area Flag(末节标签):路由器之间的末节标签必须一致,即处在相同的末节区域内,否则无法形成邻居

邻接:

邻接是一种特殊的邻居。他不仅可以通过hello包进行通信,还可以互相之间发送LSA。

OSPF 只有邻接关系之间才会交换 LSA,路由器会将链路状态数据库中所有的内容毫不保留地发给所有邻接,要想在 OSPF 路由器之间交换 LSA,必须先形成 OSPF 邻接关系。

DR/BDR
通过在多路访问网段中选择出一个核心路由器称为 DR(Designated Router),网段中所有的 OSPF 路由器都和 DR 互换 LSA。DR 就会拥有所有的 LSA,并且将所有的 LSA 转发给每一台路由器。

如果 DR 失效后,那么就会造成 LSA 的丢失与不完整,所以在多路访问网络中除了选举出 DR 之外,还会选举出一台路由器作为 DR 的备份,称为 BDR(Backup Designated Router),BDR 在 DR 不可用时,代替 DR 的工作

既不是 DR,也不是 BDR 的路由器称为Drother,Dother负责 和DR互换 LSA ,同时还会和 BDR互换 LSA。
注意:Drother之间不能互换数据,这是为了防止出现环路
请添加图片描述
DR/BDR选举规则:
DR 与 BDR 的选举是在一个二层网段内选举的,即在多个路由器互连的接口范围内,与 OSPF 区域没有任何关系,一个区域可能有多个多路访问网段,那么就会存在多个 DR 和 BDR,但一个多路访问网段,只能有一个 DR和 BDR;选举 DR 和 BDR 的规则为:
1、比较接口优先级:
选举优先级最高的成为 DR,优先级数字越大,表示优先级越高,被选为 DR 的几率就越大,次优先级的为 BDR,优先级范围是 0-255,默认为 1,优先级为 0 表示没有资格选举 DR 和 BDR。
2、Route-Id 大小:
如果在优先级都相同的情况下,Route-Id 最大的成为 DR,其次是 BDR,数字越大,被选为 DR 的几率就越大。
DR和Dorther处理数据报的区别:所有 OSPF 路由器,包括 DR 与 BDR,都能够接收和传递目标地址为224.0.0.5 的数据包。只有 DR 和 BDR 才能接收和传递目标地址为 224.0.0.6 的数据包。

OSPF网络类型
OSPF是一个在各方面都考虑比较周全的路由协议,也会因此将该协议变得更为复杂化,OSPF并不像RIP与EIGRP那样,RIP与EIGRP在运行时,并不考虑OSI模型在二层所定义的内容,即并不关心二层的链路介质类型,而OSPF在运行时,必须考虑链路层的类型,称为OSPF网络类型(Network Type),对于不同二层介质类型,OSPF将有不同的操作和运行过程,网络类型,可分为如下几种:
点到点(Point-To-Point)
点到多点(Point-To-Multipoint )
广播(Broadcast )
非广播(Non-Broadcast )
点到多点非广播(Point-To-Multipoint Non-Broadcast)

对于不同的网络类型,将会影响到 OSPF 的 Hello 时间与 Dead 时间,关系到 DR与 BDR 的选举与否,影响到 OSPF 邻居是自动建立还是手工建立,总结如下表:
请添加图片描述
OSPF 邻居的成功建立,并不要求双方网络类型一致,但双方网络类型不一致,将可能导致链路状态数据库中的条目无法进入路由表。

3.OSPF原理

OSPF的计算
OSPF 协议路由的计算过程可简单描述如下:
①每台 OSPF 路由器根据自己周围的网络拓扑结构生成 LSA(Link StateAdvertisement,链路状态通告),并通过更新报文将 LSA 发送给网络中的 其它 OSPF 路由器。
②每台 OSPF 路由器都会收集其它路由器通告的 LSA,所有的 LSA 放在一起 便组成了 LSDB(Link State Database,链路状态数据库)。LSA 是对路由 器周围网络拓扑结构的描述,LSDB 则是对整个自治系统的网络拓扑结构的 描述。
③OSPF 路由器将 LSDB 转换成一张带权的有向图,这张图便是对整个网络拓 扑结构的真实反映。各个路由器得到的有向图是完全相同的。
④每台路由器根据有向图,使用 SPF 算法计算出一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由。

4.OSPF启动过程

七种状态机:
请添加图片描述
路由器从启动OSPF进程,到根据链路状态数据库计算出路由表,同样需要经历一系列的启动过程,总共有8种可能的启动过程,但并不是一定会经历这8个过程,具体过程如下:
Down → Attempt → Init → Two-way → Exstart → Exchange → Loading → Full

①Down
路由器刚刚启动OSPF进程,还没有从任何路由器收到任何数据包,Hello包也没有收到,在此进程,可以向外发送Hello包,以试图发现邻居。

②Attempt
因为OSPF使用组播发送数据包,如使用组播发送Hello包,如果Hello包不能发出去被其它路由器收到,就不能和其它路由器建立OSPF邻居;在一些组播不能发送的网络中,例如帧中继这样的非广播网络环境,组播不能够传递,在这种情况下,就需要指定OSPF使用单播向邻居发送Hello包,以此试图和指定的邻居建立OSPF邻居关系,在此状态下,OSPF称为Attempt状态。

③Init
只是OSPF路由器一方收到了另一方的Hello,但并没有双方都交换Hello,也就是对方的Hello中还没有将自己列为邻居。

④Two-way
双方都已经交换了Hello信息,并且从Hello中看到对方已经将自己列为邻居,此状态,就表示OSPF邻居关系已经建立,并且如果是需要选举DR和BDR的话,也已经选举出来,但OSPF邻居之间并不一定就会交换LSA,如果不需要交换LSA,则永远停留在此状态,如果需要形成邻接并互相交换LSA,则状态继续往下进行。(比如Drother与Drother之间将永远停留在Two-way状态,因为Drother与Drother之间不需要交换LSA。)

⑤Exstart
因为在OSPF邻居之间交换完整的LSA之前,会先发送Database Description Packets (DBD),Link-state Request (LSR)等数据包,邻居之间是谁先发,谁后发,需要确定顺序,在Exstart状态,就是确定邻居之间的主从关系(Master—Slave关系),Router-ID数字大的为主路由器,另一端为从路由器,由主路由器先向从路由器发送信息。在选举DR与BDR的网络环境中,并不一定DR就是主路由器,BDR就是从路由器,因为DR和BDR可以通过调整接口优先级来控制,所以DR也许是因为优先级比BDR高,而Router-ID并不比BDR高。
注意:在任何网络环境下,OSPF在交换LSA之前,都需要确定主从关系。

⑥Exchange
就是交换Database Description Packets (DBD)的过程,DBD只是LSA的简单描述,只包含LSA的一些头部信息,收到DBD的路由器会和自己的链路状态数据库作对比,确定需要哪些LSA的完整信息,就会发送LSR请求给邻居。

⑦Loading
邻居根据收到的LSR(Link-State Request),向对方回复Link-state update(LSU)。

⑧Full
等到OSPF都收到了邻居回复的所有Link-state update(LSU),那么此时的数据库状态就变成了收敛状态,此状态就是Full状态,但此时只是数据库已经同步,但路由表却还在计算当中。
注意:除了Two-way和Full这两个状态,邻居停留在任何状态,都是不正常。

OSPF数据包交换过程
从OSPF建立邻居,到LSA的互换,到路由表的计算,需要经过一系列的数据包交换过程,过程如下:
Hello

Database Description Packets (DBD)

Link-state Request (LSR)

Link-state update(LSU)

LSDB

具体情况如下:

Hello
Hello包是用来建立和维护OSPF邻居的,要交换LSA,必须先通过Hello包建立OSPF邻居。

Database Description Packets (DBD)
邻居建立之后,并不会立刻就将自己链路状态数据库中所有的LSA全部发给邻居,而是将LSA的基本描述信息发给邻居,这就是Database Description Packets (DBD),是LSA的目录信息,相当于书的目录,邻居在看完DBD之后,就能知道哪些LSA是需要邻居发送给自己的。

Link-state Request (LSR)
邻居在看完发来的LSA描述信息(DBD)之后,就知道哪些LSA是需要邻居发送给自己的,自己就会向邻居发送LSA请求(LSR),告诉邻居自己需要哪些LSA。

Link-state update(LSU)
当邻居收到其它路由器发来的LSA请求(LSR)之后,就知道对方需要哪些LSA,然后根据LSR,将完整的LSA内容全部发给邻居,以供计算路由表。

LSDB
就是已经收到了所有需要邻居发给自己的LSA,这时的链路状态数据库已经达到收敛状态。

5.OSPF区域

1.区域划分

随着网络规模日益扩大,当一个大型网络中的路由器都运行 OSPF 路由协议时, 路由器数量的增多会导致LSDB 非常庞大,占用大量的存储空间,并使得运行 SPF 算法的复杂度增加,导致CPU 负担很重。

在网络规模增大之后,拓扑结构发生变化的概率也增大,网络会经常处于“振荡” 之中,造成网络中会有大量的OSPF 协议报文在传递,降低了网络的带宽利用率。更为严重的是,每一次变化都会导致网络中所有的路由器重新进行路由计算。

OSPF 协议通过将自治系统划分成不同的区域(Area)来解决上述问题。区域是从逻辑上将路由器划分为不同的组,每个组用区域号(Area ID)来标识。区域的边界是路由器,而不是链路。一个网段(链路)只能属于一个区域,或者说每个运行OSPF 的接口必须指明属于哪一个区域。如图 1所示
请添加图片描述
划分区域后,可以在区域边界路由器上进行路由聚合,以减少通告到其他区域的LSA 数量,还可以将网络拓扑变化带来的影响最小化。

2.路由器的类型

OSPF 路由器根据在 AS 中的不同位置,可以分为以下四类:
(1) 区域内路由器IR( Internal Router )
该类路由器的所有接口都属于同一个 OSPF 区域。
(2) 区域边界路由器 ABR ( Area Border Router )
该类路由器可以同时属于两个以上的区域,但其中一个必须是骨干区域(骨干区域的介绍请参见下一小节)。 ABR 用来连接骨干区域和非骨干区域,它与骨干区域 之间既可以是物理连接,也可以是逻辑上的连接
(3) 骨干路由器( Backbone Router )
该类路由器至少有一个接口属于骨干区域。因此,所有的 ABR 和位于 Area0 的内部路由器都是骨干路由器。
(4) 自治系统边界路由器 ASBR
与其他 AS 交换路由信息的路由器称为 ASBR 。 ASBR 并不一定位于 AS 的边界,它有可能是区域内路由器,也有可能是 ABR 。只要一台 OSPF 路由器引入了外部 路由的信息,它就成为 ASBR 。
请添加图片描述
3. 骨干区域与虚连接

OSPF 划分区域之后,并非所有的区域都是平等的关系。其中有一个区域是与众不同的,它的区域号(Area ID)是 0,通常被称为骨干区域。骨干区域负责区域之间的路由,非骨干区域之间的路由信息必须通过骨干区域来转发。对此,OSPF 有两个规定:

①所有非骨干区域必须与骨干区域保持连通;
②骨干区域自身也必须保持连通。

但在实际应用中,可能会因为各方面条件的限制,无法满足这个要求。这时可以通 过配置OSPF 虚连接(Virtual Link)予以解决。虚连接是指在两台 ABR 之间通过一个非骨干区域而建立的一条逻辑上的连接通道。它的两端必须是 ABR,而且必须在两端同时配置方可生效。为虚连接两端提供一条非骨干区域内部路由的区域称为传输区(Transit Area)

4.外部路由
OSPF 同其它路由协议一样,可以将其它外部协议的路由信息或其它 OSPF 进程的路由信息重分布进自己的域内,在路由表中的表示方法和OSPF自己的路由会有所不同,这样的路由在 OSPF 域内就是 OSPF 外部路由(External Route)。外部路由分为两类:

(1)O E2 :类型为 O E2 的外部路由,在该路由进入 OSPF 之前的 Metric 值为多少,进入 OSPF域后就不变。
(2)O E1:O E1 的路由在 OSPF 路由器上的 Metric值包含该路由进入 OSPF 域之前的 Metric 值,再加上在 OSPF 域内传递的 Metric 值。

OE2与OE1在路由条目上没有任何区别,只是对于路由的Metric值计算有区别;类型为OE2的外部路由,在该路由进入OSPF之前的Metric值为多少,进入OSPF域后,所有OSPF路由器看到关于该路由的Metric值全部相同,不会再为该路由增加任何Metric值,OE2默认Metric值为20。而OE1的路由在OSPF路由器上的Metric值包含该路由进入OSPF域之前的Metric值,再加上在OSPF域内传递的Metric值,也就是到达外部路由的Metric值为到达ASBR的Metric值再加上进入OSPF域之前的Metric值之和,不同OSPF路由器看到OE1的路由的Metric值可能会有不同

5.OSPF末节区域
路由增加,就意味着 LSA 的增加,有时,在一个末梢网络中,许多路由信息是多余的,并不需要通告进来,因为一个 OSPF 区域内的所有路由器都能够通过该区域的 ABR 去往其它 OSPF 区域或者 OSPF 以外的外部网络,一个区域的路由器只要知道去往 ABR,就能去往区域外的网络,因此可以过滤掉区域外的路由进入,这样的区域称为 OSPF 末节区域(Stub Area);一个末节区域的所有路由器虽然可以从 ABR 去往区域外的网络,但路由器上还是得有指向 ABR 的路由,所以末节区域的路由器只需要有默认路由,而不需要明细路由,即可与区域外的网络通信,根据末节区域过滤掉区域外的不同路由,可将末节区域分为如下四类:
Stub Area(末节区域)
Totally Stub Area(完全末节区域)
Not-so-Stubby Area(NSSA)
Totally Not-so-Stubby Area(Totally NSSA)
① Stub Area(末节区域)
在 Stub Area(末节区域)下,ABR 将过滤掉所有外部路由进入末节区域,同时,末节区域内的路由器也不可以将外部路由重分布进 OSPF 进程,即末节区域内的路由器不可以成为 ASBR,但其它 OSPF 区域的路由(Inter-Area Route)可以进入末节区域,由于没有去往外部网络的路由,所以 ABR 会自动向末节区域内发送一条指向自己的默认路由
②Totally Stub Area(完全末节区域)
在 Totally Stub Area(完全末节区域)下,ABR 将过滤掉所有外部路由和其它 OSPF区域的路由(Inter-Area Route)进入完全末节区域,同时,末节区域内的路由器也不可以将外部路由重分布进 OSPF 进程,即完全末节区域内的路由器不可以成为ASBR,由于没有去往外部网络的路由,所以 ABR 会自动向完全末节区域内发送一条指向自己的默认路由
③Not-so-Stubby Area(NSSA)
在 Not-so-Stubby Area(NSSA)下,ABR 将 过滤掉所有外部路由进入末节区域,同时也允许其它 OSPF 区域的路由(Inter-Area Route)进入 NSSA 区域,并且路由器还 可以将外部路由重分布进 OSPF 进程,即 NSSA 区域内的路由器可以成为 ASBR,由于自身可以将外部网络的路由重分布进 OSPF 进程,所以 ABR 不会自动向 NSSA 区域内发送一条指向自己的默认路由,但可以手工向 NSSA 域内发送默认路由,并且只可在 ABR 上发送默认路由
④ Totally Not-so-Stubby Area(Totally NSSA)
在 Totally Not-so-Stubby Area(Totally NSSA)下,ABR 将过滤掉所有外部路由和其它 OSPF 区域的路由(Inter-Area Route)进入 Totally NSSA 区域,但路由器可以将外部路由重分布进 OSPF 进程,即 Totally NSSA 区域内的路由器可以成为 ASBR,由于没有去往其它 OSPF 区域的路由,所以 ABR 会自动向 Totally NSSA 内发送一条指向自己的默认路由

注:
★在末节区域下,ABR 自动发出的默认路由,Metric 值默认为 1,可通过命令 area area-id default-cost cost 修改,默认路由除了默认的 Cost 值以外,还会累加真实接口的 Cost 值。
★骨干区域不能配置为任何末节区域。
★当将某个区域配置为末节区域后,则区域中所有路由器都必须配置为末节区域,因为配置为末节区域的路由器上所有接口发出的 Hello 包中都会有末节标签,所有如果对方没有末节标签,则不能成为邻居。

总结:
请添加图片描述
6.OSPF虚链路(Virtual Link)

因为OSPF采用了区域化的设计,并且区域也采用了Hub-Spoke的架构,所有区域中定义出一个核心,然后其它部分都与核心相连,OSPF的区域0就是所有区域的核心,称为BackBone 区域(骨干区域),而其它Normal 区域(常规区域)应该直接和骨干区域相连,常规区域只能和骨干区域交换LSA,常规区域与常规区域之间即使直连也无法互换LSA,但在某些情况下,某些常规区域无法与骨干区域直连,这时便无法得到其它区域的路由,因此,设计了将骨干区域的范围通过虚拟的方法进行扩展到相邻常规区域的位置,因而让不能直接与骨干区域相连的区域,最终可以与骨干区域直连,这种对骨干虚拟的扩展和拉伸就是OSPF虚链路(Virtual Link)能实现的;因为某些常规区域不能与骨干区域直连而只能与其它常规区域直连,所以OSPF虚链路(Virtual Link)通过将相邻的常规区域虚拟为骨干区域,从而让那些不能与骨干区域直连的常规区域也能获得其它OSPF区域的路由。与骨干区域相邻的常规区域被扩展后,该区域被称为Transit Area,理论上Transit Area不应该为末节区域;在扩展后,原本为常规区域的Transit Area,将变成骨干区域,所以路由将从Inter-Area Route转变为Intra-Area Route,路由表示形式也将从O IA改变为O的形式;在进行OSPF虚链路扩展时,是将Transit Area中与骨干区域直连的ABR和连接另一个常规区域的ABR相连,连接这两个ABR时,使用双方的Router-ID来连接。如下图:
请添加图片描述
在上图中,区域2只能与区域1直连,而无法与骨干区域直连,在这种情况下,由于常规区域与常规区域之间即使直连也无法互换LSA,所以R3虽然是ABR,但因为没有连接骨干区域,最后不可能将任何区域的LSA发进区域2,最终导致区域2无法外其它区域通信,在这种情况下,需要通过OSPF虚链路将骨干区域的范围扩展到相邻的区域1,如下图:
请添加图片描述
在进行OSPF虚链路扩展后,区域1被虚拟成了骨干区域,而这时的R3等同于连接骨干区域和区域2的ABR,所以可以将自己所有的LSA发进区域2。在扩展OSPF虚链路时,是通过连接R2(ABR)与R3(ABR)的Router-ID 来建立的。
因为OSPF虚链路(Virtual Link)能将骨干区域扩展到相邻的常规区域,从而将常规区域虚拟为骨干区域,所以在某些情况下,如公司合并,或者为了备份骨干区域,可能出现骨干区域被常规区域所隔离,如下图:
请添加图片描述
图中骨干区域被区域1分割为两部分,将使得骨干区域自己的路由无法相互传递,在使用OSPF虚链路后,可以将区域1也扩展为骨干区域,如下图:
请添加图片描述
在经过OSPF虚链路将区域1也扩展为骨干区域后,可见所有的区域都变成了骨干区域,从而使网络中骨干区域能够收到另外一边被分割的骨干区域的路由,并且最后骨干区域自己的路由都为Intra-Area Route,但Area 1与骨干区域的路由将仍然为O IA。

注意:OSPF虚链路必须是在两个拥有共同区域的ABR之间建立的,其中必须至少有一个ABR是连接骨干的。
OSPF虚链路被认为是骨干区域的一个接口,一条链路,也需要建立OSPF邻居,但在邻居建立之后,链路上是没有Hello包传递的。

7.OSPF认证
同RIP和EIGRP一样,出于安全考虑,OSPF也使用了认证,OSPF同时支持明文和MD5认证,在启用OSPF认证后,Hello包中将携带密码,双方Hello包中的密码必须相同,才能建立OSPF邻居关系,需要注意,空密码也是密码的一种。

当OSPF邻居的一方在接口上启用认证后,从该接口发出的Hello包中就会带有密码,双方的Hello包中拥有相同的密码时,邻居方可建立;一台OSPF路由器可能有多个OSPF接口,也可能多个接口在多个OSPF区域,只要在接口上输入OSPF认证的命令后,便表示开启了OSPF认证,可以在每个接口上一个一个启用,也可以一次性开启多个接口的认证,如果需要开启多个接口的认证功能,那么认证的命令就并非直接在接口上输入,而是到OSPF进程模式下输入,并且是对某个区域全局开启的,当在进程下对某个区域开启OSPF认证后,就表示在属于该区域的所有接口上开启了认证。所以,在进程下对区域配置认证,是快速配置多个接口认证的方法,与在多个接口上一个一个开启,没有本质区别。因为OSPF虚链路被认为是骨干区域的一个接口,一条链路,所以在OSPF进程下对骨干区域开启认证后,不仅表示开启了区域0下所有接口的认证,同时也开启了OSPF虚链路的认证,但OSPF虚链路在建立后,并没有Hello包的传递,所以认证在没有重置OSPF进程的情况下,是不会生效的。

8.OSPF汇总路由
在OSPF同区域内,LSA是绝对不允许以任何形式或任何手段更改的,但在一个区域与另一个区域之间,LSA可以被ABR修改后传递,从而得知,在同一个区域内,OSPF路由是不能被汇总的,而是当路由从一个区域被ABR转发到另外一个区域时,就可以执行路由汇总,并且汇总必须是在ABR上执行的,但该汇总不对OSPF外部路由生效;在将外部路由重分布进OSPF时,也可以执行路由汇总,此时的汇总必须在ASBR上配置。
为了防止路由黑洞,需要在执行路由汇总的路由器上将汇总由指向空接口(null0),在IOS 12.1(6)以后的版本,配置汇总后会自动产生指向空接口的路由,但在IOS 12.1(6)及以前的版本需要手工创建。
注意:OSPF RFC (1583)并没有规定一个区域适合多少台路由器,一个网段多少个邻居,或如何布署网络。

  • 7
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
静态路由故障   1. 静态路由和有类别查找   当路由选择表进程检查一条使用中间地址(路由选择表中作为下一跳引用的IP地址)的可解析的静态路由时,这个检查总是在有类别方式下完成的,无论是否使用ip classless命令如果在路由选择表中有类别方式下的中间地址不能解析,则删除该静态路由。   使用show ip route查看路由选择表。   使用debug 可以显示某个网络宕掉了。   如果使用无类别方式并有一条默认路由存在,那么具有高管理距离的备份表态路由将永远不会在主静态路由失效时装入到路由选择表中。这是因为任何静态路由,即便是指向不存在的中间地址的静态路由,都会使用默认路由进行解析。   CISCO路由选择表进程每60S调用一个检查路由选择表的静态路由功能来根据动态变化的路由选择表安装或删除静态路由。   2.静态路由和中间地址   静态路由可以使用中间网络地址或出接口来创建。大多数情况下,使用出接口在路由选择表进程中解析静态路由更加有效。   只要中间IP地址可以在路由选择表中解析,它不必是真实的下一跳路由器的接口。静态网络路由(如中间地址)必须最终被解析为路由选择表中一条具有出接口的路由。   每当路由选择表进程需要为x.x.x.0/24网络使用静态路由表项时,它还需要解析中间地址y.y.y.y,称为递归查找。一次额外的路由查找或许对路由选择进程的性能没有多少影响。但是,采取多次递归查找来获得解析的静态路由可能会影响性能。   3.静态路由优化   为避免递归查找: 串行网络:使用出接口   以太网络:同时使用中间地址和出接口   4.反复的静态路由安装和删除   尽可能地使用出接口而不是中间地址来配置静态路由。   5.使用丢弃路由   有时网络中有环路的产生。通过周期性的查看路由器接口上的计数器可以看到路由选择环路的结果。   clear counters serial0/0   show interface serial0/0   路由环路的问题在网络中产生了一个黑洞。一旦IP头中的生存期(TTL)减到0就丢弃分组。   解决1:有类别模式的路由选择(no ip classless)——在用户网络路由器上使用no ip classless.路由器在至少一个已知子网存在时不会使用任何超网或默认路由。但不是首选。因为它改变了所有分组的路由选择表查找行为。   解决2:使用一条丢弃路由——当路由选择表中没有特定的匹配,而且使用一条超网或默认路由来转发那些分组并不合适时,一条丢弃路由把分组送给了null0,即比特桶。   ip route x.x.0.0 255.255.0.0 null0   ip route x.x.0.0 255.255.0.0 null0 200   后一个命令行配置仅在主路由失效时使用的另一条丢弃路由。通过将静态路由的默认管理距离改为比所使用的动态路由选择协议的管理距离更高的一个值来实现。 二 排除RIP故障   1.不兼容的版本类型   debug ip rip   show ip protocols 对检查接口上发送和接收的RIP分组版本十分有用。   如果R1不支持V2的版本,只能接收RIPv1分组,那么R2配置成RIPv1和RIPv2.   可在接口级指定发送和接收RIP分组的特定版本   interface e0   ip rip send version 1 2   ip rip receive version 1 2   2.不匹配的认证密钥   RIPv2的一个选项是可以认证的RIPv2更新,为了增强安全性,当使用认证时,必须在双方配置口令。这个口令被称为认证密钥。如果这一密钥与另一方的密钥不匹配,双方都将忽略RIPv2更新。   在接口上配置ip rip authentication key-chain cisco   用debug ip rip调试。   3.达到RIP的路数限制   RIP度量标准的最大值是15跳。   无法克服这个问题。可以使用非15跳限制的路由选择协议。IGRP最大跳数是255,EIGRP最大跳数是224,二者默认都是100.   4.不连续网络   当主网络被另一个主网络分隔开时,被称为不连续网络。   解决1:使用静态路由   解决2:在路由器之间的链路地址改为左右不连续网络中的一部分。   解决3:在两台路由器上用no auto-summary配置启用RIPv2的无类别路由选择版本。   router rip   version 2   network x.x.x.0   no auto-summary   解决4:使用无类别路由选择协议。如OSPF,EIGRP,IS-IS替代RIPv1路由选择协议。   5.不合法的源地址   当RIP告诉路由选择表安装路由时,它执行源合法性检查。如果源所在子网与本地接口不同,RIP则忽略更新并且不在路由选择表中安装从这个源来的路由。   当一方是有编号而另一方是无编号时,必须关闭这个检查。   router rip   no validate-update-source   6.翻动(flapping)路由   路由翻动是指路由选择表中一条路由的不断删除和再插入。为了检查路由是否真的翻动,检查路由选择表并查看路由的寿命(age)。如果寿命被不断的重置为00:00:00,这就意味这路由正在翻动。   RIP有180S没有收到一条路由,那么该路由将保持240S,然后被清除。   使用show interface来检查接口统计值。   最常见帧中继环境分组丢失。   使用show ip route rip可以检查RIP多久没有更新。   使用show interface serial 0可查看到接口上有大量的广播分组是否被丢弃。帧中继情况下,可能需要调整帧中继广播队列。在非帧中继的环境中,可能需要增加输入或输出保留队列。   7.大型路由选择表   接口上使用ip summary-address汇总路由。 三 排除EIGRP故障   1.不匹配的K值   EIGRP为了建立它的邻居关系,计算EIGRP度量标准的K常数值必须相同。   K1-带宽 K2-负载 K3-延迟 K4,K5-可靠性   router eigrp 1   network x.x.x.x   metric weights 0 1 1 1 1 0   2.不匹配的AS编号   EIGRP不会与具有不同自治系统编号的路由器形成任何邻居关系。   3.活动粘滞   (1)确定问题   可能的原因有:   。 坏的或拥塞的链路;   。 低的路由器资源,如路由器上的低内存和高CPU处理。   。 长的查询范围   。 过多的冗余   默认活动粘滞定时器只有180S.   使用show ip eigrp topology active 命令帮助故障排除EIGRP活动粘滞错误,仅在问题发生时有用,用户一次只有180S的时间来确定。邻居有一个r跟在后面表示它没有应答查询。   (2)故障排除方法   追踪查询,一跳接一跳,在每一跳找出活动路由的状态。   (3)最终解决方案   尽可能手工汇总路由并有一个分层次的网络设计。EIGRP汇总的网络越多,主收敛发生时需要做的事情越少。   4.重复的路由ID   EIGRP只是为了外部路由而使用路由器ID的概念来防止环路。EIGRP基于路由器上回环接口的最大IP地址来选择路由器ID.如果路由器没有回环接口,则选择所有接口中最大的激活IP地址作为EIGRP的路由器ID.   debug ip eigrp可以看到接口上通告某个网络。   经验法则:永远不要在网络的两个地方配置相同的IP地址。 四 排除OSPF故障   1.不匹配的参数   使用debug ip ospf adj命令能够看到大多数的不匹配问题。   (1)hello/dead间隔不匹配——匹配才可以形成邻居。   (2)不匹配的认证类型——OSPF下有MD5和纯文本认证。   router ospf 1   area 0 authentication message-digest   network x.x.0.0 0.0.255.255 area 0   (3)不匹配的区域ID——区域信息在OSPF的HELLO分组中发送。不同,不会形成邻接。   (4)不匹配的短截/传输/NSSA区域选项——当OSPF与一个邻居交换HELLO分组时,它所交换的一项内容是由8比特表示的可选能力。选项字段之一是E比特,即OSPF短截标志。当E比特置0时,该路由关联的区域是一个短截区域,外部LSA不允许进入这个区域。   2.OSPF状态问题   成为邻居的路由器不保证交换链路状态更新。一旦路由器决定与一个邻居形成邻接,它就开始交换其链路状态数据库的一份完整拷贝。   (1)OSPF陷入ATTEMPT——仅对neighbor语句的NBMA网络有效。陷入ATTEMPT是指一台路由器试图通过发送它的HELLO来联系邻居但是它没有收到响应。   show ip ospf neighbor查看。   原因:错误配置neighbor;NBMA上的单播连通性断了,这可能是由错误的DLCI,访问列表或转换单播的NAT引起的。   (2)OSPF陷入INIT——INIT状态表示路由器收到来自邻居的HELLO分组,但是双向通信并没有建立 .   原因:   。 一方访问列表阻止了HELLO;   。 一方的多播能力失效(一个交换机故障);   。 仅在一方启用了认证;   。 一方的frame-relay map/dialer map语句缺少了broadcast关键字。   。 一方的HELLO在第2层丢失了。   (3)OSPF陷入2-WAY——双向状态是指路由器在HELLO分组的邻居字段中见到了自己的路由器ID.类似于所有路由器的优先级都为0,则不会发生选举,所有路由器停留在双向状态中。   解决:确保至少一台路由器具有一个至少为1的IP OSPF优先级。   (4)OSPF陷入EXSTART/EXCHANGE——在EXSTART或EXCHANGE状态的OSPF邻居正处于尝试交换DBD(数据库描述)分组的过程中。   原因:   。 不匹配的接口MTU   。 邻居上重复的路由器ID   。 无法用超过特定MTU 长度进行PING   。 断掉的单播连通性,它可能是因为错误的DLCI,访问列表或转换单播的NAT   (5)OSPF陷入LOADING——邻居没有应答或邻居的应答从未到达本地路由器,路由器也会陷入LOADING状态。常有"%OSPF-4-BADLSA"控制台信息。   原因:   。 不匹配的MTU   。 错误的链路状态请求分组   3.点到点链路的一方是无编号的   interface s0   ip unnumbered loopback0   解决:双方都需要成为一个有编号点到点链路或一个无编号点到点链路。   4.ABR没有产生一个类型4的汇总LSA   类型4的汇总LSA的一个功能是宣告到其他区域的ASBR的可达性。如果同一个区域中存在ASBR则不需要类型4的LSA.   show ip ospf database external 命令的输出显示在路由器的外部OSPF数据库中是否存在路由。   show ip ospf database asbr-summary 命令的输出显示路由是否有类型4的LSA.   检查R是否真是ABR.如果是,则产生类型3或类型4的汇总LSA.show ip ospf   5.转发地址不能通过区域内或区域间路由获知   当OSPF获得一条外部LSA时,它在将该路由装入路由选择表之前要确定转发地址可通过一条OSPF区域内或区域间路由获知。如果转发地址不能通过区域内或区域间路由获知,OSPF不会将路由装入路由选择表中。   有可能的解决:   。 不在ABR上进行汇总   。 在ASBR上过滤再分布入OSPF中的直接子网   router ospf 1   redistribute rip subnets   6.路由汇总问题   两种类型汇总:   。 可执行在ABR上的区域间路由汇总   。 可执行在ASBR上的外部路由汇总   (1)区域间汇总   router ospf 1   area 3 range x.x.x.0 255.255.255.0   通过show ip ospf可以查看   (2)外部汇总   router ospf 1   summary-address x.0.0.0 255.0.0.0   7.CPUHOG问题   产生在:。 邻居形成过程   。 LSA刷新过程   8.SPF计算和路由翻动   只要拓扑有变化,OSPF就运行SPF算法再次计算最短路径优先树。,可能引起链路的不稳定。   原因:。 区域内的接口翻动   。 区域内的邻居接口翻动   。 重复的路由器ID   使用show ip ospf命令可查看在一个给定区域中SPF算法运行的次数;   使用debug ip ospf monitor来隔离一个翻动的LSA;   使用show log命令显示由接口引起的翻动。   解决:   。 修复正在翻动的链路   。 重新定义区域边界 五 排除IS-IS故障   1.IS-IS邻接问题   通常由链路故障和配置错误引起。   show clns neighbors 显示所有希望与被调查的路由器成为邻接的邻居   debug isis adj-packets 命令来调试   2.部分或所有邻接没有形成   步骤1——检查链路故障。show ip interface brief   步骤2——检查配置错误。show run   步骤3——检查不匹配的1级和2级接口。   步骤4——检查区域的错误配置。   步骤5——检查错误配置的子网   步骤6——检查重复的系统ID   3.邻接陷入INIT状态   常见原因:不匹配的接口MTU和认证参数。show clns neighbors可看到   步骤1——检查认证 debug isis adj-packets   步骤2——检查不匹配的MTU debug isis adj-packets   步骤3——检查IS-IS的HELLO填充禁止 (命令同上)   使用show clns interface查看接口上的HELLO填充状态   4.ES-IS邻接形成代替了IS-IS邻接形成   在IP环境中运行IS-IS的CISCO路由器仍然监听ES-IS协议所产生的ISH.当物理层和数据链路层工作时,即使没有建立IS-IS邻接的适当条件,仍能形成ES-IS邻接。   show clns neighbors   5.路由通告问题   大多数路由通告问题都可被限制为源端的配置问题或链路状态分组(LSP)的传播问题。   Dijkstra算法运行在LS数据库上来获得每个被通告路由的最佳路径。   debug isis update-packets   debug isis snp-packets   以上两个调试帮助故障排除LSP洪泛问题和链路状态数据库同步。   路由没有到达网络远端的问题可能有许多潜在原因,包括邻接问题,第1/2层问题,IS-IS错误配置以及其他问题。   6.路由翻动问题   网络中SPF进程的高CPU利用率(SHOW PROCESS CPU命令)也应标记为不稳定。   不稳定链路。   翻动还有可能是由LSP的错误风暴或一个路由选择环路引起。   show isis spf-log命令显示哪个LSP变化最频繁以及哪个LSP角发了SPF计算。   show isis update-packets 六 排除BGP故障   1.故障排除BGP邻居关系问题   遵循:首先,应检查第1/2层,然后是IP连通性(第3层),TCP连接(第4层),最后是BGP配置。   (1)直接的外部BGP邻居没有初始化   自治系统(AS)不会向AS发送或从AS接收任何IP前缀更新,除非邻居关系达到established状态,该状态是BGP邻居建立的最后阶段。当AS有一条单一的EBGP连接时,直到BGP完成了它的收发IP前缀操作后IP连通性   才能发生。   原因:。 第2层宕掉了,阻止了与直接的EBGP邻居通信   。 在BGP配置中有错误的邻居IP地址   命令:show ip bgp summary和 show ip bgp neighbors检查BGP邻居关系   active状态表示邻居间没有发生成功的通信,并且邻居未形成。用PING测试其连通性,失败则表示要修复第1/2层问题。   debug ip bgp能够帮助诊断问题   (2)非直接的外部BGP邻居没有初始化   有些情况下,EBGP邻居不是直连的。BGP邻居关系能够建立在试图形成由一台或多台路由器分隔开的EBGP邻居关系的路由器之间。这种邻居在IOS中被称为EBGP多跳。   当路由器之间存在多个接口并且需要在那些接口之间IP流量负载均衡时,通常在回环接口之间建立EBGP对等实体。   可能的原因:   。 到非直连对等实体地址的路由从路由选择表中丢失了   。 BGP配置中缺少ebgp-multihop命令   。 缺少update-source interface命令   命令:show ip bgp summary 和show bgp neighbors   router bgp 109   neighbor x.x.x.x remote-as 110   neighbor x.x.x.x ebgp-multihop 2   neighbor x.x.x.x update-source loopback0   (3)内部BGP邻居没有初始化   原因:   。 到非直接IBGP邻居的路由丢失了   。 BGP配置中缺少update-source interface命令   (4)BGP邻居(外部和内部)没有初始化   接口访问列表/过滤是BGP邻居活动问题的一个常见原因。   2.故障排除BGP路由通告   发生在BGP路由通告的产生和接收中。   (1)没有产生BGP路由   原因:   。 IP路由选择表中没有匹配的路由   。 发生了配置错误   。 BGP自动汇总到有类别/网络边界   (2)向IBGP/EBGP邻居传播/产生一条BGP路由的问题   配置的分布列表过滤可能是该问题的起因,或者是策略路由选择有问题。   (3)向EBGP邻居但没有向IBGP邻居传播一条BGP路由的问题   show run   show ip bgp   show ip bgp summary   解决:   。 使用IBGP全互联   。 设计一个路由反射器模型。   router bgp 109   neighbor x.x.x.x route-reflector-client   。 设计一个聪明模型   (4)向IBGP/EBGP邻接传播一条IBGP路由的问题   一条BGP路由只有首先通过IGP或静态路由获得后才是同步的。   show ip bgp命令的输出显示了BGP表中的不同步路由。   3.排除路由没有装入IP路由选择表中的故障   原因:   (1)IBGP原因   。 IBGP路由不同步   。 BGP下一跳不可达   (2)EBGP原因   。 在多跳EBGP情况下BGP下一跳不可达   。 BGP路由被抑制   。 多出口鉴别器(MED)值为无穷   4.BGP下一跳不可达   解决:   。 使用静态路由或再分布经由IGP宣告EBGP下一跳   router ospf 1   network x.x.x.0 0.0.0.255 area 0   。 使用next-hop-self命令将下一跳改变为一个内部对等实体地址   router bgp 109   router ospf x.x.x.x next-hop-self   4.BGP路由被抑制   抑制(dampening)是减小本地BGP网络中来自EBGP邻居的不稳定BGP路由所引起的不稳定性的方法。   抑制是一种为一条翻动的BGP路由指派一个罚点的方法。   router bgp 109   bgp dampening 七 排除再分布故障   1.RIP再分布问题   router rip   version 2   redistribute ospf 1 metric 1   network x.x.0.0   因为RIP有跳数限制。为改正到达16跳时会出现路由无法再分布的问题,需要在再分布时指派有效的度量标准。其实现可以使用redistribute命令中的metric或default-metric命令。   使用show ip route查看路由传播情况。   2.IGRP/EIGRP的再分布问题   复合度量标准:宽带,延迟,可靠性,负载   CISCO使用100000000/带宽来得到该代价。   router igrp 1   redistribute ospf 1 metric 1 10000 255 1 1500   network x.x.0.0   或者   router igrp 1   redistribute ospf 1   redistribute static   default-metric 1 10000 255 1 1500   network x.x.0. 0   使用show ip route查看路由传播情况。   3.OSPF的再分布问题   当OSPF再分布时,它成为ASBR.   (1)OSPF没有将外部路由装入路由选择表中   原因:。 不能通过区域内或区域间路由获知转发地址   。 ABR滑产生类型4的汇总LSA   (2)ASBR没有通告被再分布的路由   原因:。 ASBR的配置中缺少subnets关键字   。 distribute-list out命令阻塞了这些路由   router ospf 1   redistribute rip subnets   network x.x.x.0 0.0.0.255 area 0   使用show ip ospf database external IP来查看   4.IS-IS再分布问题   (1)将静态路由再分布入IS-IS   router isis   redistribute static ip   使用show run和show isis database查看   (2)将外部静态路由加入为一个LS的IS-IS LSP   router isis   redistribute static ip metric-type external   5.BGP的再分布问题   在AS边界路由器上,外出路由通告影响进入的流量,而进入路由通告则影响外出流量。因此,外出和进入的通告应分开考虑。   (1)BGP发布进eigrp中   router eigrp 200   redistribute bgp 200 metric 10000 100 255 1 1500 passive-interface s0   network x.x.x.0   router bgp 200   network x.x.x.0   neighbor x.x.x.x remote-as 100   可以使用 show ip route和PING来检测   决对不要在一个面向internet的路由器上使用BGP到IGP的再分布。一个完整的internet路由选择表由 100000个前缀组成,一个IGP进程将会因处理这么多的路由而阻塞再分布一个完整的internet表乃至大部分的表都会不可避免的引起主网络崩溃。   (2)为了更多地控制被通告进入BGP邻居,可以使用静态路由。   向BGP邻居通告一条默认路由不会抑制更具体的路由。   如果只发送默认路由,路由器必须使用过滤器来抑制所有更具体的路由。   router bgp 100   network 0.0.0.0   neighbor x.x.x.x remote-as 300   neighbor x.x.x.x remote-as 200   neighbor x.x.x.x remote-as 100   neighbor x.x.x.x default-originate   neighbor x.x.x.x redistribute-list 1 out (这一句只是BGP路由的一种方法)   access-list 1 permit 0.0.0.0   access-list 1 deny an

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值