H3C S5500-EI OSPF配置(实例) 下载本文

目 录

1 OSPF配置 ............................................................................................................................................ 1-1

1.1 OSPF简介 ........................................................................................................................................ 1-1

1.1.1 OSPF的基本概念 ................................................................................................................... 1-1 1.1.2 OSPF区域 .............................................................................................................................. 1-3 1.1.3 路由器的类型 ......................................................................................................................... 1-6 1.1.4 OSPF的网络类型 ................................................................................................................... 1-7 1.1.5 DR/BDR .................................................................................................................................. 1-8 1.1.6 OSPF的协议报文 ................................................................................................................... 1-9 1.1.7 系统支持的OSPF特性 ........................................................................................................ 1-17 1.1.8 协议规范 .............................................................................................................................. 1-18 1.2 OSPF配置任务简介 ........................................................................................................................ 1-19 1.3 使能OSPF功能 ............................................................................................................................. 1-20

1.3.1 配置准备 .............................................................................................................................. 1-20 1.3.2 使能OSPF功能 ................................................................................................................... 1-20 1.4 配置OSPF区域 ............................................................................................................................. 1-21

1.4.1 配置准备 .............................................................................................................................. 1-22 1.4.2 配置Stub区域 ..................................................................................................................... 1-22 1.4.3 配置NSSA区域 ................................................................................................................... 1-22 1.4.4 配置虚连接 ........................................................................................................................... 1-23 1.5 配置OSPF的网络类型................................................................................................................... 1-23

1.5.1 配置准备 .............................................................................................................................. 1-24 1.5.2 配置OSPF接口网络类型为广播 ......................................................................................... 1-24 1.5.3 配置OSPF接口网络类型为NBMA ..................................................................................... 1-24 1.5.4 配置OSPF接口网络类型为P2MP ...................................................................................... 1-25 1.5.5 配置OSPF接口网络类型为P2P ......................................................................................... 1-25 1.6 配置OSPF的路由信息控制 ........................................................................................................... 1-25

1.6.1 配置准备 .............................................................................................................................. 1-25 1.6.2 配置OSPF路由聚合 ........................................................................................................... 1-26 1.6.3 配置OSPF对通过接收到的LSA计算出来的路由信息进行过滤 ......................................... 1-27 1.6.4 配置过滤Type-3 LSA .......................................................................................................... 1-27 1.6.5 配置OSPF接口的开销值 .................................................................................................... 1-28 1.6.6 配置OSPF支持的路由最大数目 ......................................................................................... 1-29 1.6.7 配置OSPF最大等价路由条数 ............................................................................................. 1-29 1.6.8 配置OSPF协议的优先级 .................................................................................................... 1-29 1.6.9 配置OSPF引入外部路由 .................................................................................................... 1-30 1.6.10 配置发布一条主机路由 ....................................................................................................... 1-31 1.7 配置OSPF网络调整优化 ............................................................................................................... 1-31

1.7.1 配置准备 .............................................................................................................................. 1-31 1.7.2 配置OSPF报文定时器 ........................................................................................................ 1-32 1.7.3 配置接口传送LSA的延迟时间 ............................................................................................ 1-32 1.7.4 配置SPF计算时间间隔 ....................................................................................................... 1-33 1.7.5 配置LSA重复到达的最小时间间隔 ..................................................................................... 1-33

1.7.6 配置LSA重新生成的时间间隔 ............................................................................................ 1-34 1.7.7 禁止接口发送OSPF报文 .................................................................................................... 1-34 1.7.8 配置Stub路由器.................................................................................................................. 1-35 1.7.9 配置OSPF验证 ................................................................................................................... 1-35 1.7.10 配置DD报文中的MTU ..................................................................................................... 1-36 1.7.11 配置LSDB中External LSA的最大数量 ............................................................................ 1-36 1.7.12 配置兼容RFC 1583的外部路由选择规则 ......................................................................... 1-37 1.7.13 配置邻接状态输出 .............................................................................................................. 1-37 1.7.14 配置OSPF网管功能 ......................................................................................................... 1-37 1.7.15 使能日志功能 ..................................................................................................................... 1-38 1.7.16 使能Opaque LSA发布接收能力 ....................................................................................... 1-38 1.7.17 配置OSPF优先接收并处理Hello报文 ............................................................................. 1-38 1.7.18 配置LSU报文的发送速率 ................................................................................................. 1-39 1.8 配置OSPF伪连接 .......................................................................................................................... 1-39

1.8.1 配置准备 .............................................................................................................................. 1-39 1.8.2 配置Loopback接口 ............................................................................................................. 1-39 1.8.3 发布Loopback接口的路由 .................................................................................................. 1-40 1.8.4 配置伪连接 ........................................................................................................................... 1-40 1.9 配置OSPF GR ............................................................................................................................... 1-41

1.9.1 配置GR Restarter ............................................................................................................... 1-41 1.9.2 配置GR Helper .................................................................................................................... 1-42 1.9.3 以GR方式重启OSPF进程 ................................................................................................. 1-43 1.10 OSPF显示和维护 ......................................................................................................................... 1-43 1.11 典型配置举例 ................................................................................................................................ 1-44

1.11.1 配置OSPF基本功能 ......................................................................................................... 1-44 1.11.2 配置OSPF引入自治系统外部路由 .................................................................................... 1-47 1.11.3 配置OSPF发布聚合路由 .................................................................................................. 1-49 1.11.4 配置OSPF的Stub区域 .................................................................................................... 1-51 1.11.5 配置OSPF的NSSA区域 ................................................................................................. 1-54 1.11.6 配置OSPF的DR选择 ...................................................................................................... 1-56 1.11.7 配置OSPF虚连接 ............................................................................................................. 1-61 1.11.8 OSPF GR配置举例 ............................................................................................................ 1-63 1.11.9 配置路由过滤 ..................................................................................................................... 1-65 1.12 常见配置错误举例......................................................................................................................... 1-67

1.12.1 OSPF邻居无法建立 ........................................................................................................... 1-67 1.12.2 OSPF路由信息不正确 ........................................................................................................ 1-68

1 OSPF配置

在以下路由协议的介绍中所指的路由器及路由器图标,代表了一般意义下的路由器以及运行了路由协议的以太网交换机。

1.1 OSPF简介

OSPF(Open Shortest Path First,开放最短路径优先)是IETF组织开发的一个基于链路状态的内部网关协议。目前针对IPv4协议使用的是OSPF Version 2(RFC 2328)。 本章若没有特别说明,下文中所提到的OSPF均指OSPFv2。

OSPF具有如下特点:

? 适应范围广——支持各种规模的网络,最多可支持几百台路由器。

?

快速收敛——在网络的拓扑结构发生变化后立即发送更新报文,使这一变化在自治系统中同步。

无自环——由于OSPF根据收集到的链路状态用最短路径树算法计算路由,从算法本身保证了不会生成自环路由。

区域划分——允许自治系统的网络被划分成区域来管理,区域间传送的路由信息被进一步抽象,从而减少了占用的网络带宽。 等价路由——支持到同一目的地址的多条等价路由。

路由分级——使用4类不同的路由,按优先顺序来说分别是:区域内路由、区域间路由、第一类外部路由、第二类外部路由。

支持验证——支持基于接口的报文验证,以保证报文交互和路由计算的安全性。 组播发送——在某些类型的链路上以组播地址发送协议报文,减少对其他设备的干扰。

?

?

? ?

? ?

1.1.1 OSPF的基本概念

1. 自治系统(Autonomous System)

一组使用相同路由协议交换路由信息的路由器,缩写为AS。

2. OSPF路由的计算过程

同一个区域内,OSPF协议路由的计算过程可简单描述如下: ? 每台OSPF路由器根据自己周围的网络拓扑结构生成LSA(Link State

Advertisement,链路状态通告),并通过更新报文将LSA发送给网络中的其它OSPF路由器。

?

每台OSPF路由器都会收集其它路由器通告的LSA,所有的LSA放在一起便组成了LSDB(Link State Database,链路状态数据库)。LSA是对路由器周围网络拓扑结构的描述,LSDB则是对整个自治系统的网络拓扑结构的描述。 OSPF路由器将LSDB转换成一张带权的有向图,这张图便是对整个网络拓扑结构的真实反映。各个路由器得到的有向图是完全相同的。

每台路由器根据有向图,使用SPF算法计算出一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由。

?

?

3. 路由器ID号

一台运行OSPF协议路由器,每一个OSPF进程必须存在自己的Router ID(路由器ID)。Router ID是一个32比特无符号整数,可以在一个自治系统中唯一的标识一台路由器。

4. OSPF的协议报文

OSPF有五种类型的协议报文:

? Hello报文:周期性发送,用来发现和维持OSPF邻居关系。内容包括一些定

时器的数值、DR(Designated Router,指定路由器)、BDR(Backup Designated Router,备份指定路由器)以及自己已知的邻居。

?

DD(Database Description,数据库描述)报文:描述了本地LSDB中每一条LSA的摘要信息,用于两台路由器进行数据库同步。

LSR(Link State Request,链路状态请求)报文:向对方请求所需的LSA。两台路由器互相交换DD报文之后,得知对端的路由器有哪些LSA是本地的LSDB所缺少的,这时需要发送LSR报文向对方请求所需的LSA。内容包括所需要的LSA的摘要。

LSU(Link State Update,链路状态更新)报文:向对方发送其所需要的LSA。 LSAck(Link State Acknowledgment,链路状态确认)报文:用来对收到的LSA进行确认。内容是需要确认的LSA的Header(一个报文可对多个LSA进行确认)。

?

? ?

5. LSA的类型

OSPF中对链路状态信息的描述都是封装在LSA中发布出去,常用的LSA有以下几种类型: ? Router LSA(Type1):由每个路由器产生,描述路由器的链路状态和开销,

在其始发的区域内传播。

?

Network LSA(Type2):由DR产生,描述本网段所有路由器的链路状态,在其始发的区域内传播。

Network Summary LSA(Type3):由ABR(Area Border Router,区域边界路由器)产生,描述区域内某个网段的路由,并通告给其他区域。

ASBR Summary LSA(Type4):由ABR产生,描述到ASBR(Autonomous System Boundary Router,自治系统边界路由器)的路由,通告给相关区域。 AS External LSA(Type5):由ASBR产生,描述到AS(Autonomous System,自治系统)外部的路由,通告到所有的区域(除了Stub区域和NSSA区域)。 NSSA External LSA(Type7):由NSSA(Not-So-Stubby Area)区域内的ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。

?

?

?

?

?

Opaque LSA:是一个被提议的LSA类别,由标准的LSA头部后面跟随特殊应用的信息组成,可以直接由OSPF协议使用,或者由其它应用分发信息到整个OSPF域间接使用。Opaque LSA分为Type 9、Type10、Type11三种类型,泛洪区域不同;其中,Type 9的Opaque LSA仅在本地链路范围进行泛洪,Type 10的Opaque LSA仅在本地区域范围进行泛洪,Type 11的LSA可以在一个自治系统范围进行泛洪。

6. 邻居和邻接

在OSPF中,邻居(Neighbor)和邻接(Adjacency)是两个不同的概念。

OSPF路由器启动后,便会通过OSPF接口向外发送Hello报文。收到Hello报文的OSPF路由器会检查报文中所定义的参数,如果双方一致就会形成邻居关系。 形成邻居关系的双方不一定都能形成邻接关系,这要根据网络类型而定。只有当双方成功交换DD报文,交换LSA并达到LSDB的同步之后,才形成真正意义上的邻接关系。

1.1.2 OSPF区域

1. 区域划分

随着网络规模日益扩大,当一个大型网络中的路由器都运行OSPF路由协议时,路由器数量的增多会导致LSDB非常庞大,占用大量的存储空间,并使得运行SPF算法的复杂度增加,导致CPU负担很重。

