锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

OSPF-D

时间:2022-09-28 20:00:00 arv连接器

OSPF——开放式最短路径优先协议

是一种LS链路状态路由协议,无类别路由协议,协议号:89,OSPF不是封装在TCPUDP中,所以没有端口号,适用于中大型网络 --- 因为有结构化部署(区域划分)

算法——SPF算法 -- 最短路径优先算法,SPF算法以每个路由器为根(ROOT)计算到每个目的地路由器的距离,每个路由器根据统一的数据库计算出路由域的拓扑结构图,类似于一棵树SPF算法被称为最短路径树

OSPF的三个版本

OSPFv1(实验室死亡)

OSPFv2 --- IP v4

OSPFv3 --- IP v6

周期更新:30min

触发更新

选路规则——cost = metric值 = 参考带宽 / 接口带宽 参考带宽:20000

默认为100M

整段路径的cost最小最佳路径之和

优先级为10

修改参考带宽

[r1]ospf 1

[r1]bamwidth-reference 1000

OSPF区域划分、地址划分必须结构化部署

区域划分的主要目的:路由信息在区域之间传递,拓扑在区域内传递

ABR --- 边界路由器属于多个区域,一个接口属于一个区域,有些接口属于区域0.

多个区域间可以存在ABR,一个ABR多个区域也可以存在

区域划分的要求

1.必须满足星形topo结构,也就是说必须存在骨干0区域——中心站点

为了方便对每个区域进行管理,我们给OSPF的每个区域设定一个区域ID,称为area id --- 32位二进制组成 --- 骨干区域的区域ID必须是0

2.必须存在ABR(区域边界路由器)

如果一个网络规模较小,不需要进行区域划分,这样的OSPF网络我们称为单区域OSPF网络,(在华为官方文档中要求,如果是单区域OSPF网络,则必须设置为区域0);如果一个网络存在多个OSPF区域,则将被称为多区域OSPF网络

OSPF的版本 V2 V3

组播更新:224.0.0.5/6 --- 0.6是相当于给DR

 

五个数据包

Hello包——发现 建立 保活邻居/邻接关系 hello time默认是10s/30s -- BMA中默认10s

hello包发送周期10s30s),死亡时间是hello时间的4倍,为了区分OSPF中的每一台路由器,我们引入了RID

1、全网(OSPF)唯一

2、格式统一,RID要求按照IP地址的格式来进行标定(由32位二进制组成,用点分十进制组成)

RID的生成方法:

1、手工配置 --- 仅满足以上两点就好

2、自动生成 --- 如果路由器中存在环回接口,则将取环回接口的IP地址中最大的作为RID;如果,路由器上不存在环回接口,则将在路由器的物理接口中取最大的IP地址作为RID(不考虑接口的UP/DOWN状态)

DBD包——数据库描述包 --- 携带是路径信息的摘要 --- 相当于是本地存放LSA数据库(LSDB -- 链路状态数据库)的目录

因为OSPF的更新量太大,两个路由器刚开始发送hello建立邻居后,不是直接发送自身拓扑(拓扑保存在数据库里),太大(有可能有重复),而是将拓扑做成一个目录给对方,让对方先看看,哪些你有,哪些你没有)

LSR包——链路状态请求包 --- 根据DBD包和本地LSA的比对的比对请求未知的LSA信息

LSU包——链路状态更新包,携带各种LSA

LSack包——链路状态确认包

 

OSPF的DBD包的知识盲点

1、DBD包中携带MTU值(最大传输单元),要求MTU值必须相同,否则将卡在exstart或exchange状态;

默认华为未开启MTU检测,开着就是1500B

开启MTU检测的配置:

[R]interface g 0/0/1

[R-g0/0/1]ospf mtu-enable

2、隐形确认 - - 不使用确认包,而是从设备复制主设备的序列号来确认收到了主设备的DBD

3、OSPF标识位 I   M   MS

I  为1本地发出的第一个DBD包

M  为0,表示本地发出的最后一个DBD包;

MS 为1代表主,0代表从;

 

七个状态机

down——协议刚启动,一旦本地发出hello包将进入下一个状态

init——两边都发出hello包进入init状态,若收到的hello包中存在自己的router-id将进入下一个状态

2-way——双向通讯状态 --- 邻居关系建立的标志之后将进行条件匹配,匹配成功将进入下一个状态,匹配不成功继续保持邻居关系

exstart——预启动状态,使用类似helloDBD进行主从关系的选举,再选举DR/BDR,非DR/BDR将无法进入下一个状态

exchange——准交换状态,使用真正的DBD包进行数据库目录的共享,需要ACK的确认

