05.动态协议OSPF基础

OSPF简介

OSPF(Open Shortest Path First开放式最短路径优先)是一个IGP(Interior Gateway Protocol,内部网关协议),用于在单一自治系统(autonomous system,AS)内决策路由。OSPF有三个版本,分别是OSPFv1、OSPFv2和OSPFv3,其中OSPFv1在实验室阶段就已摒弃,而OSPFv3用于IPv6,所以我们这里只介绍OSPFv2。

(OSPF也有三个版本 — OSPFV1(实验室阶段夭折),

​ — OSPFV2 — IPV4

​ — OSPFV3— IPV6

)

OSPF和RIP的区别

RIP协议只适用于中小型网路环境中,而OSPF可以适用于中大型网路当中----结构化部署(区域划分)

区域划分的目的 — 区域内部传递拓扑信息,区域之间传递路由信息 — 链路状态型协议的距离矢量特征

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0GJuYe45-1688482661494)(C:\Users\Lin\AppData\Roaming\Typora\typora-user-images\image-20230129142517158.png)]

RIPV2和OSPFV2相同点

1.RIPV2是无类别的路由协议,OSPFV2也是无类别的路由协议;

2.RIPV2是以组播的形式传递信息,OSPFV2也是以组播的形式传递信息;

RIPV2组播224.0.0.9

OSPFV2组播224.0.0.5/224.0.0.6

3.RIPV2和OSPFV2都支持等开销负载均衡

不同点

由于rip自身的劣势:只有一种包,选路不佳,收敛慢,导致rip只适用于中小型的网络环境中。而ospf有5种数据包,分工明确;通过spf算法保证选路无环;有触发更新,收敛块,加上ospf其他各种减少占用资源的措施使ospf可以应用于中大型的网络环境中。

OSPF基础概念

OSPF区域

在这里插入图片描述

  • 为了适应大型的网路,OSPF在AS内划分多个区域
  • 每个OSPF路由器只维护所在区域的完整链路状态信息

区域ID

​ 为了方便对不同的区域进行管理,所以,给每个区域设置了一个区域ID : area

​ 区分和标定不同的区域(32位二进制构成)

​ 1.点分十进制.

​ 2.十进制表达

​ 骨干区域的区域ID为区域0

      • 区域ID可以表示成一个十进制的数字
      • 也可以表示成一个IP

骨干区域Area 0

​ 负责区域间路由信息传播

非骨干区域

​ 非晋干区域相互通信必须通过骨干区域

​ 标准区域

​ 末梢区域stub

​ 完全末梢区域total stub

​ 非纯末悄区域nssa

OSPF路由类型

区域之间路由器: ABR

自制系统边界路由器:ASBR

区域划分的要求

1.区域之间必须存在ABR设备

2.区域划分必须遵循星型拓扑结构划分(星型拓扑划分中中间区域被称为骨干区域)

OSPF多区域

如果网路规模不大,不需要进行OSPF的区域划分,则这样的网路我们称为单区域OSPF网络;如果需要进行区域划分,则这样2的网络称为多区域OSPF网络.

原因

  • 改善网络的可扩展性
  • 快速收敛

Router ID

OSPF区域内唯一标识路由器的IP地址

Router ID选取规则

  1. 选取路由器loopback接口上数值最高的IP地址
  2. 如果没有loopback接口,在物理端口中选取IP地址最高的
  3. 也可以使用router-id命令指定Router ID
  4. DR和BDR的选举方法

度量值

  • OSPF度量值 cost(开销)=10OM/BW(端口带宽)

– 最短路径是基于接口指定的代(cost路径成本)计算的

  • RIP是跳数

OSPF数据包

协议号为:89

OSPF包类型 描述
Hello包 用于发现和维持邻居关系,选举DR和BDR
DBD(数据库描述包) 用于向邻居发送摘要信息以同步链路状态数据库
LSR(链路状态请求包) 在路由器收到包含新信息的DBD后发送,用于请求更详细的信息
LSU(链路状态更新包) 收到LSR后发送链路状态通告(LSA),一个LSU数据包可能包含几个LSA
LSACK(链路状态确认包) 确认已经收到DBD/LSU,每个LSA需要被分别确认

详情:

hello包 — 周期发现,建立和保活邻居关系

