学习目标:
1. 理解外部路由使用的LSA
2. 理解外部路由类型
3. 理解Forwarding Address属性
4. 掌握外部路由引入的配置
5. 掌握OSPF多进程的配置


上图中:在RTC上配置一条到10.4.1.0/24的静态路由,并将该静态路由作为外部路由引入OSPF。因此,RTC是一个ASBR,RTB是一个ABR。RTC会生成一条ASBR-Summary-LSA描述如何到达ASBR(RTC)。
AS-External-LSA用于描述如何从ASBR到外部目的地;ASBR-Summary-LSA用于描述如何从ABR到ASBR。


这是由RTC生成的AS-External-LSA。AS-External-LSA中LSA头部的信息如下:Link State ID被设置为目的网段地址。Advertising Router被设置为ASBR的Router ID。其它字段设置如下:Net mask被设置为目的网段的网络掩码。Metric值可以在引入外部路由的时候指定,默认值为1。外部路由信息可以携带一个Tag标签,用于传递该路由的附加信息,通常用于路由策略,默认值为1.


这是由RTB在Area 1内生成的ASBR-Summary-LSA。
ABR向区域外泛洪一条AS-External-LSA时,同时生成一条描述ASBR(该AS-External-LSA的Advertising Router)的ASBR-Summary-LSA向区域外泛洪。

在该ASBR-Summary-LSA中:link State ID被设置为该ASBR的Router ID;
Advertising Router被设置为该ABR的Router ID;Metric设置为从该ABR到达此ASBR的OSPF开销。

第四类LSA只能在一个区域内泛洪,第五类LSA每泛洪到一个区域,相关的ABR都会生成一条新的第四类LSA来描述如何到达相关的ASBR,因此,描述到达同一个ASBR的第四类LSA可以有多条,其Advertising Router和metric是不同的,表示是由不同的ABR生成的。


OSPF共有两类外部路由:
第一类外部路由的AS外部开销被认为和AS内部开销值是同一数量级的,因此第一类外部路由的开销值为AS内部开销值(路由器到ASBR的开销)与AS外部开销值之和;
第二类外部路由的AS外部开销值被认为远大于AS内部开销值,因此第二类外部路由的开销值只是AS外部开销值,忽略AS内部开销值。

第一类外部路由永远比第二类外部路由优先,VRP中引入的外部路由类型缺省为第二类。

本例中:
RTA通告一条去往N1的AS外部路由,类型为1,开销为100.
RTB也通告一条去往N1的AS外部路由,类型为2,开销为20.
RTC收到RTA和RTB的Type 5 LSA,由于RTA宣告的外部路由类型为Type 1,所以RTC认为通过RTA去往N1的路由开销为100+1=101,RTB宣告的外部路由类型为Type 2,所以RTC认为通过RTB去往N1的路由开销为20(忽略AS内部开销),由于第一类外部路由比第二类外部路由优先,所以RTC选择RTA作为去往N1的下一条,尽管开销值看上去更大一些。


在RTB上配置RTC的loopback0接口的静态路由,并作为外部路由引入到OSPF中,则RTA可以通过OSPF学习到这条外部路由,但是下一跳是RTB,因此在RTA上,这条路由是次有的,最优的下一跳应当为RTC的E0/0口。

OSPF通过设置Forwarding Address来解决这个问题。


通常情况下,生成AS-External-LSA时,Forwarding Address设置为0.0.0.0。
但是如果引入到OSPF中的外部路由的下一跳在一个OSPF路由域内,则在描述该外部路由的AS-External-LSA中,Forwarding Address应当被设置为ASBR路由表中该路由的下一条。


本例中:网络中有两个OSPF路由域,作为ASBR,在RTB上应启用两个OSPF进程。RTA启用OSPF进程1,RTC也启用OSPF进程1.