OSPF知识点复习

一.OSPF基础

动态路由协议的评判标准 ---- 收敛速度、选路、占用资
 
OSPF特性:
        (1)IGP(路由协议)
        (2)链路状态型协议(LS型)
        (3)SPF 算法(路径最短优先)
        (4)组播 224.0.0.5/224.0.0.6
        (5)更新时间:10s/150s
OSPFv2 RIPv2 对比
相同点:
无类别路由协议
均采用组播通讯
均支持等开销负载均衡
不同点:
OSPF 可以工作在大型网络中
对比点:
1.选路:没有环路
RIP的选路依据---跳数
OSPF的选路依据---带宽
2.收敛速度
RIP---30S 180S 120S
OSPF---30MIN 10S 40S
3.占用资源---
OSPF---链路状态路由协议
RIP和OSPF的一些异同点
二. OSPF 结构化部署
区域内部传递拓扑信息,区域间传递路由信息
--- 链路状态型协议的距离矢量特征。
多区域提高了网络的扩展性,有利于组件更大规模的网络
区域 ID Area-ID ): 32 bit 组成的非负整数,按点分十进制表示。
OSPF多区域划分要求:
1. OSPF 要求域中的所有非骨干区域(区域 ID 不为 0 的区域)都必须与骨干区域直接相连
2. 骨干区域不能被分割
假定没有 所有非骨干区域都必须连接骨干区域 这条规则
OSPF 定义了 ABR (区域边界路由器)来确保遵循这条规则
          ---- 只有真正的 ARP 设备才可以转发区域 间路由信息。
注意:
        1 、至少连接两个区域
        2 、连接的区域中至少有一个接口连接区域 0
        3 、在区域 0 中至少有一个活跃的邻居
非骨干区域之间不允许直接相互发布区域间路由信息
            ---- 因为非骨干区域之间的边界设备不是 ARP
假定没有 骨干区域不能被分割
OSPF规定:从非骨干区域收到的路由信息,ABR能接收到不会使用这条路由信息
  称之为: OSPF 的区域水平分割机 ----从一个区域学习到的路由信息,不能再传递回该区域。
总结: 
OSPF有如下规定:
        1 、伪 ABR 设备不允许转发区域间路由信息
        2 、对于真实 ABR 设备
                   能够将自己直连的非骨干区域的路由信息传递给骨干区域
                  能够将自己直连的骨干区域路由信息传递给非骨干区域
                   能够将自己从骨干区域学习到的非骨干区域路由信息传递给直连的非骨干区域
OSPF 路由器角色:
内部路由器---IR
        (1)所有接口都接入同一个 OSPF 区域的路由器
区域边界路由器---ABR
        (1)R2 R3
骨干路由器--- -BR
        (1)接入 Area0 的路由器
自治系统边界路由器---ASBR
      (1)工作在 OSPF 自治系统边界的路由器,负责将 OSPF 域外的路由引入本域。
      (2)并不是所有运行了多种路由协议的 OSPF 路由器就一定是 ASBR ;必须执行了重发布操作的路由 器才会被称为ASBR
OSPF 数据包:
物种协议报文:
(1)hello报文:用于发现OSPF的邻居
(2)DD报文:   用于描述LSDB报文
(3)LSR报文: 用于向OSPF邻居请求LSU
(4)LSU报文:用于向对方发送详细的网络信息
(5)LSACK报文: 用于回复LSU报文
hello包:
       (1) 用来发现、建立并周期保活 OSPF 邻居关系 ,通过组播 224.0.0.5 发送。
       (2)10S 发送一次用以确认邻居存在。
       (3)hold-time---- 死亡时间 ----hello-time*4
       (4)Router-ID RID --- 全域唯一,标识路由器身份。 IP 地址形式
配置方式:
   (1) 手工配置
   (2)自动配置
   (3)默认优选最大环回 IP 地址,没有环回就选择最大物理 IP 地址
 
无论采用手工还是自动选取的方式,一旦OSPF确定了RID,则之后不会改变。 --- 重启 OSPF 进程
DBD报文:
(1)数据库描述报文
  (2)该报文中携带的是 路径信息的摘要 --- 避免重复更新,减少更新量的一种做法。 LSR 报文
