OSPF路由协议,对于具有一定基础的同学来说这个协议一点都不陌生,该协议是企业网中部署底层网络的一个重要内部网关协议。当部署大型企业网络时,如果采用ospf协议作为构建底层网络的话,那么建议使用ospf多区域,其不仅方便管理而且可以减少网络震荡对网络的影响,而连接这些不同区域的路由器就是今天的主角——ABR(即区域边界路由器)。

在ospf中这些ABR上会出现一些很有趣的现象:真伪ABR;有同学会说了:不是吧,连ABR还都有真假?确实,ABR还真有真假之分;在验证前,我们先回顾下成为真正ABR的条件有哪些?如下图1所示
OSPF知识点中的一个非常有趣的现象——验证真伪ABR
图1:HDX产品手册定义的ABR
以上是华为AR产品手册对ABR的定义,根据该产品手册的定义只要满足两个条件的设备就可以被称为ABR:
1.该类设备可以同时属于两个以上的区域
2.必须其中一个必须是骨干区域
很多同学看后,会说:对啊 ,就是这样的!做为一个有节操的老师,我只能说华为HDX对于ABR的定义不够准确,说话只说了三分之二,还有三分之一华为HDX没有明说,接下来我们先按照华为官方的说法来验证它的解释是否正确。接下来我们就开始验证这个有趣的现象,如图2所示:
OSPF知识点中的一个非常有趣的现象——验证真伪ABR
图2:ospf多区域拓扑
实验拓扑说明:
AR1和AR2之间属于area0;AR2和AR3之间属于area1,AR3和AR4之间是属于AREA0
OSPF知识点中的一个非常有趣的现象——验证真伪ABR
OSPF知识点中的一个非常有趣的现象——验证真伪ABR

此时AR1、AR2、AR3和AR4之间成功建立了ospf邻接关系
1.我们先将AR1的loopback0的ip地址信息宣告进ospf中,此时分别在R3查看ip路由表看其是否能接收AR1的loopback0的ip地址信息
[R1-LoopBack0]ospf enable 1 area 0
OSPF知识点中的一个非常有趣的现象——验证真伪ABR
此时你会发现,R3根本没有学习到R1传来的11.11.11.11的路由信息,这是怎么一回事呢?难道R2没有给R3传递一个关于11.11.11.11的3类lsa
OSPF知识点中的一个非常有趣的现象——验证真伪ABR
根据上图发现R2的lsdb中,R2确实给R3发送了关于11.11.11.11的3类lsa,但是为啥R3没有将该lsa的信息放入到自己的ip路由表呢?
原因是因为此时的AR3是一个真正的ABR,有一个定理:就是真正的ABR可以接受来自非骨干区域AREA1的3类lsa,但是不会将该3类lsa加入到自己的路由表中。
看似华为HDX对ABR的定义是没错的。那么接下来,我们将实验修改下将R3和R4之间的链路shutdown,同时在R3的loopback0口上开启ospf功能并且该接口宣告进area0。
[R3-LoopBack0]ospf enable 1 area 0
此时我们再看下R3是否满足华为HDX对于ABR的定义,答案是肯定的。如果此时的R3如果是真正的ABR,那么它一定和上面的场景是一样的,就是其只会学习R2通告过来的11.11.11.11的3类lsa,但是不会将其加入到自己的路由表中。
接下来我们看下R3的lsdb表和ip路由表的信息:
OSPF知识点中的一个非常有趣的现象——验证真伪ABR
OSPF知识点中的一个非常有趣的现象——验证真伪ABR

是不是不敢相信,此时R3居然可以学习到11网段的路由信息并且放入到自己的ip路由表中了。此时很多同学就一定会有疑惑:啊,此时R3确实满足华为HDX对ABR的定义啊,为啥它还能将到非骨干网传来的3类lsa放入到自己的路由表呢?好,接下来就开始解开谜底了。
谜底揭开:此时R3根本不是真正的ABR,它是一个伪ABR,只有伪ABR才能从非骨干区域传递的3类lsa放入到自己的路由表中。而华为HDX里面的对ABR的定义是不完整的,真正的的ABR的定义是这样的,即其要满足三个条件:
(1)该类设备可以同时属于两个以上的区域
(2)必须其中一个必须是骨干区域
(3)在骨干区域内必须有一个活动对的邻接关系(包括虚连接)
此时大家应该是豁然开朗了,在第一实验中R3满足了这三个条件,所以其是真正的ABR,而第二实验中R3由于仅仅是让自己的loopback0宣告进ospf的area0中,但是此时area0并不存在一个活动的邻接关系,所以此时的AR3就是一个伪ABR。
这就是我们今天所探讨的一个非常有趣的现象,IE中还有很多像这样好玩的东西,希望大家加入泛趣科技,我们一起去探讨发现IE中存在的有趣的现象,谢谢大家!