1、概述
(1)计算路由的流程(链路状态协议)
- 首先每个运行着OSPF的路由器产生LSA(链路状态通告),并在网络里泛洪(LSA包含路由器ID,接口IP地址,链路的网段及掩码,链路类型,链路的度量值COST等)。
- 每台运行着OSPF的路由器收集到所有LSA后形成LSDB(链路状态数据库)
- 每台运行着OSPF的路由器以自己为根,运行SPF(最短路径优先)算法,计算到达每个网络的最优路径,从而形成拓扑(即SPF树)
- 将最优的路径写进路由表
ps.
(2)链路状态协议(OSPF)与距离矢量协议(RIP)的区别*****
- 链路状态路由器比距离矢量路由器能够获取更多的网络信息
- 每个链路状态路由器都有网络的全部拓扑
- 因此,链路状态协议比距离矢量协议能够做出更加精确的选路
(3)OSPF是一个分层的协议(便于管理)
---OSPF是一个链路状态协议,必须进行分层
---OSPF分为两层结构
-Transit Area(传输区域):backbone or area 0 or 骨干区域
-Regular Area(标准区域/规则区域):nonbackbone areas
所有非骨干区域必须和骨干区域直接相连,如下图所示
(4)OSPF区域特征
---可以最小化路由表条目
---可将拓扑改变的影响限制在本区域里
---细节的LSA(明细LSA)的泛洪在区域边界被阻止
---非骨干区域和骨干区域直接相连,非骨干区域之间的通信必须经过骨干区域
ps.
上图中的路由器(C/D/E)被称为区域边界路由器(ABR)(ABR必须有一个接口在area0内)
(5)链路状态数据结构(OSPF的数据表)
- 邻居表:所有具有邻居关系的路由器的列表
- 拓扑表:也称为LSDB(链路状态数据库),包含了在同一区域内网络里的所有路由器及相连链路的列表,LSDB的老化时间是60min,同步更新时间为30min。
- 路由表:最优路径的列表
2、OSPF报文类型*****
(1)类型1:Hello Packet
- Hello包的作用(Hello协议的作用)
- 发现邻居 hello
- 建立邻接关系 dbd
- 维持邻接关系 lsr
- 确保双向通信 lsli
- 选举DR/BDR lsack
- Hello包内包含的内容
- Router-id 路由器标识
- hello and dead intervals hello与保持时间间隔
- Neighbors IDs 邻居ID
- Area ID 区域ID
- Router priority 路由器优先级
- DR IP Address 指定路由器IP地址
- BDR IP Address 备份指定路由器IP地址
- Authentication password 验证密钥
- Stub area flag 末节区域标志
- Link mask(only for Ethernet) 链路掩码(仅在以太网中)
红色字体部分的条目必须匹配才能建立邻接关系!!(如果是以太网,掩码也必须匹配)
(2)类型2:Database Description(数据库描述包) ---DBD(包含LSA的头信息)
(3)类型3:Link-State Request(链路状态请求包) ---LSR
(4)类型4:Link-State Update(链路状态更新包)---LSU
(5)类型5:Link-State Acknowledgment(链路状态确认包)---LSAck (用于确认2/3/4类型报文)
3、OSPF报头格式***
版本|类型|长度|路由器ID|区域ID|校验|验证类型|验证密钥|数据|
ps.
OSPF的协议号:89;EIGRP的协议号:88
4、OSPF邻居建立的过程(OSPF邻居建立过程中的状态)****
ps.
当一个运行着OSPF的路由器在接口上收到一个HELLO包,包里的邻居ID与自己的router-id相同时,OSPF将邻居状态调整为two-way状态(双向通信状态)
ps.
Exstart State(开始交换状态):交换空DBD,选举主从关系(Master/Slave),需要注意的是如果链路两端的MTU不匹配,邻居关系会停留在此状态,ROUTER-ID大的成为MASTER。 MASTER设备先发送报文,SLAVE后发送。
downinit two-way exstart exchange loading full
关闭初始化 双向通信 开始交换 交换 加载 完全邻接
5、OSPF的路由器ID的选取
---手动配置(推荐)
---最大的环回接口地址
---最大的物理接口地址
//华为先选小的并且可以重复用
//每个进程会占用一个id id没了会被抑制
比如只有4 个环回口 但有5个进程那最后一个会被抑制
ps. 按组选举
---使用