在网络规模增大之后,拓扑结构发生变化的概率也增大,网络会经常处于“振荡”之中,造成网络中会有大量的OSPF协议报文在传递,降低了网络的带宽利用率。更为严重的是,每一次变化都会导致网络中所有的路由器重新进行路由计算。

OSPF协议通过将自治系统划分成不同的区域(Area)来解决上述问题。区域是从逻辑上将路由器划分为不同的组,每个组用区域号(Area ID)来标识。如图1-1所示。

图1-1 OSPF区域划分

Area 4Area 1Area 0Area 2Area 3

区域的边界是路由器,而不是链路。一个路由器可以属于不同的区域,但是一个网段(链路)

只能属于一个区域,或者说每个运行OSPF的接口必须指明属于哪一个区域。划分区域后,可以在区域边界路由器上进行路由聚合,以减少通告到其他区域的LSA数量,还可以将网络拓扑变化带来的影响最小化。

2. 骨干区域与虚连接

(1) 骨干区域(Backbone Area)

OSPF划分区域之后,并非所有的区域都是平等的关系。其中有一个区域是与众不同的,它的区域号(Area ID)是0,通常被称为骨干区域。骨干区域负责区域之间的路由,非骨干区域之间的路由信息必须通过骨干区域来转发。对此,OSPF有两个规定:

? 所有非骨干区域必须与骨干区域保持连通;

?

骨干区域自身也必须保持连通。

但在实际应用中,可能会因为各方面条件的限制,无法满足这个要求。这时可以通过配置OSPF虚连接(Virtual Link)予以解决。

(2) 虚连接(Virtual Link) 虚连接是指在两台ABR之间通过一个非骨干区域而建立的一条逻辑上的连接通道。它的两端必须是ABR,而且必须在两端同时配置方可生效。为虚连接两端提供一条非骨干区域内部路由的区域称为传输区(Transit Area)。

在图1-2中,Area2与骨干区域之间没有直接相连的物理链路,但可以在ABR上配置虚连接,使Area2通过一条逻辑链路与骨干区域保持连通。

图1-2 虚连接示意图之一

Transit areaArea 0ABRVirtual linkArea 1ABRArea 2

虚连接的另外一个应用是提供冗余的备份链路,当骨干区域因链路故障不能保持连通时,通过虚连接仍然可以保证骨干区域在逻辑上的连通性。如图1-3所示。

图1-3 虚连接示意图之二

Area 1Virtual linkR1R2Area 0

虚连接相当于在两个ABR之间形成了一个点到点的连接,因此,在这个连接上,和物理接口一样可以配置接口的各参数,如发送Hello报文间隔等。

两台ABR之间直接传递OSPF报文信息,它们之间的OSPF路由器只是起到一个转发报文

的作用。由于协议报文的目的地址不是中间这些路由器,所以这些报文对于它们而言是透明的,只是当作普通的IP报文来转发。

3. Stub区域

Stub区域是一些特定的区域,Stub区域的ABR不允许注入Type5 LSA,在这些区域中路由器的路由表规模以及路由信息传递的数量都会大大减少。

为了进一步减少Stub区域中路由器的路由表规模以及路由信息传递的数量,可以将该区域配置为Totally Stub(完全Stub)区域,该区域的ABR不会将区域间的路由信息和外部路由信息传递到本区域。

(Totally)Stub区域是一种可选的配置属性,但并不是每个区域都符合配置的条件。通常来说,(Totally)Stub区域位于自治系统的边界。

为保证到本自治系统的其他区域或者自治系统外的路由依旧可达,该区域的ABR将生成一条缺省路由,并发布给本区域中的其他非ABR路由器。 配置(Totally)Stub区域时需要注意下列几点:

? 骨干区域不能配置成(Totally)Stub区域。

?

如果要将一个区域配置成Stub区域,则该区域中的所有路由器必须都要配置stub命令。

如果要将一个区域配置成Totally Stub区域,该区域中的所有路由器必须配置stub命令,该区域的ABR路由器需要配置stub [ no-summary ]命令。 (Totally)Stub区域内不能存在ASBR,即自治系统外部的路由不能在本区域内传播。

虚连接不能穿过(Totally)Stub区域。

?

?

?

4. NSSA区域

NSSA(Not-So-Stubby Area)区域是Stub区域的变形,与Stub区域有许多相似的地方。NSSA区域也不允许Type5 LSA注入,但可以允许Type7 LSA注入。Type7 LSA由NSSA区域的ASBR产生,在NSSA区域内传播。当Type7 LSA到达NSSA的ABR时,由ABR将Type7 LSA转换成Type5 LSA,传播到其他区域。

如图1-4所示,运行OSPF协议的自治系统包括3个区域:区域1、区域2和区域0,另外两个自治系统运行RIP协议。区域1被定义为NSSA区域,区域1接收的RIP路由传播到NSSA ASBR后,由NSSA ASBR产生Type7 LSA在区域1内传播,当Type7 LSA到达NSSA ABR后,转换成Type5 LSA传播到区域0和区域2。

另一方面,运行RIP的自治系统的RIP路由通过区域2的ASBR产生Type5 LSA在OSPF自治系统中传播。但由于区域1是NSSA区域,所以Type5 LSA不会到达区域1。 与Stub区域一样,虚连接也不能穿过NSSA区域。

图1-4 NSSA区域

RIPNSSAType 5Type 5Type 5Type 5Type 7RIPASBRArea 2ABRArea 0NSSAABRArea 1NSSAASBR

5. 各区域特性

如图1-5所示,列出了各个区域之间的区别。

图1-5 区域特性示意图

允许Type3缺省路由注入该区;不允许Type3和Type5 LSA注入该区Totally Stub areaStub area允许Type3 LSA区域内允许Type7 LSA不允许Type3 LSATotally NSSA areaNSSA area

各区域特性:

? Totally Stub区域:允许ABR发布的Type3缺省路由,不允许自治系统外部路

由和区域间的路由;

? ?

Stub区域:和Totally Stub区域不同在于该区域允许区域间路由;

Nssa区域:和Stub区域不同在于该区域允许自治系统外部路由的引入,由ASBR发布Type7 LSA通告给本区域;

Totally Nssa区域:和Nssa区域不同在于该区域不允许区域间路由。

?

1.1.3 路由器的类型

1. 路由器的分类

OSPF路由器根据在AS中的不同位置,可以分为以下四类: (1) 区域内路由器(Internal Router) 该类路由器的所有接口都属于同一个OSPF区域。

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

该类路由器可以同时属于两个以上的区域,但其中一个必须是骨干区域(骨干区域的介绍请参见下一小节)。ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。

(3) 骨干路由器(Backbone Router) 该类路由器至少有一个接口属于骨干区域。因此,所有的ABR和位于Area0的内部路由器都是骨干路由器。

(4) 自治系统边界路由器ASBR 与其他AS交换路由信息的路由器称为ASBR。ASBR并不一定位于AS的边界,它有可能是区域内路由器,也有可能是ABR。只要一台OSPF路由器引入了外部路由的信息,它就成为ASBR。

图1-6 OSPF路由器的类型

RIPIS-ISArea 1ASBRArea 4Backbone routerInternal routerArea 0ABRArea 3Area 2

2. 路由类型

OSPF将路由分为四类,按照优先级从高到低的顺序依次为:

? 区域内路由(Intra Area)

? ? ?

区域间路由(Inter Area)

第一类外部路由(Type1 External) 第二类外部路由(Type2 External)

区域内和区域间路由描述的是AS内部的网络结构,外部路由则描述了应该如何选择到AS以外目的地址的路由。OSPF将引入的AS外部路由分为两类:Type1和Type2。

第一类外部路由是指接收的是IGP(Interior Gateway Protocol,内部网关协议)路由(例如静态路由和RIP路由)。由于这类路由的可信程度较高,并且和OSPF自身路由的开销具有可比性,所以到第一类外部路由的开销等于本路由器到相应的ASBR的开销与ASBR到该路由目的地址的开销之和。

第二类外部路由是指接收的是EGP(Exterior Gateway Protocol,外部网关协议)路由。由于这类路由的可信度比较低,所以OSPF协议认为从ASBR到自治系统之外的开销远远大于在自治系统之内到达ASBR的开销。所以计算路由开销时将主要考虑前者,即到第二类外部路由的开销等于ASBR到该路由目的地址的开销。如果计算出开销值相等的两条路由,再考虑本路由器到相应的ASBR的开销。

1.1.4 OSPF的网络类型

1. OSPF的4种网络类型

OSPF根据链路层协议类型将网络分为下列四种类型:

? 广播(Broadcast)类型:当链路层协议是Ethernet、FDDI时,OSPF缺省认

为网络类型是Broadcast。在该类型的网络中,通常以组播形式(224.0.0.5:

含义是OSPF路由器的预留IP组播地址;224.0.0.6:含义是OSPF DR的预留IP组播地址)发送Hello报文、LSU报文和LSAck报文;以单播形式发送DD报文和LSR报文。

?

NBMA(Non-Broadcast Multi-Access,非广播多点可达网络)类型:当链路层协议是帧中继、ATM或X.25时,OSPF缺省认为网络类型是NBMA。在该类型的网络中,以单播形式发送协议报文。

P2MP(Point-to-MultiPoint,点到多点)类型:没有一种链路层协议会被缺省的认为是P2MP类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将NBMA改为点到多点的网络。在该类型的网络中,缺省情况下,以组播形式(224.0.0.5)发送协议报文。可以根据用户需要,以单播形式发送协议报文。

P2P(Point-to-Point,点到点)类型:当链路层协议是PPP、HDLC时,OSPF缺省认为网络类型是P2P。在该类型的网络中,以组播形式(224.0.0.5)发送协议报文。

?

?

2. NBMA网络的配置原则

NBMA网络是指非广播、多点可达的网络,比较典型的有ATM和帧中继网络。

对于接口的网络类型为NBMA的网络需要进行一些特殊的配置。由于无法通过广播Hello报文的形式发现相邻路由器,必须手工为该接口指定相邻路由器的IP地址,以及该相邻路由器是否有DR选举权等。 NBMA网络必须是全连通的,即网络中任意两台路由器之间都必须有一条虚链路直接可达。如果部分路由器之间没有直接可达的链路时,应将接口配置成P2MP类型。如果路由器在NBMA网络中只有一个对端,也可将接口类型配置为P2P类型。 NBMA与P2MP网络之间的区别如下:

? NBMA网络是指那些全连通的、非广播、多点可达网络。而P2MP网络,则并

不需要一定是全连通的。

? ?

在NBMA网络中需要选举DR与BDR,而在P2MP网络中没有DR与BDR。 NBMA是一种缺省的网络类型,而P2MP网络必须是由其它的网络强制更改的。最常见的做法是将NBMA网络改为P2MP网络。

NBMA网络采用单播发送报文,需要手工配置邻居。P2MP网络采用组播方式发送报文。

?

1.1.5 DR/BDR

1. DR/BDR简介

在广播网和NBMA网络中,任意两台路由器之间都要交换路由信息。如果网络中有n台路由器,则需要建立n(n-1)/2个邻接关系。这使得任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源。为解决这一问题,OSPF协议定义了指定路由器DR(Designated Router),所有路由器都只将信息发送给DR,由DR将网络链路状态发送出去。

如果DR由于某种故障而失效,则网络中的路由器必须重新选举DR,再与新的DR同步。这需要较长的时间,在这段时间内,路由的计算是不正确的。为了能够缩短这个过程,OSPF提出了BDR(Backup Designated Router,备份指定路由器)的概念。

BDR实际上是对DR的一个备份,在选举DR的同时也选举出BDR,BDR也和本网段内的

所有路由器建立邻接关系并交换路由信息。当DR失效后,BDR会立即成为DR。由于不需要重新选举,并且邻接关系事先已建立,所以这个过程是非常短暂的。当然这时还需要再重新选举出一个新的BDR,虽然一样需要较长的时间,但并不会影响路由的计算。