LSR报文
(1)链路状态请求报文 ---- 用以获取未知的 LSA (链路状态通告)信息
LSU报文:
(1)链路状态更新报文
(2)携带真实的 LSA 信息的数据包
LSAck报文:
(1)链路状态确认报文
OSPF 七种状态机:
down- -- 关闭 ----- 一旦启动了 OSPF 协议,则发出 hello 报文进入下一个状态
init- --- 初始化 ---- 收到的 hello 报文中存在本地 RID 值,进入下一个状态
2-way ---- 双向通讯 ---- 邻居关系建立的标志 --- 稳定态
条件匹配:匹配成功则进入下一个状态,匹配失败则停留在邻居状态。
exstart ---- 预启动 ---- 使用未携带信息的 DBD 报文进行主从关系选举, RID 大的为主。
exchange ---- 准交换 ----- 使用携带目录信息的 DBD 报文进行目录共享
loading ---- 加载 ---- 邻居间使用 LSR/LSU/LSACK 报文来获取完整的 LSA 信息
full -- 转发 ---- 拓扑交换完成后,根据算法计算出路由进入该状态,标志着 邻接关系的建立 --- 稳定
条件匹配
    决定了谁给谁传递拓扑信息
         DR BDR DRother---- 接口角色
选举规则:
       1. 优先级, 0-255 ;选择优先级大的为 DR 设备,默认为 1 。若优先级为 0 则代表放弃选举
       2. 若优先级相同,则比较 RID 值,越大越优先。
选取范围---一个广播域:
        非抢占模式 ---- 重选则需要重启 OSPF 进程。
         在一个 MA 网络中,可以没有 BDR ,但是必须存在 DR

 
条件匹配的选举过程
       1. DR BDR 的选举是通过 Hello 报文实现的,时间发生在 2-way 状态之后。
       2. 路由器将自己的接口的 DR 优先级填写在 hello 报文的 “DR 优先级字段
       3. 华为数通产品的接口 DR 优先级默认 1 ,该参数值可以通过
(1).
      4. 当接口激活 OSPF 后,设备首先会检查网络上是否已经存在 DR ,如果存在则接收已经存在的 DR
备。否则优先级最大的设备成为 DR ,若优先级相同,则拥有最大 RID 的路由器成为 DR 设备。
      5. BDR 选举过程与 DR 相同,但是是在 DR 选举之后进行。
OSPF 工作过程
  
1. 启动OSPF配置后,OSPF向本地所有运行了OSPF协议的接口以组播224.0.0.5发出hello报文;hello
报文中携带了本地的 RID 参数以及本地已知的邻居 RID 值。
(1). 邻居的 RID 获取方式:通过接收其他邻居的 hello 报文来获取本地邻居
(2). 建立邻居关系,并生成邻居表。
2. 邻居关系建立后,进行条件匹配;匹配失败则停留在邻居关系,即2-way状态,仅使用hello报文保
活。该状态为稳定态。
3. 匹配成功的邻居开始建立邻接关系。
(1). 首先使用未携带数据的 DBD 报文进行主从关系选举,之后使用携带信息的 DBD 报文来共享数
据库目录;
(2). 然后本地通过对方共享的目录信息与本地数据库进行对比,通过使用 LSR 报文请求未知的 LSA
信息。
(3). 对端使用 LSU 报文回复完整 LSA 信息
(4).  本端使用 LSAck 报文确认回复。
4. 当本地接收到所有的未知LSA信息后,将信息存放在LSDB(数据链路库表)中。
(1). 之后基于本地数据库生成有向图和最短路径树。
(2). 根据最短路径树计算本地到达拓扑中所有未知网段的最短路径,并将其加入到 OSPF 路由表
中。
(3). OSPF 路由表中选择最优路由加载入本地全局路由表。
5. 收敛完成后,hello报文周期保活。每30min进行一次周期链路刷新。
结构突变:

新增网段 --- 直连新增网段的设备使用LSU告知本地所有邻接关系,之后扩散到全网 --- 直接使用LSU报文告知邻居,邻居使用ACK进行确认。

断开网段 --- 直连断开网段的设备使用LSU告知本地所有邻接关系,之后扩散到全网 --- 直接使用LSU报文告知邻居,邻居使用ACK进行确认。

无法沟通 --- dead time 到时,断开邻接关系,清除通过该邻接生成的所有路由信息 --- dead time----4*hello time,状态为down,删除信息。

开销值 = 参考带宽/实际带宽
 

OSPF 基本配置:
1. 启动OSPF协议
       [r1]ospf 1 router-id 1.1.1.1
2. 创建区域
       [r1-ospf-1]area 0
