OSPF基础

OSPF

基本概念

名称

Open Shortest Path First,开放式最短路径优先协议。

版本

OSPF v2(IPV4)与OSPF v3(IPV6)。

协议类型

标准的无类别链路状态型协议。无类别(传递网络掩码),链路状态型(基于拓扑,防环)

传递的路由信息

OSPF传递的路由信息为LSA,链路状态通告(Link-State Advertisement),它是链路状态型协议使用的一个分组,包括有关邻居和通道成本的信息。LSA被路由器接收用于维护路由选择表。可简单理解为在不同环境下产生的不同拓扑或路由。

使用范围

IGP(一个AS之内)

更新方式

触发更新,当网络结构发生变化时再更新路由信息。周期更新,周期为每30min。且更新时采用组播更新(224.0.0.5、224.0.0.6)。

跨层封装

基于IP协议跨层封装,无四层(传输层),分段改为分片,无端口号,有协议号为89。

OSPF区域

OSPF支持区域划分。基于接口(链路)来划分。

作用

①限制LSA的传播范围。
②减少LSA的数量。
③同一区域传拓扑信息,不同区域传路由信息。

标识方法

十进制数与类似IP地址(X.X.X.X),其中0区域为骨干区域,非0区域为非骨干区域。

划分原则

①多区域OSPF网络中必须存在且唯一的骨干区域(Area 0或Area-0.0.0.0)。单区域时可不为Area 0。

②若存在非骨干区域,非骨干区域必须与骨干区域相连,实现区域的星型结构。

③若存在非骨干区域,必须有区域边界路由器(ABR),且ABR路由器同时连接骨干区域与非骨干区域(接口划分)。

OSPF协议中路由器的角色

骨干路由器

该路由器的所有接口都属于同一个OSPF区域内。

非骨干路由器

①ABR:区域边界路由器。连接骨干与非骨干区域。
②ASBR:自治系统边界路由器。连接OSPF与非OSPF区域,能将非OSPF协议的路由引入。

OSPF数据包类型

五种类型的报文

一、Hello

保活包,组播周期发送,用于邻居关系的发现、建立与保活。在Hello包中存在本地已知邻居的Router ID,Hello time为10s或30s,Dead time为Hello time的四倍。Hello包中的四个参数必须一致(上图带*的参数)才可建立邻居关系。华为设备还要求邻居间接口的IP地址子网掩码必须一致。

二、DBD

Datebase Description,数据库描述包,对链路拓扑的路由信息的描述。

DBD相关概念

隐性确认:普通的DBD需要Ack确认,而假DBD包(主从选举时)不需要,此时会使用从对主的隐性确认的方式,基于序列号同步进行确认。

MTU参数:DBD报文中存在MTU参数,要求邻居间的MTU值必须相同,否则将卡在Exstart状态。华为设备默认不检查MTU值,需要手动配置开启检查(注意两端保持相同状态),且可进行修改。

描述字段:I位为1标识本地发出的第一个DBD包,M位为0标识本地发出的最后一个DBD包,MS位为1代表主,0代表从。

三、LSR

LS Request,链路状态请求包。

四、LSU

LS Update,链路状态更新包,携带了具体的LSA(拓扑信息)

五、LSAck

LS Acknowlegement,链路状态确认包。

OSPF状态机

前三个状态(建立邻居关系)

Down State:停机状态,即启用OSPF协议之前的状态。在启用OSPF协议后,路由器会发送Hello包,然后进入下一个状态(初始化状态)。

Init State:初始化状态,即等待建立邻居关系的状态。在收到包含有自己RID的Hello包后,则与对方一起进入下一个状态(双向连接状态)。

Two-Way State:双向连接状态,即标志着邻居关系建立完成。

后四个状态(建立邻接关系)

在经过前三个状态后,会进行条件匹配,若匹配成功则继续进行下一个状态(预启动状态),否则停留在双向连接状态保持邻居关系。

Exstart State:预启动状态,使用假DBD(效果类似Hello包,但无需Ack确认,采用隐性确认的方式)双方比较RID,进行主从关系的选举(从会使用主的序列号发包以表示选举结果),RID大者优先进入下一个状态(准交换状态)。

Exchange State:准交换状态,使用真正的DBD包进行拓扑目录的共享(需要使用Ack包进行确认)。

Loading State:加载状态,根据对比拓扑目录信息找出本地缺少的信息,然后使用LSR、LSU与LSAck包来进行具体拓扑信息的共享,实现OSPF收敛。

Full State:最终状态,共享完成,标志着邻接关系建立完成。

OSPF工作过程

第一步:启动配置完成后,邻居间组播收发Hello包,建立邻居关系,生成邻居表

第二步:邻居间进行条件匹配,匹配失败则保持邻居关系,周期性保活即可;匹配成功的,将进行邻接关系的建立,该过程中将先使用DBD进行拓扑目录共享,再使用LSR、LSU与LSAck来获取本地未知的LSA信息,最终完成邻接关系间的LSDB同步,生成数据库表

