OSPF基础

49 篇文章 3 订阅

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

使用范围:IGP
协议算法特点: 链路状态型路由协议,SPF算法
协议是否传递网络掩码:传递网络掩码
协议封装:基于IP协议封装,协议号为 89

一.OSPF 特点

1.OSPF 是一种典型的链路状态型路由协议
2.传递信息称作LSA,LSA 链路状态通告,包含路由信息和拓扑信息。
	 路由LSA:描述本路由器上接口的路由信息
	 拓扑LSA:描述路由器之间的连接状态
3.更新方式: 触发更新+30分钟的链路状态刷新 
4.更新地址: 组播和单播更新,组播地址: 224.0.0.5(ALL SPF router) 224.0.0.6 (ALL DR router)
5.支持路由认证
6.支持手工汇总
7.支持区域划分
8.OSPF 比较消耗设备资源

二.OSPF 区域

区域划分的意义: 1.减少LSA的数量 2.减少LSA的传播范围
区域的划分是基于接口的(链路的)

区域的标记:使用了32个二进制 1.十进制 2.类似于IP地址 A.B.C.D

区域的分类:
骨干区域: 区域标记为0或0.0.0.0
非骨干区域:区域标记不等于0或0.0.0.0

区域设计原则: 向日葵型网络结构
1.OSPF网络中必须存在并唯一的骨干区域(单区域除外)
2.若存在非骨干区域,非骨干区域必须与骨干区域直接相连

OSPF中路由器的角色:

 骨干路由器:
 非骨干路由器:
 ABR:区域边界路由器,能够产生3类LSA的路由器
 ASBR:自治系统边界路由器,能够产生5类或7类LSA的路由器

三.OSPF 消息数据包

Hello DBD LSR LSU LSACK
在这里插入图片描述

hello包 -- 组播收发,用于邻居、邻接关系的发现、建立、周期保活  
DBD -- 数据库描述包--  本地LSDB(链路状态数据库)目录
LSR---链路状态请求 --  用于询问对端本地未知的LSA信息
LSU-- 链路状态更新 --  用于共享具体的每一条LSA信息
LSack 链路状态确认 -- 确认包

hello: 周期性发送,周期时间10s或30s(根据不同的网络类型默认10s或30s)
目的:建立并维持OSPF 邻居关系(邻居关系建立之后充当保活包功能)

DBD:数据库描述数据包
1.主从选举DBD: 比较双方的router-id ,router-id大的一方为主
(master ):小的一方为从
(slave):主用于控制LSA的交互
2.携带LSA头部信息的DBD

LSR: 链路状态请求,按照DBD中报文的未知LSA头部进行请求。

四.OSPF 邻居状态机制

Down、 init 、 attempt(过渡) 、 two-way 、 exstart 、exchange 、loading 、full
Down 一旦接收到对端的hello包进入下一个状态。
Init —初始化状态,一旦开始发送hello报文,进入初始化状态。
Two-way—双向通信状态(邻居状态),接收到包含自己router-id 的对方hello报文。
条件:点到点网络直接进入下一个状态机;MA网络进行DR/BDR选举,非DR/BDR之间不能进入下一个状态机。
邻居关系建立条件

1.router-id 必须不同
2.area ID 相同
3.认证: 认证类型 (不认证=0 明文认证=1 MD5=2) 认证数据
4.hello时间,dead时间必须一致
5.特殊区域标识一致(E(外部路由位)=1 ; N(NSSA外部路由位)=0 P=0)
6.MA网络中,网络掩码必须一致
7.必须同时使用单播或组播更新
8.更新源检测(双方的IP地址必须在同一网段)

邻居状态下(two-way): MA的网络中会选举DR(指定路由器) BDR(备份指定路由器)

DR选举:

 1.比较优先级 (范围:0-255,默认优先级为1 ,越大越优) 
 2.比较各自的router-id,越大越优

注意:

1.DR抢占是关闭的 
2.DR是一个接口概念 
3.优先级范围0-255,数字为0代表不参与选举
4.先选举BDR ,再升级为DR 

主从选举:发生在exstart状态, 通过双方的router-id进行比较,router-id大的一方为主。 发送的主从选举DBD,DBD中包含了MTU值(默认思科直接启用,华为中默认不包含MTU,可以使用命令激活传递MTU值的功能,若双方的MTU值不值则卡在exstart 状态)。

Exstart—预启动状态,一旦开始发送主从DBD,则进入预启动状态。

Exchange —预交换,主从选举完成,则发送携带LSA头部信息的DBD,进入预交换状态,会发送LSR数据包。(但是没有LSU)。

Loading —加载状态,一旦发送LSU数据包,进入了加载状态,进行大量LSA的学习。

Full —邻接状态。双方LSA同步(双方LSA全部学习)

五、OSPF的工作过程

路由器上启动OSPF协议后,直连的邻居间,开始组播收发hello包,hello包中将存储本地已知邻居的RID,在双方RID均已知的情况下,建立邻居关系,生成邻居表;
邻居关系建立后,邻居间将进行条件匹配,匹配失败将停留为邻居关系,仅hello周期保活即可;匹配成功者间将进行邻接关系的建立;
邻接关系间的路由器,将使用DBD/LSR/LSU/LSack来获取本地未知的所有LSA信息;使得同一区域内所有路由器的数据库完全一致;---- 数据库表;
当本地数据库完成同步后,将数据库–>有向图–>树型结构图–>将本地到达所有未知网段的最短路径加载于本地路由表中;
收敛完成,仅hello包周期保活即可;正常每30min,邻接关系间再进行一次DBD的对比,若一致及正常;若不一致将马上进行同步;

结构突变:触发更新