运行OSPF进程的网络中,既不是DR也不是BDR的路由器为DR Other。DR Other仅与DR和BDR之间建立邻接关系,DR Other之间不交换任何路由信息。这样就减少了广播网和NBMA网络上各路由器之间邻接关系的数量,同时减少网络流量,节约了带宽资源。 如图1-7所示,用实线代表以太网物理连接,虚线代表建立的邻接关系。可以看到,采用DR/BDR机制后,5台路由器之间只需要建立7个邻接关系就可以了。

图1-7 DR和BDR示意图

DRBDRDRotherDRotherDRother

2. DR/BDR选举过程

DR和BDR是由同一网段中所有的路由器根据路由器优先级、Router ID通过Hello报文选举出来的,只有优先级大于0的路由器才具有选举资格。

进行DR/BDR选举时每台路由器将自己选出的DR写入Hello报文中,发给网段上的每台运行OSPF协议的路由器。当处于同一网段的两台路由器同时宣布自己是DR时,路由器优先级高者胜出。如果优先级相等,则Router ID大者胜出。如果一台路由器的优先级为0,则它不会被选举为DR或BDR。

需要注意的是: ? 只有在广播或NBMA类型接口才会选举DR,在点到点或点到多点类型的接口

上不需要选举DR。

?

DR是某个网段中的概念,是针对路由器的接口而言的。某台路由器在一个接口上可能是DR,在另一个接口上有可能是BDR,或者是DR Other。 路由器的优先级可以影响DR/BDR的选举过程,但是当DR/BDR已经选举完毕,就算一台具有更高优先级的路由器变为有效,也不会替换该网段中已经存在的DR/BDR成为新的DR/BDR。

DR并不一定就是路由器优先级最高的路由器接口;同理,BDR也并不一定就是路由器优先级次高的路由器接口。

?

?

1.1.6 OSPF的协议报文

OSPF报文直接封装为IP报文协议报文,协议号为89。一个比较完整的OSPF报文(以LSU报文为例)结构如图1-8所示。

图1-8 OSPF报文结构

IP headerOSPF packet headerNumber of LSAsLSA headerLSA data

2. OSPF报文头

OSPF有五种报文类型,它们有相同的报文头。如图1-9所示。

图1-9 OSPF报文头格式

0Version7 Type 15 Packet length31 Router ID Area ID Checksum AuType Authentication Authentication

主要字段的解释如下:

? Version:OSPF的版本号。对于OSPFv2来说,其值为2。

?

Type:OSPF报文的类型。数值从1到5,分别对应Hello报文、DD报文、LSR报文、LSU报文和LSAck报文。

Packet length:OSPF报文的总长度,包括报文头在内,单位为字节。 Router ID:始发该LSA的路由器的ID。 Area ID:始发LSA的路由器所在的区域ID。 Checksum:对整个报文的校验和。

AuType:验证类型。可分为不验证、简单(明文)口令验证和MD5验证,其值分别为0、1、2。

Authentication:其数值根据验证类型而定。当验证类型为0时未作定义,为1时此字段为密码信息,类型为2时此字段包括Key ID、MD5验证数据长度和序列号的信息。

? ? ? ? ?

?

MD5验证数据添加在OSPF报文后面,不包含在Authenticaiton字段中。

3. Hello报文(Hello Packet)

最常用的一种报文,周期性的发送给邻居路由器用来维持邻居关系以及DR/BDR的选举,内容包括一些定时器的数值、DR、BDR以及自己已知的邻居。Hello报文格式如图1-10所示。

图1-10 Hello报文格式

0Version7115 Packet length31 Router ID Area ID Checksum AuType Authentication AuthenticationNetwork mask HelloInterval Options Rtr Pri RouterDeadInterval Designated router Backup designated router Neighbor... Neighbor

主要字段解释如下:

? Network mask:发送Hello报文的接口所在网络的掩码,如果相邻两台路由器

的网络掩码不同,则不能建立邻居关系。

?

HelloInterval:发送Hello报文的时间间隔。如果相邻两台路由器的Hello间隔时间不同,则不能建立邻居关系。

Rtr Pri:路由器优先级。如果设置为0,则该路由器接口不能成为DR/BDR。 RouterDeadInterval:失效时间。如果在此时间内未收到邻居发来的Hello报文,则认为邻居失效。如果相邻两台路由器的失效时间不同,则不能建立邻居关系。 Designated router:指定路由器的接口的IP地址。

Backup designated router:备份指定路由器的接口的IP地址。 Neighbor:邻居路由器的Router ID。

? ?

? ? ?

4. DD报文(Database Description Packet)

两台路由器进行数据库同步时,用DD报文来描述自己的LSDB,内容包括LSDB中每一条LSA的摘要(摘要是指LSA的Header,通过该Header可以唯一标识一条LSA)。这样做是为了减少路由器之间传递信息的量,因为LSA的Header只占一条LSA的整个数据量的一小部分,根据Header,对端路由器就可以判断出是否已有这条LSA。 DD报文格式如图1-11所示。

图1-11 DD报文格式

0Version7215 Packet length31 Router ID Area ID Checksum AuType Authentication AuthenticationInterface MTUOptionsDD sequence numberLSA header00000IMMSLSA header

主要字段的解释如下:

? Interface MTU:在不分片的情况下,此接口最大可发出的IP报文长度。

?

I(Initial):当发送连续多个DD报文时,如果这是第一个DD报文,则置为1,否则置为0。

M(More):当连续发送多个DD报文时,如果这是最后一个DD报文,则置为0。否则置为1,表示后面还有其他的DD报文。

MS(Master/Slave):当两台OSPF路由器交换DD报文时,首先需要确定双方的主(Master)从(Slave)关系,Router ID大的一方会成为Master。当值为1时表示发送方为Master。

DD Sequence Number:DD报文序列号,由Master方规定起始序列号,每发送一个DD报文序列号加1,Slave方使用Master的序列号作为确认。主从双方利用序列号来保证DD报文传输的可靠性和完整性。

...

?

?

?

5. LSR报文(Link State Request Packet)

两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地的LSDB所缺少的,这时需要发送LSR报文向对方请求所需的LSA。内容包括所需要的LSA的摘要。LSR报文格式如图1-12所示。

图1-12 LSR报文格式

0Version7315 Packet length31 Router ID Area ID Checksum AuType Authentication AuthenticationLS typeLink state IDAdvertising router...

主要字段解释如下:

? LS type:LSA的类型号。例如Type1表示Router LSA。

? ?

Link State ID:链路状态标识,根据LSA的类型而定。 Advertising Router:产生此LSA的路由器的Router ID。

6. LSU报文(Link State Update Packet)

LSU报文用来向对端路由器发送它所需要的LSA,内容是多条LSA(全部内容)的集合。LSU报文格式如图1-13所示。

图1-13 LSU报文格式

0Version7415 Packet length31 Router ID Area ID Checksum AuType Authentication AuthenticationNumber of LSAsLSALSA

主要字段解释如下:

? Number of LSAs:该报文包含的LSA的数量。

?

...

LSA:该报文包含的LSA。

7. LSAck报文(Link State Acknowledgment Packet)

LSAck报文用来对接收到的LSU报文进行确认,内容是需要确认的LSA的Header。一个LSAck报文可对多个LSA进行确认。报文格式如图1-14所示。

图1-14 LSAck报文格式

0Version7515 Packet length31 Router ID Area ID Checksum AuType Authentication AuthenticationLSA headerLSA header...

主要字段解释如下:

LSA Headers:该报文包含的LSA头部。

8. LSA头格式

所有的LSA都有相同的报文头,其格式如图1-15所示。

图1-15 LSA的头格式

07LS ageLink state IDAdvertising routerLS sequence numberLS checksumLength15OptionsLS type31

主要字段的解释如下:

? LS age:LSA产生后所经过的时间,以秒为单位。LSA在本路由器的链路状态

数据库(LSDB)中会随时间老化(每秒钟加1),但在网络的传输过程中却不会。

? ? ? ?

LS type:LSA的类型。

Link State ID:具体数值根据LSA的类型而定。 Advertising Router:始发LSA的路由器的ID。

LS sequence number:LSA的序列号,其他路由器根据这个值可以判断哪个LSA是最新的。

LS checksum:除了LS age字段外,关于LSA的全部信息的校验和。 length:LSA的总长度,包括LSA Header,以字节为单位。

? ?

9. LSA类型 (1) Router LSA

图1-16 Router LSA格式

07LS ageLinke state IDAdvertising routerLS sequence numberLS checksum0VEB0Link IDLink dataType#TOS...TOS0Link IDLink data...TOS metricMetricLength# Links15Options131

主要字段的解释如下:

? Link State ID:产生此LSA的路由器的Router ID。

? ? ? ?

V(Virtual Link):如果产生此LSA的路由器是虚连接的端点,则置为1。 E(External):如果产生此LSA的路由器是ASBR,则置为1。 B(Border):如果产生此LSA的路由器是ABR,则置为1。

# Links:LSA中所描述的链路信息的数量,包括路由器上处于某区域中的所有链路和接口。

Link ID:链路标识,具体的数值根据链路类型而定。 Link data:链路数据,具体的数值根据链路类型而定。

Type:链路类型,取值为1表示通过点对点链路与另一路由器相连,取值为2表示连接到传送网络,取值为3表示连接到Stub网络,取值为4表示虚连接。 #TOS:描述链路的不同方式的数量。 Metric:链路的开销。 TOS:服务类型。

TOS metric:指定服务类型的链路的开销。

? ? ?

? ? ? ?

(2) Network LSA

Network LSA由广播网或NBMA网络中的DR发出,LSA中记录了这一网段上所有路由器的Router ID。

图1-17 Network LSA格式

07LS ageLinke state IDAdvertising routerLS sequence numberLS checksumNetwork maskAttached router...Length15Options231

主要字段的解释如下:

? Link State ID:DR的IP地址。

? ?

Network mask:广播网或NBMA网络地址的掩码。

Attached router:连接在同一个网段上的所有与DR形成了完全邻接关系的路由器的Router ID,也包括DR自身的Router ID。

(3) Summary LSA

Network Summary LSA(Type3 LSA)和ASBR Summary LSA(Type4 LSA)除Link State ID字段有所不同外,有着相同的格式,它们都是由ABR产生。

图1-18 Summary LSA格式

07LS ageLinke state IDAdvertising routerLS sequence numberLS checksumNetwork mask0TOS...MetricTOS metricLength15Options3or431

主要字段的解释如下:

? Link State ID:对于Type3 LSA来说,它是所通告的区域外的网络地址;对于

Type4来说,它是所通告区域外的ASBR的Router ID。

?

Network mask:Type3 LSA的网络地址掩码。对于Type4 LSA来说没有意义,设置为0.0.0.0。

Metric:到目的地址的路由开销。

?

Type3的LSA可以用来通告缺省路由,此时Link State ID和Network Mask都设置为0.0.0.0。

(4) AS External LSA

由ASBR产生,描述到AS外部的路由信息。

图1-19 AS External LSA格式

07LS ageLinke state IDAdvertising routerLS sequence numberLS checksumNetwork maskE0MetricForwarding addressExternal route tagETOSTOS metricForwarding addressExternal route tag...Length15Options531

主要字段的解释如下:

? Link State ID:所要通告的其他外部AS的目的地址,如果通告的是一条缺省路

由,那么链路状态ID(Link State ID)和网络掩码(Network Mask)字段都将设置为0.0.0.0。

? ?

Network mask:所通告的目的地址的掩码。

E(External Metric):外部度量值的类型。如果是第2类外部路由就设置为1,如果是第1类外部路由则设置为0。关于外部路由类型的详细描述请参见1.1.3 2. 路由类型部分。 Metirc:路由开销。

Forwarding Address:到所通告的目的地址的报文将被转发到的地址。 External Route Tag:添加到外部路由上的标记。OSPF本身并不使用这个字段,它可以用来对外部路由进行管理。