loading——加载状态,使用LSR/LSU/LSack来获取未知的LSA信息

full——转发,邻接状态建立的标志

 

工作过程

启动协议后,本地基于224.0.0.5组播发送hello包,若收到邻居的hello包有自己的RID信息,则建立邻居关系,生成邻居表,邻居关系建立起后,用DBD包进行条件匹配——(建立起邻接关系的条件),条件匹配失败,则停留于邻居关系,仅hello包周期保活即可;若匹配成功,则建立邻接关系,首先用类似HELLO包的DBD包进行主从关系选举,邻接关系将使用DBD、LSR、LSU、LSack来获取未知的LSA,当收集齐所有的LSA后,本地生成LSDB——链路状态数据库表,再本地基于LSDB计算到达所有未知网段的最佳路径。生成路由表、收敛完成,之后每隔10s/30s发生hello包进行周期保活,每隔30min

主从关系选举

通过比较RIDRID大的优先进入下一个状态,减少链路压力

条件匹配

条件匹配:点到点网络将会直接匹配成功,MA网络将进行DR/BDR的选举,非DR/BDR间将无法进入下一个状态(exstart

 

指定路由器 -- DR -- MA网络中其他所有设备建立邻接关系

备份指定路由器 -- BDR --- MA网络中其他所有设备建立邻接关系

 

DRBDR都存在的情况下一个MA网络至少需要四台设备才能看到邻居关系。

DRBDR虽然都叫做指定路由器(备份指定路由器),但其工作范围在一个MA网络之中,所以,其实质是接口的概念。

 

条件匹配 -- MA网络中,若所有设备均为邻接关系,则将出现大量的重复更新,所以,需要进行DR/BDR的选举,所有DRother之间仅维持邻居关系即可。

 

DR/BDR选举

DR/BDR选举的目的:消除重复更新量,

点到点网络中直接建立邻接关系

在MA网络中,为了避免大量的重复LSA更新——因为OSPF需要邻接间进行DBD对比,故没有接口水平分割机制;故必须进行DR/BDR选举,非DR/BDR间仅建立邻居关系,选举需要40秒,而且在每一个MA网络中均需要进行一次选举;

除DRother间建立邻居关系,其他均为邻接关系

选举规则:

1.比较接口优先级,接口的优先级默认为1;若优先级为0,将放弃选举

2.优先级相同,比较router-id,数字大者为主

选举特点——非抢占性选举

选举时间 == 死亡时间

查看谁是DR

[r]display ospf peer

修改参选接口的优先级

[r-g0/0/1]ospf dr - priority 2

切记:DR选举非抢占,故在修改优先级后,必须重启参选设备ospf进程来重新选举

reset ospf 1 process

 

OSPF的报文

OSPF的报文头部

Autype -- 认证类型

Null -- 空认证 -- 0

Simple -- 明文认证 -- 1

Md5 -- 比对摘要值认证 -- 2

OSPF在认证时,需要先比对认证类型,认证类型相同才对比认证数据

Hello报文

 

Network -- 子网掩码 -- 华为设备设定邻居建立双方要求子网掩码必须相同,否则将无法建立邻居关系(对P2P网络不生效)

hello时间和死亡时间 -- 邻居双方hello时间和死亡时间必须相同,否则将导致邻居关系建立失败

路由器优先级 -- 发出该数据包的接口其DR/BDR选举时的优先级。

指定路由器和备份指定路由 -- 携带的是DR/BDR接口的IP地址;在DR/BDR没有选出来之前,使用0.0.0.0来进行填充。邻居 --- 本地已知的邻居的RID

通过查看Hello报文option字段中E的置位,判断该区域是否支持外部LSA,可以判断该区域是否为stub区域

 

Hello包中限制邻居关系建立的参数

 

OPTION 字段

option可选字段出现在每一个hello数据吧,DD和每个LSA

option字段允许路由器和其他路由器进行一些可选性能的通信。

 

DD报文:

1、使用未携带数据的DBD包进行主从关系选举

2、使用携带数据的DBD包进行目录信息共享

1、DBD包中携带MTU值(最大传输单元),要求MTU值必须相同,否则将卡在exstart或exchange状态;

默认华为未开启MTU检测,开着就是1500B

开启MTU检测的配置:

[R]interface g 0/0/1

[R-g0/0/1]ospf mtu-enable

2、隐形确认 - - 不使用确认包,而是从设备复制主设备的序列号来确认收到了主设备的DBD

3、OSPF标识位 I   M   MS

I  为1本地发出的第一个DBD包

M  为0,表示本地发出的最后一个DBD包;

MS 为1代表主,0代表从;

4、序列号 -- DBD报文收发工程中,会逐次加1,用于确保DBD报文传输的有序性以及可靠性。

 

LSR --- 链路状态请求报文 --- 基于DBD包请求本地未知LSA信息

链路状态类型,链路状态ID,通告路由器 --- LSA三元组” --- 通过三个参数可以唯一的标识出一条LSA

LSU --- 链路状态更新报文 --- 真正携带LSA信息的数据包

LSACK --- 链路状态确认报文

OSPF的收敛过程

OSPF的收敛被称为LSA洪泛,也称为LSDB同步;

 

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

接口网络类型

        OSPF接口网络类型(ospf工作方式)

LoopBack 0.        

Cisco – LoopBack 没有hello包 以32位主机路由发送 华为—显示为p2p类型 实际为LoopBack工作方式

点到点(串线HDLC/PPP/GRE)

        p2p. hello time10s 自动建邻 不选DR/BDR

BMA/以太网

        Broadcast hello time 10s 自动建邻 选DR/BDR

NBMA/帧中继

        nbma hello time 30s 手工建立邻居 选DR/BDR

MGRE        

p2mp. hello time10s 自动建邻 不选DR/BDR –在一个网段中只能存在一个邻居;华为设备在一个MGRE网段,接口为点到点工作方式时,仅和最先收到hello的设备建立邻居关系;Cisco在这种情况将出现邻居的翻滚;

查看ospf的接口网络类型

[R1]display ospf interface GigabitEthernet 0/0/0

 注:在MGRE环境中,接口默认的ospf工作方式为点到点,这种方式无法实现该NBMA网段的邻居

全连;故只能去修改接口的工作方式:

     修改MGRE网段所有接口为Broadcast工作方式,切记若一部分接口修改为Broadcast,另一部分接口依然保持为点到点,由于hello time相同可以建立邻居关系,但工作机制在DR/BDR选举处不同,故最终该网段无法正常收敛;

[R1]int t0/0/0

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

    【1】 同时,必须关注网络拓扑结构;若该网段为全连网状结构,那么DR选举将正常进行;但若为部分网状或中心到站点拓扑,将可能出现DR位置错误问题;

    【2】 若网络拓扑只能为部分网状或中心到站点,需要人为手工干预DR位置

                或者将所有接口的工作方式修改为点到多点工作方式;

在MGRE的环境中,还有一种全连网状拓扑 --- mesh,就是所有边界设备即当中心,也做分支,这样搭建出来的MGRE环境是一种类似BMA的网络环境。

[r1-ospf-1]peer 12.0.0.2 --- 单播邻居,在NBMA环境下可以手工指定邻居关系。

Attmpt --- 尝试状态 --- 过渡状态 --- 本端手工指定邻居后将从down到达尝试状态,之后,等对端手工指定后将进入下一个状态。

down到达尝试状态,之后,等对端手工指定后将进入下一个状态。

    Ospf的点到多点工作方式:只能手工配置,适用于部分网状结构拓扑;

    Hello time30s,不选DR/BDR,自动建立邻居关系;

华为设备将tunnel接口的传输速率定义为64kbps --- 华为设备这样设计主要目的是为了让隧道接口的开销值变大,使数据尽可能的避免从隧道接口发出,因为走隧道接口的数据,真实还是从物理接口发出,但是会增加复杂的封装和解封装的过程,加大资源的浪费。

OSPF的不规则区域

一台ABR设备若没有连接到骨干区域0,那么默认不能进行区域间路由的共享

1、远离了骨干的非骨干区域

2、不连续骨干

解决方案:

1)在合法与非法ABR上建立tunnel,然后将其宣告到ospf协议中

