一、OSPF区域化结构
- OSPF为了适应大中型网络环境,进行了结构化部署------区域划分
- 区域划分的特点
- 区域内部传递拓扑信息,区域间传递路由信息。
- 区域划分是基于路由器接口的。
- 区域编号----32bit
- 区域0-----骨干区域
- 非骨干区域----非0区域
区域划分目的:为了减少OSPF域中LSA的数量
- 区域划分规则
- 所有的非骨干区域都必须和骨干区域直接相连----星型拓扑
- 骨干区域唯一
- 不规则区域
-
远离骨干区域的非骨干
-
不连续的骨干区域
-
- 区域边界路由器----ABR
- 同时属于多个区域,且至少有一个接口属于骨干区域。
- 在骨干区域中至少存在一个活跃的邻居。
ABR是连接两个或多个区域的路由器。它具有两个或多个区域的接口,并负责在这些区域之间进行路由信息的交换和转发。
ABR设备规则:
- 至少连接两个区域
- 连接的区域中至少有一个是区域0
- 在区域0中至少存在一个活跃的邻居
ABR最基本功能:传递区域间路由信息
ABR有以下主要功能:
- 区域间路由信息交换:ABR负责与相邻区域的ABR交换路由信息,以确保不同区域之间的路由信息得到传递。
- 路由聚合:ABR将来自不同区域的路由信息进行聚合,以减少整个域内的路由信息数量。这样可以提高网络的可扩展性。
- 路由策略的应用:ABR可以根据需要对路由信息进行策略调整和过滤,以控制不同区域之间的路由信息传递范围。
- 区域边界的维护:ABR负责维护区域边界的连通性,以确保不同区域之间的通信能够正常进行
如果一台路由器的多个接口分别接入到了多个不同的区域,则该设备会为每一个区域单独维护一套LSDB。
要求:
1、OSPF要求域中的所有非骨干区域(区域ID不为0)都必须与Area0相连
2、骨干区域不能被分割
OSPF为了保证所有工程师遵循两条区域划分规则,作出如下规定:
-
非骨干区域之间不允许直接相互发布区域间路由信息。--------因为不存在ABR设备
-
从非骨干区域收到的路由信息,ABR能接收但不会使用这条路由信息-----OSPF的区域水平分割机制(从一个区域学习到的路由信息,不能再传递回该区域)。
OSPF有如下规定:
- 对于伪ABR设备,不允许转发区域间路由信息。
- 对于真是ABR设备:
- 可以将直连的非骨干区域的区域内路由信息传递给骨干区域
- 可以将直连的骨干区域的区域内路由信息传递给非骨干区域
- 能够将自己从骨干区域学习到的域间路由信息传递给非骨干区域
路由器角色
- 内部路由器---IR---所有接口都接入同一个OSPF区域
- 骨干路由器---BR---接入Area0的路由器
- 区域边界路由器---ABR
- AS边界路由器---ASBR
- 工作在OSPF自治系统的边界,负责将OSPF域外的路由引入到本OSPF域中。
- 设备连接在不同的AS,且具有活跃的邻居。
- 该设备执行了重发布操作。
二、OSPF多区域划分配置(华为)
拓扑设计
在这个拓扑中,我们有一个核心区域(Area 0)和三个子区域(Area 1、Area 2、Area 3)。每个子区域都连接到核心区域,并且各自都有一些内部网络
配置步骤
步骤1:基本配置
首先,我们需要进行基本的设备配置。
步骤2:配置区域间连接
在OSPF多区域网络中,区域间连接是非常重要的。我们需要为每个区域配置适当的连接。
以下是在路由器上配置区域间连接的示例:
配置R1的区域间连接
在R1上创建虚拟接口
[R1] interface vlanif 10
[R1-Vlanif10] ip address 10.0.0.1 255.255.255.0
[R1-Vlanif10] ospf network-type p2p
将虚拟接口添加到区域0
[R1] ospf 1
[R1-ospf-1] area 0
[R1-ospf-1-area-0] network 10.0.0.0 0.0.0.255
将R1的物理接口添加到相应区域
[R1] interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0] ip address 192.168.1.1 255.255.255.0
[R1-GigabitEthernet0/0/0] ospf network-type p2p
[R1-GigabitEthernet0/0/0] ospf 1 area 1
配置R1与R2的区域间连接
[R1] ospf 1
[R1-ospf-1] area 1
[R1-ospf-1-area-1] network 192.168.1.0 0.0.0.255
[R1-ospf-1-area-1] network 192.168.2.0 0.0.0.255
配置R2的区域间连接
在R2上创建虚拟接口
[R2] interface vlanif 10
[R2-Vlanif10] ip address 10.0.0.2 255.255.255.0
[R2-Vlanif10] ospf network-type p2p
将虚拟接口添加到区域0
[R2] ospf 1
[R2-ospf-1] area 0
[R2-ospf-1-area-0] network 10.0.0.0 0.0.0.255
将R2的物理接口添加到相应区域
[R2] interface GigabitEthernet 0/0/0
[R2-GigabitEthernet0/0/0] ip address 192.168.2.1 255.255.255.0
[R2-GigabitEthernet0/0/0] ospf network-type p2p
[R2-GigabitEthernet0/0/0] ospf 1 area 2
配置R2与R1和R3的区域间连接
[R2] ospf 1
[R2-ospf-1] area 2
[R2-ospf-1-area-2] network 192.168.2.0 0.0.0.255
[R2-ospf-1-area-2] network 192.168.3.0 0.0.0.255
步骤3:配置区域内路由
接下来,我们需要在每个区域内配置区域内路由。以下是在路由器上配置区域内路由的示例:
在Area 1中配置区域内路由
[R1] ospf 1
[R1-ospf-1] area 1
[R1-ospf-1-area-1] network 192.168.1.0 0.0.0.255
[R1-ospf-1-area-1] network 10.1.1.0 0.0.0.255
在Area 2中配置区域内路由
[R2] ospf 1
[R2-ospf-1] area 2
[R2-ospf-1-area-2] network 192.168.2.0 0.0.0.255
[R2-ospf-1-area-2] network 10.2.2.0 0.0.0.255
在Area 3中配置区域内路由
[R2] ospf 1
[R2-ospf-1] area 3
[R2-ospf-1-area-3] network 192.168.3.0 0.0.0.255
[R2-ospf-1-area-3] network 10.3.3.0 0.0.0.255
步骤4:验证配置
最后,我们需要验证配置是否正常运行。可以通过以下命令验证OSPF邻居关系和路由信息:
[R1] display ospf peer
[R1] display ospf routing-table
[R2] display ospf peer
[R2] display ospf routing-table
三、解决案例
由于网络升级、合并、割接等操作;或者因为网络单点故障原因,导致网络出现不规则区域划分,从而导致网络出现数据通讯障碍问题。
最根本的解决方案:修改OSPF规划和配置,使得整个OSPF域满足区域划分要求。
OSPF路由项开销值——cost =路由传递方向上所经过没一台路由器如接口开值之和
第一种解决方式,使用tunnel隧道
在R2和R3之间构建一个GRE隧道,将该隧道宣告进骨干区域,实现将R3设备变为ABR设备。
使用该方式的问题:
-
可以产生选路不佳。
-
会造成重复更新
-
因为虚拟链路的存在,R2和R3之间需要建立邻居。导致在维护邻居时使用的hello报文消耗中间区域资源。
第二种解决方案,虚链路---Vlink
思路:使用一个合法的ABR设备为伪ABR设备进行授权,授予其可以执行ABR功能的权限。
[r2-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3
[r3-ospf-1-area-0.0.0.1]vlink-peer 2.2.2.2
注意:需要在穿越的区域中进行配置,并且配置的是RID值,而非邻居IP地址。
虚链路的配置条件:只能穿越一个区域。原因在于配置时使用的时RID,而RID值只能通过TOPO信息寻找,而跨区域时无法找到相应RID值,故数据无法传输。
查看Vlink邻居关系
Vlink被视作为骨干区域的一段延伸(Vlink永远属于Area 0)
使用该种方式的问题:
-
虚链路只能穿越一个区域。
-
虚链路的两端节点需要通过hello报文进行维护,导致需要周期性发送数据,从而消耗被穿越区域的资源。
Vlink不能再骨干区域进行配置。
Vlink不仅仅应用在解决不规则区域,还可以修复一些次优路径或者骨干区域不健壮问题。Vlink还可以解决没有骨干区域的场景。
当Vlink两端节点选择不当时,可能会引发环路问题
第三种解决方式,多进程双向重发布
网络中最常用的方式
将R3设备运行在不同的路由区域,这种设备会被称为是ASBR设备。
重发布是在运行了不同协议或不同进程的边界设备(ASBR)上,将一种协议按照另一种协议的规则发布出去
[r3-ospf-1-area-0.0.0.2]undo network 34.0.0.3 0.0.0.0
[r3-ospf-1]undo area 2
[r3]ospf 100 router-id 3.3.3.3
[r3-ospf-100]area 2
[r3-ospf-100-area-0.0.0.2]network 34.0.0.3 0.0.0.0
[r3-ospf-1]import-route ospf 100 ----将通过OSPF 100学习到的路由以及本地发布到OSPF 100的路由信息重新引入到OSPF 1当中
[r3-ospf-100]import-route ospf 1
协议标志为O_ASE代表该条路由信息时OSPF的域外路由信息,其优先级被设定为150。
该解决方式,会使全网设备正常学习所有路由信息,并且不存在选路不佳以及资源消耗问题。
多进程一般用于网络隔离使用。
骨干链路单点故障
Vlink环路问题
环路:
- 如果R2做了汇总,且汇总结果为10.0.0.0/8
- 将该汇总路由发送给Area 1,而R4设备从Area 1接收该汇总路由时,仅接收不使用(OSPF区域水平分割原理)
- 但是R4会接收通过Vlink链路传递来的Area 0区域的所有拓扑信息,从而生成路由信息
- 为了减少Area 2区域的路由信息,故R4也需要进行汇总操作,汇总结果为10.1.0.0/16
- R2和R4汇总的路由均传递给R3,而因为最大掩码匹配规则,R3选择R4传递的路由,而R4真实数据传递的吓一跳为R3,导致环路产生。
解决方案:OSPF规定,vlink所在的非骨干区域,不能传递聚合路由。也就是说,ABR设备不能向配置了Vlink链路的区域传递聚合路由信息