​ hello时间 — 10s(在以太网中默认时间),30s(NBMA网络)

​ Dead time — 4倍的HELLO时间

​ RID – 用来区分和标定OSPF网络中不同路由器

​ 1.全网唯一;

​ 2.格式统一 — 所有RID的格式按照IP地址的格式配置 — 32位二进制构成 — 点分十进制表示

​ RID的生成方式

​ 1.手工配置

​ 2.自动生成— 1.先在环回接口的IP地址选择,选择环回接口中数值最大的IP地址作为RID使用;

​  2.如果没有环回接口,则在物理接口中选择数据最大的IP地址作为RID使用.

Hello包中会携带这个RID

DBD包 — 数据库描述报文 – 携带的是路径信息摘要

​ 数据库 — LSDB — 链路状态数据库 — LSA — 链路状态通告

LSR包 — 链路状态请求报文 — 基于本地未知LSA信息进行请求

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

LSAck包 — 链路状态确定报文 — 确定包

​ OPSF也存在周期更新(30min)

OSPF状态机

Down状态 —启动OSPF,发送hello包进入到下一个状态

Init (初始化)状态—收到的hello包中包含本地的RID,才能进入到下一个状态;

Two-way(双向通讯)状态—标志着邻居关系的建立。

​ (条件匹配)条件匹配成功,则进入下一个状态,匹配失败,则将停留在邻居状态,仅使用hello包进行周期保活。

Exstart(预启动)状态—使用未携带数据的DBD包进行主从关系选举,RID大的为主,则可以优先进入到下一个状态

Exchange(准交换)状态—使用携带数据的DBD包来交换LSDB的摘要信息。

Loading(加载)状态—查看对端的DBD包与本端的LSDB信息进行对比,之后,基于未知的LSA信息发送LSR包进行请求,对方使用LSU包携带LSA信息进行回复,需要ACK确认。

FULL状态 — 标志着邻接关系的建立

状态机过程:

1.OSPF启动的第一个阶段是使用Hello报文建立双向通信的过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N6ld38Zo-1688482661497)(C:\Users\Lin\AppData\Roaming\Typora\typora-user-images\image-20230130005136046.png)]

Two -way—双向通讯—标志着邻居关系的建立

​ (条件匹配)—条件匹配成功,则将进入到下一个状态,如果条件

​ 匹配失败,则将停留在邻居关系,仅依靠hello包进行周期保活。

2,OSPF启动的第二阶段是建立完成邻接关系

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AJ3tg9Vo-1688482661497)(C:\Users\Lin\AppData\Roaming\Typora\typora-user-images\image-20230130005214334.png)]

Exstart状态 —通过比较RID来进行主从关系的选举,RID大的为主,可以优先进入到下一个阶段。

​ 这里使用DBD包来完成主从关系选举,主要是为了和之前的邻居关系进行区分。

FULL状态—标志着邻接关系的建立。

​ 邻接关系—主要是和邻居关系进行区分,邻居关系只能通过周期性发送hello包进行保活,而邻接关系才可以真正的收发LSA的信息。

条件匹配

指定路由器 — DR —一个MA网络当中和所有其他路由之间建立邻接关系

备份指定路由器— BDR —一个MA网络当中和所有其他路由器直接按建立邻接关系

1,在一个MA网络当中,在DR和BDR都存在的情况下,至少需要4台设备才能看到邻居关系。

2,DR和BDR都是针对在同一个MA网络当中选的,所以,其实是接口的概念。

条件匹配 —在MA网络当中,若所有设备都为邻接状态,则将出现大量的重复更新的情况,所以,需要进行DR/BDR的选举;所有非DR/BDR设备(DROther)之间仅保持邻居关系即可

DR和BDR的选举规则:

​ 1,先比较优先级,优先级最大的为DR,次大大为BDR

​ 优先级默认情况下为1

[r1-GigabitEthernet0/0/0]ospf dr-priority ?

INTEGER<0-255> Router priority value

​ 如果将一个接口的优先级调整为0,则代表该接口放弃DR/BDR选举

​ 2,如果优先级相同,则将比较RID。RID大的路由器对应的接口为DR,次大的为BDR.

DR/BDR的选举是非抢占模式的 ---- 选举时间和死亡时间等同reset ospf 1 process 重启进程可以重新进行选举Waming: The OSPF process will be reset. Continue? [Y/N]:

  • 一个MA网络中,在DR和BDR都存在的情况下,至少需要4台设备才能看到邻居关系。
  • DR/BDR虽然名字叫做指定路由器/备份指定路由器,但一定注意,他其实是一个接口的概念。是路由器在该网段的接口参加选举。
  • DR/BDR的选举是非抢占模式的,一旦DR和BDR选定,则将无法被替换,邻居间如果一台路由器宣称自己是DR,则该路由为DR。
  • DR/BDR的选举时间为死亡时间(只是时间相同,并不是由同一个计时器计时,这个时间仅是选举的一个上限时间,选举可以在短时间内完成,只是完成后则将不能抢占),如果一台路由器自发送hello包至死亡时间,没有收到其他hello包,则认为自己是DR,如果邻居都认为自己是DR,则比较优先级和RID.

OSPF的工作过程

​ 启动配置完成后,OSPF会向本地所有运行协议的接口以组播224.0.0.5的形式发送hello包;hello包中将携带自己本地的RID,以及本地已知的邻居的RID,之后,将收集到的邻居关系记录在一张表中—邻居表。

​ 邻居表建立完成后,将进行条件匹配;失败则停留在邻居关系,仅使用Hello包进行周期保活。

​ 成功则开始建立邻接关系,首先,使用未携带数据的DBD包进行主从关系选举。之后使用携带信息的DBD包来共享数据库目录。之后,本地使用LSR/LSU/LSACK来获取未知的LSA信息。完成本地数据库的建立,生成数据库表—LSDB。

​ 最后,基于本地的链路状态数据库生成有向图,再通过SPF算法,将图形结构转换成最短路径树,之后,根据树形结构计算出到达未知网段的路由信息。之后将路由信息添加到路由表中。

​ 收敛完成后,依然每10S(30S)使用Hello包进行周期保活,没30Min进行一次周期更新。

结构突变

​ 1,突然新增一个网段—触发更新,直接将变更信息通过LSU包进行传递,需要ACK确认。

​ 2,突然断开一个网段— 触发更新,直接将变更信息通过LSU包进行传递,需要ACK确认。

​ 3,无法通信— dead time

OSPF基本配置

通用配置

启动OSPF进程
[R1]ospf 1 router-id 1.1.1.1     ###创建OSPF进程,配置路由ID
[R1-ospf-1]area 1     ###进入区域1,区域ID可以用数字表示,也可以用IP表示,若区域o则是骨干区域

宣告
    1,激活接口---只有激活的接口才能收发OSPF数据包
    2,发布路由 ---只有激活的接口对应的直连网段的信息才能发布出去
[R1-ospf-1-area-0.0.0.1]network 12.0.0.0 0.255.255.255   ## 宣告直连
[R1-ospf-1-area-0.0.0.1]network 1.1.1.1 0.0.0.0    ##宣告oSPF区域内的直连网段,使用反掩码
------------------------------------------------------------

<Huawei>reset ospf process    ###重置oSPF进程
[r1]display ospf peer --- 查看邻居表
[r1]display ospf peer brief--- 查看邻居表简表
[r1]display ospf Isdb---查看数据库表
[r1]display ospf Isdb router 2.2.2.2 ---展开一条LSA信息

华为设备默认设置OSPF的优先级为10。

OSPF的开销值 — 带宽

COST=参考带宽/真实带宽—华为设备默认的参考带宽为100Mbps

(算出来的开销值如果是大于1的小数,则将直接取整数部分;如果是小于1的小数,则将直接取1。)

[r1-ospf-1]bandwidth-reference 1000

只要网络中有一台设备修改了参考带宽,则所有设备必须将参考带宽都改为一样的。

OSPF的拓展配置

简化

