ospf基础知识

1. OSPF协议概述

1.1 OSPF简介

开放式最短路径优先协议 无类别链路状态型路由协议
公有协议;跨层封装到IP报头,协议号89; 组播更新:224.0.0.5 224.0.0.6
触发更新、周期更新(30min);
需要结构化的部署:区域划分 地址规划

1.2 OSPF metric

OSPF使用开销cost作为路由的度量值
在每一个运行OSPF的接口上,都维护着一个接口COST
接口COST=100M/接口带宽,其中100M为OSPF的参考带宽。
一条路由的COST由该路由从来路由的起源一路过来的所有入接口cost值的总和

1.3 RouterID

用于在一个OSPF域中唯一地标识一台路由器
OSPF Router-ID的设定可以通过手工配置的方式,或者通过自动选取的方式。
自动选取的机制是:若有loopback口,则选最大的loopback口IP地址,若
无则选活跃的物理接口中IP地址最大的作为RouterID

1.4 OSPF area概念

在这里插入图片描述
在这里插入图片描述

路径类型

在这里插入图片描述

2. OSPF数据包

2.1 数据包结构

在这里插入图片描述

2.2数据包种类

在这里插入图片描述

Hello:用于邻居、邻接 发现、建立、保活 hello time 默认10s或30s
DBD:数据库描述包
LSR:链路状态请求
LSU:链路状态更新
LSack:链路状态确认

3. OSPF状态机

Down:一旦本地发出hello包,进入下一个状态

Attempt:此状态仅适用于NBMA网络上的邻居,在NBMA上邻居路由器都是手工配置。当NBMA网络上具有DR选取资格的路由器和其他邻居路由器的接口变为有效(Active),或者该路由器成为DR/BDR时,此具有DR选取资格的路由器会把邻居路由器的状态转换到Attempt

Init:初始化 收到的hello包若存在本地的RID进入下一个状态
2way:双向通讯 邻居关系建立的标志

条件匹配:点到点网络将直接进入下一个状态; MA网络类型将进行DR/BDR选举,非DR/BDR间将无法进入下一状态;
注:DR/BDR选举成功后,其他路由器将只和DR/BDR建立邻接关系,所有Router继续以组播发送hello包到AllSPFRouters(组播地址:224.0.0.5),因为它们可以追踪邻居路由器。但是DRothers只以组播方式发送更新包到ALLDRouters(组播地址:224.0.0.6),只有DR/BDR回去侦听这个地址,反过来,DR/BDR路由器以224.0.0.5 泛红扩散更新数据包到DRothers。

Exstart:预启动 使用类似hello的DBD进行主从关系的选举,RID大为主优选进入下一状态
Exchange 准交换 使用真正的DBD进行数据库目录的共享,需要使用ACK确认
Loading 加载 使用LSR/LSU/LSAck来获取未知的LSA信息;
Full转发 邻接关系建立的标志

4. OSPF的工作过程

4.1工作过程

OSPF协议启动后,A向本地所有启动了OSPF协议的直连接口组播224.00.5发送hello包;本地hello包中携带本地的全网唯一的router-id;
之后对端B运行OSPF协议的设备将回复hello包,该hello包中若携带了A的routerid,那么A/B建立为邻居关系;生成邻居表;
邻居关系建立后,邻居间进行条件匹配,匹配失败就停留于邻居关系,仅hello包周期保活;

条件匹配成功可以开始建立邻接关系:
邻接间共享DBD包,将本地和邻接的DBD包进行对比,查找到本地没有的LSA信息目录;之后使用LSR来询问,对端使用LSU应答具体的LSA信息,之后本地再使用ack确认,可靠;该过程完成后,生成数据库表;

再之后本地基于数据库表,启用SPF选路规则,计算到达所有未知网段的最短路径,然后加其加载到本地的路由表中;收敛完成,hello包周期保活,每30min再周期收发一次DBD来判断和邻接间数据库是否一致;

4.2 OSPF的三张表

• 邻居表(neighbor table):
– OSPF用邻居机制来发现和维持路由的存在,邻居表存储了双向通信的邻居关系OSPF路由器列表的信息。
• 拓扑数据库(link-state database):
– OSPF用LSA(link state Advertisement 链路状态通告)来描述网络拓扑 信息,然后OSPF路由器用拓扑数据库来存储网络的这些LSA。
• OSPF路由表(routing table):
– 对链路状态数据库进行SPF(Dijkstra)计算,而得出的OSPF路由表。

