Forwarding Address字段

LSA5和LSA7中都包含FA字段但两者却又所差别

LSA5区别于LSA3/LSA4,LSA5仅负责通告OSPF 路由域外其他协议的路由,如RIP、BGP等。引入到OSPF后,这些外部路由靠LSA5将其泛洪到OSPF路由域。
LSA5具有其他LSA 所没有的泛洪范围,LSA5能够泛洪到所有 Area,除了特殊类型区域(Stub 及 NSSA)。泛洪期间仅Age会增加,其他都没有变化。
LSA5的作用是除了向路由域中路由器通告外部路由外,还告知其他路由器如何访问该外部网络。根据LSA5中的FA (Forwarding Address)地址决定访问外部网络是经过ASBR还是经过拥有FA地址(非0)的路由器。

在Area中 LSA7作用和 LSA5一致,有相同的格式,包括外部路由及掩码、Forwarding-Address Tag、Cost-Type及 Cost。
LSA7 与LSA5的不同之处:
LSA7仅在NSSA区域里泛洪;
LSA7的FA为非0;如果为0,则不会被ABR翻译为LSA5。
外部路由在 NSSA区域里使用LSA7来传递,在其他区域由LSA5来传递,ABR负责做7/5翻译。
LSA7中选项位P-bit ( Propagate bit)用于告知翻译路由器该条Type7 LSA是否需要翻译。
缺省情况下,转换路由器是NSSA区域中Router ID最大的区域边界路由器。只有P-bit置位并且FA (Forwarding Address)不为0的Type7 LSA才能转化为Type5 LSA。
若在ABR上引入外部路由,产生的Type7 LSA不会置P-bit,所以不会再被通告到Area0。

Forwarding-Address,简称FA,仅出现在LSA5或LSA7中,它是数据包访问外部网络时,在数据报文离开OSPF路由域时必须经过的设备地址。
本小节仅介绍LSA5中的FA,LSA7中的FA放到其他章节介绍。LSA5携带外部路由,该外部路由一定要出现在路由表中,数据包才能访问到该外部目的地。而外部路由能否出现在路由表中,则要依赖于LSA5的FA的可达性,如果FA不可达,则LSA5所通告的外部路由不进路由表(FA不可达,LSA5路由进路由表没有意义)。FA地址可以是全0,也可以是非0。
若FA=0,数据包要经过ASBR访问外部网络。如果FA!=0,数据包要转发至拥有FA地址的路由设备,再由其转发到外部网络。
华为实现中,如果FA=0,LSA5要判断如何到ASBR,继而决定该外部路由能否进P路由表。如果ASBR在其他区域,则依赖于LSA4来决定如何到达ASBR。如果ABSR在当前区域,则依赖于LSA1/LSA2计算到ASBR的路径。
如果FA!=0,则要根据OSPF 路由表(Display OSPF Routing)中是否有FA地址所对应的路由来判断可达性。若不可达,则该外部路由不进P路由表。
 

ASBR上的接口如果满足以下四个规则,则ASBR上外部路由的下一跳地址就是该外部路由LSA5的FA。否则该外部路由LSA5中的FA 为0。

1.该外部路由的下一跳地址所在网段的接口要发布到OSPF中。

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

3.下一跳地址所在网段的接口OSPF网络类型不是Point-to-Point网络类型.

4.下一跳地址所在网段的接口OSPF网络类型不是 Point-to-Multipoint网络类型。

例如拓扑图:

Forwarding Address字段

引入rip路由5.0.0.0,开始时没有宣告AR4接口网络进入ospf进程,LSA5中FA字段设置为0.0.0.0,默认通往ASBR

Forwarding Address字段

当ASBR宣告了外部接口所处的100.100.45.0网络,此时FA字段设置为ASBR去往5.0.0.0网络的下一跳,

Forwarding Address字段

ASBR将此外部路由通过LSA5向自治系统内泛洪,当路由器收到后将会查看路由判断FA字段是否可达,显然可达

Forwarding Address字段

所以外部路由也出现在路由表中

Forwarding Address字段


FA为0,访问外部路由的数据包转发给ASBR。如果FA不为0,则访问该外部路由的数据包将被转发给该FA地址。
LSA5中的FA决定外部路由能否进路由表,及转发路径。LSA5中的FA的内容。
如果FA=0,区域内根据LSA1/2计算路由,区域间根据LSA4计算路由。如果FA! =0,区域内根据LSA1/2计算路由,区域间根据LSA3计算路由。

FA的构成,
需要强调的一点是LSA7的FA地址和LSA5的 FA内容上有如下区别。LSA5的 FA可以是0和非0两种情况。
LSA7的 FA值如下。
(1)在NSSA区域边界路由器上引入外部路由,产生LSA7,其FA地址为0。协议规定FA=0的LSA7的路由是不会被通告到骨干区域的.
(2) FA不为0的情况。在NSSA中,ASBR引入的外部路由,除上面特例外,都是非0.LSA5的4条规则同样适用LSA7.
如果满足4条规则,FA! =0,地址是ASBR上外部路由的下一跳地址。
如果不满足某条规则, FA! =0,地址是ASBR上某个接口IP地址,优选回环接口地址,如果没有回环接口,则使用物理接口地址。
  


 

上一篇:C++ 仿函数/函数指针/闭包lambda


下一篇:C++ 开发中,使用类模板完成自定义数组