OSPF简介:
- 业内典型的链路状态路由协议,使用非常广泛的IGP协议之一
- 运行OSPF的路由器交换的是链路状态信息(LS),而不是直接交换路由。LS是正常进行拓扑和路由计算的关键信息
- ospf路由器通过lsdb数据库清楚网络拓扑结构,有利于计算无环路径,LSDB里的SPF用于计算最短开销路径
- ospf支持更大规模的网络
- OSPF传递链路状态信息之前,需要建立邻居关系,邻居关系的建立需要hello报文。
OSPF优点
- 无环路--利用了SPF算法(路由器会优先走开销值小的路线)
- 收敛快
- 扩展性好
- 支持认证--区域认证和接口认证
那我可以思考一下为什么需要OSPF,静态不可以吗?首先静态的缺点在于:1.手工配置,只能面对小规模网络,需要一个一个去配置,当遇上大规模的网络,那么工作量将会提高,所以,可以利用OSPF的特点,对网络进行优化。
工作原理:
运行了ospf的路由器会周期性的泛洪自己的路由表,泛红给相邻的直连路由器,并且路由器无法感知网络拓扑,只知道去往的方向和距离。通过交换路由表,保存在自身的LSDB数据库中
LSA泛洪:
运行链路状态的路由器会与建立邻居关系的路由器交互LSA全称链路状态通告,主要由LSA头部信息(LSA摘要)和链路状态组成。部分LSA只有LSA头部信息,无链路状态信息,LSA每隔30min泛洪一次。
在ospf中主要是通过泛洪LSA、同步LSDB来学习路由,达到全网互通的](链路状态通告)
LSDB:
路由器会把收到的LSA放入自己的LSDB(链路状态数据库中),路由器通过LSDB理解全网拓扑
SPF:
此协议用于计算路径开销,路由器会优先走开销值小的路线,使用SPF算法,路由器会自算出以自己跟根路由,无环路的,最短路径的优选路径
OSPF基本术语
区域
ospf用区域标识
不同区域不会有路由信息
Router-ID
路由器的唯一标识
可以手动或者自动配置
开销
cost值就是目的网段到本路由沿途所有入接口的cost值累加
OSPF协议中的报文类型
hell报文
用去维护邻居关系,周期性发送,确认死活用的
DD报文(database description)
用于两台设备进行LSDB数据库同步
LSR报文(Link state request )
用于向对方请求所需的LSA。设备只有在ospf报文交换成功后才会发送LSR报文给对方
LSU报文(Link state update)
用于向对方发送需要的LSA
LS ACK(Link state ACK)
用于对收到的LSA进行确认
OSPF邻居关系的建立
建立概要 1. 建立双向的邻居关系 2. 协商主从 3. 相互描述各自的lsdb 4. 更新lsa ,同步双方的lsdb
详细建立过程
描述:
双向邻居关系的建立
当路由器A发送hello报文给路由B,此时路由器的状态为init状态(单向发现),路由器 B收到A的hello报文会把A加入自己的邻居表里,并且发送带有自身router id 的hello报文给路由A,A发现这个hello报文带有自己的route id ,状态从init变为2-way(双向发现)
建立完邻居关系后,进行主从关系的协商
路由器A和路由器B先后发送dd报文,双方的状态都是ex-start状态,当对比出route id 大的路由器后,状态切换为exchange。在此状态,双方会交换dd报文用于描述自己的lsa的摘要信息
同步lsdb
路由器A发送LSR 报文给路由器B,请求B的LSA信息,B收到后返回LSU报文给路由器A,路由器A收到LSU后发送LS ACK确认报文给路由器B
OSPF表项
邻居表
传递链路状态信息钱,需要建立邻居关系
邻居关系通过hello报文建立
查看邻居表命令:display ospf peer
路由表
查看邻居表命令:display ospf routing
包含的信息:
cost 开销/度量值
destination 目的ip
area 区域号
nexthop 下一跳
advrouter 谁宣告该路由
type 类型,有根路由(stub)
LSDB表
查看LSDB表命令:display ospf lsdb
包含的信息:
type 类型
linkstate id 邻居的route id
advrouter 邻居的IP地址
age 年龄
len 唯一
sequence 序号
metric 度量值,开销
OSPF网络类型
P2P 点到点 一段链路上只能连接两台网络设备
BMA 广播式多路访问 允许多台设备接入的,支持广播的环境
NBMA 非广播式多路访问 允许多台网络设备接入且不支持广播 典型的例子是帧中继网络
P2MP 点到多点 相当于将多台p2p链路的一端进行捆绑的网络