第三步:本地基于LSDB,利用SPF算法(最短路径优先算法,由有向图到树状结构图),计算到达所有未知网段的最短路径,然后将计算结果加载到路由表中,整个收敛过程就此完成。之后,进行Hello包周期保活,且每30min邻接关系间周期比对DBD。

OSPF的收敛

①LSA的洪泛,使整个OSPF网络收到同一条LSA。

②LSDB(链路状态数据库,即所有LSA的集合)的同步,整个OSPF网络的LSDB需要一致。

OSPF应对网络结构突变

新增或断开

直连新增或断开网段的设备,基于触发更新,直接使用更新数据包(LSU)来告知本地所有的邻接,然后邻接也会将此消息发送给整个OSPF网络中的其他设备。

无法通信

Dead time倒计时结束后还未收到邻居的Hello包,则断开邻居关系,并删除有关信息。

邻居到邻接关系的匹配条件

(1)在P2P网络中,所有的OSPF邻居关系必然需要建立成为邻接关系。

(2)在MA网络中,由于OSPF不支持接口的水平分割,若两两间均为邻接关系,会导致大量的重复更新,所以必须进行DR/BDR的选举(使用组播224.0.0.6),在该网段的非DR/BDR设备间只能建立为邻居关系。当DR出故障后,BDR会临时充当DR的角色来与其他设备建立邻接关系。

注: DR/BDR是基于接口的,且DR/BDR在同一MA网络中只能各一个,且必须有DR,可以没有BDR。

DR/BDR的选举规则

(1)先比较接口优先级,范围为0-255,默认为1,越大越优,0代表不参选;

(2)再比较RID,越大越优。

相关配置

①修改接口的优先级:

②由于DR/BDR选举是非抢占的,只会在选举时间(40s)内选出DR/BDR,逾期不候,所以在修改完接口优先级后,需要手动重启OSPF进程,手动干涉才会生效:

OSPF的优先级与开销值

优先级(AD值)

华为设备OSPF默认内部路由优先级为10,外部路由为150。

开销值(cost值)

计算方法为 100Mbps / 带宽,由每一段链路的cost值累加所得。

注: 若接口带宽大于参考带宽(100M),则cost会取为1。由此可能导致选路不佳的情况,可以通过修改参考带宽来避免该情况的出现,修改时注意整个OSPF网络内的参考带宽需要保持一致。配置命令为 bandwidth-reference ?(单位默认为Mbits/s)

OSPF在不同网络类型接口下的工作方式

接口网络类型工作方式
LoopBackP2P类型,无Hello包,使用32位主机路由传递
P2PP2P类型,宣告后自动建邻,不选举DR/BDR
BMABroadcast类型,宣告后自动建邻,选举DR/BDR
NBMAP2P类型,宣告后自动建邻,不选举DR/BDR,会出现问题

查看某接口的OSPF工作方式:

NBMA网络类型会出现的问题

NBMA默认OSPF的工作方式为P2P类型,该工作方式仅允许建立一个邻居关系,导致无法在点到多点环境下建立所有的邻居关系。此时需要通过修改接口的工作方式来解决此问题;

①修改接口工作方式为Broadcast:

[huawei-Tunnel0/0/0]ospf network-type broadcast

②若同一NBMA网络内仅修改了部分接口的工作方式为Broadcast,而其他接口仍为P2P工作方式的话,此时能建邻,但无法选DR/BDR(P2P类型不选DR/BDR),最终仍然无法正常收敛。所以需要将NBMA所有接口均修改为Broadcast工作方式。

③修改后,若该NBMA网络的拓扑结构为全连网络结构,那么DR/BDR的选举正常。若为非全连拓扑结构,可能由于信息的不对称,导致DR/BDR选举结果出现问题。所以星型结构(中心到站点),DR必须固定在中心站点,无BDR;部分网状结构基于实际环境情况来决定是否固定DR。

④部分网状结构推荐使用p2mp工作方式,该模式只能手工配置,适用于部分网状结构,Hello time为30s,Dead time为120s,自动建邻不选DR/BDR。

OSPF配置

OSPF启动

[Router] ospf 1 router-id 1.1.1.1

其中1为OSPF的进程号(Process ID),只具有本地意义。1.1.1.1为RID(Router ID),写法类似于IP地址,为了标识此设备在该OSPF网络中的唯一性。
注: RID的产生方式(手工指定 > 环回接口IP地址最大的 > 物理接口中IP地址最大的)。

OSPF宣告

[Router-ospf-1-area-0.0.0.0] network 12.1.1.0 0.0.0.255

OSPF支持反掩码精确宣告,反掩码是由连续的0和连续的1所构成,其中连续的0对应固定位,连续的1对应随机位。

查表

(1)查看邻居表

[Router] display ospf peer
[Router] display ospf peer brief //简表

(2)查看数据库表

[Router] display ospf lsdb

(3)查看OSPF路由表

[Router] display ip routing-table protocol ospf
[Router] display ospf routing //查看本地所有与OSPF相关的路由(发出的与接收的)

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值