OSPF基础

1.内容:
描述OSPF路由计算的整体过程
阐明DR与BDR的作用
描述OSPF报文类型和作用
实现OSPF的基本配置
区分OSPF邻居关系和邻接关系

2.链路状态路由协议
2.1 LSA泛洪
1.路状态路由协议通告的的是链路状态而不是路由信息
2.运行链路状态路由协议的路由器之间首先会建立邻居关系,然后彼此之间开始交互LSA(Link State Advertisement,链路状态通告)
2.2 LSDB维护
1.每台路由器都会产生LSA,路由器将接收到的LSA放入自己的LSDB(Link State DataBase,链路状态数据库)。路由器通过对LSDB中所存储的LSA进行解析,进而了解全网拓扑
2.路由器使用LSDB存储LSALSDB通常会存储多种不同类型的LSA,每类LSA所描述的信息不同
2.3 SPF计算
每台路由器基于LSDB,使用SPF(Shortest Path First,最短路径优先)算法进行计算。每台路由器都计算出一棵以自己为根的、无环的、拥有最短路径的“树”。有了这棵“树”,路由器就已经知道了到达所有网段的优选路径。
2.4 路由表生成
路由器将计算出来的优选路径,加载进自己的路由表(Routing Table)。

3.OSPF应用场景
大型企业网络中通常部署OSPF实现各个楼宇的网络之间的路由可达。
核心和汇聚层部署在OSPF骨干区域。
接入和汇聚层部署在OSPF非骨干区域。



4.OSPF基础术语
4.1 Router ID:
Router ID用于在自治系统中唯一标识一台运行OSPF的路由器,它是一个32位的无符号整数。
Router ID选举规则如下:
手动配置OSPF路由器的Router ID(建议手动配置)
如果没有手动配置Router ID,则路由器使用Loopback接口中最大的IP地址作为Router ID
如果没有配置Loopback接口,则路由器使用物理接口中最大的IP地址作为Router ID
4.2 区域:
OSPF Area用于标识一个OSPF的区域。
区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area ID)来标识。
OSPF的区域ID是一个32bit的非负整数,按点分十进制的形式(与IPv4地址的格式一样)呈现,例如Area0.0.0.1。为了简便起见,我们也会采用十进制的形式来表示
4.3 度量值
OSPF使用Cost(开销)作为路由的度量值。每一个激活了OSPF的接口都会维护一个接口Cost值,缺省的接口Cost = 100 Mbit/s /接口带宽。其中100 Mbit/s为OSPF指定的缺省参考值,该值是可配置的。
OSPF以“累计cost”为开销值,也就是流量从源网络到目的网络所经过所有路由器的出接口的cost总和

5.OSPF三大表项
OSPF有三张重要的表项,OSPF邻居表、LSDB和OSPF路由表
5.1 邻居表
OSPF在传递链路状态信息之前,需先建立OSPF邻居关系。
OSPF的邻居关系通过交互Hello报文建立。
OSPF邻居表显示了OSPF路由器之间的邻居状态,使用display ospf peer查看
5.2 LSDB
LSDB会保存自己产生的及从邻居收到的LSA信息,本例中R1的LSDB包含了三条LSA。
Type标识LSA的类型,AdvRouter标识发送LSA的路由器。
使用命令行display ospf lsdb查看LSDB表。
5.3 OSPF路由表
OSPF路由表和路由器路由表是两张不同的表。本例中OSPF路由表有三条路由。
OSPF路由表包含Destination、Cost和NextHop等指导转发的信息。
使用命令display ospf routing查看OSPF路由表

6.OSPF报文格式和类型
OSPF一共定义了5种类型的报文,不同类型的OSPF报文有相同的头部格式。
OSPF报文直接采用IP封装,在报文的IP头部中,协议号为89
Hello 发现和维护邻居关系
Database Description 交互链路状态数据库摘要
Link State Request 请求特定的链路状态信息
Link State Update 发送详细的链路状态信息
Link State Ack 确认LSA

7.OSPF工作过程概览


1.建立邻居关系
OSPF使用Hello报文发现和建立邻居关系。
在以太网链路上,缺省时,OSPF采用组播的形式发送Hello报文(目的地址224.0.0.5)。
OSPF Hello报文中包含了路由器的Router ID、邻居列表等信息。
Hello报文的主要作用:
邻居发现:自动发现邻居路由器。
邻居建立:完成Hello报文中的参数协商,建立邻居关系。
邻居保持:通过周期性发送和接收,检测邻居运行状态
2.建立邻接关系
R1开始向R2发送LSR报文,请求那些在Exchange状态下通过DD报文发现的、并且在本地LSDB中没有的链路状态信息。
R2向R1发送LSU报文,LSU报文中包含了那些被请求的链路状态的详细信息。R1在完成LSU报文的接收之后,且没有其他待请求的LSA后,会将邻居状态从Loading变为Full。
R1向R2发送LSAck报文,作为对LSU报文的确认。





8.DR与BDR的作用
8.1 在MA网络中选举DR:
DR(Designated Router,指定路由器)负责在MA网络建立和维护邻接关系并负责LSA的同步。
DR与其他所有路由器形成邻接关系并交换链路状态信息,其他路由器之间不直接交换链路状态信息。
为了规避单点故障风险,通过选举BDR(Backup Designated Router,备份指定路由器) ,在DR失效时快速接管DR的工作
8.2 DR与BDR的选举规则
DR/BDR的选举是非抢占式的。
DR/BDR的选举是基于接口的。
接口的DR优先级越大越优先。
接口的DR优先级相等时,Router ID越大越优先
8.2 不同网络类型中DR与BDR的选举操作



9.OSPF配置举例


以R2为例:
[R2]ospf 1 router-id 10.0.2.2
[R2-ospf-1]area 0.0.0.0
[R2-ospf-1-area-0.0.0.0] network 10.0.12.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0] network 10.0.24.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0] network 10.0.35.2 0.0.0.0
其它类似
OSPF配置验证:
1.display ospf interface all可查看当前设备所有激活OSPF的接口信息:
时间参数,例如Hello报文发送间隔,死亡时间。
接口的链路类型、接口的MTU。
对于以太网链路,可查看DR的接口地址,DR的优先级
2.display ospf peer可查看当前设备的邻居状态:
邻居路由器的Router ID。
邻居状态,例如FULL,TWO-WAY,DOWN等
3.display ospf lsdb可查看当前设备的LSDB:
LSDB由多种类型的LSA构成,所有的LSA都有相同的报文头部格式,其中关键字段如Type、LinkState ID、AdvRouter等。下节课程将重点介绍LSA的详细信息
4.display ospf routing可查看当前设备的OSPF路由表:
从R2的OSPF路由表可看出,它已经通过OSPF获知到达全网的路由