分享

【干货】盘点IGP高级特性里OSPF的其他特性

 网络工程师老杨 2021-08-05

OSPF多进程

  • OSPF支持多进程,在同一台路由器上可以运行多个不同的OSPF进程,它们之间互不影响,彼此独立。不同OSPF进程之间的路由交互相当于不同路由协议之间的路由交互。 

  • 路由器的一个接口只能属于某一个OSPF进程。

  • 应用场景:

  1. OSPF多进程的一个典型应用就是在VPN场景。

  2. 如图,同一台PE设备连接了两个不同的VPN客户,并且PE和CE之间均部署OSPF,因此可以通过在PE设备上部署多进程实现VPN客户之间的隔离。

  • VPN(Virtual Private Network):虚拟专用网络。 

  • 创建OSPF进程时,如果指定了VPN实例,那么OSPF进程属于此实例,否则属于全局实例。

OSPF与BGP联动 (1)

当有新的设备加入到网络中,或者设备重启时,可能会出现在BGP收敛期间内网络流量丢失的现象。这是由于IGP收敛速度比BGP快而造成的。

  1. 当R2故障时,流量路径切换到:R1-R3-R4-R5。 

  2. 当R2故障恢复后,由于IGP收敛速度比BGP快,因此OSPF先收敛。此时R1若要访问10.1.5.5/32,先查BGP路由,下一跳为R5;再查IGP路由,会根据IGP路由传递给R2。 

  3. R2收到该流量后,会查BGP路由。由于BGP还未完成收敛,发现没有到达10.1.5.5/32的路由,则不会转发数据,造成流量丢失。

R1、R2、R3和R4运行OSPF,并建立IBGP全互联。其中R3是R2的备份设备。

当网络环境稳定时,R1访问10.1.5.5/32的流量路径为:R1-R2-R4-R5。

OSPF与BGP联动 (2)

  • 通过使能OSPF与BGP联动特性,可以解决流量丢失问题。 

  • 使能了OSPF与BGP联动特性的设备会在设定的联动时间内保持为Stub路由器,也就是说,该设备发布的LSA中的链路度量值为最大值(65535),从而告知其它OSPF设备不要使用这个路由器来转发数据。

在R2上使能BGP联动,这样,在BGP收敛完成前,R1不把流量转发到R2上,而是继续使用备份设备R3转发流量,直到R2上的BGP路由完成收敛。

配置Stub路由器:

[Huawei-ospf-1] stub-router [ on-startup [ interval ] ]

  1. 配置Stub路由器是一种特殊的路由选路,配置了Stub路由器的路径不被优选。

  2. 实现方法是将度量值设为最大(65535),尽量避免数据从此路由器转发。用于保护此路由器链路,通常使用在升级等维护操作的场景。

  • 命令:[Huawei-ospf-1] stub-router [ on-startup [ interval ] ]

    ▪on-startup [ interval ]设备在发生重启或故障时保持为Stub路由器的时间间隔。整数形式,取值范围是5~65535,单位是s,缺省值是500s。 

    ▪如果未配置on-startup参数,则表示该设备始终保持为Stub路由器,即所有来自这个设备的路由条目Cost值均设为65535。 

    ▪如果配置了on-startup参数,则表示该设备仅在重启或者故障时保持为Stub路由器,保持时间由interval参数决定。此时若未配置interval参数,则使用interval的缺省值500s。


OSPF转发地址

FA(Forwarding Address,转发地址):

  • 到达所通告的目的地的数据包应该被转发到的地址,如果转发地址为0.0.0.0,那么数据包将被转发到始发ASBR上。 

  • Type5 AS-External-LSA 和 Type7 NSSA LSA:

OSPF的Type5 LSA和Type7 LSA中包含一个特别的字段FA,FA的引入使得OSPF在某些特殊的场景下可以避免次优路径问题。

没有FA引发的问题

  • R2、R3和R4运行OSPF,均部署在Area0中。其中R2和R3的GE0/0/1接口都激活OSPF并建立邻接关系,但是两者与外部路由器R1并不建立OSPF邻接关系。 

  1. R2配置到达10.1.1.1/32的静态路由,下一跳为10.1.123.1。 

  2. R2将静态路由引入OSPF,产生Type5 LSA在区域内泛洪。 

  3. R3接收到R2产生的5类LSA,计算出到达10.1.1.1/32的外部路由,并且将路由的下一跳指定为R2(10.1.123.2)。  

  • OSPF域内的路由器如R4到达10.1.1.1/32的路径是:R4-R3-R2-R1,该路径是次优路径的。

FA的取值

  • 当ASBR引入外部路由时,若Type5 LSA中的FA字段为0,表示路由器认为到达目的网段的数据包应该发往该ASBR;若Type5 LSA中的FA字段不为0,表示路由器认为到达目的网段的数据包应该发往这个FA所标识的设备。 

  • 当以下条件全部满足时,FA字段才可以被设置为非0:

  1. ASBR在其连接外部网络的接口(外部路由的出接口)上激活了OSPF; 

  2. 该接口没有被配置为Silent-Interface; 

  3. 该接口的OSPF网络类型为Broadcast或NBMA; 

  4. 该接口的IP地址在OSPF配置的network命令指定的网段范围内。 

  • 到达FA地址的路由必须是OSPF区域内部路由或区域间路由,这样接收到该外部LSA的路由器才能够加载该LSA进入路由表。加载的外部LSA生成的路由条目下一跳与到达FA地址的下一跳相同。

  •  NSSA区域Type7 LSA转化为Type5 LSA: 

  1. 为了将NSSA区域引入的外部路由发布到其它区域,需要把Type7 LSA转化为Type5 LSA以便在整个OSPF网络中通告。缺省情况下,转换路由器是NSSA区域中Router ID最大的区域边界路由器(ABR)。 

  2. LSA头部Options字段中的P-bit(Propagate bit)用于告知转化路由器该条Type7 LSA是否需要转化为Type5 LSA。只有P-bit置位并且FA不为0的Type7 LSA才能转化为Type5 LSA。 

  3. 区域边界路由器产生的Type7 LSA不会置位P-bit。 

  • 注意:所有的OSPF LSA有相同的LSA头部,P-bit在LSA头部中的Options字段。

案例:NSSA场景下FA的典型应用

 当NSSA区域中有多个ABR时,系统会根据规则自动选择一个ABR作为转换器,将Type7 LSA转换为Type5 LSA,其他ABR不做LSA转换。 

如图所示,如果不考虑FA,由于R3的Router ID比R2大,因此它将执行7转5的动作,如此一来,R1将认为必须经由ABR(R3)到达目的网络。这样,流量便会被引导到低带宽链路,即R1-R3-R4-R5。

  • 如图所示:

  1. R5引入直连外部路由,且将FA设为自己访问目的网段10.1.5.0/24的地址:10.1.45.5。 

  2. R3执行Type7 LSA转换Type5 LSA动作,继续携带FA:10.1.45.5。 

  3. R1收到后,会在自己的OSPF路由表中查询到达这个FA的路由,发现在OSPF路由表中能够找到匹配这个FA的路由,就使用到达这个FA的下一跳地址作为这条外部路由的下一跳地址。 

  4. 因此,R1最终会通过R1-R2-R4-R5路径,访问目的网段10.1.5.0/24。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多