? ? ?

(5) NSSA External LSA

由NSSA区域内的ASBR产生,且只能在NSSA区域内传播。其格式与AS External LSA相同,如图1-20所示。

图1-20 NSSA External LSA格式

07LS ageLinke state IDAdvertising routerLS sequence numberLS checksumNetwork maskETOSMetricForwarding addressExternal route tag...Length15Options731

1.1.7 系统支持的OSPF特性

1. 多进程

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

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

2. 验证

OSPF支持报文验证功能,只有通过验证的OSPF报文才能接收,否则将不能正常建立邻居关系。

一个区域中所有的接口的验证类型(不支持验证、支持明文验证或者支持MD5密文验证)必须一致。一个网段中所有接口的验证字口令必须一致。

3. OSPF GR

有关GR(Graceful Restart,平滑重启)的原理介绍请参见“可靠性分册”中的“GR概述”。

基于OSPF的GR Restarter进行协议重启后,为了与其OSPF邻居重新同步链路状态数据库,它必须完成下列两项任务:

? 在不改变邻接关系的前提下,重新获取网络中的有效OSPF邻居信息;

?

重新获取网络链路状态数据库的内容。

在OSPF协议重启前,GR Restarter与GR Helper协商GR能力,如果GR Restarter发生重启,在重启过程中,GR Helper宣告与GR Restarter的邻接状态不变。 OSPF协议重启完毕后,GR Restarter会立即向其邻接的GR Helper发送一个OSPF GR信号。这样,OSPF邻居就不会复位与其的邻居关系。在收到其OSPF邻居的响应后,GR Restarter会重新恢复与其的邻居关系列表。

邻居关系重新建立后,GR Restarter与其所有具备GR感知能力的OSPF邻居之间同步数据

库,并交换路由信息。交换完成后,GR Restarter根据新的路由转发信息更新路由表和转发表,删除失效的路由,完成OSPF协议收敛。

4. OSPF支持多实例

OSPF支持多实例,可以运行在VPN网络。 在BGP MPLS VPN网络中,属于同一个VPN的多个Site可以使用OSPF作为内部路由协议。然而,它们会被看作属于不同的自治系统来处理。这样,在一个节点学到的OSPF路由,将被作为外部路由传送给另一节点。这种处理方式导致了比较高的OSPF路由协议流量,并带来了一些原本可以避免的网络管理问题。

此特性的相关配置请参见“IP路由分册”中的“MCE配置”。

5. OSPF伪连接

OSPF伪连接(sham link)是MPLS VPN骨干网上两个PE路由器之间的点到点链路。 通常情况下,BGP对等体之间通过BGP扩展团体属性在MPLS VPN骨干网上承载路由信息。另一端PE上运行的OSPF可利用这些信息来生成PE到CE的Type3 LSA,这些路由是区域间路由。

但是,如果路由器和它同一区域内的PE路由器相连,且建立到达特定目的地址的内部区域路由(后门路由),那么VPN流量就将总是穿越这条后门路由,而不是骨干路由。这是因为在路由表中建立的OSPF内部区域路由的优先级较高。为了避免这一异常现象,可以在PE路由器之间配置一条unnumbered的点到点伪连接。这样,就可以通过一条低开销的内部区域路由到达PE路由器。

1.1.8 协议规范

与OSPF相关的协议规范有:

? RFC 1765:OSPF Database Overflow

? ? ? ? ? ? ?

RFC 2328:OSPF Version 2

RFC 3101:OSPF Not-So-Stubby Area (NSSA) Option RFC 3137:OSPF Stub Router Advertisement

RFC 3630:Traffic Engineering Extensions to OSPF Version 2 RFC 4811:OSPF Out-of-Band LSDB Resynchronization RFC 4812:OSPF Restart Signaling RFC 4813:OSPF Link-Local Signaling

1.2 OSPF配置任务简介

在一个运行OSPF的路由域里,有各种类型的路由器,区域内路由器、ABR、ASBR等。 无论是哪种类型的路由器,都必须先使能OSPF,否则OSPF协议将无法正常运行;使能OSPF功能后,路由器可以使用一些缺省配置,如OSPF各种协议报文的发送时间间隔、LSA延迟时间、SPF计算时间间隔等,也可以根据需要修改缺省配置。 在OSPF路由器上进行各项配置的时候都应该先做好网络规划,在配置同一区域内的路由器时,配置时应该以区域为基础来统一考虑,错误的配置可能会导致相邻路由器之间无法相互

传递信息,甚至导致路由信息的阻塞或者产生路由环。

表1-1 OSPF配置任务简介

配置任务 使能OSPF功能 配置Stub区域 配置OSPF区域 配置NSSA区域 配置虚连接 配置OSPF接口网络类型为广播 配置OSPF接口网络类型为NBMA 配置OSPF的网络类型 配置OSPF接口网络类型为P2MP 配置OSPF接口网络类型为P2P 配置OSPF路由聚合 配置OSPF对通过接收到的LSA计算出来的路由信息进行过滤 配置对Type-3 LSA进行过滤 配置OSPF接口的开销值 配置OSPF的路由信息控制 配置OSPF支持的路由最大数目 配置OSPF最大等价路由条数 配置OSPF协议的优先级 配置OSPF引入外部路由 配置发布一条主机路由 配置OSPF报文定时器 配置接口传送LSA的延迟时间 配置SPF计算时间间隔 配置LSA重复到达的最小时间间隔 配置LSA重新生成的时间间隔 禁止接口发送OSPF报文 配置Stub路由器 配置OSPF网络调整优化 配置OSPF验证 配置DD报文中的MTU 配置LSDB中External LSA的最大数量 配置兼容RFC1583的外部路由选择规则 配置邻接状态输出 配置OSPF网管功能 使能日志功能 可选 可选 可选 可选 可选 可选 可选 1.7.9 1.7.10 1.7.11 1.7.12 1.7.13 1.7.14 1.7.15 可选 可选 可选 可选 可选 可选 可选 可选 可选 可选 可选 可选 可选 可选 可选 可选 可选 可选 1.5.4 1.5.5 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.6.10 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 说明 必选 可选 可选 可选 可选 可选 详细配置 1.3 1.4.2 1.4.3 1.4.4 1.5.2 1.5.3 配置任务 使能Opaque LSA发布接收能力 配置OSPF优先处理Hello报文功能 配置OSPF发送更新报文的速度 配置OSPF 伪连接 配置OSPF 伪连接 配置GR Restarter 配置OSPF GR 配置GR Helper 重启OSPF GR进程 说明 可选 可选 可选 可选 可选 可选 可选 详细配置 1.7.16 1.7.17 1.7.18 1.8 1.9.1 1.9.2 错误!未找到引用源。

1.3 使能OSPF功能

在OSPF的各项配置任务中,必须先使能OSPF功能,其它功能特性的配置才能生效。

1.3.1 配置准备

在配置OSPF之前,需完成以下任务:

? 配置链路层协议,保证链路层通信正常。

?

配置接口的网络层地址,使各相邻节点网络层可达。

1.3.2 使能OSPF功能

要在路由器上使能OSPF功能,必须先创建OSPF进程、指定该进程关联的区域以及区域包括的网段;对于当前路由器来说,如果某个路由器的接口IP地址落在某个区域的网段内,则该接口属于这个区域并使能了OSPF功能,OSPF将把这个接口的直连路由宣告出去。 Router ID用来在一个自治系统中唯一的标识一台路由器,一台路由器如果要运行OSPF协议,则必须存在Router ID。

? 用户可以在创建OSPF进程的时候指定Router ID,配置时,必须保证自治系

统中任意两台路由器的ID都不相同。通常的做法是将路由器的ID配置为与该路由器某个接口的IP地址一致。

?

如果在创建OSPF进程的时候没有指定Router ID,则缺省使用全局Router ID,关于全局Router ID的详细说明,请参考“IP路由分册”中的“IP路由概述”。建议用户在创建OSPF进程的时候指定Router ID。

目前,系统支持OSPF多进程和OSPF多实例: ? 当在一台路由器上启动多个OSPF进程时,需要指定不同的进程号。OSPF进

程号是本地概念,不影响与其它路由器之间的报文交换。因此,不同的路由器之间,即使进程号不同也可以进行报文交换。

?

可以配置OSPF在VPN实例中运行。如果指定了VPN实例,那么此OSPF进程属于指定的VPN实例。

表1-2 使能OSPF功能

操作 进入系统视图 创建OSPF,进入OSPF视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * description description 命令 - 必选 缺省情况下,系统不运行OSPF 可选 缺省情况下,没有配置进程描述 必选 缺省情况下,没有配置OSPF区域 可选 缺省情况下,没有配置区域描述 必选 network ip-address wildcard-mask 缺省情况下,接口不属于任何区域且OSPF功能处于关闭状态 说明 配置OSPF进程描述 配置OSPF区域,进入OSPF区域视图 配置区域描述 area area-id description description 配置区域所包含的网段并在指定网段的接口上使能OSPF

一个网段只能属于一个区域。

建议用户为每个OSPF进程配置进程描述信息,帮助识别进程的用途,以便于记忆和管理。

建议用户为每个区域配置区域描述信息,帮助识别区域的用途,以便于记忆和管理。

? ?

?

1.4 配置OSPF区域

网络管理员对整个网络划分区域完毕后,可以根据组网需要进一步将区域配置成Stub区域或NSSA区域。

当非骨干区域不能与骨干区域保持连通,或者骨干区域因为各方面条件的限制无法保持连通时,可以通过配置OSPF虚连接予以解决。

1.4.1 配置准备

在配置OSPF的区域特性之前,需完成以下任务:

? 配置接口的网络层地址,使相邻节点网络层可达

?

使能OSPF功能

1.4.2 配置Stub区域

对于位于AS边缘的一些非骨干区域,我们可以在该区域的所有路由器上配置stub命令,把该区域配置为Stub区域。这样,描述自治系统外部路由的Type5 LSA不会在Stub区域里泛洪,减小了路由表的规模。ABR生成一条缺省路由,所有到达自治系统外部的报文都交给ABR进行转发。

如果想进一步减少Stub区域路由表规模以及路由信息传递的数量,那么在ABR上配置stub命令时指定no-summary参数,可以将该区域配置为Totally Stub(完全Stub)区域。这样,自治系统外部路由和区域间的路由信息都不会传递到本区域,所有目的地是自治系统外和区

域外的报文都交给ABR进行转发。

表1-3 配置Stub区域

操作 进入系统视图 进入OSPF视图 进入OSPF区域视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * area area-id 命令 - - - 必选 配置当前区域为Stub区域 stub [ no-summary ] 缺省情况下,没有区域被设置为Stub区域 可选 default-cost cost 缺省情况下,ABR发送到Stub区域缺省路由的开销为1 说明 配置ABR发送到Stub区域缺省路由的开销

Stub区域内的所有路由器必须使用stub命令将该区域配置成Stub属性。 default-cost命令只有在Stub区域的ABR上配置才能生效。 骨干区域不能配置成(Totally)Stub区域。

(Totally)Stub区域内不能存在ASBR,即自治系统外部的路由不能在本区域内传播。 虚连接不能穿过(Totally)Stub区域。

? ? ? ? ?

1.4.3 配置NSSA区域

Stub区域不能引入外部路由,为了在允许将外部路由通告到OSPF路由域内部的同时,保持其余部分的Stub区域的特征;网络管理员可以将区域配置为NSSA区域。

表1-4 配置NSSA区域

操作 进入系统视图 进入OSPF视图 进入OSPF区域视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * area area-id nssa [ default-route-advertise | no-import-route | no-summary ] * 命令 - - - 必选 缺省情况下,没有区域被设置为NSSA区域 可选 default-cost cost 缺省情况下,发送到NSSA区域的缺省路由的开销为1 说明 配置当前区域为NSSA区域 配置发送到NSSA区域缺省路由的开销

