打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
OSPF for IPv6协议的NSSA区域扩展特性研究
    【摘 要】本文简述了OSPF for IPv6协议下的NSSA区域扩展属性,提出和分析了多ABR进行转换时可能出现的无法学到路由问题,最后在主流厂商现有实现的基础上提出解决方案。
中国论文网 http://www.xzbu.com/8/view-5419160.htm
  【关键词】OSPF for IPv6;NSSA区域;ABR;LSA-type 7
  0 引言
  在数据通信领域,OSPF(Open Shortest Path First-开放最短路径优先)协议因其快速收敛、无自环等特性而广泛使用,并存在适应IPv6的OSPF version3协议,同时OSPF协议扩展属性NSSA(Not So Stubby Area)区域亦适配扩展。
  1 NSSA区域简述
  NSSA区域允许引入自治系统外部路由,由ASBR发布Type7 LSA(NSSA-LSA)通告给本区域。当Type7 LSA到达NSSA的ABR时,由ABR将Type7 LSA转换成Type5 LSA(AS-external-LSA)传播到其他区域。
  图1 OSPFv3划分区域典型组网图
  如图1所示,整个OSPFv3组网被分为区域0、区域1和区域2。区域0是骨干区,区域1配置为NSSA区,区域0和区域1的区域间路由信息会发布到区域2,区域1引入的RIP路由生成的7类LSA在ABR1设备上进行7转5后生成5类LSA发布到骨干区,区域2通过骨干区学到NSSA区域引入的外部路由。
  2 现有协议下NSSA区域的问题
  在实际网络配置中会出现多个ABR链接NSSA区域及骨干区域的情况,这些ABR均具备7转5能力,选取哪一个ABR来进行转换?选取简单的双ABR情况进行分析。网络拓扑如图2所示:
  图2 双ABR网络拓扑
  网络配置:
  【RT-A】:
  ospfv3 1
  Router-id 1.1.1.1
  Area 1
  Nssa
  Interface e0/0/2
  Ospfv3 1 area 1
  Ipv6 address 100:1:1:: 64
  【RT-B】:
  ospfv3 1
  Router-id 2.2.2.2
  Area 0
  Area 1
  Nssa
  Interface e0/0/2
  Ospfv3 1 area 1
  Ipv6 address 200:1:1:: 64
  Interface g0/1/3
  Ospfv3 1 area 0
  Ipv6 address 200:1:2:: 64
  【RT-C】:
  ospfv3 1
  Router-id 3.3.3.3
  Area 0
  Area 1
  Nssa
  Interface e0/0/2
  Ospfv3 1 area 1
  Ipv6 address 300:1:1:: 64
  Interface g0/1/3
  Ospfv3 1 area 0
  Ipv6 address 300:1:2:: 64
  【RT-D】:
  ospfv3 1
  Router-id 4.4.4.4
  Area 0
  Area 1
  Nssa
  Interface e0/0/2
  Ospfv3 1 area 1
  Ipv6 address 400:1:1:: 64
  在RT-A上引入静态路由,查看RT-D上5类LSA,其source-id是3.3.3.3,而修改RT-B的router-id为3.3.3.4时,再次查看,其source-id是3.3.3.4,即优选router-id较大的来做7转5转换器。
  基于用户自定义网络的需求,主流设备商提供了nssa区域的参数:
  translate-always:指定ABR完成NSSA区域的7类LSA转换为5类LSA。
  translate-never:指定ABR不能将NSSA区域的7类LSA转换为5类LSA。
  图3 hello报文中的options
  如在RT-B(其router-id仍为2.2.2.2)area1下配置:nssa translate-always,查看RT-D上5类LSA的source-id,由3.3.3.3变为2.2.2.2。通过截取报文发现由RT-B发出的hello报文中options置上NTbit位,如图3所示。
  由RT-B发出的hello报文在维持邻居的过程中发送给RT-D,RT-D就会选择RT-B作为转换器。如果将RT-B与RT-D间链路断掉,此时只有选择RT-C作为转换器,查看RT-D上的5类LSA的source-id为3.3.3.3。
  在RT-C ospfv3 1 area1下配置:nssa translate-never,查看Router-D上的LSA,并不存在转换得到的5类LSA,截取报文查看RT-B发出的hello报文的bit位并未变化。判断7转5角色时,如果配置translate-never参数,则区域不进行转换处理。此时恢复RT-B与RT-D间的链路,预料中应该选择RT-B为转换器,但在现有实现中:RT-D并不存在相应前缀的5类LSA。这样就存在:如果在配置过程中,误将多ABR情况下的router-id较大的ABR上NSSA区域配置translate-never参数,且无ABR配置translate-always参数,就会出现上述情况下均未被选为转换器的问题,进而出现存在路由但无法学到的问题。   3 解决方案
  观察hello报文的options,其占有24个bit位,因此可以仿效always参数在options添加bit位,称之NEbit位,在配置translate-never参数后,将此标记置1,然后通过邻居间交互的hello报文发给邻居,告之已置上never参数无法成为7转5转换器,在进行转换器选取时,将此ABR排除在外。
  写出伪代码如下:
  在配置处理中:
  If(bit_test(flag, translate-never)) //检查如果配置never参数
  Bit_set(options.NE,1) //设置NEbit
  Else Bit_reset(options.NE)
  选举7转5转换器时:
  if(bit_test(options.NE))
  Break //设置NEBIT位的ABR跳出转换器选举
  Else Seclect_the_transltor //继续选举流程
  在收到携带NEbit的hello报文时,其源ABR不参与7转5转换器的选取,从而解决上述问题。我们按照上述伪代码进行编码、版本编译后,可以验证配置:
  【RT-C-AREA-1】:Nssa translate-never
  截取hello报文,其optinons的NEbit位已置上,且RT-D也能收到转换后的5类LSA,从而验证问题已解决。
  4 总结
  本文首先对IPv6下OSPF协议的NSSA区域进行简述,然后提出现有协议实现中存在多个ABR情况且无ABR配置translate-always参数情况下,给router-id最大的ABR配置translate-never参数后,无法学到路由的问题,最后给出一种解决思路和验证方案。
  【参考文献】
  [1]J.Moy,R.Coltun.Request for Comments 5340:OSPF for IPv6[Z].July 2008.
  [2]P.Murphy. Request for Comments 3101:The OSPF Not-So-Stubby Area(NSSA)Option[Z].January 2003.
  [3]黄瑜岳,梁伟.基于IPv6的OSPFv3协议的研究和实现[J].常熟理工学院学报,2006.
  [责任编辑:陈双芹]  
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【干货】IPV6知识点集棉——OSPFv3原理与配置
OSPF的五种区域类型
【转载】Ospf 实验自我总结(上)
【思唯网络】OSPF特殊区域详解
超详细破析OSPF路由协议(1)
OSPF的11种LSA类型
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服