缺点:

1、周期更新、保活、触发更新对中间穿越区域产生资源占用

2、选路不佳 -- 当ospf学习到两条相同目标,但不同区域同时过来时,优选骨干区域;

 

2)虚链路 -- 在合法与非法ABR上建立虚链路,由合法ABR为非法ABR进行授权;使得非法ABR可以进行区域间路由的共享;因为并没有增添新的路径,故不存在选路不佳的问题 -- 双向配置

[r2-ospf-1]area 1 两台ABR共同所在的区域

[r2-ospf-1-area-0.0.0.1]vlink-peer 4.4.4.4 对端ABR的RID

Cisco为了避免周期信息对中间区域的占用,取消虚链路上的所有周期行为; --- 不可靠

华为在虚链路上依旧保持周期的保活、更新 ---- 对中间资源的占用 -- 以单播的形式

虚链路只能穿越一个区域,虚链路永远属于区域

Display ospf v link -- 查看虚链路的邻居关系

3)多进程双向重发布(推荐)

多进程 --- 同一台设备上,不同的进程可以工作在不同的接口上,建立各自的邻居关系,生成各自的数据库(不共享);仅将各自计算所得的路由加载于同一张路由表内;一个接口只能被一个进程来宣告;双向重发布,ASBR(自治系统边界路由器、协议边界路由器),讲不同进程或不同协议产生的路由进行双向共享;