? ?

NSSA区域内的所有路由器必须使用nssa命令将该区域配置成NSSA属性。 default-cost命令只有在NSSA区域的ABR/ASBR上配置才能生效。

1.4.4 配置虚连接

在划分区域之后,非骨干区域之间的OSPF路由更新是通过骨干区域来完成交换的。对此,OSPF要求所有非骨干区域必须与骨干区域保持连通,并且骨干区域自身也要保持连通。 但在实际应用中,可能会因为各方面条件的限制,无法满足这个要求。这时可以通过在ABR上配置OSPF虚连接予以解决。

表1-5 配置虚连接

操作 进入系统视图 进入OSPF视图 进入OSPF区域视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * area area-id vlink-peer router-id [ hello seconds | retransmit seconds | trans-delay seconds | dead seconds | simple [ plain | cipher ] password | { md5 | hmac-md5 } key-id [ plain | cipher ] password ] * 命令 - - - 必选 为使虚连接生效,在虚连接的两端都需配置此命令,并且两端配置的hello、dead参数必须一致 说明 创建并配置虚连接

1.5 配置OSPF的网络类型

OSPF的网络类型有四种:广播、NBMA、P2MP和P2P。

当接口封装的链路层协议不同时,OSPF接口网络类型的缺省值也不同:

? 广播:当接口封装的链路层协议是Ethernet、FDDI时,接口网络类型缺省值为

广播;

?

NBMA:当接口封装的链路层协议是ATM、帧中继或X.25时,接口网络类型缺省值为NBMA;

点对点:当接口封装的链路层协议是PPP、LAPB、HDLC或POS时,接口网络类型缺省值为点对点。

?

用户可以根据需要更改接口的网络类型,例如: ? 当NBMA网络通过配置地址映射成为全连通网络时(即网络中任意两台路由器

之间都存在一条虚链路而直接可达),可以将网络类型更改为广播,不需要手工配置邻居,简化配置。

? ?

当广播网络中有部分路由器不支持组播时,那么可以将网络类型更改为NBMA。 NBMA网络要求必须是全连通的,即网络中任意两台路由器之间都必须有一条虚链路直接可达;如果NBMA网络不是全连通而是部分连通时,可以将网络类型更改为点对多点,达到简化配置、节省开销的目的。

如果路由器在NBMA网络中只有一个对端,也可将接口类型配置为P2P,节省网络开销。

?

如果接口配置为广播、NBMA或者P2MP网络类型,只有双方接口在同一网段才能建立邻居关系。

1.5.1 配置准备

在配置OSPF的网络类型之前,需完成以下任务:

? 配置接口的网络层地址,使相邻节点之间网络层可达

?

使能OSPF功能

1.5.2 配置OSPF接口网络类型为广播

表1-6 配置OSPF接口网络类型为广播

操作 进入系统视图 进入接口视图 配置OSPF接口网络类型为广播 配置OSPF接口的路由器优先级 system-view interface interface-type interface-number ospf network-type broadcast 命令 - - 必选 缺省情况下,接口的网络类型为广播 可选 缺省情况下,接口的路由器优先级为1 说明 ospf dr-priority priority

1.5.3 配置OSPF接口网络类型为NBMA

把接口类型配置为NBMA后,需要进行一些特殊的配置。

由于无法通过广播Hello报文的形式动态发现相邻路由器,必须手工为接口指定相邻接口的IP地址、该相邻接口是否有选举权等(dr-priority参数的值仅表示路由器是否具有DR选举权,为0表示不具有DR选举权,大于0时表示具有DR选举权)。

表1-7 配置OSPF接口网络类型为NBMA

操作 进入系统视图 进入接口视图 配置OSPF接口的网络类型为NBMA 配置OSPF接口的路由器优先级 退回系统视图 进入OSPF视图 配置NBMA网络的邻居 system-view interface interface-type interface-number ospf network-type nbma 命令 - - 必选 缺省情况下,接口的网络类型为广播 可选 缺省情况下,接口的路由器优先级为1 - - 说明 ospf dr-priority priority quit ospf [ process-id | router-id router-id | vpn-instance instance-name ] * peer ip-address [ dr-priority dr-priority ] 必选

使用peer命令和使用ospf dr-priority命令设置的优先级具有不同的用途:

? peer命令设置的优先级用于表示邻居是否具有选举权。如果在配置邻居时将优先级指定为0,则本地路由器认为该邻居不具备选举权,不向该邻居发送Hello报文,这种配置可以减少在DR和BDR选举过程中网络上的Hello报文数量。但如果本地路由器是DR或BDR,它也会向优先级为0的邻居发送Hello报文,以建立邻接关系。 ? ospf dr-priority命令设置的优先级用于实际的DR选举。

1.5.4 配置OSPF接口网络类型为P2MP

表1-8 配置OSPF接口网络类型为P2MP

操作 进入系统视图 进入接口视图 配置OSPF接口的网络类型为P2MP 命令 system-view interface interface-type interface-number ospf network-type p2mp - - 必选 缺省情况下,接口的网络类型为广播 说明

1.5.5 配置OSPF接口网络类型为P2P

表1-9 配置OSPF接口网络类型为P2P

操作 进入系统视图 进入接口视图 命令 system-view interface interface-type interface-number ospf network-type p2p - - 必选 缺省情况下,接口的网络类型为广播 说明 配置OSPF接口的网络类型为P2P

1.6 配置OSPF的路由信息控制

通过本节的配置,可以控制OSPF的路由信息的发布与接收,并引入其他协议的路由。

1.6.1 配置准备

在配置OSPF路由信息控制之前,需完成以下任务:

? 配置接口的网络层地址,使相邻节点之间网络层可达

? ?

使能OSPF功能

如果对路由信息进行过滤,则需要配置对应的过滤列表

1.6.2 配置OSPF路由聚合

路由聚合是指ABR或ASBR将具有相同前缀的路由信息聚合,只发布一条路由到其它区域。 AS被划分成不同的区域后,每一个区域通过OSPF边界路由器(ABR)相连,区域间可以通过路由聚合来减少路由信息,减小路由表的规模,提高路由器的运算速度。

ABR在计算出一个区域的区域内路由之后,根据聚合相关设置,将其中多条OSPF路由聚合成一条发送到区域之外。例如,某个区域内有三条区域内路由19.1.1.0/24,19.1.2.0/24,19.1.3.0/24,如果在ABR上配置了路由聚合,将三条路由聚合成一条19.1.0.0/16,则ABR就只生成一条聚合后的LSA,并发布给其它区域的路由器。

1. 配置区域边界路由器(ABR)路由聚合

如果区域里存在一些连续的网段,则可以在ABR上配置路由聚合,将这些连续的网段聚合成一个网段,ABR向其它区域发送路由信息时,以网段为单位生成Type3 LSA。

这样ABR只发送一条聚合后的LSA,所有属于聚合网段范围的LSA将不再会被单独发送出去,既可以减少其它区域中LSDB的规模,也减小了因为网络拓扑变化带来的影响。

表1-10 配置ABR路由聚合

操作 进入系统视图 进入OSPF视图 进入OSPF区域视图 配置OSPF的ABR路由聚合 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * area area-id 命令 - - - 说明 必选 abr-summary ip-address { mask | mask-length } [ advertise | not-advertise ] 此命令只有在ABR上配置才会有效 [ cost cost ] 缺省情况下,ABR不会对路由进行聚合

2. 配置自治系统边界路由器(ASBR)对引入的路由进行聚合

ASBR引入外部路由后,每一条路由都会放在单独的一条ASE LSA中向外宣告;通过配置

路由聚合,路由器只把聚合后的路由放在ASE LSA中向外宣告,减少了LSDB中LSA的数量。

在ASBR上配置路由聚合后,将对聚合地址范围内的Type5 LSA进行聚合。

如果ASBR在NSSA区域里面,将对聚合地址范围内的Type7 LSA进行聚合,当本地路由器同时是ASBR和ABR时,将对由Type7 LSA转化成的Type5 LSA进行聚合处理。

表1-11 配置ASBR路由聚合

操作 进入系统视图 进入OSPF视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * asbr-summary ip-address { mask | mask-length } [ tag tag | not-advertise | cost cost ] * 命令 - - 必选 配置OSPF的ASBR路由聚合 此命令只有在ASBR上配置才会有效 缺省情况下,ASBR不会对引入的路由进行聚合 说明

1.6.3 配置OSPF对通过接收到的LSA计算出来的路由信息进行过滤

关于地址前缀列表的详细介绍,请参见“IP路由分册”中的“路由策略配置”。 关于路由策略的详细介绍,请参见“IP路由分册”中的“路由策略配置”。

? ?

OSPF是基于链路状态的动态路由协议,路由信息是根据接收到的LSA计算出来的,可以对通过接收到的LSA计算出来的OSPF路由信息进行过滤。 一共有四种过滤方式:

? 基于要加入到路由表的路由信息的目的地址进行过滤,可以通过配置访问控制

列表或IP地址前缀列表来指定过滤条件;

?

基于要加入到路由表的路由信息的下一跳进行过滤,可以通过在命令中配置gateway参数来指定过滤条件;

基于要加入到路由表的路由信息的目的地址和下一跳进行过滤,可以通过配置访问控制列表或IP地址前缀列表指定过滤目的地址的条件,同时配置gateway参数来指定过滤下一跳的条件;

基于路由策略对要加入到路由表的路由信息进行过滤,可以通过在命令中配置route-policy参数来指定过滤条件。

?

?

表1-12 配置OSPF对通过接收到的LSA计算出来的路由信息进行过滤

操作 进入系统视图 进入OSPF视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * filter-policy { acl-number [ gateway ip-prefix-name ] | gateway ip-prefix-name | ip-prefix ip-prefix-name [ gateway ip-prefix-name ] | route-policy route-policy-name } import 命令 - - 必选 缺省情况下,不对接收到的路由信息进行过滤 说明 配置对接收的路由进行过滤

1.6.4 配置过滤Type-3 LSA

通过在ABR上配置Type-3 LSA过滤,可以对进入ABR所在区域或ABR向其它区域发布的Type-3 LSA进行过滤。

表1-13 配置过滤Type-3 LSA

操作 进入系统视图 进入OSPF视图 进入OSPF区域视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * area area-id filter { acl-number | ip-prefix ip-prefix-name } { import | export } 命令 - - - 必选 缺省情况下,没有对Type-3 LSA进行过滤 说明 配置对Type-3 LSA进行过滤

1.6.5 配置OSPF接口的开销值

OSPF有两种方式来配置接口的开销值:

? 在接口视图下直接配置开销值;

?

配置接口的带宽参考值,OSPF根据带宽参考值自动计算接口的开销值,计算公式为:接口开销=带宽参考值÷接口带宽,当计算出来的开销值大于65535时,开销取最大值65535;当计算出来的开销值小于1时,开销取最小值1。

如果没有在接口视图下的配置此接口的开销值,OSPF会根据该接口的带宽自动计算其开销值。

1. 配置接口的开销值

表1-14 配置OSPF接口的开销值

操作 进入系统视图 进入接口视图 system-view interface interface-type interface-number 命令 - - 可选 设置OSPF接口的开销值 ospf cost value 缺省情况下,接口按照当前的带宽自动计算开销。对于Loopback接口,缺省值为0 说明

2. 配置带宽参考值

表1-15 配置带宽参考值

操作 进入系统视图 进入OSPF视图 system-view 命令 - 说明 ospf [ process-id | router-id router-id - | vpn-instance instance-name ] * bandwidth-reference value 可选 缺省情况下,带宽参考值为100Mbps 配置带宽参考值

1.6.6 配置OSPF支持的路由最大数目

表1-16 配置OSPF支持的路由最大数目

