OSPF不规则区域划分
区域划分
- 非骨干与骨干区域直接相连
- 骨干区域唯一
限制规则:
- 非骨干区域之间不允许直接相互发布区域间路由信息
- OSPF区域水平分割:从非骨干区域收到的路由信息,ABR设备能接收到不能使用(从某区域传出的路由,不能回归到某区域)
不规则区域:
- 远离骨干区域的非骨干
- 不连续的骨干区域
由于网络升级、合并、割接等操作;或者因为网络单点故障原因,导致网络出现不规则区域划分,从而导致网络出现数据通讯障碍问题。
最根本的解决方案:修改OSPF规划和配置,使得整个OSPF域满足区域划分要求。
解决方案
第一种解决方式,使用tunnel隧道
在R2和R3之间构建一个GRE隧道,将该隧道宣告进骨干区域,实现将R3设备变为ABR设备。
使用该方式的问题:
- 可以产生选路不佳。
- 会造成重复更新
- 因为虚拟链路的存在,R2和R3之间需要建立邻居。导致在维护邻居时使用的hello报文消耗中间区域资源。
第二种解决方案,虚链路—Vlink
思路:使用一个合法的ABR设备为伪ABR设备进行授权,授予其可以执行ABR功能的权限。
[r2-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3
[r3-ospf-1-area-0.0.0.1]vlink-peer 2.2.2.2
注意:需要在穿越的区域中进行配置,并且配置的是RID值,而非邻居IP地址。
虚链路的配置条件:只能穿越一个区域。原因在于配置时使用的时RID,而RID值只能通过TOPO信息寻找,而跨区域时无法找到相应RID值,故数据无法传输。
Vlink被视作为骨干区域的一段延伸(Vlink永远属于Area 0)
使用该种方式的问题:
- 虚链路只能穿越一个区域。
- 虚链路的两端节点需要通过hello报文进行维护,导致需要周期性发送数据,从而消耗被穿越区域的资源。
Vlink不能在骨干区域进行配置。
Vlink不仅仅应用在解决不规则区域,还可以修复一些次优路径或者骨干区域不健壮问题。Vlink还可以解决没有骨干区域的场景(例:四台路由,之间分别是区域1、2、3,可以在区域2内两台路由加一个Vlink)。
当Vlink两端节点选择不当时,可能会引发环路问题。
骨干链路单点故障(如果R1与R2之间的物理链路断开,会变成两个骨干区域)
可以在R3与R4之间建立Vlink,就会变成一个骨干区域
有影响的是:
如果不在R3与R4之间建立Vlink,R4向13.0.0.3发送信息会走R2-R1-R3,但建立了Vlink,会走34.0.0.3
可以用[r4]tracert 13.0,0,3 —路径跟踪 来查看
Vlink环路问题
如果ping 5.5.5.5 会失败,因为,R1-R2-R3之间会形成环路,例:从R1去Ping5.5.5.5,R1的下一跳为R2,R2的下一跳为R3,R3的下一跳为R1,原因是,建立Vlink时,R4将R5的路由信息依据Vlink走R3发送给R2,其中经过R3时,R3是ABR设备,看不是骨干区域发来的信息就丢弃,不学习,R2因为建立了Vlink,所以学习后将路由信息发送给R1和R3,R3再次检查发现不是骨干区域的信息,再次丢弃,最后R1接收后转发给R3,R3检查后发现是骨干区域的信息,学习下来。
解决方法:
不在R4与R2之间配置Vlink,在R4与R3之间配置Vlink,路径就是R5-R4-R1-R2。
OSPF是一个无环的路由协议,指的是通过SPF算法计算出来的路由无环,即在区域内部无环,区域间可能会有环路
环路:如果R2做了汇总(只有ABR设备才可以汇总拓扑明细),且汇总结果为10.0.0.0/8。将该汇总路由发送给Area 1,而R4设备从Area 1接收该汇总路由时,仅接收不使用(OSPF区域水平分割原理)。但是R4会接收通过Vlink链路传递来的Area 0区域的所有拓扑信息,从而生成路由信息。为了减少Area 2区域的路由信息,故R4也需要进行汇总操作,汇总结果为10.1.0.0/16。----->R2和R4汇总的路由均传递给R3,而因为最大掩码匹配规则,R3选择R4传递的路由,而R4真实数据传递的吓一跳为R3,导致R4<–>R3环路产生。
解决方案:OSPF规定,vlink所在的非骨干区域,不能传递聚合路由。也就是说,ABR设备不能向配置了Vlink链路的区域传递聚合路由信息。