CCNP OSPF协议详解

OSPF Open Shortest Path Fitstospf)开放最短路径优先协议,是由Internet工程任务组开发的路由选择协议,公用协议,任何厂家的设备。
链路状态路由协议(也可以说 OSPF )工作原理:
每台路由器通过使用 Hello 报文与它的邻居之间建立邻接关系
每台路由器向每个邻居发送链路状态通告 (LSA), 有时叫链路状态报文 (LSP). 每个邻居在收到 LSP 之后要依次向它的邻居转发这些 LSP( 泛洪 )
每台路由器要在数据库中保存一份它所收到的 LSA 的备份,所有路由器的数据库应该相同
依照拓扑数据库每台路由器使用 Dijkstra 算法(SPF算法)计算出到每个网络的最短路径,并将结果输出到路由选择表中
OSPF 简化原理:Hello报文――建立邻接关系――形成链路状态数据库――SPF算法――形成路由表。
几个概念:
OSPF 的特征:
1. 快速适应网络变化
2. 在网络发生变化时 , 发送触发更新
3. 以较低的频率 ( 30 分钟 ) 发送定期更新 , 这被称为链路状态刷新
4. 支持不连续子网和 CIDR
5. 支持手动路由汇总
6. 收敛时间短
7. 采用 Cost 作为度量值
8. 使用区域概念 , 这可有效的减少协议对路由器的 CPU 和内存的占用 .
9. 有路由验证功能 , 支持等价负载均衡
运行OSPF的路由器需要一个能够唯一标示自己的Router ID
OSPF
的网络类型:

广播型网络 , 比如以太网 ,Token Ring FDDI, 这样的网络上会选举一个 DR BDR,DR/BDR 的发送的 OSPF 包的目标地址为 224.0.0.5, 运载这些 OSPF 包的帧的目标 MAC 地址为 0100.5E00.0005; 而除了 DR/BDR 以外的 OSPF 包的目标地址为 224.0.0.6, 这个地址叫 AllDRouters
NBMA 网络 , 比如 X.25,Frame Relay, ATM, 不具备广播的能力 , 在这样的网络上要选举 DR BDR, 因此邻居要人工来指定
点到多点网络, NBMA 网络的一个特殊配置 , 可以看成是点到点链路的集合 . 在这样的网络上不选举 DR BDR
点到点网络 , 比如 T1 线路 , 是连接单独的一对路由器的网络 , 点到点网络上的有效邻居总是可以形成邻接关系的 , 在这种网络上 ,OSPF 包的目标地址使用的是 224.0.0.5, 这个组播地址称为 AllSPFRouters
虚链接 它被认为是没有编号的点到点网络的一种特殊配置 .OSPF 报文以单播方式发送
OSPF DR (指定路由)与 BDR (备份路由):
通过组播发送 Hello 报文
具有最高 OSPF 优先级的路由器会被选为 DR 255 最高)
如果 OSPF 优先级相同具有最高路由器 ID ,路由器会被选为 DR
DR BDR 的选举过程?
1. 在和邻居建立双向通信之后 , 检查邻居的 Hello 包中 Priority,DR BDR 字段 , 列出所有可以参与 DR/BDR 选举的邻居 . 所有的路由器声明它们自己就是 DR/BDR(Hello 包中 DR 字段的值就是它们自己的接口地址 ;BDR 字段的值就是它们自己的接口地址 )
2. 从这个有参与选举 DR/BDR 权的列表中 , 创建一组没有声明自己就是 DR 的路由器的子集 ( 声明自己是 DR 的路由器将不会被选举为 BDR)
3. 如果在这个子集里 , 不管有没有宣称自己就是 BDR, 只要在 Hello 包中 BDR 字段就等于自己接口的地址 , 优先级最高的就被选举为 BDR; 如果优先级都一样 ,RID 最高的选举为 BDR
4. 如果在 Hello 包中 DR 字段就等于自己接口的地址 , 优先级最高的就被选举为 DR; 如果优先级都一样 ,RID 最高的选举为 DR; 如果没有路由器宣称自己就是 DR, 那么新选举的 BDR 就成为 DR
5. 要注意的是 , 当网络中已经选举了 DR/BDR , 又出现了 1 台新的优先级更高的路由器 ,DR/BDR 是不会重新选举的
6. DR/BDR 选举完成后 , 其他 Rother 只和 DR/BDR 形成邻接关系 . 所有的路由器将组播 Hello 包到 224.0.0.5, 以便它们能跟踪其他邻居的信息 . 其他 Rother 只组播 update packet 224.0.0.6, 只有 DR/BDR 监听这个地址 . 一旦出问题 , 反过来 ,DR 将使用 224.0.0.5 泛洪更新到其他路由器
OSPF 路由器在完全邻接之前 , 所经过的几个状态 :
1.Down: 初始化状态
2.Attempt: 只适于 NBMA 网络 , NBMA 网络中邻居是手动指定的 , 在该状态下 , 路由器将使用 HelloInterval 取代 PollInterval 来发送 Hello
3.Init: 表明在 DeadInterval 里收到了 Hello , 但是 2-Way 通信仍然没有建立起来
4.two-way: 双向会话建立
5.ExStart: 信息交换初始状态 , 在这个状态下 , 本地路由器和邻居将建立 Master/Slave 关系 , 并确定 DD Sequence Number, 接口等级高的的成为 Master
6.Exchange: 信息交换状态 , 本地路由器向邻居发送数据库描述包 , 并且会发送 LSR 用于 请求新的 LSA
7.Loading: 信息加载状态 , 本地路由器向邻居发送 LSR 用于请求新的 LSA
8.Full: 完全邻接状态 , 这种邻接出现在 Router LSA Network LSA
OSPF协议的环境下,区域(Area)是一组逻辑上的OSPF路由器和链路 ,区域是通过一个32位的区域ID(Area ID)来识别的
OSPF 的区域:
在一个区域内的路由器将不需要了解它们所在区域外部的拓扑细节。在这种环境下:
路由器仅仅需要和它所在区域的其他路由器具有相同的链路状态数据库
链路状态数据库的减小也就意味着处理较少的LSA通告 
大量的LSA泛洪被限制在一个区域里面
对于和区域相关的通信量定义了下面3种通信量的类型:
域内通信量(Intra-Area Traffic)
域间通信量(Inter-Area Traffic)
外部通信量(External Traffic) 
OSPF 的路由器类型
内部路由器 (Internal Router)
区域边界路由器 (Area Border Routers,ABR)
骨干路由器 (Back bone Router)
自主系统边界路由器 (Autonomous System Boundary Router,ASBR)
分段区域 (Partitioned Area) 是指一个区域由于链路的失效而使这个区域的一个部分和其他部分隔离开来的情形。
虚链路 (Virtual Link) 是指一条通过一个非骨干区域连接到骨干区域的链路。
配置虚链路的时候,有几条相关的规则
虚链路必须配置在两台 ABR 路由器之间
配置了虚链路所经过的区域必须拥有全部的路由选择信息,这样的区域又被称为传送区域 (Transit Area)  传送区域不能是一个末梢区
配置一个基本的 OSPF 的过程含有以下 3 个必要的步骤:
步骤 1 :确定和每一个路由器接口相连的区域;
步骤 2 :使用 router ospf process-id 命令来启动一个 OSPF 进程;
步骤 3 :使用 network area 命令来指定运行 OSPF 协议的接口和它们所在的区域。