链路转台数据库
在这里插入图片描述

4.3 结构突变

1、 新增网段 直连新增网段的设备,将直接使用LSU包来告知本地所有邻接,之后邻接传邻接扩散到全网,需要ACK确认
2、 断开网段 直连断开网段的设备,将直接使用LSU包来告知本地所有邻接,之后邻接传邻接扩散到全网,需要ACK确认
3、 无法沟通 dead time 为hello time 的4倍;当dead time到时时,断开邻居关系,删除通过该邻接生成的路由协议;

4.4 DR与BDR选举

在点到点网络中,所有的OSPF邻居将直接建立为邻接关系;
在MA网络中,为了避免大量的重复的LSA更新—因为OSPF需要邻接间进行DBD对比,故没有接口水分割机制;故必须进行DR/BDR选举,非DR/BDR间仅建立邻居关系;—在每一个MA网络中均需要进行一次选举;
选举规则:
1、​优先级 数值大优,默认为1; 若为0为放弃选举;
2、​优先级一致,比较参选接口所有设备的router-id,数值大优;
[r1-GigabitEthernet0/0/1]ospf dr-priority 2
修改参选接口的优先级
切记:DR选举非抢占 ,故在修改优先级后,必须重启参选设备ospf进程来重新选举

5. OSPF基本配置

5.1基本配置

在这里插入图片描述
在这里插入图片描述

[r1]ospf 1 router-id 1.1.1.1 启动时,需要定义进程号;进程号仅具有本地唯一性; 建议同时配置全网唯一的router-id (生成顺序— 手工 , 本地环回接口中最大ip地址数值 , 本地物理接口中最大数值的ip地址)
[r1-ospf-1]
宣告:ospf协议在宣告的同时需要进行区域划分

