文章目录

  • 前言
  • 区域间路由计算
  • 三类LSA:Network-Summary-LSA
  • 区域间路由防环机制
  • 区域间路由环路的产生
  • 避免域间路由环路
  • 虚连接的作用及配置
  • 不规范的OSPF区域设计
  • 虚连接(VLINK)配置


前言

在上一篇文章中,我们说了OSPF的域内路由。用到了Router LSA以及Network LSA。本篇文章主要讲解OSPF域间路由。
OSPF中有区域的划分,那为什么要有区域的划分呢?

为了减少LSDB的规模, 减少网络流量降低CPU内存功耗。每个区域都维护自己独立的LSDB。
减小单区域规模,避免发生故障而引起的网络长时间瘫痪。
方便管理:大型企业有很多部门。

ospf 域间路由会有可能环路吗 ospf域内和域间路由_OSPF


Area 0:骨干区域

Area 1:非骨干区域

ABR(Area Border Router):区域边界路由器

连接两个或两个以上区域的路由器(其中一个必须是骨干区域)

既然ABR同时属于两个区域或以上,那么它就要拥有和维护两个或以上区域的LSDB

Internal Router:区域内部路由器

路由器所有接口都属于同一个区域

区域内部的路由器通过区域内的LSDB来计算路由以及最优路径,那么区域间又是怎么通信的呢?

区域间路由计算

ospf 域间路由会有可能环路吗 ospf域内和域间路由_网络_02


如图所示:以RTD为例,其对应的一类LSA在Area 1中同步,作为Area 1和Area 0之间的ABR:RTB,会收到RTD的一类LSA并将其转化成三类LSA在Area 0中进行泛洪;RTA接收到此三类LSA后,做同样操作。当Area 0和Area 2之间的ABR:RTC接收到此三类LSA后,会重新生成一条新的三类LSA发送到Area 2当中。至此全OSPF区域都受到了192.168.1.0/24的路由信息。RTE上192.168.2.1/24的路由信息,做同样操作。

注意

1. 三类LSA只在相邻区域传递。在其他区域泛洪需要相邻ABR重新生成新的LSA(如上图在RTC收到三类LSA后,**会重新生成新的三类LSA再进行传递。**
2. 三类LSA只传递路由信息,不传递拓扑信息。
3. 区域间的路由信息在ABR上传递是双向的。

三类LSA:Network-Summary-LSA

三类LSA又叫网络汇总LSA:是由ABR路由器始发的。ABR路由器将发送网络汇总LSA到一个区域,用来通告该区域外部的目的地址。实际上,这些网络汇总LSA就是ABR路由器告诉在与之相连的区域内的内部路由器它所能到达的目的地址的一种方法。一台ABR路由器也可以通过网络汇总LSA向骨干区域通告与它相连的区域内部的目的地址。在一个区域外部,仍然在一个OSPF自主系统内部的缺省路由也可以通过这种LSA类型来通告。

通过display ospf lsdb summary 192,168.1.0来查看三类LSA信息

<RTB> display ospf lsdb summary 192.168.1.0

 OSPF Process 1 with Router ID 2.2.2.2
          Area: 0.0.0.0
         Link State Database 
Type                       : Sum-Net          //三类LSA
 Ls id                     : 192.168.1.0      //目的网段地址
 Adv rtr                   : 2.2.2.2         //产生此三类LSA的Router ID
 Ls age                    : 86 
 Len                       : 28 
 Options                   : E 
 seq#                      : 80000001
 chksum                    : 0x7c6d
 Net mask                  : 255.255.255.0   //网络掩码
 Tos 0                    metric: 1         //开销值(RTB到RTA的距离)
 Priority                  : Low

由此可以看出三类LSA只传递路由信息,不传递拓扑信息。
ABR产生的三类LSA将用于计算区域间路由。

根据三类LSA中的Adv rtr字段,判断出ABR。
根据Ls id、Net mask、Metric字段获得ABR到达目的网络号/掩码、开销。
如果多个ABR产生了指向相同目的网段的三类LSA,则根节点将根据本路由器到达目的网段的累计开销进行比较,最终生成最小开销路由。如果根节点到达目的网段的累计开销值相同,则产生等价负载的路由。

区域间路由防环机制

区域间路由环路的产生

ospf 域间路由会有可能环路吗 ospf域内和域间路由_网络_03


如图:

RTB将AREA1中1的一类、二类LSA转换成三类LSA,发布到区域0中。

RTC重新生成有关192.168.1.0/24网络的三类LSA并发布到Area 2中。

同理,RTE也将有关192.168.1.0/24网络的三类LSA发布到Area 3中。

RTD又将192.168.1.0/24网络的三类LSA发布到Area 1中,从而形成了路由环路。

当RTB再次收此三类LSA后,会误认为这是一条新的三类LSA。因为RTD发送的三类LSA中的Adv rtr、metric都是发生了变化。

避免域间路由环路

ospf 域间路由会有可能环路吗 ospf域内和域间路由_目的地址_04


如何避免环路?

  1. 所有的非骨干区域必须与骨干区域(Area 0)相连。骨干区域只有一个。
  2. 非骨干区域之间的通信都要通过骨干区域。
  3. 只有ABR才会产生三类LSA
  4. 三类LSA的传递规则:从骨干区域传来的三类LSA不再传回骨干区域(非骨干区域之间的三类LSA传递:会接收,但是不会计算,不传递)

针对三类LSA传递规则解释:

ospf 域间路由会有可能环路吗 ospf域内和域间路由_网络_05

虚连接的作用及配置

思考问题:

只有一个区域时,区域号配置为非0会有什么问题?

只有一个区域时,不配置其他的区域;这时即使该区域是非骨干区域,区域内部的路由器也可以正常通信。
但是想要增加区域时,正常的配置就不能让区域间正常通信。

不规范的OSPF区域设计

ospf 域间路由会有可能环路吗 ospf域内和域间路由_OSPF_06


导致的问题:

Area 0区域无法与Area 2区域路由器通信;Area 1和Area 2区域无法通信。

因为RTC不是ABR,所以无法生成三类LSA。

那么如何解决这个问题呢?

虚连接(VLINK)配置

ospf 域间路由会有可能环路吗 ospf域内和域间路由_OSPF_07


虚连接可以在任意两个区域边界路由器上建立,但是要求这两个区域边界路由器都有端口连接到一个相同的非骨干区域

如图:在RTB,RTC之间,配置虚连接。相当于给两个路由器互指了虚拟的邻居关系。此时这个虚拟的邻居关系是属于Area 0的此时RTC就变成了ABR

配置内容:

[RTB-ospf-1]ospf 1

[RTB-ospf-1]area 1 

[RTB-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3     //3.3.3.3为路由器的Router ID
[RTC-ospf-1]ospf 1

[RTC-ospf-1]area 1 

[RTC-ospf-1-area-0.0.0.1]vlink-peer 2.2.2.2

注意:

  1. 虚连接并不是常规的配置,仅仅用于网络设计不规范的补救措施、或网络出现故障时的应急措施。
  2. 如上拓扑:在配置了虚连接之后RTC传递的路由消息比较混乱,有:不同类型的一类LSA,有Area 1、Area 2的LSDB,并且还会生成三类LSA。所以不建议用虚连接。