试问R1上做RIP到OSPF的重分发,redistribute rip subnets metric-type 1 metric 1000,
请问R4上看到R2,R3,R4的Metric分别为多少?
是1000,还是1010还是1020?显然你猜错了。
这要分两种类型来讨论:
第一种:将R1的fa0/0不宣告进OSPF。
第二种:将R1的f0/0宣告进OSPF。
如果不宣告进OSPF,那么metric=到达ASBR的metric+重分发时的metric=1010。
如果宣告进OSPF,那么metric=到达Fa的metric+重分发时的metric=1020。
解释说明:
FA是Forwarding Address的简写。FA是ASBR通告的TYPE 5 LSA中的字段,它的作用是告诉OSPF域内的路由器如何能够更快捷地到达LSA 5所通告路由的下一跳地址。以免OSPF内部路由器在广播网络上以ASBR为下一跳,再由ASBR自己转发到正确的下一跳,而产生额外的路由。简单来说,FA字段的作用类似于BGP协议中的“第三方下一跳”概念,主要在广播共享网络中起作用。
5类LSAFA字段可以为全0或者非0两种选择,有以下几个规则:
1、当与引入路由的下一跳关联(互连)的接口没有启动OSPF时,FA设置为0;
2、当下列所有条件均满足的情况下,TYPE 5 LSA中FA字段设置为非0:
1、在ASBR上,与引入外部路由下一跳关联的接口启动了OSPF,即位于Network
命令范围内。
2、在ASBR上,与引入外部路由下一跳关联的接口不能配置被动接口;
//前两个规则是确保LSA能够被通告。
3、在ASBR上,与引入外部路由下一跳关联的接口配置的OSPF网络类型不能是P2P或P2MP。
//确保网络类型是Broadcast或NBMA的共享网络。
在满足以上条件后,5类LSA的转发地址为连接外部路由下一跳的接口IP。
FR是如何影响OSPF的路由选择的?
1、计算外部路由时,首先检查通告TYPE 5 LSA的ASBR是否存在,否则忽略该LSA;
2、检查TYPE 5 LSA的FA地址是否为0。如为0,说明路由必须经过ASBR转发,那么优选到ASBR metric最短的路径。当有多个最短路径时,优选从较大area ID学习到的。
3、如果FA非0,那么优选到FA地址 metric最短的路径。
解释的很明白了,那么我们继续加问几个问题:
1.R5的lo0 5.5.5.5的FA是什么(假设R1的f0/0宣告进OSPF)------123.123.123.3
为连接外部路由的下一跳接口IP
2.E2和E1的区别:
E2仅为redistribute时重分发的Metric值,默认为20.
E1为到达FA的metric值+重分发时的metric值。如果FA为0.0.0.0则为到达ASBR的metric值+重分发时的metric值。
3.如果在R3上增加一个环回口2.2.2.2宣告进RIP,那么R4上关于2.2.2.2的FA是什么呢?
FA为0.0.0.0,无论宣告R1fa0/0还是不宣告都是0.0.0.0,路由表中也只有一条而不是负载分担
4.修改图:条件和上面的3相同
现在关于R4上2.2.2.2的路由会是什么情形?
首先对于OSPF拓扑数据库它们的转发地址为0,它们的Metric相同,这样它们会比较router-id,选择router-id大的。也就是R4上只有R6一条路由。
然而对于3.3.3.3因为转发地址相同,所以R4上会负载分担,R5也是一样负载分担。
再下面一个问题,如果是NSSA会怎么样?
首先假设rip重分发进OSPFarea1nssa的转发地址为0.0.0.0那么R2type7totype5时转发地址不变,那么也为0.0.0.0,这个转发地址为到达R2还是R3这个ASBR呢?所以7类LSA的转发地址不可能为0.0.0.0。
如果R3的fa0/1不宣告进OSPFType-7LSA的转发地址为R3的最大的环回口(宣告进OSPF),如果没有宣告的环回口的话,使用最大的物理接口(起OSPF),否则为外部路由下一跳地址。
最后总结一下:
5类LSA若同时满足以下三个条件:
a)引入的这条外部路由,其对应的出接口启用了OSPF
b)引入的这条外部路由,其对应的出接口未设置为passive-interface
c)引入的这条外部路由,其对应的出接口的OSPF网络类型为broadcast
则产生的Type 5 LSA,其FA地址等于该引入的外部路由的下一跳地址,反之为0.0.0.0(ASBR)
7类LSA的转发地址不会为0.0.0.0,唯一可能为0.0.0.0的是向OSPF NSSA区域注入默认路由!!!满足以上三个条件为外部路由的下一跳地址,反之为环回口地址。
追加一个问题:如果在NSSA中宣告默认路由,在ABR和ASBR中都宣告一条,那么会选择那一条呢?