3. 宣告
       [r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 -- -- 精准宣告
       [r1-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.255 ---- 范围宣告
反掩码 32 位二进制,点分十进制表示;由连续的 0 和连续的 1 组成;其中 0 表示 IP 对应位不变, 1 代表 IP对应位可变。
一条 OSPF 路径的 cost 等于从目的地到本地路由器沿途的所有入接口 cost 的总和
OSPF 报文格式

OSPF 不用 UDP 而是直接用 IP 数据报传送解封装快:

协议号:89

OSPF 报文头部:
长度:24字节

(1)版本 --- 恒为 2
(2)类型 ---- 描述 OSPF 数据包类型:
     hello---1
     dbd-----2
     lsr------3
     lsu----4
     lsack----5
(3)报文长度
(4)路由器 ID----RID
(5)区域 ID--- 发出该报文的接口所属区域的 ID 值。
(6)校验和 ---- 完整数据包
(7)验证类型:
         指示该数据报文使用的认证类型
         不认证 --0 ;简单认证 ---1 MD5 认证 ---2
(8)验证数据:
         用于报文认证的内容
         若认证类型为不认证,则该字段全为 0
Hello 包:
网络掩码:
(1)两台 OSPF 路由器如果通过 以太网接口 直连,那么双方的直连接口必须配置相同的网络掩码。
(2)如果一方在接口上收到的 hello 报文中,网络掩码字段与本地接口配置的掩码不同,则该路由
         器忽略该 hello 报文,此时邻居关系无法建立。
注意:只有在华为设备中会检查网络掩码信息
Hello 间隔:
(1)如果两台路由器的 hello 时间间隔不同,则不会建立邻居关系。
(2)在 Broadcast 类型和 P2P 网络类型中 hello 时间间隔为 10S ;而在 NBMA P2MP 网络类型中,  
         Hello 时间为 30S
可选项:
(1)有 8 个标记位,每一个标记位为 1 ,则代表其符合 OSPF 的某种特性。
(2)特殊区域标记
路由器优先级:
(1)用于选举 DR BDR
路由器失效时间:
(1)两台设备建立 OSPF 邻居需要确保死亡时间相同。
(2)默认情况下是 hello 间隔的 4 倍。
(3)若修改 hello 时间,则死亡时间随之改变;若修改死亡时间,则 hello 时间不变。
指定路由器---DR:
(1)该参数为网络中 DR 的接口 IP 地址。
(2)若没有选举出 DR ,则使用 0.0.0.0 来占位
备份指定路由器---BDR:
(1)该参数为网络中 DR 的接口 IP 地址。
(2)若没有选举出 BDR ,则使用 0.0.0.0 来占位
邻居:
(1)在直连链路上发现的有效邻居,此处填充的是邻居的 RID 值。
所有 224.0.0.X 格式的组播地址称为本地链路组播地址,目标 IP 是本地链路组播的数据包的 TTL 值被设
定为 1 。所有本地链路组播都存在对应的组播 MAC 地址, 01-00-5e-0 23 位,后 23 位为组播 IP 地址的后
23
限制邻居关系建立的参数:
子网掩码
(1)R1 修改掩码后,会立即将状态置为 down ,而 R2 会在 40S 死亡时间后进行状态切换。
(2)原因在于: R1 在修改 IP 地址的掩码后,会认为之前的连接中断,需要重新建立连接,所以会直      接重置状态机。而R2 则认为此时属于结构突变中的无法沟通
hello 时间:
[r1-GigabitEthernet0/0/0]ospf timer hello 20]
双方经过死亡时间后,状态发生改变
dead 时间:
[r1-GigabitEthernet0/0/0]ospf timer dead 80]
结果与修改 hello 时间一致。
认证:
[r2-GigabitEthernet0/0/0]ospf authentication-mode simple plain 123456 ---- 接口认证]
[r2-ospf-1-area-0.0.0.0]authentication-mode simple plain 123456 ---- 区域认证]
可选项:
与修改掩码信息结果相同
DBD 包 :
(1)使用未携带数据的 DBD 报文进行主从关系选举
(2)使用携带数据的 DBD 报文进行拓扑目录共享
(3)使用未携带数据的 DBD 报文进行确认。
接口最大传输单元----MTU
(1)在华为 AR 系列路由器上,该参数值默认为 0
(2)该字段是用于进行OSPF MTU 检测,而华为默认不开启 MTU 检测机制。
(3)[r1-GigabitEthernet0/0/0]ospf mtu-enable ---- 开启 OSPF MTU 检测机制]
(4)如果设备两端开启了 OSPF MTU 检测机制,则进行 MTU 检测,若双方的 MTU 参数相同,则
正常进行邻接关系建立。若不同,则双方卡在 exstart 状态
(5)可选项 --- Hello 报文内容中的可选项字段一致。
I------ 主从关系选举
(1)如果该为为 1 ,则代表该数据报文是用于进行主从关系选举。且此时的数据包中不会携带真实
的数据库目录信息。
M
(1)若为 1 ,则代表后续还存在 DD 报文
(2)若为 0 ,则代表后续没有 DD 报文
MS----代表是否为主设备
(1)若为 1 ,则代表本设备为 Master 设备
(2)若为 0 ,则代表本设备为 Slave 设备
DD 序列号
(1)用于确保 DD 报文传输的有序性和可靠性
(2)在 DD 报文交互的过程中, DD 序列号被逐次加 1 。且 DD 序列号必须由 Master 路由器来决定,
         而 Slave 路由器只能使用 Master 路由器发送的 DD 序列号来发送自己的 DD 报文。