区域划分规则:
1、星型拓扑结构,区域0为中心骨干区域,其他大于0为非骨干站点区域;
2、必须拥有ABR–区域边界路由器
[r2-ospf-1]area 0 先进入区域,之后再该区域内宣告属于该区域的接口,宣告时必须携带反掩码
[r2-ospf-1-area-0.0.0.0]network 12.1.1.2 0.0.0.0
[r2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[r2-ospf-1-area-0.0.0.0]q
[r2-ospf-1]area 1
[r2-ospf-1-area-0.0.0.1]network 23.1.1.1 0.0.0.0
启动配置完成后,邻居间收发hello包,建立邻居关系;生成邻居表:
[r2]display ospf peer
[r2]display ospf peer brief
邻居、邻接关系的发现、建立、保活均依赖hello包进行;
Hello包中邻居间必须完全一致的参数:任意参数不同,均导致邻居关系无法建立
1、 子网掩码(华为)发送hello包接口的源ip地址其掩码
2、 Hello dead time – OSPF接口网络类型相关
3、 认证字段 – 更新安全
4、 区域ID – 要求区域间存在ABR
5、末梢区域标记 --特殊区域
在这里插入图片描述

邻居关系建立后,邻居间进行条件匹配,匹配成功者间可以建立为邻接关系;邻接关系间将使用DBD包进行主从关系选举,之后由主优先使用DBD进行数据库目录信息的共享,从而最终基于LSR/LSU/LSAck来获取未知的LSA信息;当收集到全网的LSA信息后,装载于本地的LSDB(链路状态数据库)–数据库表:
display ospf lsdb
reset ospf process
Warning: The OSPF process will be reset. Continue? [Y/N]:y

关于OSPF,DBD包的几个知识点:

1、DBD包中携带MTU值,要求邻居MTU值必须相同,否则将卡在exstart或exchange状态;
默认华为未开启MTU检测
[r1]interface GigabitEthernet 0/0/1
[r1-GigabitEthernet0/0/1]ospf mtu-enable
2、隐性确认—不使用确认包,而是从设备复制主设备的序列号来确认收到了主的DBD
1、 OSPF标记位 I M MS I为1本地发出的第一个DBD包
M为0,表示本地发出的最后一个DBD; MS为1代表主,为0代表从(DR/BDR)选举完成后,双发发的DBD包中就携带这;
数据库建立后,本地基于SPF选路规则,计算到达未知网段最短路径加载于路由表中;

5.2 OSPF扩展配置

1、认证—接口认证
[r3]interface GigabitEthernet 0/0/1 在直连邻居的接口上配置即可
[r3-GigabitEthernet0/0/1]ospf authentication-mode md5 1 cisco123 密文认证,key编号1,密码为cisco123,密码直接以MD5值传递;

1、​被动接口 – 只接受不发送路由协议的信息,其他信息正常通过;华为成为沉默接口
只能配置于连接用户的接口,不得用于连接OSPF邻居的接口;
[r3]ospf 1
[r3-ospf-1]silent-interface GigabitEthernet 0/0/0

4、 修改计时器—OSPF的hello time 为10或30s;dead time为hello 的4倍;
改小计时器可以加快收敛速度,但将增加对网络资源占用;故修改时不宜修改过小,维持原有的倍数关系;
[r3]interface GigabitEthernet 0/0/1
[r3-GigabitEthernet0/0/1]ospf timer hello 5 修改本端的hello time,本端的dead time自动4倍关系匹配;直连邻居间hello 和dead time必须完全一致,否则无法建立邻居关系;

5、 缺省路由 – 3类的缺省 5类的缺省 7类缺省

3类缺省 –》 配置特殊区域后自动生成 – 末梢、完全末梢、完全NSSA
5类缺省—》本地路由表中通过其他协议或OSPF的其他进程生成了缺省路由条目—前提
之后使用重发布机制将改条目重发布到ospf的协议中来;
[r4]ospf 1
[r4-ospf-1]default-route-advertise
默认导入路由起始度量为1,类型2;
[r4-ospf-1]default-route-advertise type 1 cost 10 修改类型和起始度量

若本地路由表中没有缺省条目,也可以让设备强制向内网发送一条5类缺省
[r4-ospf-1]default-route-advertise always 默认为类型2,cost值为1;
[r4-ospf-1]default-route-advertise always type 1 cost 10 修改类型和起源cost;
7类缺省:普通的NSSA区域将自动产生7类的LSA;也可在NSSA区域内手动生成出7类缺省
[r4]ospf 1
[r4-ospf-1]area 1
[r4-ospf-1-area-0.0.0.1]nssa default-route-advertise 默认为类型2 ,起始cost为1;

优选顺序:内部优于外部,类型1优于类型2;

6. OSPF的接口网络类型

点到点网络和广播网络,hello包以组播发送给224 .0.0.5
NBMA,点到多点,虚链路,hello包以单播方式发送给每台单独的邻居路由器
在这里插入图片描述

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

注:在MGRE环境中,接口默认的ospf工作方式为点到点,这种方式无法实现该NBMA网段的邻居全连;故只能去修改接口的工作方式:
修改MGRE网段所有接口为Broadcast工作方式,切记若一部分接口修改为Broadcast,另一部分接口依然保持为点到点,由于hello time相同可以建立邻居关系,但工作机制在DR/BDR选举处不同,故最终该网段无法正常收敛;
【1】​同时,必须关注网络拓扑结构;若该网段为全连网状结构,那么DR选举将正常进行;但若为部分网状或中心到站点拓扑,将可能出现DR位置错误问题;
【2】​若网络拓扑只能为部分网状或中心到站点,需要人为手工干预DR位置
或者将所有接口的工作方式修改为点到多点工作方式;

7.OSPF的虚链路

在这里插入图片描述
情况一:远离区域0的虚链路
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
情况二:不连续的区域0的虚链路

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8. OSPF的LSA

8.1 OSPF的各种LSA — 数据库表

display ospf lsdb
display ospf lsdb router 1.1.1.1
类别名 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 最大3609s
Len : 48
Options : E
seq# : 8000000c 序列号
chksum : 0x818c 校验码
OSPF的LSA是1800会更新一次更新一次序列号会加一

LSA的新旧比较

1、会先比较序列号,序列号越大越优,
2、如果序列号相同,会比较校验值(checksum)越大越优
3、如果校验值也相同,会比较LSA Age时间,是否等于MAX-age时间(3600)
4、如果age时间不等于max-age时间,会比较他们的差值,如果差值大15分钟(900秒),小的优
5、如果age时间不等于max-age时间,会比较他们的差值,如果差值小于15分钟,说明是同一条LSA,忽略其中一条
什么情况下LSA会更新:
1、1800到期会周期更新
2、触发更新(接口地址变化(增加,或删除),修改接口开销值,删除接口,或者删除通告)

类别名 传播范围 携带的信息
1类LSA-router 本区域内 该区域每台设备的直连拓扑
2类LSA-Network 本区域内 该网段的拓扑
3类LSA-summary 整个OSPF域 O IA 域间路由

4类LSA-asbr 除ASBR所在区域外的 ASBR的位置
整个ospf域;ASBR所在区域使用
1类标记位置

5类LSA-ase 整个OSPF域 O E 域外路由

类别名 link-id 通告者
1类LSA-router 通告者的RID 本区域内的每台路由器
2类LSA-Network DR接口的ip地址 每个MA网段中的DR
3类LSA-summary 域间路由的目标网络号 ABR,在经过下一台ABR时,修改为新的ABR
4类LSA-asbr ASBR的RID ABR 在经过下一台ABR时,修改为新的ABR
5类LSA-ase 域外路由的目标网络号 ASBR 在ospf内部传递时不变

8.2 LSA泛洪

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

泛洪扩散的可靠性

在这里插入图片描述
在这里插入图片描述

8.2 OSPF的LSA优化-减少LSA更新量

1、​汇总 – 减少骨干区域的LSA数量 – 前提要求网络存在合理的地址规划
2、​特殊区域 – 减少各个非骨干区域的LSA数量

【1】​汇总

1)​域间路由汇总—ABR将本地直连的A区域1/2类LSA计算所得路由,再通过3类LSA共享到其它本地所直连的B区域时;
[r1]ospf 1
[r1-ospf-1]area 1 明细路由所在区域
[r1-ospf-1-area-0.0.0.1]abr-summary 3.3.2.0 255.255.254.0

