我们先讲一下ABR

OSPF 区域间路由器的情况有几种:

1.一台路由器链接了多个区域,但是没有链接骨干区域

2.一台路由器链接了多个区域,并且有一个接口属于骨干区域

3.一台路由器链接了多个区域,并且在骨干区域建立了full的邻接关系

什么是ABR?

ABR的定义:连接多个区域,并且在骨干区域有一个活动的接口。

ABR的功能:

1.将直连区域内的最优路由转换成3类LSA,泛洪到其他链接的区域中。

2.讲骨干区域内的3类LSA,继续以3类LSA的形式泛洪到其他直连的非骨干区域内。

当路由器具备ABR特性后,将会在自身产生的1类LSA中的options字段,置位ABR。

华为的特殊情况,当在ospf进程中配置多区域,但是没有宣告接口,也可以将路由器置位ABR,但是不具备ABR的功能。

防环机制原则一

为了避免区域间的环路,OSPF规定不同区域间的路由器交互只能通过ABR实现。

   ABR是连接到骨干区域的,所以在区域设计上规定,所有非骨干区域要连接到

   骨干区域。区域间的通讯需要通过骨干区域,行成逻辑上的星状拓扑,且无环。

OSPF--域间路由计算的防环机制_路由表

现在把R4的环回接口宣告进area0中 那么其他的路由器会学到4.4的路由吗?

OSPF--域间路由计算的防环机制_泛洪_02

OSPF--域间路由计算的防环机制_泛洪_03

OSPF--域间路由计算的防环机制_路由表_04

OSPF--域间路由计算的防环机制_泛洪_05

查看个路由器的ospf的路由表可以看到4.4的路由在R3就断了。


防环机制原则二

1、ABR不会将非骨干区域的3类LSA传递到骨干区域

2、ABR在骨干区域存在邻居的时候,不会计算非骨干区域的3类LSA

3、ABR在骨干区域不存在邻居的时候,会计算非骨干区域的3类LSA

OSPF--域间路由计算的防环机制_R3_06

问题:

1、区域0当中的1.1.1.1/32能否出现在R3的路由表中?为什么?

能出现的,并且已经加表了。因为1.1在区域0中生成1类LSA然后算出最优后在abr(R2)这里转成3类LSA发到区域1中,然后在区域1中泛洪到R3,因为R3也是ABR,并且没有邻居,所以会计算3类的LSA。就能加表进去。

OSPF--域间路由计算的防环机制_域间路由_07

OSPF--域间路由计算的防环机制_R3_08

2、R3在区域0中宣告的3.3.3.3/32能否出现在R2和R1的路由表中?为什么?

不会的。因为R3区域0中宣告3.3后会以3类的LSA转到区域1中,并泛洪,但是到R2的时候,因为R2是abr,并且R2有邻居,存在于区域0中,所以这个3类的LSA只会存在于R2的区域1中,不会计算,更不会加表到路由表中。也不会转发到R1。

OSPF--域间路由计算的防环机制_泛洪_09

OSPF--域间路由计算的防环机制_泛洪_10

3、R5的路由表中是否会有1.1.1.1/32和3.3.3.3/32?为什么?

不会的。因为R4不是ABR,不能够传递3类LSA。

OSPF--域间路由计算的防环机制_R3_11




防环机制原则三

无论cost,1类LSA优于3类LSA

OSPF--域间路由计算的防环机制_域间路由_12

R3可以学到1.1的路由有2个路径,一个是从R1学到的1类LSA,还有一个是从R4学到的3类的LSA,那么应该怎么加表呢?ospf规定,1类的LSA永远大于3类的,所以直接加表1类的LSA。