当前位置:网站首页>OSPF知识总结
OSPF知识总结
2022-07-21 08:04:00 【aweike】
OSPF:开放式最短路径优先协议
无类别(携带掩码)链路状态(基于拓扑)型IGP(AS内部)协议
更新量大—》为了能在中大型网络生存—进行结构化的部署—区域划分、地址规划
触发更新,每30min周期更新;组播更新—224.0.0.5—all ospf 224.0.0.6—DR/BDR
存在V1-V3 目前通用V2; V3是IPV6使用;
跨层封装3层报头,协议号89;支持等开销负载均衡;
一、OSPF的数据包类型
OSPF数据包的头部结构
跨层封装到IP报头,协议号89;
存在5个类型的数据包:
1)Hello 组播周期发送,用于邻居、邻接关系的发现、建立、周期保活;
在hello包中存在本地已知邻居的RID,用于保活这些邻居; hello time 10s或者 30s
Dead time 为hello time 的4倍;
2)DBD:数据库描述包
3)LSR 链路状态请求
4)LSU 链路状态更新 --携带具体的LSA信息
5)LSack 链路状态确认
二、七种状态机
Down 一旦接收到hello包,进入下一个状态机
Init 初始化 接收到的hello包中,若存在本地的RID,进入下一个状态
2way 双向通讯 邻居关系建立的标志
Exstart 预启动: 使用不携带信息的DBD包进行主从关系选举,RID数值大为主,优先进入
下一个状态机;
Exchange准交换:使用DBD进行数据库目录的共享,需要ACK确认;
Loading加载:基于对端的数据库目录,对照本地,然后使用LSR来获取未知的LSA信息;
对端使用LSU来共享LSA,需要ACK确认;
Full转发:邻接关系建立的标志
三、OSPF的工作过程
启动配置完成后,邻居间组播收发hello包,建立邻居关系;生成邻居表:
之后进行条件的匹配,匹配失败的邻居将保持为邻居关系,仅hello包周期保活即可;
匹配成功的邻居间,将进行邻接关系的建立;过程中先使用DBD进行目录交互,在使用LSR/LSU/LSack来获取本地未知的LSA信息;最终完成邻接关系间的LSDB同步;生成数据库表;再然后,本地基于LSDB,生成有向图—>树型结构—>最短选路 SPF算法
基于树形结构计算本地到达所有未知网段的最短路径,然后将其加载到路由表中;
收敛完成,hello包周期保活;每30min邻居间再周期比对DBD包;
结构突变:
- 新增网段 –直连新增网段的设备,直接使用更新包告知本地的所有的邻接
- 断开网段 -直连断开网段的设备,直接使用更新包告知本地的所有的邻接
- 无法沟通 -dead time倒计时结束后,邻居间断开关系,删除信息;
名词:
LSA 链路状态通告,在不同环境下产生不同的拓扑或路由,一条信息为一个LSA
LSDB 链路状态数据库 整个网络LSA的集合
LSDB同步 OSPF的收敛行为,整个网络LSDB需要一致
LSA洪泛 OSPF的收敛行为,需要整个网络接收到同一条LSA
四、OSPF的基础配置
[r1]ospf 1 router-id 1.1.1.1 启动时需要定义进程号,仅具有本地意义
建议配置RID—全网唯一—手工配置—本地环回接口最大数值---物理接口最大数值
[r1-ospf-1]
[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.1 0.0.0.0
OSPF的区域划分规则:
1.星型拓扑—非骨干区域需要连接骨干区域
2.必须存在ABR—区域边界路由器—区域间必须存在一个边界设备
启动配置完成后,邻居间收发hello包,建立邻居关系,生成邻居表:
Hello包携带的参数:
邻居间在进行邻居关系建立时,hello包有几个参数必须完全一致,否则无法建立邻居关系:
Hello time和dead time 区域ID(ABR) 认证字段 末梢区域标记
华为设备还要求邻居间建立邻居的接口ip地址子网掩码必须一致;
[r2]display ospf peer 查看邻居表
[r2]display ospf peer brief 查看邻居表的简表
OSPF Process 1 with Router ID 2.2.2.2
Peer Statistic Information
----------------------------------------------------------------------------
Area Id Interface Neighbor id State
0.0.0.0 GigabitEthernet0/0/0 1.1.1.1 Full
0.0.0.1 GigabitEthernet0/0/1 3.3.3.3 Full
邻居关系建立后,进行条件的匹配;匹配失败将保持为邻居关系,仅hello包周期保活;
匹配成功将可以建立为邻接关系:
首先使用DBD进行主从关系选举,在使用DBD进行数据库目录的交互:
关于DBD包的几个参数:
1.MTU OSPF协议会在DBD包中携带与邻居直连接口的MTU值;要求邻居的MTU值必须完全一致,否则将卡在exstart状态机;默认华为设备间不检测这个MTU值;
[r1]interface GigabitEthernet 0/0/1
[r1-GigabitEthernet0/0/1]ospf mtu-enable 在于邻居间直连的接口上开启MTU检测;若一端开启,另一端也必须开启;
2.隐性确认 一台设备使用和另一台设备一样的序列号来确认对端的数据 OSPF中从来对主进行隐性确认;
3.描述字段 I为1标识本地发出的第一个DBD M为0本地发出的最后一个DBD MS 为1代表主 S为0代表从
在使用DBD相互交互完数据库目录后,再使用LSR/LSU/LSack来获取未知的LSA信息;
最终实现所有设备的LSDB一致;生成数据库表:
<r1>display ospf lsdb 查看数据库表
当数据库同步完成后,OSPF将基于本地的LSDB,计算为有向图—>树型结构—>最短路径加载于路由表中:
华为设备优先级默认10;
<r1>display ospf routing 查看本地所有与OSPF相关路由,发出+接收的
度量为cost值=开销值=参考带宽/接口带宽
OSPF选择整段路径cost值之和最小为最短路径;默认参考带宽100M
若接口带宽大于参考带宽,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从邻居关系建立为邻接关系的条件
关注网络类型
1.点到点网络 邻居正常必然成为邻接关系
2.MA网络中 由于OSPF不支持接口的水平分割;故若两两设备间均为邻接关系,将导致大量的重复更新;因此必须进行DR/BDR选举,DR/BDR使用组播224.0.0.6;
在该网段内的非DR/BDR设备间只能建立为邻居关系;
选举规则:先比较参选接口的优先级0-255 数值大优,为0标识不参选
默认为1;若优先级相同,比较参选设备的RID值,数值大优;
修改接口优先级可以干涉选举:
[r1]interface GigabitEthernet 0/0/1
[r1-GigabitEthernet0/0/1]ospf dr-priority 2 参选接口修改优先级
注:DR选举为非抢占行为;故修改优先级需要重启的OSPF进程
<r1>reset ospf process
Warning: The OSPF process will be reset. Continue? [Y/N]:y
六、OSPF接口网络类型 –OSPF协议在不同网路类型的接口下,其不同的工作方式
1.接口网络类型LoopBack 0, OSPF接口网络类型(ospf工作方式): Cisco – LoopBack;没有hello包;以32位主机路由发送;华为—显示为p2p类型;实际为LoopBack工作方式
2.点到点(串线HDLC/PPP/GRE) p2p. hello time10s 自动建邻 不选DR/BDR
3.BMA以太网 Broadcast hello time 10s 自动建邻 选DR/BDR
4.NBMA帧中继 nbma hello time 30s 手工建立邻居 选DR/BDR
5.MGRE p2p. hello time10s 自动建邻 不选DR/BDR –在一个网段中只能存在一个邻居;华为设备在一个MGRE网段,接口为点到点工作方式时,仅和最先收到hello的设备建立邻居关系;Cisco在这种情况将出现邻居的翻滚;
注:在MGRE环境中,接口默认的ospf工作方式为点到点,这种方式无法实现该NBMA网段的邻居全连;故只能去修改接口的工作方式:
修改MGRE网段所有接口为Broadcast工作方式,切记若一部分接口修改为Broadcast,另一部分接口依然保持为点到点,由于hello time相同可以建立邻居关系,但工作机制在DR/BDR选举处不同,故最终该网段无法正常收敛;
1.同时,必须关注网络拓扑结构;若该网段为全连网状结构,那么DR选举将正常进行;但若为部分网状或中心到站点拓扑,将可能出现DR位置错误问题;
2.若网络拓扑只能为部分网状或中心到站点,需要人为手工干预DR位置或者将所有接口的工作方式修改为点到多点工作方式;
Ospf的点到多点工作方式:只能手工配置,适用于部分网状结构拓扑; Hello time30s,不选DR/BDR,自动建立邻居关系;
七、OSPF的不规则区域
一台ABR设备若没有连接到骨干区域0,那么默认不能进行区域间路由的共享
1.远离了骨干的非骨干区域
2.不连续骨干
解决方案:
1.在合法与非法ABR上建立tunnel,然后将其宣告到ospf协议中
缺点:
(1)周期更新、保活,触发更新对中间穿越区域产生资源占用
(2)选路不佳 -- 当ospf学习到两条相同目标,但不同区域同时过来时,优选骨干区域;
Tunnel区域应该宣告在同一个区域
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为了避免周期信息对中间区域的占用,取消虚链路上的所有周期行为;---不可靠
华为在虚链路上依然保持周期的保活、更新 --- 对中间区域的资源占用
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 --- 数据库表
<r1>display ospf lsdb
<r1>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 | 本区域内 | 该网段的DR | 该网段的拓扑 |
3类LSA-summary | 整个OSPF域 | ABR | OIA域间路由 |
4类LSA-asbr | 除ASBR所在区域外的整个ospf域;ASBR所在区域使用1类标记位置 | ABR | ASBR的位置 |
5类LSA-ase | 整个OSPF域 | ASBR | OE域外路由 |
7类LSA-nssa | 单个的NSSA区域内 | ASBR | ON域外路由 |
类别名 | 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内部传递时不变 |
7类LSA-nssa | 域外路由的目标网络号 | ASBR |
边栏推荐
- Niu Ke brushes question 01 - Kiki de duplication of integers and sorting (C language)
- 【MSP430G2553】图形化开发笔记(2) 系统时钟和低功耗模式
- 04-1、默认成员函数:构造函数、析构函数
- 动态规划背包问题——01背包
- Mysql06(序列)
- Mysql03(关联查询)
- 学习路之PHP--thinkphp5+windows服务器实现定时任务
- The sandbox teamed up with agoria to build agoriaverse
- 1、Nacos 配置中心源码解析之 Hello World
- “我放弃编程,写了一本130万字的硬科幻小说”
猜你喜欢
Easyexcel is easy to use
铜牛机房项目的优势和劣势
Basic usage of Networkx
c语言进阶篇:数据的存储(深度剖析-整型)
好用的办公网优化工具OneDNS
Visualization: you must know these ten data visualization tool software platforms
SpaceX has reached an agreement with Mattel, a Barbie doll manufacturer, on theme toy products
tinymce 去掉编辑器换行默认增加的p标签
Remember a remote debugging experience of minecraft server plug-in
Problems and principle analysis of audio AGC
随机推荐
动态规划背包问题——01背包
Learn the necessary tools of automation selenium think about automated testing in the pit again
点击按钮,丝滑的返回顶部
Pyqt5 packaging error, missing files, such as importerror: opencv loader: missing configuration file: ['config.py'] Check
Using completable future to implement asynchronous callback
预处理——异常值检测
动态规划多重背包一维
AidLux
[dongle vulnerability notification] Apache spark command injection vulnerability scheme
Configuration and use of kaptcha verification code
Mysql 5.7 配置复制
Uniapp, wechat applet input regular verification can only be input as numbers and decimal places
Unity 之UGUI Text组件坚排显示(改进)
阿里面试应该注意什么?通过5轮面试的阿里实习生亲述
Advantages and disadvantages of Tongniu computer room project
【sciter】:窗口通信
时间不一致
【MSP430G2553】图形化开发笔记(2) 系统时钟和低功耗模式
Codeworks round 805 A-F problem solution
04-1. Default member function: constructor, destructor