本例中,RTA上配置了一条静态路由,目的网络是10.1.60.0/24,下一跳是RTF。
在RTA的OSPF进程下,将配置的静态路由重发布到A公司的OSPF网络中,其中引入外部路由的OSPF路由器叫做ASBR(设备间互访需要路由双向可达,这里仅介绍OSPF网络内获取外部路由的过程)。
RTA会生成一条AS-External-LSA(五类LSA),用于描述如何从ASBR到达外部目的地;RTB和RTC会生成一条ASBR-Summary-LSA(四类LSA),用于描述如何从ABR到达ASBR。
四类LSA和五类LSA,将被OSPF路由器用来计算外部路由。
五类LSA中包含的主要信息如下:
这是由RTB在Area 1内生成的ASBR-Summary-LSA(四类LSA)。
RTB向Area 1泛洪一条五类LSA时,同时生成一条四类LSA向Area 1泛洪。
该四类LSA主要包含下列信息:
四类LSA只能在一个区域内泛洪,五类LSA每泛洪到一个区域,相应区域的ABR都会生成一条新的四类LSA来描述如何到达ASBR。
因此描述到达同一个ASBR的四类LSA可以有多条,其Adv rtr是不同的,表示是由不同的ABR生成的。
以Area 0中RTB的外部路由计算为例:RTB收到五类LSA后,根据Adv rtr字段1.1.1.1发现,ASBR与自己同属于一个区域(Area 0),再根据Ls id、Net mask、Metric字段最终生成目的网络10.1.60.0/24 cost=1,下一跳为RTA的路由。
以Area 1中RTD的外部路由计算为例:RTD收到五类LSA后,根据Adv rtr字段1.1.1.1发现,ASBR与自己不同属于一个区域,再查找Ls id为1.1.1.1的四类LSA,发现此四类LSA的Advrtr为2.2.2.2。再根据五类LSA中的LS id、Net mask、Metric字段最终生成目的网络10.1.60.0/24 cost=1,下一跳为RTB的路由。
默认情况下,OSPF外部路由采用的是第二类外部路由。
如图所示,RTA、RTB、RTC同处于一个MA网络,RTA和RTB之间运行OSPF,RTB和RTC之间运行RIP。
RTB将通过RIP学来的路由重发布到OSPF,RTA通过OSPF学习到RIP中192.168.3.0/24的外部路由,但是下一跳是RTB。所以RTA访问192.168.3.0/24的流量先发送给RTB,RTB收到后又转发给RTC。在RTA上这条路由是次优的,最优的下一跳应当为RTC。
OSPF通过设置Forwarding Address来解决这个问题。
通常情况下,ASBR引入外部路由产生的五类LSA中Forwarding Address字段设置为0.0.0.0。
对于图中的场景,RTB路由表中到达192.168.3.0/24的下一跳地址为10.1.123.3。10.1.123.3所属网段10.1.123.0/24运行OSPF,所以RTB生成的五类LSA中,ForwardingAddress被设置为10.1.123.3。
当RTA收到五类LSA时,发现Forwarding Address字段非0,其值为10.1.123.3,所以RTA按照Forwarding Address计算下一跳。
AS External LSA是在ASBR路由器上产生的。AS External LSA的基本作用是用来向OSPF网络宣告外部路由。注意,一条AS External LSA只能宣告一条外部路由。
ASBR Summary LSA是在ABR路由器上产生的。ASBR Summary LSA的基本作用是告诉其他路由器应该如何去往ASBR路由器。
OSPF外部路由类型有External Type-1和External Type-2。External Type-1的优先级高于External Type-2。