[r2]ospf 1

[r2-ospf-1]import-route ospf 2

[r2-ospf-1]q

[r2]ospf 2

[r2-ospf-2]import-route ospf 1

 

OSPF的各种LSA --- 数据库表

LSA——链路状态通告——包含了拓扑和路由的信息

 

LSA格式:

除了hello报文外,其他的ospf报文都携带LSA信息

 

类别名 Link-id(在目录中的编号)

所有的类别的LSA,均携带以下信息

Type :Router

类别名 此处为1类

Ls id :1.1.1.1

 link-id 在目录中的编号

Adv rtr :1.1.1.1

通告者 --- 该LSA的更新源设备的RID

Ls age :1359

老化时间 1800s周期更新刷新为0 触发更新归0 最大3600s

Len :48

LSA的总长度

Options :E

标识发送此报文的OSPF路由器所支持的可选功能

seq# :8000000c

序列号:越大代表LSA最新,每产生一条,seq+1

chksum :0*818c

校验码:用于校验LSA的内容来确定该LSA是否最新

 

OSPF的LSA是1800会更新一次,每更新一次序列号会加一

什么情况下LSA会更新

1、1800s到期会周期更新

2、触发更新(接口地址变化(增加、删除),修改接口开销值,删除接口或者删除通告)

LSA的空间

在链路状态路由协议中,为了保证每个LSA都能够被网络中所有的路由器收到,LSA需要被泛洪至各个角落。出于节约网络资源和保证网络稳定的目的,LSA中需要有序列号字段,以实现路由器只接收拥有更高序列号的LSA而丢弃其他LSA。

那么序列号的值到达了上限,该怎么办呢?这个问题有以下几种解决办法:

线性序列号空间

一个简单粗暴的解决办法就是让序列号的上限变得非常非常大,以至于几乎不可能被用完,例如IS-IS使用的就是32位现行序列号空间。

循环序列号空间

顾名思义,在循环序列号空间中,数字是被循环使用的,即当序列号到达最大值后,紧接着的序列号是0。

可是假如在一个网络中,序列号已经超过了最大值的二分之一后,某台路由器重启后,它的序列号当然是最小的,却有可能被邻居认为是最大的(已经完成了一个循环)。因此,当且仅当序列号A和B满足以下任意条件时,A>B(n为序列号空间):

A大于B且(A-B)≤n/2

A小于B且(B-A)>n/2

例如,在一个6位的循环序列号空间中,n=64。两个序列号分别为35和1,由于35>1,35-1=34,64/2=32。因为34大于32,所以认为1比35新。

可是循环序列号空间也不是完美的。如果在一个6位循环序列号空间中,出现了三种不同的序列号:8、40和44。根据上面的条件,判断结果是8比44新,44比40新,而40又比8新,这就会导致网络因LSA数据库不断更新,CPU超载而崩溃。当然在32位的循环序列号空间中可以极大地避免这种情况。

棒棒糖形序列号空间

棒棒糖形序列号空间是线性以及循环序列号空间的合体版,使用有符号数,即-k<0<k它由一个圆形和一条直线组成,因为示意图看起来酷似棒棒糖而得名。

在该序列号空间中,某台路由器重启后,它的序列号会从最小的那个负数开始,并依次增大,直到邻居将自己保留的序列号告诉它为止。在收到邻居发来的LSA后,该路由器会进入循环部分。也就是说,在路由器重启后、收到邻居LSA前,使用的是构成棒棒糖棒棒部分的负数序列号;当它清醒(作出序列号调整)之后,进入构成棒棒糖的糖部分,即由0和正数构成的循环序列号空间(清醒的路由器也都在这个空间内)。

当且仅当序列号A和B满足以下任意条件时,B比A新(n为序列号空间):

A<0且A<B

A>0,A<B且(B-A)<n/2

A>0,B>0,A>B且(A-B)>n/2

OSPFv2使用的棒棒糖形序列号空间更为成熟。

查看LSA信息

[r1]display ospf lsdb router

类别名         传播范围                        产生者                携带的信息

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章