以下内容均为博主自己根据华三官网ppt整理的笔记,仅供参考,如有错误,轻喷
OSPF(开放最短路径优先)
OSPF协议基本原理
ospf协议特点
- 基于链路状态的内部网关协议
- 没有路由跳数的限制
- 采用组播通告邻居路由发生变化
- 组播地址224.0.0.5,所有运行了OSPF的路由器都会监听该地址
- 组播地址224.0.0.6,只有DR和BDR才会监听该地址
- 路由收敛速度快
- 以开销作为度量值
- 带宽越高,开销越小
- OSPF的开销=参考带宽除以接口实际带宽(不足1取1)
- ISIS的开销=接口实际带宽/参考带宽
- 采用SPF(最短路径优先)算法(避免了环路)
- 是运用最广泛的路由协议
OSPF的三张表
邻居表
邻居表会记录所有的建立了邻居关系的路由器的路由信息
问题:OSPF邻居如何建立的?
回答:运行OSPF的路由器以组播的方式向目的地址224.0.0.5发送hello报文,收到hello报文的路由器检查报文种携带的参数是否和自己的一致,如果一致则形成邻居关系
追问1:hello定时器多少秒发一次?
回答:在不同的网络类型中hello定时器的发送时间间隔不一致,在广播网(broadcast)和点到点(p2p)网络中每10秒发送一次,在点到多点(p2mp)和非广播多点可达(NBMA)网络中每30秒发送一次
追问2:当邻居建立成功后如果在一段时间没有收到邻居的hello报文会怎么处理?
回答:当邻居建立成功后,会定时向自己的邻居发送hello报文,主要作用就是为了保活,确保邻居还在还活着。在broadcast网和p2p网络中如果40秒还没收到邻居的hello报文则认为邻居已经失效,并将它从邻居表中删除,在p2mp和NBMA网络中120秒没有收到邻居发送的hello报文则认为邻居已经失效。
LSDB表
链路状态数据库,又叫拓扑表
运行了OSPF的路由器之间并不是交换路由表而是交换彼此的链路状态的描述信息(LSA),交换完成后,同区域内的路由器LSDB表中具有当前区域的所有链路状态信息,并且都是一致的
问题1:LSA中包含了哪些信息
回答1:包含了接口的状态UP/DOWN,链路的开销,IP地址/掩码等
问题2:LSA会过期吗
回答2:会,每30分钟也就是1800秒会更新自身的LSA,如果一条LSA在一个小时也就是3600秒内没有被更新则会认为失效,从库中删除
OSPF路由表
当路由器获取到完整的链路状态信息后会通过SPF算法计算出最优的路由加入到OSPF路由表中,也就是说OSPF路由表存放的是去往一个目的地最优的路由信息
问题1:SPF算法怎么定义一条路由是否为最优路由
回答1:如果去往一个目的地有多条路径可走,SPF算法将比较开销最小的作为最优路径
追问1:如果去往一个目的地有两条路径开销一致怎么办
回答1:形成等价路由,将两条路由都加入到OSPF路由表中
OSPF区域分层结构
OSPF划分了两种区域,骨干区域和非骨干区域,其中骨干区域只有一个area 0,其他所有区域都为非骨干区域,在单域的环境中,可以没有骨干区域;在多域的环境中,必须配置骨干区域
每个运行OSPF的接口都必须属于一个区域
问题1:为什么OSPF会分区域,这样做有什么好处吗
回答1:当网络中有多台路由器运行OSPF时,路由器数量增多会导致LSDB表不断的更新变化,LSDB表同步会导致所有路由器重新进行路由计算,那么采用划分区域的方式,当一台路由器LSDB发生变化时,只在本区域内的路由器间传播LSDB,减少了影响范围
追问1:划分区域还有哪些优势吗
回答1:第一个就是刚刚提到的减少区域内LSDB中链路状态信息的数量,只需要维护自己所在的区域内的链路状态信息,第二个优势可以将相同功能或者地理位置相同的路由器划分到同一个区域内便于管理,第三个优势隔离拓扑变化,减少路由振荡对整个自治系统的影响
OSPF路由器类型
OSPF一共有四种路由器类型,分别为:
- 区域内路由器(IR):所有接口都属于同一个区域内
- 区域边界路由器(ABR):同时有接口属于骨干区域和非骨干区域
- 骨干路由器(BR):至少有一个接口属于骨干区域
- 自治系统边界路由器