OSPF区域设计(5)

2020-09-01  本文已影响0人  虽然逆风依然不羁

内容概要:

1、ospf区域结构及防环设计

2、3类LSA及区域间路由通告

3、区域间路由计算

4、区域分割及vlink原理


当一个大型网络中的路由器都运行OSPF路由协议时,路由器数量的过多会导致LSDB非常庞大,占用大量的存储空间,并使得SPF计算的复杂度及开销增加,导致路由器负担很重;

尤其是网络规模很大,拓扑结构发送变化的概率也增大,网络经常处于动荡之中,变化的网络会导致有大量的OSPF LSA泛洪在网络中传递,增加了网络的负担;

OSPF把整个路由域划分为多个区域以减少区域泛洪的影响;

每个区域包含多台OSPF路由器,不同区域使用不同区域ID来标识;

OSPF划分区域是以路由器为边界的,每条链路只能属于一个区域;

边界路由器上可能有多条链路分属于不同区域,允许OSPF的接口必须指明属于哪一个区域;

一、OSPF区域结构及防环设计


OSPF定义的区域类型有四种:骨干区域(Area 0 )、普通区域、Stub区域及NSSA区域;

OSPF对骨干区域(Area0)有特定的要求:

(1)骨干区域有且只有一个,不能分割;

(2)所有其他区域必须连接到骨干区域;

(3)所有区域间路由必须经骨干区域传递,没有连接到骨干区域,将不会学到其他区域路由;

OSPF这种区域结构设计用来避免区域间路由环路;

如果没有其他区域围着Area0的这一设计要求,为使每个区域都可以学到路由,必然要求3类LSA可以在各个区域间流动,这样就会出现离开一个区域的3类LSA,经过其他区域再流回来的可能性,如下图,R7学到R1的3类LSA的路由,又从R6学到了这条路由的3类LSA,如果R7选择了出现路由环路;

为了避免上述环路,有区域间水平分割原则如下:

(1)不允许非ABR产生3类lSA;

(2)通过ABR1进入非骨干区域的3类LSA的路由,若ABR2在骨干区域有ospf邻居,则该3类LSA的路由不进ABR2的路由表。ABR1和ABR2是处在骨干区域0和非骨干区域1间的两台ABR;

(3)没有出现在ABR路由表的路由不会通告给其他区域,这是ABR的矢量特性;

二、3类LSA及区域间路由通告


在Area3中,区域内的网络通过1类LSA(stub类型Link)和2类LSA在区域内泛洪;

Area3的ABR R1产生3类LSA向Area0通告Area3的路由,Area0学习到Area3的路由;

Area0的ABR R2和R3产生3类LSA把Area0的区域间路由继续向Area1和Area2通告;

3类LSA特性如下:

(1)ABR为区域内的每条OSPF路由各产生一个3类LSA向其他区域通告;

(2)边界有多个ABR,则每个ABR都产生3类LSA来通告区域间路由;

(3)3类LSA传递的是区域间路由,由每个区域的ABR产生,仅在该区域内泛洪;

(4)OSPF在ABR上具有矢量特性,只有出现在ABR路由表里的路由才会被通告给邻居区域;

(5)路由进入其他区域后,再由该区域的ABR产生3类LSA继续泛洪;

(6)计算路由时,路由器计算自身到本区域ABR的成本加上3类LSA在区域间传递的成本,就是当前路由器到目的网络的成本;

(7)如果ABR路由器上路由表中的某条OSPF路由不再可达,则ABR会立即产生一份age为MaxAge(3600s)的3类LSA向邻居区域泛洪,用于在邻居区域撤销该网络;

3类LSA由ABR产生,在区域内泛洪,携带其他区域的网络信息,不携带拓扑信息;

(1)Ls id:网络号;

(2)Net Mask:子网掩码;

(3)Metric:ABR到目标网络的最小开销值;

三、区域间路由计算


路由器计算其他区域的路由,是把3类LSA的路由作为叶子节点直接挂在本区域的ABR上,所以区域间路由的任何变化(如成本变化、路由出现或消失),不会影响到SPF最短路径树变化;

叶子节点变化所引起的计算为PRC(Partial Route Calculate),这种变化对网络的影响比较小;

四、区域分割及vLink原理


1、区域分割

OSPF对骨干区域(Area0)有特定的要求:

(1)骨干区域有且只有一个,即不能分割;

(2)其他区域必须围绕骨干区域;

(3)所有非骨干区域间的路由及数据流量互访,必须经过骨干区域;

区域分割主要分为普通区域分割和骨干区域分割。

(1)普通区域分割

普通区域如果出现分割或断裂而成为两个独立的区域,这种场景下,路由可以正常在区域间传递且全网可达;

原因是3类LSA没有起源区域号标识,经骨干区域进入其他区域符合区域结构设计;

vLink是用于连接分割的骨干区域的,不能用于普通区域分割的场景;

(2)骨干区域分割

骨干区域分割,可通过vlink方案解决;

2、vlink的应用场景:

场景1:

骨干区域分割,需要vlink连接两个断开的骨干区域;

场景2:

其他区域没有直接连接到骨干区域,需要vlink逻辑连接到骨干区域;

场景3:

解决次优路径问题及增加骨干区域的可靠性;

如下图,存在次优路径及骨干区域不健壮的问题。

R3和R4间在Area1上创建vlink有两个作用:

作用1:

提高Area0健壮性,避免R1和R2之间链路断开而导致的Area0分裂;

作用2:

若R4访问R3的G0/0/0接口,如果不做vlink,需要经过骨干区域的R2和R1,而做了vlink后,R4访问G0/0/0经过R5到R3,可解决次优路径问题;

3、vLink特性

