OSPF中Forward Address的作用

        如下图所示的简单拓扑中,若R2、R3、R4之间开启OSPF动态路由协议,且都在Area0中,各个路由器之间的cost值保持为默认值。R2和R3均设置到R1的Loopback0口(1.1.1.1/32)的静态路由,其下一跳分别为R1与R2、R3互联的接口地址。

        此时,如果分别在R2、R3上将该静态路由通过import static命令引入到ospf,则R4到1.1.1.1/32的路由下一跳应该是什么?

       没错,由于从R2和R3到1.1.1.1/32的路径cost一致,因此R4到1.1.1.1/32通过R2、R3负载分担。

     此时,如果我不小心将R3的Ethernet0/0/0接口引入到ospf Area0中,对R4的1.1.1.1/32路由会不会产生影响?

       肯定会有影响,此时R4将通过R2到达1.1.1.1/32,不再通过R2、R3进行负载分担。为什么?答案就是因为Forward Address的作用。   

       Forward Address在ospf的LSA5中的主要作用就是防止出现次优路由,如下图所示,R1上同时运行IS-IS和OSPF两种动态路由协议,现在需要将IS-IS路由引入到OSPF,如果没有Forward Address,那么所有R3到R2的流量都将首先发送给R1,由R1再转发给R2,造成次优路径问题。引入Forward Address后,R1将IS-IS引入OSPF后,R1产生的LSA5报文中将Forward Address值设置为IS-IS路由中的下一跳地址(即R2的Ethernet0/0/0接口地址),R3接收到该LSA5后,通过路由计算,后续所有去往R2的流量直接转发给R2,不用再通过R1转发。

       再说回一开始的问题:为什么将R3的Ethernet0/0/0接口引入到ospf Area0中后,R4去往1.1.1.1/32的路由会受影响?R3将Ethernet0/0/0接口引入到ospf Area0中后,将使得ASBR(即R3)上的接口满足了以下四个规则:

      (1)外部路由的下一跳地址所在的网段的接口发布到OSPF;

      (2)外部路由的下一跳地址所在的网段的接口没有被设置成silent接口;

      (3)下一跳地址所在网段的接口ospf网络类型不是Point-to-Point;

      (4)下一跳地址所在网段的接口ospf网络类型不是Point-to-MultiPoint。

     因此,R3发布的LSA5的Forward Address不再是全0,而是R1与R3互联的接口地址。R4接收到R2、R3分别发送的LSA5,其中,R2的LSA5中的Forward Address地址为全0,R3的LSA5的Forward Address地址为R1与R3的互联接口地址。由于默认情况下外部路由的Metric Type为2,因此路由计算时首先比较两条路由的外部cost值,外部路由默认都为1相等,再比较内部cost,由于R4到R2的cost为1,R4到“R1与R3的互联接口”的cost为2,因此,优选通过R2转发去往1.1.1.1/32。

         由此可以看出,OSPF中的Forward Address不仅可以避免某些特殊网络情况下的次优路径问题,某些情况下也会影响路由选择,因此边界路由器ASBR在进行ospf设计和配置过程中要格外小心,防止出现路由计算结果与设计不一致的情况,如果不仔细分析,这类问题也比较难以查找。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值