配置OSPF具体 命令:
Router(config)#router ospf process-id
Router(config-router)#network address mask area area-id
好了我们今天所讨论的就是,OSPF网络类型三种。通过实验来验证前面的理论拓扑如下,
CCNP OSPF协议详解_第1张图片
基本配置,根据拓扑配置IP地址。




在路由器启动期间,路由器上所有的接口都是管理关闭 (administratively shutdown) 的,如果 OSPF 不能发现一个有效的 IP 地址作为它的路由器 ID ,那么 OSPF 将不会启动。
解决方法-使用一个 loopback 接口 ( 环回接口 )
Loopback 接口是一个仅在软件上有意义的、虚拟的接口并且它总是有效 (up) 的,我们来给路由器设置上loopback接口,




给路由器配置OSPF协议




起了路由器协议之后查看网络是不是相通?
我们来进行查看Router1的网络类型
进入Router1、Router2的接口下进行更改,
router(config)#ip ospf network broadcast 广播
router(config)#ip ospf network non-broadcast 非广播
router(config)#ip ospf network point-to-point 点对点
router(config)#ip ospf network point-to-multipoint 点对多点
我们要把它改成广播型网络

更改后再进行查看
前面我们说了,在广播型网络中是选择DR与BDR的,而且是通过优先级选择的,在 优先级相同的时候看路由ID。我们的路由二的路由ID比Router1的高,所以应该是Router2为DR
那么我想把Router1变成DR有没有办法?可以改变优先级实现
在路由器选择好DR和BDR之后,在进入一个更高的路由器的时候是不重新选择DR与BDR的,所以我们可以先保存,之后在重启或者是重新打开(模拟器存在BUG)
看看是不是见效了,使得Router2变成的是BDR


完成了第一个实验我们再来进行把Router2和Router3之间变成NBMA网络
我们之前把Router2的串行接口变成的广播
在Router3上进行更改
变成NBMA之前还得给路由器指定邻接邻居,因为在NBMA网络中是不具备广播能力,在这样的网络上选举DR与BDR的时候邻居需人工指定。

再来Router3上进行查看是不是达到我们要的?
变为了NBMA网络了,
ping一下看是不是已经学到相连的邻居


接下来我们进行第三个实验,把Router3和Router4变成点对多点之后还可以正常通讯,在这样的网络中是不选举DR和BDR的
在Router3的串行线S1/1上是点对点网络
还和刚才的命令一样,在Router3和Router4上进行更改

更改之后查看结果


检查网络的相关性,看看是不是相通
网络很正常,你做了吗?

你可能感兴趣的:(职场,休闲,ospf,ccnp)