主页 > 网络知识 > 关于OSPF区域划分,你最想知道的都在这里了!

关于OSPF区域划分,你最想知道的都在这里了!

OSPF 区域划分

首先,OSPF 路由协议是支持多区域划分的。在一个最为简单的 OSPF 多区域网络环境中,OSPF 需采用两级分层结构。

即:骨干区域--Area 0

普通区域--非 Area 0 区域

并同时需按照普通区域要直连骨干区域,骨干区域要直连的模式搭建网络环境。

因为 OSPF 路由协议是链路状态路由协议,同时以自己为根节点,通过 SPF 算法计算路由,从而得出自己的路由表。

假设多区域的 OSPF 中没有骨干 Area 0 ,那么,多区域的 OSPF 中将不会传播域间路由信息。

如图所示:没有区域 0 不能传播域间路由信息

出现此现象,是因为当前 OSPF 环境中无 ABR 设备存在,针对该拓扑环境,我们可用 vlink(虚链路)来解决此问题,但如果要基于该环境实现全网互连互通,就需将 Vlink 部署在 R2 与 R3 设备上,基于区域 2 做 Vlink。

命令如下:

再次观察相关设备路由表,此处只拿 R1 举例

可发现已通过 OSPF 路由协议学习到非直连网段路由信息

但此时大家要注意的是,通过虚连接,两台 ABR 之间直接传递 OSPF 报文信息,他们之间的 OSPF 路由器只是起到一个转发报文的作用。

由于 OSPF 协议报文的目的地址不是这些路由器,所以这些报文对于他们而言是透明的,只是当作普通的 IP 报文来转发。

并且大家在部署虚链路时还需避免如下几点:

1.虚连接必须在两端同时配置方可生效;

2.为虚连接两端提供一条非骨干区域内部路由的区域称为传输区域,传输区域不能是末节;

3.虚链路永远只能属于区域 0,如果针对区域 0 起了认证,必须对虚链路也起同样的认证;

4.虚链路所经过的区域(transit area)不能对区域 0 的路由做汇总,为了防环。

Virtual-link 是为了解决 OSPF 的不规则区域问题而产生的,正常情况下 OSPF 的所有非骨干区域都要直接和骨干区域 (area0) 相连,如果由于前期规划问题等原因导致某个非骨干区域必须通过另一个非骨干区域来连接骨干区域的话,就可使用到 virtual-link,但一般 virtual-link 只作为临时解决方案来使用。

干货第二波

区域 0 被分割

如图所示:

在当前网络环境中,路由器 C 访问 路由器 D 的 g0/0/1 接口路径走 C-A-B-D ,但如果当路由器 A 与路由器 B 之间的链路故障导致区域 0 被分割,此时路由器 C 是不能访问路由器 D 的 g0/0/1 接口地址的,原因是因为 OSPF 的 3LSA 的防环机制---ABR 设备不接收来自骨干区域的 3LSA 做域间路由计算。

区域 0 被分割后如何去评判 ABR 设备是否能访问对端区域 0 的路由?

1.如果 ABR 设备(路由器 C)还存在区域 0 中 Full 的邻接关系,则 ABR 是不能访问对端区域 0 的;

2.如果 ABR 设备(路由器 C)不存在区域 0 中 Full 的邻接关系,则 ABR 是可以访问对端区域 0 的。

因为当 ABR 设备(路由器 C)存在有区域 0 的邻接关系时,会为区域 0 构建一颗最短路径树,在区域 0 的所有路由器都会在这颗树上,而 ABR 设备是骨干路由器,也在这颗树上。

当路由器 A 与路由器 B 之间的邻居关系 Down 掉后,路由器 D 会为区域 0 的网络产生 3LSA 通过区域 1 传递给路由器 C ,但是路由器 C 在区域 0 的最短路径树上看不到路由器 D ,所以忽略路由器 D 产生的 3LSA ,所以不会计算出路由,也就导致了路由器 C 访问不到对端区域 0 的路由。

而如果此时需解决路由器 C 访问对端区域 0 的路由,则可以在路由器 C 与路由器 D 之间建立 virtual-link

但如果是路由器 A 与路由器 C 之间的邻居关系 Down ,但是接口还是 UP 的,此时路由器 D 访问路由器 A 与路由器 C 之间的网络,路径是走 D-B-A。

因为此时路由器 C 产生的 3LSA 经区域 1 泛洪至路由器 D,路由器 D 是拒绝从非骨干区域收到路由器 C 通告的 3LSA,所以路由器 D 会通过 D-B-A 的路径访问 A-C 间的网络,因为是区域内的路由。

 

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!