OSPF 1
开放式(公共)最短路径优先协议
无类别 -- 更新携带精准掩码
链路状态 -- 共享拓扑,本地计算路由
IGP协议 -- 基于AS进行分类 ;
OSPF不支持接口水平分割,支持区域水平分割。
链路状态 --> 共享拓扑 --> 更新量大 --> 不能在中型、大型网络生存
需要结构化的部署 -- 区域划分 ip地址规划
需要在更新等各个细节点良好设计
触发更新
-- 30min周期更新 (更新量大 -- 不自信)
组播更新
-- 224.0.0.5 --所有ospf
-- 224.0.0.6 --DR/BDR
版本
V1-V3 目前通用v2;v3是IPV4使用
为什么OSPF要基于LSA(要共享拓扑)
核心内容:防环
跨层封装3层协议
数据包类型
三表五包七状态(背)
三表:
邻居表、数据库表、路由表
五包:
Hello 邻居的发现,关系的建立;周期(10s)的保活 携带rid
DBD 数据库描述包;本地数据库目录(看路由)
LSR 链路状态请求
LSU (通道) --> LSA(车) 链路状态更新
LSack链路状态确认
LSA -- 链路状态,具体一条一条路由信息或拓扑信息;但它不是一个包,是被lsu数据包来携带;
五种数据包 -- 跨层封装到ip报头,协议号89
五种数据包的头部一致
七状态:
Down :
一旦接收到的hello 包,进入下一个状态机
Init 初始化:
一旦接收到的hello包中,存在本地的rid,进入下一个状态(单方面收到hello包)
2way 双向通讯:
邻居关系建立的标志
关注条件:点到点网络类型直接进入下一个状态机,MA网络中进行DR/BDR选举,非DR/BDR之间不能进入下一个状态机。
Exstart 预启动:
使用不携带数据库目录信息的DBD包,进行主从关系的选举;rid大为主,优先进入下一个状态;解决了目录共享时的无序;
Exchange 准交换:
使用携带目标信息的dbd包,共享本地数据库目录;
loading 加载:
查看完邻接的dbd信息后,对比本地,然后基于本地未知的lsa进行查询;使用lsr 向对端查询,对端使用lsu来传输这些lsa信息,本地收到后需要lsack来进去确认;-- 获取本地未知的LSA信息;
Full :
邻接关系建立的标志; 意味着邻接间,数据库同步(一致)
Hello time -- 10s 或者 30s
OSPF工作过程
启动配置完成后,本地使用组播(224.0.0.5)发送hello包到所有的邻居出,若收集到邻居的hello包,且hello中存在本地routerID,则建立邻居关系,生成邻居表。
邻居关系建立后,将进行条件匹配,条件匹配失败则停留于邻居关系,仅hello包周期保活即可,条件匹配成功,则建立邻接关系(毗邻),邻接关系间将使用DBD、LSR、LSU、LSack来获取未知的LSA信息,当获取到所有LSA信息后,本地生成LSDB--数据库表,在本地基于SFP计算,将数据库转换为有向图 --> 树型结构图--> 基于结构图,将本地到达所有未知网段的最短路径加载与路由表中 --> 收敛完成
结构突变
1、新增网段
2、断开网段
3、无法沟通 -- 保活时间到期后, dead time到达时,断开邻居关系
OSPF宣告
1、划分区域
2、共享拓扑
3、建立区域
划分规则
区域划分规则:
1、星型结构 -- 中心到站点 区域0为骨干(中心)大于0为非骨干,所有非骨干必须连接骨干区域
2、区域间必须使用ABR互联
ABR -- 区域边界路由器
COST值:参考带宽/实际带宽 < 1为1
修改参考带宽
OSPF接口网络类型
OSPF协议在不同网络类型接口上的工作方式
OSPF的工作方式
环回:
p2p 无hello 32位主机路由共享
点到点:
p2p hello 10s 选DR/BDR(40s)
BMA(以太网):
Broadcast hello10s 选DR/BDR(40s)
NBMA(MGRE):
默认接口工作方式为p2p,该工作方式仅允许建立一个邻居关系;导致在MGRE环境中无法建立所有的邻居关系
OSPF在tunnel接口工作方式为点到点 ;该方式仅允许建立一个邻居关系,故在MGRE中无法建立邻接关系
拓扑类型:
星型 -- 中心到站点
中心站点为DR,不选BDR
全连网状
基于实际环境关注是否固定DR
部分网状
DR/BDR选举正常
OSPF 2
不规则区域
1、远离骨干的非骨干区域
2、不连续骨干
解决方法:
1、tunnel
合法ABR与非法ABR间建立tunnel,然后将tunnel宣告的ospf
缺点:
1)周期和触发的信息对中间穿越区域资源不断占用
2)选路不佳
2、OSPF虚链路
由非法ABR获取合法ABR的授权后,具有区域间路由共享的功能;合法ABR与非法ABR在工作同一区域
优点:没有新生链路,不存在选路问题
缺点:两台ABR间依然存在周期、触发的信息对中间穿越区域的资源占用;
华为--保持更新
思科--取消所有周期
3、多进程 双向重发布
多进程:在一台设备上允许多个ospf的进程,不同进程拥有独立的数据库和邻居,不共享,仅仅是将各自计算所得路由条目加载于同一张路由表中。
重发布:一台路由器上,同时允许多种路由协议,或同一协议的多个进程;此时可以同时学习到两端的路由信息,但默认不共享,重发布可以实现路由共享;
条件:两种协议 或 两个进程间存在一台ASBR
ASBR: 自治系统边界路由器(协议边界路由器)
OSPF的数据库表
LSDB:链路状态数据库
OSPF协议在不同的环境下,将产生不同类别的LSA;
LSA-链路状态通告 -- 拓扑或路由信息 多个类别
类别名 | 传播范围 | 通告者 | 携带内容 |
---|---|---|---|
1类 Router | 单区域 | 该区域每条路由 | 本地直连拓扑 |
2类 network | 单区域 | 该网段的DR | 单个MA网段的拓扑 |
3类summary | 整个OSPF的域 | ABR | 域间路由(其他区域的路由) |
4类 asbr | 除ASBR所在区域外 | ABR | ASBR的位置 |
5类 External | 整个OSPF的域 | ASBR | 域外路由(重发布进入的路由) |
类别名 | link-id | 通告者 |
---|---|---|
1类 Route | 通告者的RID | 该区域每台路由器 |
2类 network | DR的接口ip地址 | 该网段的DR |
3类 summar | 域间路由网络号 | ABR,经过下一台ABR时,修改为新的ABR |
4类 ASBR | ASBR的RID | ABR,经过下一台ABR时,修改为新的ABR |
5类 External | 域外路由网络号 | ASBR(不变化) |