操作 进入系统视图 进入OSPF视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * 命令 - - 可选 配置OSPF支持的路由最大数目 maximum-routes { external | inter | intra } number 缺省情况下,自治系统外部路由为12288、区域间路由为10240、区域内路由为1024 说明

1.6.7 配置OSPF最大等价路由条数

如果到一个目的地有几条开销相同的路径,可以实现等价路由负载分担,IP报文在这几个链路上负载分担,以提高链路利用率。该配置用以设置OSPF协议的最大等价路由条数。

表1-17 配置OSPF最大等价路由条数

操作 进入系统视图 进入OSPF视图 配置OSPF最大等价路由条数 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * maximum load-balancing maximum 命令 - - 可选 缺省情况下,OSPF最大等价路由条数为4 说明

1.6.8 配置OSPF协议的优先级

由于路由器上可能同时运行多个动态路由协议,就存在各个路由协议之间路由信息共享和选择的问题。系统为每一种路由协议设置一个优先级,在不同协议发现同一条路由时,优先级高的路由将被优先选择。

表1-18 配置OSPF协议的优先级

操作 进入系统视图 进入OSPF视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * preference [ ase ] [ route-policy route-policy-name ] value 命令 - - 可选 缺省情况下,OSPF内部路由的优先级为10,OSPF外部路由的优先级为150 说明 配置OSPF协议的路由优先级

1.6.9 配置OSPF引入外部路由

1. 配置OSPF引入其它协议的路由

如果在路由器上不仅运行OSPF,还运行着其它路由协议,可以配置OSPF引入其它协议生成的路由,如RIP、ISIS、BGP、静态路由或者直连路由,将这些路由信息通过Type5 LSA或Type7 LSA向外宣告。

OSPF还可以对引入的路由进行过滤,只将满足过滤条件的外部路由转换为Type5 LSA或Type7 LSA发布出去。

表1-19 配置OSPF引入其它协议的路由

操作 进入系统视图 进入OSPF视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * 命令 - - 说明 操作 配置OSPF引入其它协议的路由 命令 import-route protocol [ process-id | all-processes | allow-ibgp ] [ cost cost | type type | tag tag | route-policy route-policy-name ] * filter-policy { acl-number | ip-prefix ip-prefix-name } export [ protocol [ process-id ] ] 必选 说明 缺省情况下,没有引入其他协议的路由信息 可选 缺省情况下,没有对引入的路由信息进行过滤 配置对引入的路由进行过滤

只能引入路由表中状态为active的路由,是否为active状态可以通过display ip routing-table protocol命令来查看。

2. 配置OSPF引入缺省路由

OSPF不能通过import-route命令从其它协议引入缺省路由,如果想把缺省路由引入到OSPF路由区域,必须要使用下面命令配置OSPF引入缺省路由。

表1-20 配置OSPF引入缺省路由

操作 进入系统视图 进入OSPF视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * default-route-advertise [ always | cost cost | type type | route-policy route-policy-name ] * default-route-advertise summary cost cost 命令 - - 说明 配置OSPF引入缺省路由 可选 缺省情况下,没有引入缺省路由

default-route-advertise summary cost命令仅在VPN中应用,以Type-3 LSA引入缺省路由,PE路由器会将引入的缺省路由发布给CE路由器。

3. 配置引入路由的相关参数

当OSPF引入外部路由时,还可以配置一些开销、路由数量、标记和类型等参数的缺省值。路由标记可以用来标识协议相关的信息,如OSPF从BGP引入路由时,可以用来标记自治系统的编号。

表1-21 配置引入路由时的相关参数

操作 进入系统视图 命令 system-view - 说明 操作 进入OSPF视图 命令 ospf [ process-id | router-id router-id | vpn-instance instance-name ] * - 可选 说明 配置引入外部路由时default { cost cost | limit limit | 的参数缺省值(开销、tag tag | type type } * 路由数量、标记、类型) 缺省情况下,OSPF引入外部路由的缺省值如下: ? ? ? ? 路由度量值为1 单位时间内引入外部路由数量的上限为1000 外部路由标记值为1 引入的外部路由类型为Type2

1.6.10 配置发布一条主机路由

表1-22 配置发布一条主机路由

操作 进入系统视图 进入OSPF视图 进入OSPF区域视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * area area-id 命令 - - - 可选 配置并发布一条主机路由 host-advertise ip-address cost 缺省情况下,OSPF不发布所包含网段之外的主机路由 说明

1.7 配置OSPF网络调整优化

用户可以从以下几个方面来调整和优化OSPF网络:

? 通过改变OSPF的报文定时器,可以调整OSPF网络的收敛速度以及协议报文

带来的网络负荷。在一些低速链路上,需要考虑接口传送LSA的延迟时间。

?

通过调整SPF计算间隔时间,可以抑制由于网络频繁变化带来的资源消耗问题。

在安全性较高的网络中,可以通过配置OSPF验证特性,来提高OSPF网络的安全性。

OSPF同时支持网管功能,可以配置OSPF MIB与某一进程绑定,以及发送Trap消息和日志功能。

?

?

1.7.1 配置准备

在调整和优化OSPF网络之前,需完成以下任务: ? 配置接口的网络层地址,使相邻节点之间网络层可达

?

使能OSPF功能

1.7.2 配置OSPF报文定时器

用户可以在接口上配置下列OSPF报文定时器:

?

Hello定时器:接口向邻居发送Hello报文的时间间隔,OSPF邻居之间的Hello定时器的值要保持一致,且应与路由收敛速度、网络负荷大小成反比。 Poll定时器:在NBMA网络中,路由器向状态为Down的邻居路由器发送轮询Hello报文的时间间隔。

邻居失效时间:在邻居失效时间内,如果接口还没有收到邻居发送的Hello报文,路由器就会宣告该邻居无效。

接口重传LSA的时间间隔:路由器向它的邻居通告一条LSA后,需要对方进行确认。若在重传间隔时间内没有收到对方的确认报文,就会向邻居重传这条LSA。

?

?

?

表1-23 配置OSPF报文定时器

操作 进入系统视图 进入接口视图 命令 system-view interface interface-type interface-number - - 可选 配置Hello定时器 ospf timer hello seconds 缺省情况下,P2P、Broadcast类型接口发送Hello报文的时间间隔为10秒,P2MP、NBMA类型接口发送Hello报文的时间间隔为30秒 可选 缺省情况下,发送轮询Hello报文的时间间隔为120秒 可选 配置邻居失效时间 ospf timer dead seconds 缺省情况下,P2P、Broadcast类型接口的OSPF邻居失效时间为40秒,P2MP、NBMA类型接口的OSPF邻居失效时间为120秒 可选 缺省情况下,时间间隔为5秒 说明 配置Poll定时器 ospf timer poll seconds 配置接口重传LSA的时间间隔 ospf timer retransmit interval

修改了网络类型后,Hello定时器与邻居失效时间都将恢复缺省值。 在同一接口上邻居失效时间应至少为Hello时间间隔的4倍。 轮询Hello报文的时间间隔至少应为Hello时间间隔的4倍。

相邻路由器重传LSA时间间隔的值不要设置得太小,否则将会引起不必要的重传。通常应该大于一个报文在两台路由器之间传送一个来回的时间。

? ? ? ?

1.7.3 配置接口传送LSA的延迟时间

考虑到OSPF报文在链路上传送时也需要花费时间,所以LSA的老化时间(age)在传送之前要增加一定的延迟时间,在低速链路上需要对该项配置进行重点考虑。

表1-24 配置接口传送LSA的延迟时间

操作 进入系统视图 进入接口视图 system-view interface interface-type interface-number 命令 - - 可选 缺省情况下,接口传送LSA的延迟时间为1秒 说明 配置接口传送ospf trans-delay seconds LSA的延迟时间

1.7.4 配置SPF计算时间间隔

当OSPF的链路状态数据库(LSDB)发生改变时,需要重新计算最短路径。如果网络频繁变化,且每次变化都立即计算最短路径,将会占用大量系统资源,并影响路由器的效率。通过调节SPF计算的间隔时间,可以抑制由于网络频繁变化带来的影响。

表1-25 配置SPF计算时间间隔

操作 进入系统视图 进入OSPF视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * spf-schedule-interval maximum-interval [ minimum-interval [ incremental-interval ] ] 命令 - - 可选 缺省情况下,SPF计算的时间间隔为5秒 说明 配置SPF计算时间间隔

本命令在网络变化不频繁的情况下将连续路由计算的时间间隔缩小到minimum-interval,而

n-2

在网络变化频繁的情况下可以进行相应惩罚,增加incremental-interval×2 (n为连续触发路由计算的次数),将等待时间按照配置的惩罚增量延长,最大不超过maximum-interval。

1.7.5 配置LSA重复到达的最小时间间隔

如果在重复到达的最小时间间隔内连续收到一条LSA类型、LS ID、生成路由器ID均相同的LSA则直接丢弃,这样就可以抑制网络频繁变化可能导致的占用过多带宽资源和路由器资源。

表1-26 配置LSA的重复接收最小间隔

操作 进入系统视图 进入OSPF视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * 命令 - - 可选 lsa-arrival-interval interval 缺省情况下,LSA重复到达的最小时间间隔为1000毫秒 说明 配置LSA重复到达的最小时间间隔

建议lsa-arrival-interval命令配置的interval小于或等于lsa-generation-interval命令所配置的minimum-interval。

1.7.6 配置LSA重新生成的时间间隔

通过调节LSA重新生成的时间间隔,可以抑制网络频繁变化可能导致的占用过多带宽资源和路由器资源。

表1-27 配置LSA发送间隔

操作 进入系统视图 进入OSPF视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * 命令 - - 可选 配置LSA重新生成的时间间隔 lsa-generation-interval maximum-interval [ initial-interval [ incremental-interval ] ] 缺省情况下,最大时间间隔为5秒,最小时间间隔为0毫秒,惩罚增量为5000毫秒 说明

本命令在网络变化不频繁的情况下将LSA重新生成时间间隔缩小到minimum-interval,而在网络变化频繁的情况下可以进行相应惩罚,增加incremental-interval×2n-2(n为连续触发路由计算的次数),将等待时间按照配置的惩罚增量延长,最大不超过maximum-interval。

1.7.7 禁止接口发送OSPF报文

如果要使OSPF路由信息不被某一网络中的路由器获得,可以禁止接口发送OSPF报文。

表1-28 禁止接口发送OSPF报文

操作 进入系统视图 进入OSPF视图 禁止接口发送OSPF报文 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * silent-interface { all | interface-type interface-number } 命令 - - 可选 缺省情况下,允许接口发送OSPF报文 说明

?

?

不同的进程可以对同一接口禁止发送OSPF报文,但silent-interface命令只对本进程已经使能的OSPF接口起作用,对其它进程的接口不起作用。

将运行OSPF协议的接口指定为Silent状态后,该接口的直连路由仍可以由同一路由器的其它接口通过Router-LSA发布出去,但OSPF报文将被阻塞,接口上无法建立邻居关系。这样可以增强OSPF的组网适应能力,减少系统资源的消耗。

1.7.8 配置Stub路由器

Stub路由器用来控制流量,它告知其他OSPF路由器不要使用这个Stub路由器来转发数据,但可以拥有一个到Stub路由器的路由。

通过将当前路由器配置为Stub路由器,在该路由器发布的Router-LSA中,当链路类型取值为3表示连接到Stub网络时,链路度量值不变;当链路类型为1、2、4分别表示通过点对点链路与另一路由器相连、连接到传送网络、虚连接时,链路度量值将设置为最大值65535。 这样其邻居计算出这条路由的开销就会很大,如果邻居上有到这个目的地址开销更小的路由,则数据不会通过这个Stub路由器转发。

表1-29 配置Stub路由器

操作 进入系统视图 进入OSPF视图 system-view 命令 - 说明 ospf [ process-id | router-id router-id - | vpn-instance instance-name ] * stub-router 必选 缺省情况下,没有路由器被配置为Stub路由器 配置Stub路由器

