OSPF基础特性学习笔记————看这一篇就够了!!!

介绍:

1.OSPF产生背景:

路由器根据路由表转发数据包,路由表项可通过手动配置和动态路由协议生成。
静态路由比动态路由使用更少的带宽,并且不占用CPU资源来计算和分析路由更新。当网络结构比较简单时,只需配置静态路由就可以使网络正常工作。但是当网络发生故障或者拓扑发生变化后,静态路由不会自动更新,必须手动重新配置。相比较于静态路由,动态路由协议具有更强的可扩展性,具备更强的应变能力。


OSPF(Open Shortest Path First,开放式最短路径优先)具有扩展性强,收敛速度快等特点,作为优秀的内部网关协议被广泛使用。


该博客主要介绍OSPF的基本概念,OSPF的基础特性。

以下是OSPF 的基础特性:

2.思维导图如下:

1.名词解释:

OSPF的结构化部署 --- 区域划分
区域划分的主要目的 --- 区域内部传递拓扑信息,区域之间传递路由信息。 --- 链路状态型协
议的距离矢量特征
如果一个OSPF网络只存在一个区域,这个网络称为单区域OSPF网络;
如果一个OSPF网络存在多个区域,这样的网络称为多区域OSPF网络。
区域边界路由器 --- ABR --- 同时属于多个区域,一个接口对应一个区域,必须有一个接口在
区域0中,将区域内的拓扑信息收集计算成路由信息,之后进行传递。
区域之间可以存在多个ABR设备,一个ABR设备可以处于多个区域。
区域划分的要求:
1,区域之间必须存在ABR设备;
2,区域划分必须按照星型拓扑结构进行划分。 --- 星型拓扑的中间区域 --- 骨干区域。
为了方便区分和标识不同的区域,所以,我们给每一个区域都定义一个区域ID --- area
id --- 32位二进制构成的 --- 两种表示方法 -- 1,直接使用十进制进行表示;2,使用点分十
进制进行表示。 ---- 骨干区域的区域ID定义为区域0。

2,OSPF的数据包(五种)

(1)hello包(可修改) --- 周期性的发现,建立和保活邻居关系。
hello报文

Hello报文的主要作用:

  • 邻居发现:自动发现邻居路由器,
  • 邻居建立:完成Hello报文中的参数协商,建立邻居关系。
  • 邻居保持:通过周期性发送和接收,检测邻居运行状态。

字段解释:

Network Mask:发送Hello报文的接口的网络掩码。
Hello lnterval:发送Hello报文的时间间隔。通常为10s
Router Dead lnterval:失效时间。如果在此时间内未收到邻居发来的Hello报文,则认为邻居失效。通常为40s。
Neighbor:邻居,以Router ID标识。

Options:
E:是否支持外部路由
MC:是否支持转发组播数据包
N/P:是否为NSSA区域

Router Priority:DR优先级。默认为1。如果设置为0,则路由器不能参与0DR或BDR的选举。
Designated Router: DR的接囗地址。
Backup Designated Router: BDR的接囗地址。

hello包的发送周期 --- hello时间 --- 10S(以太网)/30S
死亡时间 --- dead time --- 4倍的hello时间
RID --- 区分和标识不同的路由器 --- 本质由32位二进制构成 --- 1,格式统一; 2,全网唯一
RID的生成方式:
1,手工配置
2,自动生成 --- 首先,设备将优先选择环回接口的IP地址作为RID,如果存
在多个环回接口,则将选择所有环回接口中IP地址最大的作为RID;如果没有
配置环回接口,则将使用设备的物理接口的IP地址作为RID,如果物理接口存
在多个,则选择IP地址最大的作为RID;
(2)DBD包 --- 数据库描述报文 --- LSDB --- 链路状态数据库 --- LSA ---- “菜单”

报文字段解释:

接口最大传输单元(MTU):默认为0——华为设备默认未开启MTU值检测功能

注意:如果邻居的该字段不一致,则会停留在exstart状态

I (init)—— 该位为一,则代表该DBD是在进行主从关系选举的数据包

M (more) —— 该位为一,则代表后续还有更多的数据包,该位为0,则代表这个DBD包是最后一个DBD包

MS (master)——该位为一,则代表发送DBD包设备为主

在主从关系未选举出时,邻居双方都会将自己的MS位为1,认为自己是主,选举完成后,只有主置1

DBD的序列号 —— 在DBD报文交互过程中,会逐次加一,用于确保BDB报文传输的有序性和可靠性

隐性确认:DBD包的确认机制是通过序列号实现

         —— 隐性确认:为主的设备发送一个DBD包,其中包含一个序列号,”从“收到这个数据包后将使用相同的序列号回复DBD包,起到确认的作用

显性确认:通过LSACK数据包实现确认

LSA 头部信息 —— 不是完整的LSA信息,是LSA信息的摘要

(3)LSR包 --- 链路状态请求报文 --- 基于DBD包,请求未知的LSA信息。 --- “点菜”
报文字段解释:

