七类LSA转五类LSA存在环路的场景分析

一、NSSA区域

NSSA区域是STUB区域的变形,与STUB区域有许多相似的地方。NSSA区域也不允许第五类LSA注入,但可以允许第七类LSA注入。来源于外部路由的第七类LSA由NSSA区域的ASBR产生,在NSSA区域内传播。当第七类LSA由ASBR到达NSSA的ABR时,则ABR将第七类LSA转换成第五类LSA,传播到其他区域。

NSSA区域有诸多好处的同时也存在环路的风险,本文设计一个场景来分析NSSA七类LSA转五类LSA时如何产生环路。

二、拓扑描述

图1 所示为七类LSA转五类LSA存在环路的场景图。

   8.png

1、组网说明

如图1所示,共有四台路由器,R2、R3、R4相互间用以太网相连,R2与R1间用串口相连。

2、IGP规划

整网运行OSPF协议,R2与R4、R3与R4间的链路运行在OSPF区域0,R1与R2、R2与R3间的链路运行在区域1,区域1为NSSA区域。R1为NSSA区域的ASBR,将外部网段100.1.1.0/24引入区域1。路由器的router id 即loopback0,loopback0地址为路由器编号,如R1的router id 为1.1.1.1,Looback0发布进OSPF进程中。

三、环路场景

1、场景说明

如图1所示,R1引入外部路由100.1.1.0/24,其所在区域为ASBR,生成7类LSA,传递到同区域的ABR,R2和R3。由于R3的router id 大于R2的router id,所以由R3作7类转5类的操作,产生的5类LSA在区域0泛洪。

7类LSA的FA非0,在转成5类LSA时默认情况下FA地址也非0。只有其adv router发生了变化,在此场景中在R3上作一个操作,由7类LSA转成5类LSA后其FA由非0变成全0。

2、环路形成过程

LSA形成与传递方向分析:R1为NSSA区域的ASBR,在引入外部路由100.1.1.0/24后,生成7类LSA。假定其转发地址FA为R1的Router ID,传递到区域1中的ABR R2和R3,此时R2和R3对比Router ID,发现R3的Router ID大,所以作了七类转五类的操作,而R2未作七类转五类的操作。此时R3生成外部路由100.1.1.0/24的五类LSA,由于R3上作了NSSA  suppress-forwarding-address的操作,所以生成的FA地址为0,此时泛洪进区域0的5类LSA其FA为全0。此时在R2、R3、R4的LSDB表里面均有此条五类LSA。

数据包转发方向分析:假设R4需要访问100.1.1.0/24网段,查找由LSDB表生成的路由表发现,五类LSA的adv router 为R3,所以R4将数据包扔给R3。R3收到数据包后,同样查找路由表,发现100.1.1.0/24所对应的路由是七类LSA产生的路由,查看七类LSA,发现其FA为非0,所以将数据包扔给R1。通过递归查找路由表,去往1.1.1.1的路由下一跳是R2与R3互联的接口,所以将数据包扔给R2。R2收到数据包,我们首先分析其LSDB,其LSDB中既有R1生成的7类LSA,又有R3生成的五类LSA,而到底哪条LSA生成路由表,则得比较其类型以及cost,R1引入外部路由默认是Type 2的外部路由,在R3上由7转5生成的默认情况下也是Type 2类的外部路由,此时在R2上作LS ID同为100.1.1.0的7类LSA和5类LSA比较:同是二类,如果外部开销相同,则比较内部开销,LSA 5的内部开销为R2到R4再到R3的链路的开销,且全部是以太网。LSA7的内部开销为R2到R1的链路开销,链路类型为串行链路。在未手动更改链链路开销的情况下,LSA 5的内部开销明显小于LSA 7的内部开销,所以R2到100.1.1.0/24的路由表由5类LSA生成,下一跳指向R4,即R2将去往100.1.1.0的数据包扔给R4。

如上分析,环路形成。

四、说明

以上场景仅作为学习交流使用,不作为实际组网中的应用。以上场景中存在诸多不会在实际项目中出现的配置,如在R3上将NSSA区域配置成nssa suppress-forwarding-address,导致R4不能知道此域中是哪台真实设备通告了100.1.1.0/24路由。

 


2017年03月