1.什么是ospf?
OSPF(Open Shortest Path First开放式最短路径优先)是一种动态路由协议,属于内部网关协议(Interior Gateway Protocol,简称IGP),是基于链路状态算法的路由协议。
2.ospf的运行原理
(1)ospf的五种报文
(2)ospf的运行
- OSPF以组播的方式在所有开启OSPF协议的接口发送Hello报文,用来查看是否有OSPF邻居;
- 发送Hello报文之后,若发现邻居则建立OSPF邻居关系,形成邻居表项;
- 建立邻居表后,向各邻居发送LSA报文相互通告路由,形成LSDB(链路状态数据库);
- 基于LSDB,通过SPF(Shortest Path First)算法,计算最佳路径(cost度量值最小)后放入路由表中。
3.ospf的区域概念
区域:从逻辑上将设备划分为不同的组,每个组用不同的区域号(Area ID)来标识。
在OSPF中,用OSPF Area来表示一个OSPF区域,分为骨干区域和非骨干区域。
骨干区域(区域0):每一个OSPF必须拥有一个区域0,骨干区域必须连接所有非骨干区域,一般来说区域内没有终端用户。
非骨干区域(非0区域):非骨干区域必须连接骨干区域通信,一般情况下用于连接终端设备和资源。
4.ospf的状态
- Down State: 邻居的初始状态,表示没有从邻居受到任何信息
- Init State:路由设备收到了Hello报文,但是自己的Router ID不在所收到的Hello报文的邻居列表中,表示尚未与邻居建立双向通信关系。
- Two-way State:设备收到了一个Hello包,且Hello包中包括了自己的router-id,表示此时双方可以进行通信。
- Exstart State:First DBD确认主从关系,router-id大的为主,先发包
- Exchange State:交互DBD 相互学习
- Loading State:LSR与LSU的交互过程
- 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)
- 邻接关系的建立
如图所示:
- 路由器R1的Router ID为1.1.1.1,R2 的Router ID为2.2.2.2,启动OSPF后,R1状态为Down,发送Hello报文。
- 路由器R2收到R1的Hello报文将R1添加到邻居表中,状态置为Init。
- R2向R1发送邻居列表为1.1.1.1的Hello报文,R1在收到的Hello报文邻居列表中发现自己的Router ID,状态置为2-way。
- R1向R2发送邻居列表为2.2.2.2的Hello报文,R2在收到的Hello报文邻居列表中发现自己的Router ID,状态置为2-way。
- 邻居建立成功
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)发送协议报文,也可以根据用户需要,以单播形式发送协议报文。
如图所示:
9.ospf常见其中的类型LSA
- 路由器LSA(Router LSA):每个路由器都可以发起通告,罗列出自己和邻居的接☐,描述直连链路信息。
- 网络LSA(Network LSA):只用于广播式网络,由区域内的DR或BDR路由器产生,报文包括DR和BDR连接的路由器的链路信息。
- 网络汇总LSA(Network summary LSA):由ABR产生,可以通知本区域内的路由器通往区域外的路由信息,一个路由器接触网络内部的多个区域,使用这个路由表来总结信息,更新其它区域到达另一个区域的信息
- ASBR汇总LSA(ASBR summary LSA):也是由ABR产生,但是它是一条主机路由,指向ASBR路由器地址的路由
- 自治系统外部LSA(Autonomous system external LSA):由ASBR产生,告诉相同自治区的路由器通往外部自治区的路径。
- AS-external-LSA,也叫Type5 LSA,由ASBR产生,描述到AS外部的路由,通告到除Stub区域和NSSA区域以外所有的区域。
- NSSA外部LSA (NSSA External LSA)由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。NSSA区域的ABR收到NSSA LSA时,会有选择地将其转化为Type5 LSA,以便将外部路由信息通告到OSPF网络的其它区域。
具体配置
1.搭建这个拓扑图
2.进入R1配置
<Huawei>sys
[Huawei]sysname R1
[R1]int g0/0/1 //进入接口
[R1-GigabitEthernet0/0/1]ip add 192.168.1.1 24 //配置接口IP
[R1-GigabitEthernet0/0/1]int g0/0/2
[R1-GigabitEthernet0/0/2]ip add 192.168.2.1 24
[R1-GigabitEthernet0/0/2]ospf 1 //启用OSPF,ID为1
[R1-ospf-1]area 0 //声明区域0
[R1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255 //宣告网络192.168.1.0属于area 0
[R1-ospf-1-area-0.0.0.0]area 1 //声明区域1
[R1-ospf-1-area-0.0.0.1]network 192.168.2.0 0.0.0.255 //宣告网络192.168.2.0属于area 1
进入R2配置
<Huawei>sys
[Huawei]sysname R2
[R2]int g0/0/1 //进入接口
[R2-GigabitEthernet0/0/1]ip add 192.168.3.1 24 //配置接口IP
[R2-GigabitEthernet0/0/1]int g0/0/2
[R2-GigabitEthernet0/0/2]ip add 192.168.1.2 24
[R2-GigabitEthernet0/0/2]ospf 1 //启用OSPF,ID为1
[R2-ospf-1]area 0 //声明区域0
[R2-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255 //宣告网络192.168.1.0属于area 0
[R2-ospf-1-area-0.0.0.0]area 2 //声明区域2
[R2-ospf-1-area-0.0.0.2]network 192.168.3.0 0.0.0.255 //宣告网络192.168.3.0属于area 2
进入R3配置
<Huawei>sys
[Huawei]sysname R3
[R3]int g0/0/1 //进入接口
[R3-GigabitEthernet0/0/1]ip add 192.168.2.2 24 //配置接口IP
[R3-GigabitEthernet0/0/1]ospf 1 //启用OSPF,ID为1
[R3-ospf-1]area 1 //声明区域1
[R3-ospf-1-area-0.0.0.1]network 192.168.2.0 0.0.0.255 //宣告网络192.168.2.0属于area 1
进入R4配置
<Huawei>sys
[Huawei]sysname R4
[R4]int g0/0/2 //进入接口
[R4-GigabitEthernet0/0/2]ip add 192.168.3.2 24 //配置接口IP
[R4-GigabitEthernet0/0/2]ospf 1 //启用OSPF,ID为1
[R4-ospf-1]area 2 //声明区域2
[R4-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255 //宣告网络192.168.3.0属于area 2
- R3测试与R4的连通性
- R4测试与R3的连通性
- 查看R1路由表,如下所示:
由画红线部分可知,192.168.3.0网段由OSPF协议学习到。
- 查看R2路由表,如下所示:
由画红线部分可知,192.168.2.0网段由OSPF协议学习到。