链路状态类型,链路状态ID,通告路由器

——LSA的三元组(可唯一标识一条LSA)

(4)LSU包 --- 链路状态更新报文 --- 真正携带LSA的数据包 --- “上菜”
报文字段解释:
LSA个数
LSA详情信息
(5)LSACK包 --- 链路状态确认报文 --- 确认包
报文字段解释:
通过LSA头部内容进行确认
OSPF协议具有周期更新机制,每个30MIN发送一次。

OSPF一共定义了5种类型的报文,不同类型的OSPF报文有相同的头部格式。OSPF报文直接采用IP封装,在报文的IP头部中,协议号为89。

6.以下是五种报文共有的头部信息:

3.OSPF的状态机:

down状态 --- 启动ospf之后,发出hello包进入下一个状态
init(初始化)状态 --- 收到对方的hello包中包含自己本地的RID,则进入到下一个状态
Two-way (双向通信) --- 标志着邻居关系的建立
(条件匹配)匹配成功,则进入到下一个状态;失败则停留在邻居状态,仅使用hello包进行周
期保活
exstart(预启动)状态 --- 通过发送没有携带数据的DBD包来进行主从关系选举,比较RID来
进行选举,RID大的为主,为主可以优先进入后面的状态
exchange(准交换)状态 --- 交换携带数据(摘要信息)的DBD包进行LSDB数据库目录共
loading(加载)状态 --- 基于对端发送的DBD包,使用LSR/LSU/LSACK交换未知的LSA信息
FULL状态 --- 标志着邻接关系的建立。
注:其中down状态,two-way,FULL状态是稳定状态.

4.OSPF工作过程:

(1)确认可达性,建立邻居关系。

  (2)  摘要同步,开始建立邻接关系。

(3)完整信息同步,完全邻接关系建立。

OSPF工作过程详细总结为:
启动配置完成,ospf协议向本地所有运行协议的接口以组播的形式(224.0.0.5)发送
hello包;hello包中携带自己本地RID,以及本地已知的邻居的RID。之后,将收集到的
邻居关系记录在一张表中 --- 邻居表
邻居关系建立完成后,进行条件匹配。失败则停留在邻居关系,仅hello包进行保活。
匹配成功,则开始建立邻接关系。首先,使用未携带数据的DBD包进行主从关系选举。
之后,使用携带数据的DBD包共享目录信息,之后,基本DBD包,通过LSR/LSU/LSACK获
取未知的LSA信息。将所有的LSA信息保存本地的LSDB数据库 --- 数据库表
最后,基于LSDB,使用SPF算法进行计算,得到未知网段的路由信息,将其加载到 路由
收敛完成后,周期性的发送hello包进行保活,每30min一次周期更新。

结构突变:
1,突然新增一个网段:触发更新,第一时间将变更信息通过LSU包传递出去,需要ACK
确认
2,突然断开一个网段:触发更新,第一时间将变更信息通过LSU包传递出去,需要ACK
确认
3,无法联系 --- dead time --- 40s

工作过程流程图如下:

(1)确认可达性,建立邻居关系。

OSPF使用Hello报文发现和建立邻居关系。在以太网链路上,缺省时,OSPF采用组播的形式发送Hello报文(目的地址224.0.0.5)。

OSPF Hello报文中包含了路由器的Router ID、邻居列表等信息

此时OSPF对应的状态机如下:

  (2)  摘要同步,开始建立邻接关系。

R1和R2的Router ID分别为10.0.1.1和10.0.2.2并且二者已建立了邻居关系。当R1的邻居状态变为ExStart后,R1会发送第一个DD报文。此报文中,M-bit设置为1,表示后续还有DD报文要发送,MS-bit设置为1,表示R1宣告自己为Master。DD序列号被随机设置为X,I-bit设置为1,表示这是第一个DD报文。
同样当R2的邻居状态变为ExStart后,R2也会发送第一个DD报文。此报文中,DD序列号被随机设置为Y(1-bit=1,M-bit=1,MS-bit=1,含义同上)。由于R2的Router ID较大,所以R2将成为真正的Master。收到此报文后,R1会产生一个Negotiation-Done事件,并将邻居状态从ExStart变为Exchange。
当R1的邻居状态变为Exchange后,R1会发送一个新的DD报文,此报文中包含了LSDB的摘要信息,序列号设置为R2在步骤2中使用的序列号Y,I-bit=0,表示这不是第一个DD报文,M-bit=0,表示这是最后一个包含LSDB摘要信息的DD报文,MS-bit=0,表示R1宣告自己为Slave。收到此报文后,R2将邻居状态从ExStart变为Exchange。
当R2的邻居状态变为Exchange后,R2会发送一个新的DD报文,此报文包含了LSDB的摘要信息。DD序列号设置为Y+1,MS-bit=1,表示R2宣告自己为Master。
虽然R1不需要发送新的包含LSDB摘要信息的DD报文,但是作为Slave,R1需要对Master发送的每一个DD报文进行确认。所以,R1向R2发送一个新的DD报文,序列号为Y+1,该报文内容为空。发送完此报文后,R1产生一个Exchange-Done事件,将邻居状态变为Loading。R2收到此报文后,会将邻居状态变为Full(假设R2的LSDB是最新最全的,不需要向R1请求更新)。

(3)完整信息同步,完全邻接关系建立。

3.DR与BDR:

DRother:既不是DR也不是BDR的路由器就是DRother路由器

MA(Multiple Access,多路访问)分为BMA( Broadcast Multi-Access,广播多路访问)和NBMA(Non-Broadcast Multiple Access,非广播多路访问)。以太网链路组成的网络是典型的BMA网络。帧中继链路通过逻辑上的划分组成典型的NBMA网络。


 

DR与BDR的选举规则:
条件匹配 --- 在一个广播域中,若所有设备均为邻接关系,将出现大量的重复更新;故
需要进行DR/BDR的选举,所有DRother之间,仅维持邻居关系即可。
修改优先级
[r1-GigabitEthernet0/0/0]ospf dr-priority ?
INTEGER<0-255> Router priority value
注意:如果将一个接口的优先级设置为0,则代表这个接口
将放弃DR/BDR的选举。
DR/BDR的选举是非抢占模式的 ---- 一旦角色选举出来,则将无法抢占。 ---- 选举时
间:40s(等同于死亡时间)

DR/BDR的选举是非抢占式的。
DR/BDR的选举是基于接口的。

  • 接口的DR优先级越大越优先。
  • 接口的DR优先级相等时,RouterID越大越优先。

广播链路或者NBMA 链路上DR和BDR的选举过程如下:

接口UP后,发送Hello报文,同时进入到Waiting状态。在Waiting状态下会有一个WaitingTimer,该计时器的长度与DeadTimer是一样的。默认值为40秒,用户不可自行调整。
在WaitingTimer触发前,发送的Hello报文是没有DR和BDR字段的。在Waiting阶段如果收到Hello报文中有DR和BDR,那么直接承认网络中的DR和BDR,而不会触发选举。直接离开Waiting状态,开始邻居同步。
假设网络中已经存在一个DR和一个BDR,这时新加入网络中的路由器,不论它的Router ID或者DR优先级有多大,都会承认现网中已有的DR和BDR。
当DR因为故障Down掉之后,BDR会继承DR的位置,剩下的优先级大于0的路由器会竞争成为新的BDR。
只有当不同Router ID,或者配置不同DR优先级的路由器同时起来,在同一时刻进行DR选举才会应用DR选举规则产生DR

5.OSPF的基本配置

1,启动OSPF进程
[r1]ospf 1 router-id 1.1.1.1 --- 手工配置RID需要在进程启动时配置
[r1-ospf-1]
2,创建区域
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]
3,宣告
宣告的作用:
1,激活接口 --- 只有宣告的网段包含的接口会被激活,只有激活的接口可以收发OSPF
的数据。
2,发布路由 --- 只有激活的接口所对应的直连网段的路由才能被发布
[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 --- 反掩码 --- 由连续的0和连续的1组成,0
对应位不可变,1对应位可变。
查看相关信息:
[r1]display ospf peer --- 查看邻居表
[r1]display ospf peer brief --- 查看邻居关系简表
[r1]display ospf lsdb --- 查看数据库表
[r1]display ospf lsdb router 2.2.2.2 --- 展开一条LSA的方法
[r1]display ip routing-table protocol ospf --- 查看路由表
华为设备,OSPF协议的默认优先级为 -- 10
COST = 参考带宽 / 真实带宽 --- 华为设备默认的参考带宽为100Mbps
如果计算出来是一个小于1的小数,则直接按照1来算。如果是一个大于1的小数,只取
整数部分。
[r1-ospf-1]bandwidth-reference 1000 --- 修改参考带宽
<r1>reset ospf 1 process --- 重启OSPF进程

6.OSPF的拓展配置:

1,OSPF的手工认证
[r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456
2,手工汇总 --- 区域汇总
在ABR设备上进行配置
[r2-ospf-1-area-0.0.0.0]abr-summary 192.168.0.0 255.255.254.0
3,沉默接口
配置了沉默接口的接口,将只接受不发送路由信息
[r2-ospf-1]silent-interface GigabitEthernet 0/0/2
4,加快收敛 --- 减少计时器的时间
[r1-GigabitEthernet0/0/0]ospf timer hello 5 --- 修改hello时间的方法
[r2-GigabitEthernet0/0/0]ospf timer dead ?
INTEGER<1-235926000> Second(s)
注意:邻居双方的hello时间和死亡时间必须相同,否则将断开邻居关系
5,缺省路由
[r3-ospf-1]default-route-advertise
注意:这个命令要求边界设备自身得具有缺省路由才行
[r3-ospf-1]default-route-advertise always --- 在没有缺省的情况下,强制下发缺省

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值