(1)vlink是工作在transit area上连接两个ABR的虚拟链路,该链路属于区域0,其链路成本为transit area内两个ABR节点间的最优路径的成本;

(2)vlink的单播地址仅根据transit area内两个ABR产生的Router LSA决定,如果找到多个IP地址,取到达对端ABR成本最小的链路接口地址作为vlink单播地址;如果负载分担的话,随意选择或第一个地址;

(3)vlink有正常的ospf邻居关系,周期性发送hello及LSA刷新,如果联系失去四个hello报文,则vlink邻居关系down,与直连链路上判断邻居失效方式一致;若两个ABR路由器物理直连,vlink建立后,物理链路断开或邻居断开,都会导致vlink立即中断;

(4)vlink可传递1/2/3/4类的LSA,不传递其他类型LSA,5类LSA可泛洪到整个路由域;

(5)vlink邻居建立起来后,R3也是连接Area0的ABR,R2和R3会在其Area0的Router LSA中添加vlink类型的Link;

R2上骨干区域内一类LSA中vlink类型的Link如下:

R3上骨干区域内一类LSA中vlink类型的Link如下:

vlink的两个内容:

1)Link ID为vlink连接的邻居路由器的RouterID;

2)Link Data为vlink使用的单播IP地址;

骨干区域Area0通过vlink延伸至R3;

(6)vlink仅用来传递LSA,并不传递数据。

控制平面,Area0和Area2通过vlink交换1/2/3/4类LSA;

转发平面,Area0和Area2间的数据传输要经过transit区域内的最优路径,这个路径由ABR根据transit区域的3类LSA,结合transit区域拓扑计算决定;

Area2的ABR先通过vlink了解到area0中的网络,再根据transit区域中通告相应网络的3类LSA确定访问Area0中该网络的路径。

4、vlink不足

(1)vlink使transit区域不能对area0路由做聚合;

Area0的路由通过ABR R2通告到Area1,为减少Area1中路由的数量,在边界ABR R2上做路由的聚合;

但由于Area1上创建vlink后,R2无法再对Area0路由做聚合,原因是为了避免在Transit Area内出现路由环路:

如果transit区域ABR可以对骨干区域路由做聚合,Area1的的两个ABR R2、R4都可以向transit区域通告聚合的3类LSA;

R2产生10.0.0.0/8的3类LSA,R4产生10.1.0.0/16的3类LSA,R3会收到R2和R4通告的聚合3类LSA,R3上10.0.0.0/8路由下一跳指向R2,而10.1.0.0/16路由下一跳指向R4;

R3访问10.1.3.1的数据包,R3路由报文到R4,R4上有vlink所以路由表有到达10.1.1.0/24、10.1.2.0/24、10.1.3.0/24的Area0的路由并指向R3,R4又把流量送到R3,路由环路出现;

vlink做好后,vlink端点路由器都将成为ABR并在区域内传递路由,可以执行聚合/区域间路由过滤,(1)(2)处不会产生聚合路由,Area0中明细路由会通告Area1,仅(3)处会产生聚合路由;

(2)vlink设计不当,会导致网络出现环路;

场景说明:R1和R7间流量互访所使用的路径,R3和R6间建立vlink。

1)在没有建立vlink连接之前

OSPF区域结构要求非0区域必须连接骨干区域,Area0被分割为两处;

10.1.1.1/32路由经ABR R2和R3进入Area1,由于ospf区域间水平分割原则,ABR R5和R6不接收非骨干区域学到的3类LSA路由10.1.1.1/32;

同理,ABR R2和R3也不接收非骨干区域学到的3类LSA路由10.1.7.7/32,左右两侧的Area0不能互访;

若在R5或R6上配置vlink,R5或R6可以通过vlink学到骨干区域泛洪过来的1类LSA路由,再根据Area1中泛洪的3类LSA路由计算访问路径;

2)在R3和R6间建立vlink连接后

R1访问R7的流量    10.1.1.1 --> 10.1.7.7

1、R1通过R3通告的置V-bit的RouterLSA,R1把访问远端Area0的数据包路由到R3;

2、R3是ABR,它有Area0的全部LSA及Transit区域的LSA,所以在计算访问路径时考虑Area0和Area1中LSA;

R3根据R5和R6通告的3类LSA路由10.1.7.7,其路由成本分别是2和11,再结合Area1的拓扑计算,R3计算出到10.1.7.7的最优路径是R3、R4、R5、R7,数据包被R3路由到R4;

3、R4根据区域间3类LSA路由10.1.7.7,计算出到达10.1.7.7的下一跳是R5;

4、所以R1访问R7的最终路径是R1、R3、R4、R5、R7;

R7访问R1的回程流量    10.1.7.7 --> 10.1.1.1

1、R7处在Area0,计算到Area0中R1上的网络,路由指向V置位的ABR R6;

2、R6是ABR,通过vlink学到包含10.1.1.1/32的1类LSA,R6到达该路由必然通过transit区域;

R6根据ABR R2和R3通告的3类LSA路由10.1.1.1/32,其路由成本是2和12,再结合Area1拓扑计算,R6计算出访问10.1.1.1/32路由的最优路径为R6、R5、R4、R2、R1;

3、但是R5处在Area0,计算到Area0中R1上的网络,路由指向R7,转发给V置位的ABR R6,所以数据包在R6、R5、R7、R6路径上,转发出现环路;

vlink设计不当会形成环路总结:

1)ABR只要在骨干区域有邻接,不接收其他区域的3类LSA;

2)如果ABR是vlink端点,可以根据transit区域的3类LSA,结合transit区域拓扑计算,计算出到骨干区域的路由;

3)vlink在R3和R6间建立,但数据转发不一定要经过R3和R6,控制平面和数据平面分开;

上一篇下一篇

猜你喜欢

热点阅读