1,手工认证
    [r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1cipher 123456
2,手工汇总---区域汇总
    [r2-ospf-1-area-0.0.0.0Jabr-summary 192.168.0.0 255.255.254.0
3,沉默接口
    只接受不发送路由信息
    [r1-ospf-1]silent-interface GigabitEthernet 0/0/1
4,加快收敛 --- 减少计时器时间
    [r1-GigabitEthernet0/0/0]ospf timer hello 5 --- 邻居之间Hello时间必须一致,否则将导致邻居关系断开
    hello时间修改后,死亡时间将自动按照四倍关系进行匹配[r1-GigabitEthernet0/0/0]ospf timer dead?
    INTEGER<1-235926000> Second(s)
5,缺省路由
    [r3-ospf-1]default-route-advertise--- 下发缺省的前提是边界设备本身得具有缺省信息才行
    [r3-ospf-1]default-route-advertise always --- 如果需要强制下发则可以使用这个命令

详细

1,手工认证 --- 认证就是在OSPF邻居间交互的所有数据包中,携带口令。口令相同,则身份合法。
AA
    OSPF的认证方式分为3种:
    1,接口认证 -- 在邻居通信的接口上配置
        [r5-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456
        注意:两边配置的key id必须相同,否则邻居关系将认证失败。
    2,区域认证 --- 其实质还是接口认证,相当于一次性将在某个区域激活的所有接口配置接口认证。
        [r3-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher 123456
    3虚链路认证 ---虚链路建立阶段增加认证。其本质也是接口认证。
        [r4-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3 md5 1 cipher 123456
2加快收敛减少计时器时间
    修改hello时间
    [r5-GigabitEthernet0/0/0]ospf timer hello 5
    注意:Hello时间修改,死亡时间将自动按照4倍关系进行匹配
    [r1-GigabitEthernet0/0/0]ospf timer dead 20
    注意:dead时间修改,Hello时间不会自动变化
  
    Waiting time ---等待计时器---DR和BDR选举时的选举时间,时间长短等同于死亡时间,死亡时间一旦修改,等待时间会同步变更。
    
    POLL ---轮询时间 --- 120S---与状态为down的邻居关系发送hello包的间隔时间。在NBMA网络环境下,如果一方指定了邻居关系,
    则将会将邻居的状态改为过度状态,期间会按照默认30S一次发送Hello包,但是,如果对方一直没有指定,经过一个等待时间(120S等同于死亡时间),
    将会将邻居的状态置为down状态。之后,将按照120S的间隔发送hello包。
    [r5-GigabitEthernet0/0/0]ospf timer poll ?
    INTEGER<1-3600> Second(s)
    Retransmit --- 重传时间 --- 默认5s--- 发送信息需要进行确认如果重传时间内没有收到对方的确认,则将重传。
    [r5-GigabitEthernet0/0/0Jospf timer retransmit ?
    INTEGER<1-3600> Second(s)
    
    Transmit Delay --- 传输延时 --- 1s ---这个时间是附加在LSA老化时间上的,因为LSA在传输过程中,时间不会发生变化,所以,需要通过这个时间来补偿传输过程中消耗的时间。
    [r5-GigabitEthernet0/0/0]ospf trans-delay 2
3,沉默接口 --- 将一个接口配置成为沉默接口,则这个接口将只接受不发送ospf的数据包
    [r5-ospf-1]silent-interface GigabitEthernet 0/0/2 --- 在ospf中,沉默接口将针对单播和组播包生效。
4,缺省路由
        3类缺省,5类缺省,7类缺省
        3类缺省 --- 只能通过特殊区域来自动生成,普通末梢区域,完全末梢区域,完全的非完全末梢区域特点 --- 标记为ospf,默认优先级为10
        
        5类缺省- 通过手工配置生成的缺省
        [r2-ospf-1]default-route-advertise -相当于将本设备上通过其他方式学到的缺省路由重发布到OSPF网络当中
        特点 --- 标记为O_ASE,默认优先级为150
        [r2-ospf-1]default-route-advertise always --- 在设备上没有其他网络学来缺省信息时,可以强制下发一条5类缺省。
        
        7类缺省 --- 可以通过配置特殊区域自动下发,也可以使用手工命令下发7类缺省
            自动下发是在普通的NSSA区域中。
            [r4-ospf-1-area-0.0.0.1]nssa default-route-advertise 手工下发一条7类的缺省信息。
5,路由过滤
            指的是OSPF中针对3类,5类和7类LSA进行过滤。
            [r1-ospf-1-area-0.0.0.2]abr-summary 192.168.0.0 255.255.252.0 not- advertise --- 过滤3类LSA
            
            [r4-ospf-1]asbr-summary 172.16,0.0 255.255.252.0 not-advertise过滤5类/7类LSA

猜你喜欢

转载自blog.csdn.net/bo1029/article/details/131545044