Stub路由器与Stub区域无关。

1.7.9 配置OSPF验证

从安全性角度来考虑,为了避免路由信息外泄或者对OSPF路由器进行恶意攻击,OSPF提供报文验证功能。

OSPF路由器建立邻居关系时,在发送的报文中会携带配置好的口令,接收报文时进行密码验证,只有通过验证的报文才能接收,否则将不会接收报文,不能正常建立邻居。

要配置OSPF报文验证,同一个区域的所有路由器上都需要配置区域验证模式,且配置的验证模式必须相同,同一个网段内的路由器需要配置相同的接口验证模式和口令。

表1-30 配置OSPF验证

操作 进入系统视图 进入OSPF视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * 命令 - - 说明 操作 进入OSPF区域视图 area area-id 命令 - 必选 说明 配置OSPF区域的验证模式 authentication-mode { md5 | simple } 缺省情况下,没有配置区域验证模式 - - - 退回OSPF视图 退回系统视图 进入接口视图 配置OSPF接口的验证模式(简单验证) 配置OSPF接口的验证模式(MD5验证) quit quit interface interface-type interface-number ospf authentication-mode simple [ cipher | plain ] password ospf authentication-mode { hmac-md5 | md5 } key-id [ cipher | plain ] password 二者必选其一 缺省情况下,接口不对OSPF报文进行验证

1.7.10 配置DD报文中的MTU

一般情况下,接口发送DD报文时不使用接口的实际MTU值,而是用0代替。进行此配置后,将使用接口的实际MTU值填写DD报文Interface MTU字段。

表1-31 配置DD报文中的MTU

操作 进入系统视图 进入接口视图 system-view interface interface-type interface-number 命令 - - 可选 ospf mtu-enable 缺省情况下,接口发送的DD报文中MTU域的值为0 说明 配置DD报文中MTU域的值为发送该报文接口的MTU值

1.7.11 配置LSDB中External LSA的最大数量

表1-32 配置LSDB中External LSA的最大数量

操作 进入系统视图 进入OSPF视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * 命令 - - 可选 lsdb-overflow-limit number 缺省情况下,不对LSDB中External LSA的最大条目数进行限制 说明 配置LSDB中External LSA的最大数量

1.7.12 配置兼容RFC 1583的外部路由选择规则

当通过多条LSA计算出同一条外部路由时,在RFC 2328中定义的选路规则与RFC 1583的有所不同,进行此配置可以兼容RFC 1583中定义的方式。当RFC 2328兼容RFC 1583时,优选骨干区的区域内路由;当RFC 2328不兼容RFC 1583时,优选非骨干区的区域内路由,这样做的目的是尽量减少骨干区的负担。

表1-33 配置兼容RFC1583的外部路由选择规则

操作 进入系统视图 进入OSPF视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * 命令 - - 可选 rfc1583 compatible 缺省情况下,使能兼容RFC 1583的选路规则 说明 配置兼容RFC 1583的外部路由选择规则

为了避免路由环路,对于是否兼容RFC 1583的外部路由选择规则,同一路由域内的路由器建议配置相同,即要么配置所有路由器都兼容RFC 1583的外部路由选择规则,要么配置所有路由器都不兼容RFC 1583的外部路由选择规则

1.7.13 配置邻接状态输出

表1-34 配置邻接状态输出

操作 进入系统视图 进入OSPF视图 命令 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * log-peer-change - - 可选 缺省情况下,使能OSPF日志记录功能 说明 使能OSPF日志记录功能,记录邻居关系连接以及断开事件的日志信息

1.7.14 配置OSPF网管功能

开启OSPF模块的Trap功能后,该模块会生成Trap报文,用于报告该模块的重要事件。Trap报文的级别如下:

? 错误级别Trap报文,级别为level3;

? ? ?

警告级别Trap报文,级别为level4;

正常出现但是重要信息级别Trap报文,级别为level5; 通知信息级别Trap报文,级别为level6。

生成的Trap报文将被发送到设备的信息中心,通过设置信息中心的参数,最终决定Trap报文的输出规则(即是否允许输出以及输出方向)。(有关信息中心参数的配置请参见“系统分

册”中的“信息中心配置”。)

表1-35 配置OSPF网管功能

操作 进入系统视图 system-view 命令 - 可选 配置OSPF MIB绑定 ospf mib-binding process-id 缺省情况下,MIB绑定在进程号最小的OSPF进程上 说明 使能OSPF的TRAP功能 snmp-agent trap enable ospf [ process-id ] [ ifauthfail | ifcfgerror | ifrxbadpkt | ifstatechange | iftxretransmit | lsdbapproachoverflow | lsdboverflow | maxagelsa | nbrstatechange | originatelsa | vifcfgerror | virifauthfail | virifrxbadpkt | virifstatechange | viriftxretransmit | virnbrstatechange ] * 可选 缺省情况下,OSPF的TRAP功能处于使能状态

1.7.15 使能日志功能

表1-36 使能日志功能

操作 进入系统视图 进入OSPF视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * enable log [ config | error | state ] 命令 - - 必选 缺省情况下,日志功能处于关闭状态 说明 使能日志功能

1.7.16 使能Opaque LSA发布接收能力

通过使能Opaque LSA发布接收能力,OSPF可以接收和发布Type 9、Type 10和Type 11的Opaque LSA。

表1-37 使能Opaque LSA发布接收能力

操作 进入系统视图 进入OSPF视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * 命令 - - 可选 opaque-capability enable 缺省情况下,Opaque LSA发布接收能力处于关闭状态 说明 使能Opaque LSA发布接收能力

1.7.17 配置OSPF优先接收并处理Hello报文

为了保证协议的正常运行,路由器要同时接收和处理Hello报文和其它类型的协议报文,当路由器与多个邻居路由器同时建立邻居关系并且路由表中的路由条数比较多时,需要路由器接收和处理的报文数量会很大,可以通过配置OSPF优先接收和处理Hello报文,来确保邻

居关系的稳定性。

表1-38 配置OSPF优先接收和处理Hello报文

操作 进入系统视图 配置OSPF优先接收和处理Hello报文 system-view ospf packet-process prioritized-treatment 命令 - 必选 缺省情况下,OSPF不优先接收和处理Hello报文 说明

1.7.18 配置LSU报文的发送速率

如果路由器路由表里的路由条目很多,在与邻居进行LSDB同步时,可能需要发送大量LSU,有可能会对当前设备和网络带宽带来影响;因此,路由器将LSU报文分为多个批次进行发送,并且对OSPF接口每次允许发送的LSU报文的最大个数做出限制。

用户可根据需要配置OSPF接口发送LSU报文的时间间隔以及接口一次发送LSU报文的最大个数。

表1-39 配置LSU报文的发送速率

操作 进入系统视图 进入OSPF视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * 命令 - - 可选 配置LSU报文的发送速率 transmit-pacing interval interval count count 缺省情况下,OSPF接口发送LSU报文的时间间隔为20毫秒,一次最多发送3个LSU报文 说明

1.8 配置OSPF伪连接

在VPN 中配置伪连接Sham-link后,Sham-link将被视为OSPF区域内路由。这一特性用于使经过MPLS VPN骨干网的路由成为OSPF区域内路由,避免VPN流量经后门路由转发。 Sham-link的源地址和目的地址应使用32位掩码的Loopback接口地址,且该loopback接口需要绑定到VPN实例中,并通过BGP发布。

1.8.1 配置准备

在配置OSPF伪连接之前,需要配置用户CE所在局域网的OSPF。

1.8.2 配置Loopback接口

表1-40 配置Loopback接口

操作 进入系统视图 创建Loopback接口并进入Loopback接口视图 命令 system-view interface loopback interface-number - 必选 说明 操作 命令 ip binding vpn-instance vpn-instance-name ip address ip-address { mask | mask-length } 必选 说明 将Loopback接口绑定到VPN实例 缺省情况下,接口不关联到任何VPN实例,属于公网接口 必选 配置Loopback接口的地址

1.8.3 发布Loopback接口的路由

表1-41 发布Loopback接口的路由

操作 进入系统视图 进入BGP视图 进入BGP-VPN实例视图 引入直连路由(将Loopback主机路由引入BGP) system-view bgp as-number ipv4-family vpn-instance vpn-instance-name import-route direct 命令 - 必选 必选 必选 说明

有关BGP-VPN的详细解释请参见”MCE配置”。

1.8.4 配置伪连接

表1-42 创建伪连接

操作 进入系统视图 进入OSPF视图 配置route tag 进入OSPF区域视图 system-view ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * route-tag tag-value area area-id 命令 - - 必选 必选 说明 配置伪连接 sham-link source-ip-address destination-ip-address [ cost cost | dead dead-interval | hello hello-interval | retransmit 必选 retrans-interval | trans-delay delay | simple [ cipher | 缺省情况下,未配置伪plain ] password | { md5 | hmac-md5 } key-id [ cipher | 连接 plain ] password ] *

?

?

启动OSPF而不手工配置路由器ID时,系统会自动选取出一个路由器ID。需要注意的是,由于选举规则相同会得到相同的路由器ID。建议用户启动OSPF进程时手工配置路由器ID。

配置OSPF的VPN多实例而不配置route tag时,系统会根据配置的BGP自治系统号生成一个tag值,如果没有配置BGP则tag为0。

1.9 配置OSPF GR

一台设备可以同时充当GR Restarter和GR Helper。

目前有两种方式实现OSPF GR技术:

? 一种是基于IETF标准,GR Restarter通过向GR Helper发送一种称为Grace

LSA的9类Opaque LSA来控制GR的交互过程。

?

另外一种是非IETF标准,GR Restarter与GR Helper之间是通过相互发送携带LLS与OOB扩展信息的OSPF报文来完成GR的交互过程。

1.9.1 配置GR Restarter

可以在GR Restarter上配置基于OSPF的IETF标准或非IETF标准的GR能力。在作为GR Restarter的设备上进行如下配置:

1. 配置IETF标准GR Restarter

表1-43 配置IETF标准GR Restarter

操作 进入系统视图 启动OSPF,进入OSPF视图 使能Opaque LSA发布接收能力 system-view 命令 - 说明 ospf [ process-id | router-id router-id - | vpn-instance instance-name ] * 必选 opaque-capability enable 缺省情况下,Opaque LSA发布接收能力处于关闭状态 必选 graceful-restart ietf 缺省情况下,OSPF协议的IETF标准GR能力处于关闭状态 可选 graceful-restart interval timer 缺省情况下,OSPF协议的GR重启间隔时间为120秒 使能OSPF协议的IETF标准GR能力 配置OSPF协议的GR重启间隔时间

2. 配置非IETF标准GR Restarter

表1-44 配置非IETF标准GR Restarter

操作 进入系统视图 启动OSPF,进入OSPF视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * 命令 - - 必选 使能OSPF本地链路信令能力 enable link-local-signaling 缺省情况下,OSPF本地链路信令能力处于关闭状态 必选 缺省情况下,OSPF带外同步能力处于关闭状态 必选 graceful-restart [ nonstandard ] 缺省情况下,OSPF协议的非IETF标准GR能力处于关闭状态 可选 graceful-restart interval timer 缺省情况下,OSPF协议的GR重启间隔时间为120秒 说明 使能OSPF带外同步能力 enable out-of-band-resynchronization 使能OSPF协议的非IETF标准GR能力 配置OSPF协议的GR重启间隔时间

1.9.2 配置GR Helper

可以在作为GR Helper的设备上配置基于OSPF的IETF标准或非IETF标准的GR Helper能力。在作为GR Helper的设备上进行如下配置:

1. 配置IETF标准GR Helper

表1-45 配置IETF标准GR Helper

