OSPF路由协议
系列 - 网络转发模型
目录
1 简介
链路状态路由协议,是目前业内使用非常广泛的IGP协议之一。 针对IPv4协议使用的是OSPF Version(RFC2328) 2;针对IPv6协议使用OSPF Version 3(RFC2740)。 运行OSPF路由器之间交互的是LS(Link State,链路状态)信息,OSPF路由器将网络中的LS信息收集起来,存储在LSDB中,路由器都清楚区域内的网络拓扑结构,有助于计算无环路径。 采用SPF算法计算达到目的地最短路径。
1.1 基本概念
- Router-ID(Router Identifier,路由器标识符):用于在一个OSPF域中唯一的标志一台路由器。可以手工,亦可系统自动配置
- OSPF Area:标志一个OSPF的区域,区域是从逻辑上将设备划分为不同的组,每个组用区域号标识
- Cost:使用Cost(开销)作为路由的度量值。笼统的说,一条OSPF路由器的Cost值是从目的网段到本路由器沿途所有入接口的Cost值累加
Cost值=“100Mbit/s” / 接口带宽,其中"100Mbit/s"为缺省值,可以配置
- LSA(Link State Advertisement):传播链路状态信息的数据包,每个OSPF路由器都会生成LSA,描述它与邻居之间的链路状态和网络拓扑
- LSDB(Link State Database):存储链路状态信息的数据库,包含所有收到的LSA
2 工作原理
2.1 报文种类
- Hello:周期性发送,发现和维护OSPF邻居关系
- Database Description:描述本地LSDB的摘要信息,用于两台设备进行数据库同步
- Link State Request:用于向对方请求所需要的LSA,设备只有在OSPF邻居双方成功交换DD报文后才会发出LSR报文
- Link State Update:用于向对方发送其所需要的LSA
- Link State ACK:用于确认收到的LSA信息
2.2 3大表项
OSPF的工作过程分为3个大步骤,分别是建立双向邻居关系、形成邻接关系、计算路由。完成上述关系,分别会形成3张表。
假设目前有设备Router ID 1.1.1.1 R1 与Router ID 2.2.2.2 R2 需要建立关系。
- OSPF邻居表 1)R1 向 R2 发送 Hello 报文 2)R2 将 R1 添加到自己得邻居表,将 R1 的状态更新为 Init。并返回一个 Hello 报文,告诉 R1 自己发现了它 3)R1 收到返回的报文后,将 R2 添加到自己得邻居表,并将 R2 的状态设置为 2-Way 4)R1 重新向 R2 发送 Hello 报文,告诉自己发现了 R2,此时 R2 将邻居表中的 R1 状态也切换为 2-Way 5)此时邻居关系已经建立完毕
- LSDB表
1)R1 和 R2 之间会协商主/从(Master/Slave)关系,以Router ID更大的R2为主,此时双方为
Ex-start状态 2)进入Exchange状态,双方交换DD报文,用于描述自己拥有的LSA摘要信息 3)双方确认摘要信息后,明确了缺少的LSA信息,随后进入Loading状态,一方发送LSA请求,一方回复LSU,交换LSA的完整信息 4)当LSA信息交换完成后,进入Full状态,邻接关系建立结束 - OSPF路由表 计算路径消耗,构建路由表
3 OSPF成员及组成
3.1 OSPF网络类型
一般情况下,链路两端的OSPF接口网络类型必须一致,否则双发无法建立邻居关系。
- P2P(Ponint-to-Point,点对点) 典型的例子是PPP链路,当接口采用PPP封装时,OSPF在该接口上采用的缺省网络类型为P2P。 P2P指一段链路上只能连接两台网络设备的环境。
- BMA(Broadcast Multiple Access,广播式多路访问)
典型的例子是Ethernet,接口采用Ethernet封装时,OSPF在该接口上采用的缺省网络类型为BMA。
BMA也被称为Broadcast,指允许多台设备接入,支持广播的环境。
3. NBMA(Non-Broadcast Multiple Access,非广播式多路访问)4. P2MP(Ponint to Multi-Point,点到多点)
3.2 DR 和 BDR背景
MA(Multi-Access)多路访问网络中,如果每台OSPF路由器都与其他所有的路由器建立OSPF邻接关系,便会导致网络中存在过多的OSPF邻接关系,增加设备负担,并增加了网络中泛洪的OSPF报文数量。 当拓扑出现变更时,网络中的LSA泛洪可能会造成带宽的浪费和设备资源的损耗。
- DR(Designated Router,指定路由器):DR、BDR会和其他的OSPF建立邻接关系,DR拥有全网的LSA信息,并能将链路信息同步给其他路由。
选取时根据指定的优先级,若有相同优先级设备,Router ID更大者胜出
- BDR(Backup Designated Router,备用指定路由器):会监控DR的状态,并在DR发生故障时接替其角色
- DR other路由器:DR other之间不会建立全毗邻的OSPF邻接关系,双方停滞在2-way状态
3.3 OSPF区域
OSPF域是一系列使用相同策略的连续OSPF网络设备构成的网络。
- 单区域 如果OSPF域仅仅只有一个区域,随着网络规模越来越大,OSPF路由器的数量越来越多,会导致不少问题: 1)LSDB庞大,OSPF路由表规模增加,引起路由器资源消耗多,设备性能下降,影响数据转发 2)基于庞大的LSDB进行路由计算变得困难 3)网络拓扑变更时,LSA全域泛洪和全网SPF(Shortest Path First,最短路径优先算法)重计算带来巨大负担
- 多区域 将一个OSPF域划分成多个区域,能使OSPF支撑更大规模的组网,又不少优点: 1)减少了LSA泛洪的范围,把拓扑变化的影响控制在区域内,达到网络优化的目的 2)区域边界可以做路由汇总,减小路由表规模 3)多区域提高了网络扩展性,有利于组件大规模的网络
3.4 OSPF路由器类型
OSPF路由器根据位置或功能不同,有下面几种类型:
- 区域内路由器(Internal Router)
- 区域边界路由器(Area Border Router):用于两个区域间互相连接
- 骨干路由器(Backbone Router):若划分了多区域,必须有
Area 0,其他区域必须与Area 0区域相连,并其他区域不能直接相连(防止产生环),需要通过Area 0来进行通信,该区域的ABR可称为BR - 自治系统边界路由器(AS Boundary Router):用作路由协议的引入,如
Area 1使用OSPF协议,Area x使用了RIP协议