简介
本文档介绍开放最短路径优先 (OSPF) 区域和虚拟链路。
背景信息
本文档描述基本 OSPF 协议。不透明链路状态通告 (LSA) 详见 RFC 5250,但不在本文讨论范围之内。
区域、末节区域和次末节区域
OSPF 网络可划分为多个子域,每个子域称为区域。区域是具有相同区域标识的OSPF网络、路由器和链路的逻辑集合。区域内的路由器必须为所属的区域保存拓扑数据库。该路由器不包含关于其所属区域外部的网络拓扑的详细信息,因此减小了其数据库的大小。
区域可限制路由信息分发的范围。在一个区域内无法执行路由更新过滤。同一区域内各路由器的链路状态数据库 (LSDB) 必须同步且完全相同;但是,在不同区域之间可以进行路由汇总和过滤。创建区域的主要优势在于通过过滤和汇总路由可减少要传播的路由数。
划分为不同区域的每个OSPF网络都必须使用以下规则:
-
必须存在主干区域,用于将一些独立的区域组合到单个域中。
-
每个非主干区域必须直接连接到主干区域(虽然此连接可以是通过虚拟链路的简单逻辑连接)。
-
在任何故障情况下(例如链路或路由器关闭事件),均不得对主干区域进行分区(划为更小的部分)。
警告:网络中的某些路由器可能包含部分路由信息,如果不使用这些规则,将对网络造成负面影响。
区域由区域ID标识。Cisco IOS®软件支持以IP地址格式或十进制格式表示的区域ID,例如,区域0.0.0.0等于区域0。如果网络中有多个区域,则需要将主干区域命名为区域0。由于此主干连接网络中的区域,因此它必须是连续的区域。如果主干已分区,则自治系统的某些部分可能不可达,您需要配置虚拟链路以修复分区。
接口位于两个(或更多)不同区域的路由器为区域边界路由器。区域边界路由器位于两个区域之间的 OSPF 边界。任何链路的两边始终属于同一个 OSPF 区域。
自治系统边界路由器(ASBR)在整个OSPF自治系统范围内通告外部目的地。外部路由是从其他任何协议重分配到 OSPF 的路由。在很多情况下,外部链路状态在每个路由器数据库中的链路状态里占有很大的比例。末节区域是不允许通告外部路由的区域,因此会进一步减小数据库的大小。一条默认汇总路由 (0.0.0.0) 被插入到末节区域中以到达这些外部路由。若网络中不存在外部路由,则不必定义末节区域。
末节区域不接收外部路由,但会接收属于同一 OSPF 域其他区域的网络信息。您可以定义完全末节区域。处于完全末节区域的路由器将与路由相关的仅 LSDB 信息以及默认路由保留在其区域内部。
次末节区域(NSSA)是OSPF末节区域的扩展。与末节区域一样,它们可防止将 AS 外部 LSA 泛洪到 NSSA 中,而是依赖通往外部目的地的默认路由。因此,NSSA(如末端区域) 必须位于OSPF路由域的边缘。NSSA 比末节区域更灵活,因为 NSSA 可以将外部路由导入 OSPF 路由域,从而向不属于 OSPF 路由域的小型路由域提供中转服务。
要了解有关OSPF数据库的详细信息,请参阅《OSPF数据库解释指南》。
定义末节区域
在区域area xx stub
中的每个路由器上使用命令将区域定义为末节区域。在下图所示的拓扑中,区域 7 中的路由器不需要知道所有外部目的地。无论外部目的地如何,区域 7 中的路由器都必须向 ABR 发送数据包以到达 ASBR。区域 7 可定义为末端区域。要将区域7定义为末节区域,请在该区域area 7 stub
的所有路由器中配置命令。
完全末节区域的定义
使用OSPF路由器配area xx stub no-summary
置命令定义完全末节区域。在上面的网络图中,区域 7 中的路由器不必知道所有外部目的地或其他区域骨干网的任何汇总 LSA。区域 7 中的路由器必须向 ABR 发送数据包才能到达区域 7 以外的任何目的地。区域 7 可以被定义为完全末节区域。要将区域7定义为完全末节区域,请在ABRarea 7 stub no summary
上配置命令。
定义次末节区域
使用OSPF路由器 area xx nssa
配置命令定义NSSA。例如,在此拓扑中,区域2在区域内所有路由器上area 2 nssa
使用命令配置为NSSA。通过这种方式,区域 2 的内部路由器可免受所有 AS- 外部 LSA 的影响,这些 AS- 外部 LSA 是由 OSPF ASBR 导入的。但是它仍然允许非 OSPF 路由器的关联。外部路由信息被导入到 Type-7 LSA 中的 NSSA 里。Type-7 LSA 与 Type-5 AS-External LSA 类似,但 Type-7 LSA 只能被扩散到 NSSA 中。为了进一步传播 NSSA 外部信息,必须通过 NSSA ABR 将 Type-7 LSA 转换为 Type-5 AS-external-LSA。Cisco IOS 11.2 和更高版本支持 NSSA。
NSSA 完全 Stub 区域的定义
使用OSPF路由器配置area xx nssa no-summary
命令定义NSSA完全末节区域。在前面的网络图中,在NSSA ABR上使用命令将区域2配置area 2 nssa no-summary
为完全末节的NSSA。通过这种方式可以防止任何 Type 5 AS- 外部或 Type 3 汇总路由在区域 2 中渗透。
普通区域、末节区域、完全末节区域和 NSSA 区域之间的区别
下表说明了本技术文件中所定义的区域类型之间的区别。
区域 |
限制 |
正常 |
无 |
末节 |
不允许使用第 4 类或第 5 类 AS 外部 LSA. |
完全末节区域 |
不允许 Type 3、4 或 5 LSA,但汇总汇总路由除外. |
NSSA |
不允许第5类AS外部LSA,但在NSSA ABR中转换为第5类LSA的第7类LSA可以通过。 |
NSSA 完全 Stub 区域 |
除默认汇总路由外,不允许第3类、第4类或第5类LSA,但允许在NSSA ABR中转换为第5类LSA的第7类LSA。 |
要了解有关不同类型区域的详细信息,请参阅OSPF如何生成默认路由的OSPF区域类型部分。
虚拟链路
OSPF 自治系统中的所有区域都必须在物理上与骨干区域 (area 0) 相连。 在无法实现这种物理连接的情况下,可利用虚拟链接来通过非骨干区域建立连到骨干网的接。如前所述,您还可以使用虚拟链路通过非主干区域来连接已分区主干区域的两个部分。配置虚拟链路所使用的区域称为中转区域,这种区域必须具有全部路由信息。中转区域不能是末节区域。
使用命令配置虚拟链路,其中area-id是分配给传输区域的区域ID(可以是有效的IP地址或十进制值),router-id是与虚拟链路邻居关联的路由器area area-id virtual-link router-id
ID。在下面的拓扑中,虚拟链路通过区域 7 将区域 5 与骨干网连接起来:
在本示例中,使用路由器ID 10.1.1.1和路由器ID 10.2.2.2的路由器之间创建了虚拟链路。要创建虚拟链路,请在路由器10.1.1.1上配置子命area 5 virtual-link 2.2.2.2
令,在路由器10.2.2.2上配置子命area 5 virtual-link 1.1.1.1
令。有关详细信息,请参阅在虚拟链路上配置OSPF身份验证。
相关信息