(3)隐形确认机制 ---- 通过对方发送的数据包中的 DD 序列号,起到确认的效果。
(4)而主从关系选举就是为了完成隐形确认
LSR 包:
         
链路状态类型、链路状态 ID 、通告路由器 ----LSA 的三元组信息。 --- 通过这三个参数可以唯一标识出一 LSA 信息
LSU 包:
LSAck 包:
完成显式确认机制。
OSPF 的接口网络类型:
   P2P --- P2MP
      MA:
             BMA
             NBMA
SPF 的接口网络类型,实际上是说 OSPF 的接口在某种网络类型下的一种工作方式或特征。
广播型多路访问类型 ---BMA
[r3]display ospf interface GigabitEthernet 0/0/0 ---查看OSPF网络接口类型
OSPFBMA类型的接口上通常以组播的方式发送hello报文、LSULSACK报文;以单播的形式发送 DD报文和LSR报文。
点到点类型 ---P2P:

OSPF在网络类型为P2P的接口上以组播的方式发送所有数据报文。---不以单播形式发送的原因在于点到点网络可以不需要IP地址。 ​ OSPF在点到点网络中不会选举DR和BDR.

开销值:48----在华为设备中,P2P网络的参考实际带宽默认为2.048 (E1标准)

3、环回接口

[r1-LoopBack0]ospf network-type broadcast ---修改接口网络类型为broadcast
开销值恒定为0,这样的结果就是修改参考带宽不会影响到环回接口的开销值。
type----华为使用P2P来填充,而cisco使用loopback填充。
 
所有通过OSPF学习到的环回接口的路由掩码都是32位,因为该接口是一个模拟的接口,实际没有连 接用户,所以并没有其他IP地址存在与该接口之下,只有一个可用IP----如果使用其他掩码,可能会导 致环路或者路由黑洞。
witing----该字段代表正在进行条件匹配,当该计时器超时后,接口会认为自己为DR设备,且将接口的 状态切换为exstart状态。
华为将 tunnel 接口的传输速率定为了 64Kbps
Hub节点此时属于P2P类型,只能建立一个邻居,无法建立多个邻居,故修改Tunnel接口的网络类型 为Broadcast类型。
不同的网络类型,可以建立邻居关系,但是可能会造成不同的问题。故修改接口网络类型时,全网保 持一致。
如果链路两端,一端需要选举DR,另一端不需要,可能会成功建立full状态,也可能有一个卡在
exstart2-way状态。
让分支节点放弃 DR 选举,在 MGRE 环境下, hub 节点必须成为 DR 设备。否则网络路由信息无法学习 全面 必须修改分支节点的接口优先级为 0
点到多点类型 ---P2MP
只能手工修改。
[r7-Tunnel0/0/0]ospf network-type p2mp
P2MP环境下,设备会学习所有邻居的接口IP地址,形成主机路由。
P2MP环境下,只有hello报文是以组播形式发送,其他所有报文以单播形式发送数据
非广播型多路访问类型 ----NBMA:
  在NBMA网络中,所有数据包以单播数据通讯。
在NBMA网络中,所有的 OSPF 路由器都需要使用peer命令单播指定邻居,该命令是双向的。 
OSPF的不规则区域划分
非骨干区域必须与区域0直接相连
骨干区域不能被分割
不规则区域
      远离骨干的非骨干区域
      不连续骨干区域
根本解决方案:对 OSPF 网络重新规划与配置,满足 OSPF 区域划分规则
使用 tunnel 隧道:
使用vpn隧道解决不规则区域的问题
(1)可能产生选路不佳。
(2)造成重复更新。
(3)资源消耗
    ·这种方法问题太多,所以在工程中几乎见不到。仅作了解
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值