1、断开网段 直连断开网段的设备,直接使用LSU告知邻接,需确认
2、新增网段  直连新增网段的设备,直接使用LSU告知邻接,需确认
3、无法沟通    hello time 对应的 dead time ;dead time 到时时,断开邻居关系,
	去除基于该邻接共享的LSA计算所得路由;

六、OSPF的基础配置

[r1]ospf 1 router-id 1.1.1.1  
启动时,定义进程号,仅具有本地意义;建议配置RID。

RID格式为ipv4地址,且需要全网唯一。
手工配置–环回接口上取最大数值的ip地址—物理接口上最大ip地址的数值。

宣告:1、区域划分 2、接口激活协议 3、传递接口信息

[r1-ospf-1]area  0
[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.1.1.0 0.0.0.255

区域划分规则:

1、星型结构 -- 区域0为骨干 大于0为非骨干  非骨干区域必须直连骨干区域
2、ABR--区域边界路由器   两个区域间必须依靠ABR连接

启动配置完成后,邻居间使用hello包建立邻居关系,生成邻居表:
hello包 – 组播收发 周期发送
hello time 10s 或30s
dead time 为hello time 4倍
在这里插入图片描述
邻居间hello包中有一些参数必须完全一致,否则无法建立邻居关系;
Hello 和dead time 、区域ID、认证参数、末梢区域标记;另外在华为的设备中OSPF要求邻居间接口上配置的ip地址,其掩码长度必须一致。

[r2]display  ospf peer  查看邻居表
[r2]display  ospf peer  brief   查看邻居关系简报

当邻居关系建立后,邻居间进行条件匹配,匹配失败,将保持为邻居关系;匹配成功,将建立为邻接关系,邻接关系将使用DBD/LSR/LSU/LSack来获取本地未知的所有LSA信息,同步生成数据库表—LSDB 链路状态数据库

[r2]display  ospf lsdb  查看数据库表

数据库表同步完成后,邻接间的互动完成,仅hello包保活;之后本地基于本地的数据库表;
转换为有向图,再转换为树形结构,最终将本地到达所有未知网段的最短路径,加载于本地的路由表中:

<r1>display  ip routing-table protocol  ospf 

默认ospf协议在华为设备中,优先级为10;度量为cost值
cost值=开销值= 参考带宽/接口带宽 默认参考带宽为100M
ospf协议将cost值之和最小定义为最佳路径,加载于本地路由表中

若接口带宽大于参考带宽,cost值为1,将可能导致选路不佳;可以修改默认的参考带宽

[r1]ospf 1 
[r1-ospf-1]bandwidth-reference ?
  INTEGER<1-2147483648>  The reference bandwidth (Mbits/s)
[r1-ospf-1]bandwidth-reference 1000

切记:一旦修改,整个网络所有ospf路由器需要一致;

关于ospf的MTU问题:
在ospf协议的DBD包中将携带本地接口的MTU值,若两端一致可以正常建立邻居关系;若不一致将无法建立邻接关系;
默认华为设备不携带MTU;

[r1-ospf-1] int g0/0/1  
[r1-GigabitEthernet0/0/1]ospf mtu-enable    两端设备均需开启

七、关于OSPF协议从邻居建立成为邻接的条件

根据网络类型决定
在点到点网络中,所有的邻居关系必然成为邻接关系
在MA网络中从邻居到邻接前将利用一个周期的dead time;进行DR/BDR选举;
先比较这些参选接口的优先级,默认1,取值范围0-255;越大越好,0标识不参选;
DR优先级最大,BDR次大;选举非抢占,故若希望干涉选举,需要重启ospf进程,或者将非DR/BDR修改为0;

[r2]interface GigabitEthernet 0/0/1
[r2-GigabitEthernet0/0/1]ospf dr-priority  3  修改优先级

重启进程

<r2>reset ospf process 
Warning: The OSPF process will be reset. Continue? [Y/N]:y

非DR/BDR间为邻居关系。

八、OSPF的接口网络类型

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

[r1]display  ospf interface GigabitEthernet 0/0/1

         OSPF Process 1 with Router ID 1.1.1.1
                 Interfaces

 Interface: 12.1.1.1 (GigabitEthernet0/0/1)
 Cost: 1       State: DR        Type: Broadcast    MTU: 1500  
网络类型           ospf接口网络类型
LoopBack          P2P(LoopBack)  无hello    环回使用32位主机路由
点到点 (PPP/HDLC/GRE)P2P          10s hello time      不选DR/BDR 
BMA  (以太网)     Broadcast       10s hello time      选DR/BDR
NBMA   (MGRE)    P2P 

在tunnel接口上,ospf的默认工作方式为P2P,这种工作方式,只能建立一个邻居关系,故在MGRE环境中将无法正常工作;
修改接口的默认工作方式:

[r1]interface Tunnel 0/0/0
[r1-Tunnel0/0/0]ospf network-type ?
  broadcast  Specify OSPF broadcast network
  nbma       Specify OSPF NBMA network
  p2mp       Specify OSPF point-to-multipoint network
  p2p        Specify OSPF point-to-point network

切记:一个网段中所有接口的ospf工作方式必须一致;否则将无法建立邻居关系,或者因为不同工作方式的hello time一样,错误建邻,无法收敛;

当MGRE环境中,使用OSPF,且所有tunnel接口修改为broadcast工作方式后,必须基于拓扑接口考虑DR位置问题
MGRE可以构建不同的拓扑结构:

1、星型--中心到站点--轴辐状  中心站点为DR,取消BDR
2、全连网状 ---   不需要再关注DR
3、部分网状 --- 基于能够全网段内正常共享LSA来考虑最佳的DR位置
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值