1. OSPF概念
OSPF(Open Shortest Path First开放式最短路径优先)是一种动态路由协议,属于内部网关协议(Interior Gateway Protocol,简称IGP),是基于链路状态算法的路由协议。
2. OSPF的运行原理
(1)OSPF的五种报文,如下图所示:
(2)OSPF的运行
a) OSPF以组播的方式在所有开启OSPF协议的接口发送Hello报文,用来查看是否有OSPF邻居;
b) 发送Hello报文之后,若发现邻居则建立OSPF邻居关系,形成邻居表项;
c) 建立邻居表后,向各邻居发送LSA报文相互通告路由,形成LSDB(链路状态数据库);
d) 基于LSDB,通过SPF(Shortest Path First)算法,计算最佳路径(cost度量值最小)后放入路由表中。
OSPF协议运行过程如图所示:
3. OSPF区域概念
区域:从逻辑上将设备划分为不同的组,每个组用不同的区域号(Area ID)来标识。
在OSPF中,用OSPF Area来表示一个OSPF区域,分为骨干区域和非骨干区域。
骨干区域(区域0):每一个OSPF必须拥有一个区域0,骨干区域必须连接所有非骨干区域,一般来说区域内没有终端用户。
非骨干区域(非0区域):非骨干区域必须连接骨干区域通信,一般情况下用于连接终端设备和资源。
4. OSPF状态
(1) Down State: 邻居的初始状态,表示没有从邻居受到任何信息
(2) Init State:路由设备收到了Hello报文,但是自己的Router ID不在所收到的Hello报文的邻居列表中,表示尚未与邻居建立双向通信关系。
(3) Two-way State:设备收到了一个Hello包,且Hello包中包括了自己的router-id,表示此时双方可以进行通信。
(4) Exstart State:First DBD确认主从关系,router-id大的为主,先发包
(5) Exchange State:交互DBD 相互学习
(6) Loading State:LSR与LSU的交互过程
(7) Full State:所有交互已经完成
5. OSPF身份
DR(Designated Router):指定路由器,OSPF协议启动后开始选举而来
BDR(Back-up Designated Router):备份指定路由器,同样是由OSPF启动后选举而来,当指定路由器出现问题,备份指定路由器将成为指定路由器工作。
DR others:其他路由器,非DR非BDR的路由器都是DR others。
ABR(Area Border Routers):区域边界路由器,用于连接不同OSPF区域,处于区域边界。
ASBR(Autonomous System Boundary Router):自治系统边界路由器,位于OSPF和非OSPF网络之间。
骨干路由器:至少有一个接口连接到骨干区域(区域0)。
6. OSPF选举DR与BDR
Router-ID(Router Identifier,路由器标识符):用来在一个OSPF域中唯一标识一台路由器。(Router-ID可通过手工配置,一个OSPF域中不能有相同的Router-ID),如下图所示:
DR、BDR的选举规则:比较router-id
在OSPF系统启动后,若40s内没有新设备接入就会开始选举,当DR失效或故障时,BDR会变成DR,重新选BDR。所有DR,BDR,DRothers说的都是接口,而不是设备,不同网段间选DR,BDR,而不是以OSPF区域为单位。
DR与BDR的选举规则:
(1)比较优先级:最高优先级值的路由器被选为DR(默认优先级相同:1),次高优先级的为BDR
(2)比较router-id:当优先级相同时,拥有最高router-id的成为DR,次高的成为BDR
7. OSPF邻居关系
OSPF邻居的两个状态:邻居(Neighbors)和邻接(Adjacency)
(1) 邻接关系的建立
如图所示:
A. 路由器R1的Router ID为1.1.1.1,R2 的Router ID为2.2.2.2,启动OSPF后,R1状态为Down,发送Hello报文。
B. 路由器R2收到R1的Hello报文将R1添加到邻居表中,状态置为Init。
C. R2向R1发送邻居列表为1.1.1.1的Hello报文,R1在收到的Hello报文邻居列表中发现自己的Router ID,状态置为2-way。
D. R1向R2发送邻居列表为2.2.2.2的Hello报文,R2在收到的Hello报文邻居列表中发现自己的Router ID,状态置为2-way。
E. 邻居建立成功
8. OSPF网络类型
OSPF有四种网络类型,如下所示:
· 点到点网络:即Point-to-point(P2P)型网络,是指该接口通过点到点的方式与一台路由器相连。此类型网络不需要进行OSPF的DR、BDR选举。在此类型的网络中,OSPF以组播方式(224.0.0.5)发送协议报文。典型例子时当链路层协议是PPP或HDLC时,OSPF缺省认为网络类型是P2P。
如图所示:
· 广播型多路访问网络:即Broadcast型网络,网络本身支持广播功能。此类型网络需要进行OSPF的DR、BDR选举。在该类型的网络中,OSPF通常以组播方式(224.0.0.5和224.0.0.6)发送协议报文。典型例子时当链路层协议是Ethernet、FDDI时,OSPF缺省认为网络类型是广播型。
如图所示:
· 非广播型多路访问网络:即NBMA(Non-Broadcast Multiple Access)型网络,虽然从一个接口可以到达多个目的节点,但是网络本身不支持广播功能,当链路层协议是帧中继、ATM或X.25时,OSPF缺省认为网络类型是NBMA。此时OSPF的邻居需要管理员手工指定。在该类型的网络中,以单播方式发送协议报文。
如图所示:
· 点到多点网络:即Point-to-multipoint(P2MP)型网络,是指该接口通过点到多点的网络与多台路由器相连。
P2MP型网络比较特殊,没有一种链路层协议会被缺省地认为是点到多点类型。点到多点必须是由其他网络类型强制更改而来。常用做法是将NBMA改为点到多点的网络。在该类型的网络中,缺省情况下以组播方式(224.0.0.5)发送协议报文,也可以根据用户需要,以单播形式发送协议报文。
如图所示: