本节笔记,主要介绍OSPF外部路由的引入方法和计算原理(涉及第四类LSA:ASBR-Summary-LSA和第五类LSA:AS-External-LSA),理解次优外部路由的产生原因。

OSPF动态路由协议笔记之(六) : 外部路由和计算原理

  除了内部通信外,企业还需要与外部网络进行通信,不同企业网络之间存在互访需求。

  本节笔记,主要介绍OSPF外部路由的引入方法和计算原理(涉及第四类LSA:ASBR-Summary-LSA和第五类LSA:AS-External-LSA),理解次优外部路由的产生原因。


  外部路由引入

  假设A公司网络部署OSPF协议实现内部通信,因业务发展,需要访问B公司的一台WEB服务器。那么作为A公司的网络工程师,如何操作才能使本公司获取B公司的路由信息呢?

   

ospf引入外部路由原理 ospf如何引入外部路由_字段

  本例中,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。

命令: import-route XXX

  这条命令可以将本路由器上的路由表项重发布到OSPF的进程中,XXX的参数可选项为static,direct,ospf,rip等。

四类LSA和五类LSA,将被OSPF路由器用来计算外部路由。


  第四类LSA:ASBR-Summary-LSA

这是由RTB在Area 1内生成的ASBR-Summary-LSA(四类LSA)。

   

ospf引入外部路由原理 ospf如何引入外部路由_OSPF_02

命令: display ospf lsdb asbr self-originate

 

向Area 1泛洪一条五类LSA,告诉Area 1的路由器:应该如何通过访问ASBR(也就是路由器RTA)去往外部网络

同时向Area 1泛洪一条四类LSA,告诉Area 1的路由器:应如何才能访问路由器RTA,花销(cost)是多少

 

  该四类LSA包含的主要信息如下:

  l Ls id:该ASBR的Router ID。

  l Adv rtr:产生此四类LSA的ABR的Router ID。

  l Metric:从该ABR到达此ASBR的OSPF开销值。

  四类LSA只能在一个区域内泛洪。五类LSA每泛洪到一个区域,相应区域的ABR都会生成一条新的四类LSA来描述如何到达ASBR。

  因此描述到达同一个ASBR的四类LSA可以有多条,其Adv rtr是不同的,表示是由不同的ABR生成的。

 

 

  第五类LSA:AS-External-LSA

这是由RTA生成的五类LSA,将被泛洪到所有OSPF区域。

   

ospf引入外部路由原理 ospf如何引入外部路由_OSPF_03

命令: display ospf lsdb ase self-originate

   

  五类LSA中包含的主要信息如下:

  l Ls id:目的网段地址。

  l Adv rtr:产生此五类LSA的ASBR的Router ID。

  l Net mask:目的网段的网络掩码。

  l Metric:ASBR到达目的网络的开销值,默认值为1。

  l Tag:外部路由信息可以携带一个Tag标签,用于传递该路由的附加信息,通常用于路由策略,默认值为1。

 

 

  外部路由计算

   

ospf引入外部路由原理 ospf如何引入外部路由_五类_04

以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的Adv rtr为2.2.2.2。再根据五类LSA中的LS id、Net mask、Metric字段最终生成目的网络10.1.60.0/24, cost=1,下一跳为RTB的路由。

 

  RTB、RTD最终计算出的路由条目cost都为1,根据物理拓扑可知,RTD开销值明显大于RTB,那么问题出在哪里呢?

 

 

  外部路由类型

   

ospf引入外部路由原理 ospf如何引入外部路由_ospf引入外部路由原理_05

  OSPF引入外部路由,共有两种类型可选:

第一类外部路由的AS外部开销值被认为和AS内部开销值是同一数量级的,因此第一类外部路由的开销值为AS内部开销值(路由器到ASBR的开销)与AS外部开销值之和;这类路由的可信程度高一些,所以计算出的外部路由的开销与自治系统内部的路由开销是相当的,并且和OSPF自身路由的开销具有可比性。

Type 1 = AS内部开销+AS外部开销

 

第二类外部路由的AS外部开销值被认为远大于AS内部开销值,因此第二类外部路由的开销值只包含AS外部开销,忽略AS内部开销(默认为第二类),这类路由的可信度比较低。

Type 2 =AS外部开销

 

 默认情况下,OSPF外部路由采用的是第二类外部路由,但第一类外部路由优先级高于第二类

 

 

  次优外部路由的产生

  (1)次优外部路由产生的原因

   

ospf引入外部路由原理 ospf如何引入外部路由_五类_06

图所示,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来解决这个问题。

 

  (2)Forwarding Address

通常情况下,ASBR引入外部路由产生的五类LSA中Forwarding Address字段设置为0.0.0.0。

   

ospf引入外部路由原理 ospf如何引入外部路由_ospf引入外部路由原理_07

  对于图中的场景,RTB路由表中到达192.168.3.0/24的下一跳地址为10.1.123.3。10.1.123.3所属网段10.1.123.0/24运行OSPF,所以RTB生成的五类LSA中,Forwarding Address被设置为10.1.123.3。

  当RTA收到五类LSA时,发现Forwarding Address字段非0,其值为10.1.123.3,所以RTA按照Forwarding Address计算下一跳。

 

 

Tips:扩展知识

Q:AS External LSA是在什么角色的路由器上产生的?它的基本作用是什么?

A:AS External LSA是在ASBR路由器上产生的。AS External LSA的基本作用是用来向OSPF网络宣告外部路由。一条AS External LSA只能宣告一条外部路由

 

Q:ASBR Summary LSA是在什么角色的路由器上产生的?它的基本作用是什么?

A:ASBR Summary LSA是在ABR路由器上产生的。ASBR Summary LSA的基本作用是告诉其他路由器应该如何去往ASBR路由器。

 

Q:OSPF外部路由类型有哪两种?哪一种的优先级更高?

A:OSPF外部路由类型有External Type-1和External Type-2。External Type-1的优先级高于External Type-2