操作 进入系统视图 启动OSPF,进入OSPF视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * 命令 - - 必选 使能Opaque LSA发布接收能力 opaque-capability enable 缺省情况下,Opaque LSA发布接收能力处于关闭状态 说明 配置允许设备可以作哪些OSPF邻居的GR Helper 可选 graceful-restart help { acl-number 缺省情况下,设备可以作任一OSPF| prefix prefix-list } 邻居的GR Helper

2. 配置非IETF标准GR Helper

表1-46 配置非IETF标准GR Helper

操作 进入系统视图 启动OSPF,进入OSPF视图 system-view ospf [ process-id | router-id router-id | vpn-instance instance-name ] * 命令 - - 必选 使能OSPF本地链路信令能力 enable link-local-signaling 缺省情况下,OSPF本地链路信令能力处于关闭状态 必选 缺省情况下,OSPF带外同步能力处于关闭状态 说明 使能OSPF带外同步能力 enable out-of-band-resynchronization 配置允许设备可以作哪些OSPF邻居的GR Helper 可选 graceful-restart help { acl-number 缺省情况下,设备可以作任一OSPF| prefix prefix-list } 邻居的GR Helper

1.9.3 以GR方式重启OSPF进程

在路由器上进行如下操作均可以以GR方式重启OSPF进程。

表1-47 以GR方式重启OSPF进程

操作 以GR方式重启OSPF进程 命令 reset ospf [ process-id ] process graceful-restart 必选 请在用户视图下执行该命令 说明

1.10 OSPF显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后OSPF的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以复位OSPF计数器或连接。

表1-48 OSPF显示和维护

操作 显示OSPF的概要信息 显示OSPF的统计信息 显示OSPF的LSDB信息 display ospf [ process-id ] brief display ospf [ process-id ] cumulative display ospf [ process-id ] lsdb [ brief | [ { ase | router | network | summary | asbr | nssa | opaque-link | opaque-area | opaque-as } [ link-state-id ] ] [ originate-router advertising-router-id | self-originate ] ] display ospf [ process-id ] peer [ verbose | [ interface-type interface-number ] [ neighbor-id ] ] display ospf [ process-id ] peer statistics display ospf [ process-id ] nexthop 命令 显示OSPF邻居的信息 显示OSPF各区域邻居的统计信息 显示OSPF下一跳信息 操作 显示OSPF路由表的信息 显示OSPF虚连接信息 显示OSPF伪连接信息 显示OSPF请求列表 显示OSPF重传列表 显示OSPF ABR及ASBR信息 显示OSPF接口信息 显示OSPF错误信息 显示OSPF ASBR聚合信息 清除OSPF计数器 重启OSPF进程 重新向OSPF引入外部路由 命令 display ospf [ process-id ] routing [ interface interface-type interface-number ] [ nexthop nexthop-address ] display ospf [ process-id ] vlink display ospf [ process-id ] sham-link [ area area-id ] display ospf [ process-id ] request-queue [ interface-type interface-number ] [ neighbor-id ] display ospf [ process-id ] retrans-queue [ interface-type interface-number ] [ neighbor-id ] display ospf [ process-id ] abr-asbr display ospf [ process-id ] interface [ all | interface-type interface-number ] display ospf [ process-id ] error display ospf [ process-id ] asbr-summary [ ip-address { mask | mask-length } ] reset ospf [ process-id ] counters [ neighbor [ interface-type interface-number ] [ router-id ] ] reset ospf [ process-id ] process [ graceful-restart ] reset ospf [ process-id ] redistribution

1.11 典型配置举例

在配置举例中,只列出了与OSPF配置相关的命令。

1.11.1 配置OSPF基本功能

1. 组网需求

? ? ?

所有的交换机都运行OSPF,并将整个自治系统划分为3个区域。 其中Switch A和Switch B作为ABR来转发区域之间的路由。 配置完成后,每台交换机都应学到AS内的到所有网段的路由。

2. 组网图

图1-21 OSPF基本配置组网图

Switch AArea 0Vlan-int10010.1.1.2/24Vlan-int10010.1.1.1/24Switch BVlan-int20010.2.1.1/24Vlan-int20010.3.1.1/24Vlan-int20010.3.1.2/24Area 1Vlan-int20010.2.1.2/24Vlan-int30010.4.1.1/24Area 2Switch CVlan-int30010.5.1.1/24Switch D

3. 配置步骤

(1) 配置各接口的IP地址(略) (2) 配置OSPF基本配置 # 配置Switch A。

system-view [SwitchA] ospf

[SwitchA-ospf-1] area 0

[SwitchA-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255 [SwitchA-ospf-1-area-0.0.0.0] quit [SwitchA-ospf-1] area 1

[SwitchA-ospf-1-area-0.0.0.1] network 10.2.1.0 0.0.0.255 [SwitchA-ospf-1-area-0.0.0.1] quit [SwitchA-ospf-1] quit

# 配置Switch B。

system-view [SwitchB] ospf

[SwitchB-ospf-1] area 0

[SwitchB-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255 [SwitchB-ospf-1-area-0.0.0.0] quit [SwitchB-ospf-1] area 2

[SwitchB-ospf-1-area-0.0.0.2] network 10.3.1.0 0.0.0.255 [SwitchB-ospf-1-area-0.0.0.2] quit [SwitchB-ospf-1] quit

# 配置Switch C。

system-view [SwitchC] ospf

[SwitchC-ospf-1] area 1

[SwitchC-ospf-1-area-0.0.0.1] network 10.2.1.0 0.0.0.255 [SwitchC-ospf-1-area-0.0.0.1] network 10.4.1.0 0.0.0.255 [SwitchC-ospf-1-area-0.0.0.1] quit [SwitchC-ospf-1] quit

# 配置Switch D。

system-view [SwitchD] ospf

[SwitchD-ospf-1] area 2

[SwitchD-ospf-1-area-0.0.0.2] network 10.3.1.0 0.0.0.255 [SwitchD-ospf-1-area-0.0.0.2] network 10.5.1.0 0.0.0.255 [SwitchD-ospf-1-area-0.0.0.2] quit [SwitchD-ospf-1] quit

(3) 检验配置结果 # 查看Switch A的OSPF邻居。

[SwitchA] display ospf peer verbose

OSPF Process 1 with Router ID 10.2.1.1 Neighbors

Area 0.0.0.0 interface 10.1.1.1(Vlan-interface100)'s neighbors

Router ID: 10.3.1.1 Address: 10.1.1.2 GR State: Normal State: Full Mode: Nbr is Master Priority: 1 DR: 10.1.1.1 BDR: 10.1.1.2 MTU: 0 Dead timer due in 37 sec Neighbor is up for 06:03:59 Authentication Sequence: [ 0 ] Neighbor state change count: 5

Neighbors

Area 0.0.0.1 interface 10.2.1.1(Vlan-interface200)'s neighbors

Router ID: 10.4.1.1 Address: 10.2.1.2 GR State: Normal State: Full Mode: Nbr is Master Priority: 1 DR: 10.2.1.1 BDR: 10.2.1.2 MTU: 0 Dead timer due in 32 sec Neighbor is up for 06:03:12 Authentication Sequence: [ 0 ] Neighbor state change count: 5

# 显示Switch A的OSPF路由信息。

[SwitchA] display ospf routing

OSPF Process 1 with Router ID 10.2.1.1 Routing Tables

Routing for Network

Destination Cost Type NextHop AdvRouter Area 10.2.1.0/24 10 Transit 10.2.1.1 10.2.1.1 0.0.0.1 10.3.1.0/24 4 Inter 10.1.1.2 10.3.1.1 0.0.0.0 10.4.1.0/24 13 Stub 10.2.1.2 10.4.1.1 0.0.0.1 10.5.1.0/24 14 Inter 10.1.1.2 10.3.1.1 0.0.0.0 10.1.1.0/24 2 Transit 10.1.1.1 10.2.1.1 0.0.0.0

Total Nets: 5

Intra Area: 3 Inter Area: 2 ASE: 0 NSSA: 0

# 显示Switch A的LSDB。

[SwitchA] display ospf lsdb

OSPF Process 1 with Router ID 10.2.1.1 Link State Database

Area: 0.0.0.0

Type LinkState ID AdvRouter Age Len Sequence Metric Router 10.2.1.1 10.2.1.1 1069 36 80000012 0 Router 10.3.1.1 10.3.1.1 780 36 80000011 0 Network 10.1.1.1 10.2.1.1 1069 32 80000010 0 Sum-Net 10.5.1.0 10.3.1.1 780 28 80000003 12 Sum-Net 10.2.1.0 10.2.1.1 1069 28 8000000F 10 Sum-Net 10.3.1.0 10.3.1.1 780 28 80000014 2 Sum-Net 10.4.1.0 10.2.1.1 769 28 8000000F 13 Area: 0.0.0.1

Type LinkState ID AdvRouter Age Len Sequence Metric Router 10.2.1.1 10.2.1.1 769 36 80000012 0 Router 10.4.1.1 10.4.1.1 1663 48 80000012 0 Network 10.2.1.1 10.2.1.1 769 32 80000010 0 Sum-Net 10.5.1.0 10.2.1.1 769 28 80000003 14 Sum-Net 10.3.1.0 10.2.1.1 1069 28 8000000F 4 Sum-Net 10.1.1.0 10.2.1.1 1069 28 8000000F 2 Sum-Asbr 10.3.1.1 10.2.1.1 1069 28 8000000F 2

# 查看Switch D的路由表。

[SwitchD] display ospf routing

OSPF Process 1 with Router ID 10.5.1.1 Routing Tables

Routing for Network

Destination Cost Type NextHop AdvRouter Area 10.2.1.0/24 22 Inter 10.3.1.1 10.3.1.1 0.0.0.2 10.3.1.0/24 10 Transit 10.3.1.2 10.3.1.1 0.0.0.2 10.4.1.0/24 25 Inter 10.3.1.1 10.3.1.1 0.0.0.2 10.5.1.0/24 10 Stub 10.5.1.1 10.5.1.1 0.0.0.2 10.1.1.0/24 12 Inter 10.3.1.1 10.3.1.1 0.0.0.2

Total Nets: 5

Intra Area: 2 Inter Area: 3 ASE: 0 NSSA: 0

# 在Switch D上使用Ping进行测试连通性。

[SwitchD] ping 10.4.1.1

PING 10.4.1.1: 56 data bytes, press CTRL_C to break Request time out

Reply from 10.4.1.1: bytes=56 Sequence=2 ttl=253 time=2 ms Reply from 10.4.1.1: bytes=56 Sequence=3 ttl=253 time=1 ms Reply from 10.4.1.1: bytes=56 Sequence=4 ttl=253 time=1 ms Reply from 10.4.1.1: bytes=56 Sequence=5 ttl=253 time=1 ms

--- 10.4.1.1 ping statistics --- 5 packet(s) transmitted 5 packet(s) received 0.00% packet loss

round-trip min/avg/max = 1/1/2 ms

1.11.2 配置OSPF引入自治系统外部路由

1. 组网需求

? ? ?

所有的交换机都运行OSPF,整个自治系统划分为3个区域。 其中Switch A和Switch B作为ABR来转发区域之间的路由。

在Switch C上配置为ASBR引入外部路由(静态路由),且路由信息可正确的在AS内传播。

2. 组网图

图1-22 配置OSPF引入自治系统外部路由

Switch AArea 0Vlan-int10010.1.1.2/24Vlan-int10010.1.1.1/24Switch BVlan-int20010.2.1.1/24Vlan-int20010.2.1.2/24Vlan-int30010.4.1.1/24Vlan-int40010.3.1.1/24Vlan-int40010.3.1.2/24Area 1Area 2Switch CVlan-int50010.5.1.1/24Switch D

3. 配置步骤

(1) 配置各接口的IP地址(略) (2) 配置OSPF(同前例1.11.1 ) (3) 配置引入自治系统外部路由

# 在Switch C上配置一条到目的网段3.1.2.0/24的静态路由。

system-view

[SwitchC] ip route-static 3.1.2.1 24 10.4.1.2