2)​域外路由汇总—在ASBR上操作,将5类/7类LSA向OSPF发布时进行汇总;
[r2]ospf 1
[r2-ospf-1]asbr-summary 99.1.0.0 255.255.252.0
注:切记华为设备默认设备不会在进行汇总配置的设备上,自动生成空接口防环路由;

【2】​特殊区域 不能是骨干区域,不能存在虚链路

「1」​同时不存在ASBR
1)末梢区域—该区域拒绝4/5的LSA进入;由该区域连接骨干区域的ABR设备,向区域内发送一条3类的缺省路由;
[r1]ospf 1
[r1-ospf-1]area 1
[r1-ospf-1-area-0.0.0.1]stub
注:该区域内所有设备均需要定义,否则无法建立邻居关系;
2)完全末梢区域,在末梢区域的基础上进一步拒绝3类的LSA;仅保留一条3类的缺省路由;
先将该区域配置为末梢区域,然后仅在ABR上定义完全末梢即可;
[r1]ospf 1
[r1-ospf-1]area 1
[r1-ospf-1-area-0.0.0.1]stub no-summary

「2」​同时存在ASBR
1)​NSSA 非完全末梢区域—拒绝非本区域内部产生4/5LSA,本区域ASBR产生的5类将通过7类LSA传输,到达ABR处进入骨干区域时,由7类转换回5类;
在cisco设备中为了避免环路的出现,OSPF协议在NSSA区域配置完成后,不会自动产生缺省路由;而是由管理员在缺省网络无环的前提下,手工添加;
在华为的设备中让由该区域连接骨干0的ABR自动下发一下7类缺省;
[r1]ospf 1
[r1-ospf-1]area 1
[r1-ospf-1-area-0.0.0.1]nssa
注:该区域内所有设备均需要定义,否则无法建立邻居关系;

2)​完全NSSA – 完全的非完全末梢区域;在普通NSSA的基础上,近一步拒绝3类的LSA,由ABR产生一条3类缺省
先将该区域配置为普通的NSSA,然后仅在ABR上定义完全NSSA即可
[r1]ospf 1
[r1-ospf-1]area 1
[r1-ospf-1-area-0.0.0.1]nssa no-summary

特别注意事项:
由于特殊区域将自动产生缺省路由,指向骨干;故ISP所连接的位置很关键,否则将可能与特殊区域产生的缺省路由互为环路;要求ISP所在位置的OSPF区域不要做任何特殊区域配置;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值