深度剖析OSPF协议(6类链路通告和4类区域设置)

前述

OSPF的链路状态通知是OSPF理论知识的精髓、难点。了解链路状态通知的工作状态,有助于我们更好的维护网络。本文的讲解需要读者对OSPF有大致了解,会简单的配置,理解OSPF的“area”概念。在讲解实验之前,我们先弄清楚几个概念。

边界路由器分类

  • 区域边界路由器(ABR):位于两个区域(area)之间的路由器。
  • 自治系统边界路由器(ASBR):位于OSPF和其它路由区域之间的路由器。

链路状态通知的分类

  • LSA1:区域内所有路由器都会发送“消息”,用于构建同区域(area)的网络拓扑图。
  • LSA2:区域内指定路由器发送的“消息”,这里注意,在广播网络的区域,由指定路由器(DR)发送的,在某些点对点网络中,不需要选举指定路由器(DR),就没有该“消息”。
  • LSA3:区域间,由区域边界路由器(ABR)发送的,用于不同区域间“消息”的转发,使域内路由器能学习到域外的网络信息。
  • LSA4:自治系统边界路由器( ASBR)发送的,用于向OSPF区域宣告自己的存在
  • LSA5:自治系统边界路由器(ASBR)发送的,用于向OSPF区域宣告“外部网络”,即非OSPF区域的网络信息。
  • LSA7:和LSA5类似,也是由ASBR发送的,也是宣告非OSPF区域的网络信息,是非绝对末梢区域(nssa)特有的链路通告,这个后面讲解。

OSPF的四个特殊区域

  • 末梢区域:该区域屏蔽LSA5,会向区域中引入一条默认路由。
  • 完全末梢区域:该区域屏蔽LSA4、LSA3、LSA5,它比前者更加严格,连域间路由信息也会被屏蔽。

注意:以上两个区域不允许主干区域(area 0)、不允许虚链路存在、且无自治系统边界路由器(ASBR)。

  • 非绝对末梢区域:该区域类似于末梢区域,它也会屏蔽LSA5,但该区域允许自治系统边界路由器(ASBR)的存在,它将LSA5转变为LSA7,向区域内发送。
  • 完全非绝对末梢区域:该区域类似于完全末梢区域,它不仅会屏蔽LSA5,还会屏蔽LSA3和LSA4,同时也会将LSA5转变为LSA7,向区域内发送。

实验过程

实验讲解环境:Cisco Packet Tracer 7.2

深度剖析OSPF协议(6类链路通告和4类区域设置)

网络拓扑图

以上网络拓扑图中,基础的OSPF已经配置完毕,下面我们先来研究一下LSA,这里以R3举例,在R3上打入show ip ospf database,如下图所示:

深度剖析OSPF协议(6类链路通告和4类区域设置)

图2 show ip ospf database

该图中,我们可以清楚的看到,LSA1有3条记录,表示在area1区域中有3台路由器,R1、R3和R4。其中R4是指定路由器(DR),所以LSA2由路由器4发送。LSA3中,包含了area0中的两个互连网段10.0.0.0/30和10.0.0.4/30,以及三个局域网段172.(23-25).0.0/16,也包含了area2中的广播网段192.168.1.0/24和三个局域网段172.(17-19).0.0/16,所以,LSA3是域间路由信息。而域外的LSA5中包含了RIP网段的一个互连网段10.0.0.8/30和三个局域网段172.(20-22).0.0/16。所以,LSA5是域外路由信息。

实验操作讲解

深度剖析OSPF协议(6类链路通告和4类区域设置)

图3 R3路由表

图3中,正常配置OSPF后,R3的路由表,我们发现即使在模拟环境下,R3的路由表也略显“臃肿”,这样会降低路由器的工作效率,OSPF中“区域”的配置,最终目的就是使路由表能够“瘦身”,从而提高路由器的工作效率,最终提高我们追求的网速。

深度剖析OSPF协议(6类链路通告和4类区域设置)

图4 area1区域

观察area1区域,发现该区域出口点只有一个R1,也就是说域外路由不需要逐条学习,只需要用一条默认路由替代就可以了,这里引出“末梢区域”的概念,该区域禁止LSA5通告,相当于禁止该区域学习域外路由,而用一条默认路由替代。操作方法是分别在R3、R4、R1上输入Router(config-router)#

area 1 stub 就可以了。

深度剖析OSPF协议(6类链路通告和4类区域设置)

图5 R3路由表

图5中我们可以看到,外部路由都没有了,剩下的是域间路由以及一条默认路由,我们成功为路由表“瘦身”。实验中我们发现,域间路由好像也是多余的,我们还可以进一步将该区域改为“完全末梢区域”,完全末梢区域不仅禁止LSA5通告,也禁止LSA4和LSA3通告,该指令只需要在区域边界路由器(ABR)上输入R1(config-router)#area 1 stub no-summary

就可以了。

深度剖析OSPF协议(6类链路通告和4类区域设置)

图6 R3路由表

图6中,我们仍以R3路由表距离,查看路由表,发现域间路由也没有了!R3路由表“瘦身”成功!

深度剖析OSPF协议(6类链路通告和4类区域设置)

图7 向末梢区域引入两条新路由

图7中,由于网络改造,我们需要把外部两个网络172.(30-31).0.0/16引入到area1,注意,area1是末梢区域,是禁止LSA5通告的,R3变成了自治系统边界路由器(ASBR),末梢区域是不允许ASBR存在的!实际过程中,会出现如下图的错误提示。

深度剖析OSPF协议(6类链路通告和4类区域设置)

图8 末梢区域禁止引入外部路由

那么这个时候我们怎么办?我们引出“非绝对末梢区域”概念,将LSA5转变为LSA7,进行通告就没问题了,而且还保留了末梢区域的基本特性。只需要在area1区域的每台路由器上输入Router(config-router)#

area 1 nssa就可以了。

深度剖析OSPF协议(6类链路通告和4类区域设置)

图9 R4路由表

我们观察R4路由表,发现两条“E2”类型的外部路由被成功引入,但保留了末梢区域的特性,禁止LSA5引入,所以我们看不到来自RIP区域的外部路由条目。但我们发现域间路由又出现了,我们不希望LSA3的通告,希望还是像原来一样,用一条默认路由替代这些域间路由信息,这个时候引出最后一个区域概念:“完全非绝对末梢区域 ”,该区域屏蔽LSA3、LSA4、LSA5,用默认路由代替,但允许LSA7。只需要在区域边界路由器(ABR)上输入R1(config-router)#

area 1 nssa no-summary就可以了。输入好后,我们再观察R4路由表,如下图所示:

深度剖析OSPF协议(6类链路通告和4类区域设置)

图10 R4路由表

最终,我们实现了最终效果,既用一条默认路由屏蔽了LSA5、LSA4、LSA3通告的域外和域间路由信息,也实现了LSA7可以通告给该区域,另外新加入的域外路由条目成功写入路由表!

总结

OSPF配置相对容易,但是真正理解OSPF协议的工作原理,还是有点难度的,通过模拟实验的方式,向大家阐述了链路状态通知(LSA)、末梢区域(stub)、非绝对末梢区域(nssa)等概念,希望对大家深入学习OSPF路由协议带来些许帮助。


分享到:


相關文章: