04-OSPF配置
本章节下载: 04-OSPF配置 (1.17 MB)
1.6.3 配置OSPF对通过接收到的LSA计算出来的路由信息进行过滤
1.7.12 配置LSDB中External LSA的最大数量
1.7.13 配置OSPF尝试退出overflow状态的定时器时间间隔
1.7.17 配置接口发送LSU报文的时间间隔和一次发送LSU报文的最大个数
OSPF(Open Shortest Path First,开放最短路径优先)是IETF(Internet Engineering Task Force,互联网工程任务组)组织开发的一个基于链路状态的内部网关协议。目前针对IPv4协议使用的是OSPF Version 2。
下文中所提到的OSPF均指OSPF Version 2。
OSPF具有如下特点:
· 适应范围广:支持各种规模的网络,最多可支持几百台路由器。
· 快速收敛:在网络的拓扑结构发生变化后立即发送更新报文,使这一变化在自治系统中同步。
· 无自环:由于OSPF根据收集到的链路状态用最短路径树算法计算路由,从算法本身保证了不会生成自环路由。
· 区域划分:允许自治系统的网络被划分成区域来管理。路由器链路状态数据库的减小降低了内存的消耗和CPU的负担;区域间传送路由信息的减少降低了网络带宽的占用。
· 等价路由:支持到同一目的地址的多条等价路由。
· 路由分级:使用4类不同的路由,按优先顺序来说分别是:区域内路由、区域间路由、第一类外部路由、第二类外部路由。
· 支持验证:支持基于区域和接口的报文验证,以保证报文交互和路由计算的安全性。
· 组播发送:在某些类型的链路上以组播地址发送协议报文,减少对其他设备的干扰。
OSPF协议报文直接封装为IP报文,协议号为89。
OSPF有五种类型的协议报文:
· Hello报文:周期性发送,用来发现和维持OSPF邻居关系,以及进行DR(Designated Router,指定路由器)/BDR(Backup Designated Router,备份指定路由器)的选举。
· DD(Database Description,数据库描述)报文:描述了本地LSDB(Link State DataBase,链路状态数据库)中每一条LSA(Link State Advertisement,链路状态通告)的摘要信息,用于两台路由器进行数据库同步。
· LSR(Link State Request,链路状态请求)报文:向对方请求所需的LSA。两台路由器互相交换DD报文之后,得知对端的路由器有哪些LSA是本地的LSDB所缺少的,这时需要发送LSR报文向对方请求所需的LSA。
· LSU(Link State Update,链路状态更新)报文:向对方发送其所需要的LSA。
· LSAck(Link State Acknowledgment,链路状态确认)报文:用来对收到的LSA进行确认。
OSPF中对链路状态信息的描述都是封装在LSA中发布出去,常用的LSA有以下几种类型:
· Router LSA(Type-1):由每个路由器产生,描述路由器的链路状态和开销,在其始发的区域内传播。
· Network LSA(Type-2):由DR产生,描述本网段所有路由器的链路状态,在其始发的区域内传播。
· Network Summary LSA(Type-3):由ABR(Area Border Router,区域边界路由器)产生,描述区域内某个网段的路由,并通告给其他区域。
· ASBR Summary LSA(Type-4):由ABR产生,描述到ASBR(Autonomous System Boundary Router,自治系统边界路由器)的路由,通告给相关区域。
· AS External LSA(Type-5):由ASBR产生,描述到AS(Autonomous System,自治系统)外部的路由,通告到所有的区域(除了Stub区域和NSSA区域)。
· NSSA External LSA(Type-7):由NSSA(Not-So-Stubby Area)区域内的ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。
· Opaque LSA:用于OSPF的扩展通用机制,目前有Type-9、Type-10和Type-11三种。其中,Type-9 LSA仅在本地链路范围进行泛洪,用于支持GR(Graceful Restart,平滑重启)的Grace LSA就是Type-9的一种类型;Type-10 LSA仅在区域范围进行泛洪,用于支持MPLS TE的LSA就是Type-10的一种类型;Type-11 LSA可以在一个自治系统范围进行泛洪。
随着网络规模日益扩大,当一个大型网络中的路由器都运行OSPF协议时,LSDB会占用大量的存储空间,并使得运行SPF(Shortest Path First,最短路径优先)算法的复杂度增加,导致CPU负担加重。
在网络规模增大之后,拓扑结构发生变化的概率也增大,网络会经常处于“振荡”之中,造成网络中会有大量的OSPF协议报文在传递,降低了网络的带宽利用率。更为严重的是,每一次变化都会导致网络中所有的路由器重新进行路由计算。
OSPF协议通过将自治系统划分成不同的区域来解决上述问题。区域是从逻辑上将路由器划分为不同的组,每个组用区域号来标识。如图1-1所示。
图1-1 OSPF区域划分
区域的边界是路由器,而不是链路。一个路由器可以属于不同的区域,但是一个网段(链路)只能属于一个区域,或者说每个运行OSPF的接口必须指明属于哪一个区域。划分区域后,可以在区域边界路由器上进行路由聚合,以减少通告到其他区域的LSA数量,还可以将网络拓扑变化带来的影响最小化。
(1) 骨干区域(Backbone Area)
OSPF划分区域之后,并非所有的区域都是平等的关系。其中有一个区域是与众不同的,它的区域号是0,通常被称为骨干区域。骨干区域负责区域之间的路由,非骨干区域之间的路由信息必须通过骨干区域来转发。对此,OSPF有两个规定:
· 所有非骨干区域必须与骨干区域保持连通;
· 骨干区域自身也必须保持连通。
在实际应用中,可能会因为各方面条件的限制,无法满足上面的要求。这时可以通过配置OSPF虚连接予以解决。
(2) 虚连接(Virtual Link)
虚连接是指在两台ABR之间通过一个非骨干区域而建立的一条逻辑上的连接通道。它的两端必须是ABR,而且必须在两端同时配置方可生效。为虚连接两端提供一条非骨干区域内部路由的区域称为传输区(Transit Area)。
在图1-2中,Area2与骨干区域之间没有直接相连的物理链路,但可以在ABR上配置虚连接,使Area2通过一条逻辑链路与骨干区域保持连通。
虚连接的另外一个应用是提供冗余的备份链路,当骨干区域因链路故障不能保持连通时,通过虚连接仍然可以保证骨干区域在逻辑上的连通性。如图1-3所示。
虚连接相当于在两个ABR之间形成了一个点到点的连接,因此,在这个连接上,和物理接口一样可以配置接口的各参数,如发送Hello报文间隔等。
两台ABR之间直接传递OSPF报文信息,它们之间的OSPF路由器只是起到一个转发报文的作用。由于协议报文的目的地址不是中间这些路由器,所以这些报文对于它们而言是透明的,只是当作普通的IP报文来转发。
Stub区域是一些特定的区域,该区域的ABR会将区域间的路由信息传递到本区域,但不会引入自治系统外部路由,区域中路由器的路由表规模以及LSA数量都会大大减少。为保证到自治系统外的路由依旧可达,该区域的ABR将生成一条缺省路由Type-3 LSA,发布给本区域中的其他非ABR路由器。
为了进一步减少Stub区域中路由器的路由表规模以及LSA数量,可以将区域配置为Totally Stub(完全Stub)区域,该区域的ABR不会将区域间的路由信息和自治系统外部路由信息传递到本区域。为保证到本自治系统的其他区域和自治系统外的路由依旧可达,该区域的ABR将生成一条缺省路由Type-3 LSA,发布给本区域中的其他非ABR路由器。
NSSA(Not-So-Stubby Area)区域是Stub区域的变形,与Stub区域的区别在于NSSA区域允许引入自治系统外部路由,由ASBR发布Type-7 LSA通告给本区域。当Type-7 LSA到达NSSA的ABR时,由ABR将Type-7 LSA转换成Type-5 LSA,传播到其他区域。
可以将区域配置为Totally NSSA(完全NSSA)区域,该区域的ABR不会将区域间的路由信息传递到本区域。为保证到本自治系统的其他区域的路由依旧可达,该区域的ABR将生成一条缺省路由Type-3 LSA,发布给本区域中的其他非ABR路由器。
如图1-4所示,运行OSPF协议的自治系统包括3个区域:区域0、区域1和区域2,另外两个自治系统运行RIP协议。区域1被定义为NSSA区域,区域1接收的RIP路由传播到NSSA ASBR后,由NSSA ASBR产生Type-7 LSA在区域1内传播,当Type-7 LSA到达NSSA ABR后,转换成Type-5 LSA传播到区域0和区域2。
另一方面,运行RIP的自治系统的RIP路由通过区域2的ASBR产生Type-5 LSA在OSPF自治系统中传播。但由于区域1是NSSA区域,所以Type-5 LSA不会到达区域1。
OSPF路由器根据在AS中的不同位置,可以分为以下四类:
该类路由器的所有接口都属于同一个OSPF区域。
该类路由器可以同时属于两个以上的区域,但其中一个必须是骨干区域。ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。
该类路由器至少有一个接口属于骨干区域。因此,所有的ABR和位于Area0的内部路由器都是骨干路由器。
与其他AS交换路由信息的路由器称为ASBR。ASBR并不一定位于AS的边界,它有可能是区域内路由器,也有可能是ABR。只要一台OSPF路由器引入了外部路由的信息,它就成为ASBR。
图1-5 OSPF路由器的类型
OSPF将路由分为四类,按照优先级从高到低的顺序依次为:
· 区域内路由(Intra Area)
· 区域间路由(Inter Area)
· 第一类外部路由(Type1 External):这类路由的可信程度较高,并且和OSPF自身路由的开销具有可比性,所以到第一类外部路由的开销等于本路由器到相应的ASBR的开销与ASBR到该路由目的地址的开销之和。
· 第二类外部路由(Type2 External):这类路由的可信度比较低,所以OSPF协议认为从ASBR到自治系统之外的开销远远大于在自治系统之内到达ASBR的开销。所以计算路由开销时将主要考虑前者,即到第二类外部路由的开销等于ASBR到该路由目的地址的开销。如果计算出开销值相等的两条路由,再考虑本路由器到相应的ASBR的开销。
区域内和区域间路由描述的是AS内部的网络结构,外部路由则描述了应该如何选择到AS以外目的地址的路由。
同一个区域内,OSPF路由的计算过程可简单描述如下:
· 每台OSPF路由器根据自己周围的网络拓扑结构生成LSA,并通过更新报文将LSA发送给网络中的其它OSPF路由器。
· 每台OSPF路由器都会收集其它路由器通告的LSA,所有的LSA放在一起便组成了LSDB。LSA是对路由器周围网络拓扑结构的描述,LSDB则是对整个自治系统的网络拓扑结构的描述。
· OSPF路由器将LSDB转换成一张带权的有向图,这张图便是对整个网络拓扑结构的真实反映。各个路由器得到的有向图是完全相同的。
· 每台路由器根据有向图,使用SPF算法计算出一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由。
OSPF根据链路层协议类型将网络分为下列四种类型:
· 广播(Broadcast)类型:当链路层协议是Ethernet、FDDI时,缺省情况下,OSPF认为网络类型是Broadcast。在该类型的网络中,通常以组播形式(OSPF路由器的预留IP组播地址是224.0.0.5;OSPF DR/BDR的预留IP组播地址是224.0.0.6)发送Hello报文、LSU报文和LSAck报文;以单播形式发送DD报文和LSR报文。
· NBMA(Non-Broadcast Multi-Access,非广播多路访问)类型:当链路层协议是帧中继、ATM或X.25时,缺省情况下,OSPF认为网络类型是NBMA。在该类型的网络中,以单播形式发送协议报文。
· P2MP(Point-to-MultiPoint,点到多点)类型:没有一种链路层协议会被缺省的认为是P2MP类型。P2MP必须是由其他的网络类型强制更改的,常用做法是将NBMA网络改为P2MP网络。在该类型的网络中,缺省情况下,以组播形式(224.0.0.5)发送协议报文。可以根据用户需要,以单播形式发送协议报文。
· P2P(Point-to-Point,点到点)类型:当链路层协议是PPP、HDLC时,缺省情况下,OSPF认为网络类型是P2P。在该类型的网络中,以组播形式(224.0.0.5)发送协议报文。
NBMA与P2MP网络之间的区别如下:
· NBMA网络是全连通的;P2MP网络并不需要一定是全连通的。
· NBMA网络中需要选举DR与BDR;P2MP网络中没有DR与BDR。
· NBMA网络采用单播发送报文,需要手工配置邻居;P2MP网络采用组播方式发送报文,通过配置也可以采用单播发送报文。
在广播网和NBMA网络中,任意两台路由器之间都要交换路由信息。如果网络中有n台路由器,则需要建立n(n-1)/2个邻接关系。这使得任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源。为解决这一问题,OSPF提出了DR的概念,所有路由器只将信息发送给DR,由DR将网络链路状态发送出去。
另外,OSPF提出了BDR的概念。BDR是对DR的一个备份,在选举DR的同时也选举BDR,BDR也和本网段内的所有路由器建立邻接关系并交换路由信息。当DR失效后,BDR会立即成为新的DR。
OSPF网络中,既不是DR也不是BDR的路由器为DR Other。DR Other仅与DR和BDR建立邻接关系,DR Other之间不交换任何路由信息。这样就减少了广播网和NBMA网络上各路由器之间邻接关系的数量,同时减少网络流量,节约了带宽资源。
如图1-6所示,进行DR/BDR选举后,5台路由器之间只需要建立7个邻接关系就可以了。
图1-6 DR和BDR示意图
在OSPF中,邻居(Neighbor)和邻接(Adjacency)是两个不同的概念。路由器启动后,会通过接口向外发送Hello报文,收到Hello报文的路由器会检查报文中所定义的参数,如果双方一致就会形成邻居关系。只有当双方成功交换DD报文,交换LSA并达到LSDB同步之后,才形成邻接关系。
DR/BDR是由同一网段中所有的路由器根据路由器优先级和Router ID通过Hello报文选举出来的,只有优先级大于0的路由器才具有选举资格。
进行DR/BDR选举时每台路由器将自己选出的DR写入Hello报文中,发给网段上每台运行OSPF协议的路由器。当处于同一网段的两台路由器同时宣布自己是DR时,路由器优先级高者胜出。如果优先级相等,则Router ID大者胜出。
需要注意的是:
· 只有在广播或NBMA网络中才会选举DR;在P2P或P2MP网络中不需要选举DR。
· DR是某个网段中的概念,是针对路由器的接口而言的。某台路由器在一个接口上可能是DR,在另一个接口上有可能是BDR,或者是DR Other。
· DR/BDR选举完毕后,即使网络中加入一台具有更高优先级的路由器,也不会重新进行选举,替换该网段中已经存在的DR/BDR成为新的DR/BDR。DR并不一定就是路由器优先级最高的路由器接口;同理,BDR也并不一定就是路由器优先级次高的路由器接口。
与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 4811:OSPF Out-of-Band LSDB Resynchronization
· RFC 4812:OSPF Restart Signaling
· RFC 4813:OSPF Link-Local Signaling
无论是哪种类型的路由器,都必须先使能OSPF,否则OSPF协议将无法正常运行。在进行各项配置的时候应该先做好网络规划,错误的配置可能会导致相邻路由器之间无法相互传递信息,甚至导致路由信息的阻塞或者产生路由环路。
表1-1 OSPF配置任务简介
配置任务 |
说明 |
详细配置 |
|
使能OSPF功能 |
必选 |
||
配置OSPF区域 |
配置Stub区域 |
可选 |
|
配置NSSA区域 |
可选 |
||
配置虚连接 |
可选 |
||
配置OSPF的网络类型 |
配置OSPF接口网络类型为广播 |
可选 |
|
配置OSPF接口网络类型为NBMA |
可选 |
||
配置OSPF接口网络类型为P2MP |
可选 |
||
配置OSPF接口网络类型为P2P |
可选 |
||
配置OSPF的路由信息控制 |
配置OSPF路由聚合 |
可选 |
|
配置OSPF对通过接收到的LSA计算出来的路由信息进行过滤 |
可选 |
||
配置过滤Type-3 LSA |
可选 |
||
配置OSPF接口的开销值 |
可选 |
||
配置OSPF最大等价路由条数 |
可选 |
||
配置OSPF协议的优先级 |
可选 |
||
配置OSPF引入外部路由 |
可选 |
||
配置发布一条主机路由 |
可选 |
||
调整和优化OSPF网络 |
配置OSPF报文定时器 |
可选 |
|
配置接口传送LSA的延迟时间 |
可选 |
||
配置OSPF路由计算的时间间隔 |
可选 |
||
配置LSA重复到达的最小时间间隔 |
可选 |
||
配置LSA重新生成的时间间隔 |
可选 |
||
禁止接口收发OSPF报文 |
可选 |
||
配置Stub路由器 |
可选 |
||
配置OSPF验证 |
可选 |
||
配置DD报文中的MTU |
可选 |
||
配置报文的DSCP值 |
可选 |
||
配置LSDB中External LSA的最大数量 |
可选 |
||
配置OSPF尝试退出overflow状态的定时器时间间隔 |
可选 |
||
配置兼容RFC1583的外部路由选择规则 |
可选 |
||
配置邻居状态变化的输出开关 |
可选 |
||
配置OSPF网管功能 |
可选 |
||
配置接口发送LSU报文的时间间隔和一次发送LSU报文的最大个数 |
可选 |
||
配置接口发送OSPF报文的最大长度 |
可选 |
||
配置ISPF |
可选 |
||
配置前缀抑制 |
可选 |
||
配置前缀按优先权收敛 |
可选 |
||
配置PIC |
可选 |
||
配置OSPF的日志信息个数 |
可选 |
||
过滤接口出方向的LSA |
可选 |
||
过滤发送给指定邻居的LSA |
可选 |
||
配置OSPF GTSM功能 |
可选 |
||
配置OSPF GR |
配置GR Restarter |
可选 |
|
配置GR Helper |
可选 |
||
重启OSPF GR进程 |
可选 |
||
配置OSPF NSR |
可选 |
||
配置OSPF与BFD联动 |
可选 |
||
配置OSPF快速重路由 |
可选 |
||
配置允许设备将OSPF链路状态信息发布到BGP |
可选 |
在OSPF的各项配置任务中,必须先使能OSPF功能,其它功能的配置才能生效。
在使能OSPF功能之前,需完成以下任务:
· 配置链路层协议,保证链路层通信正常
· 配置接口的网络层地址,使各相邻节点网络层可达
要在路由器上使能OSPF功能,必须先创建OSPF进程、指定该进程关联的区域以及区域包括的网段;对于当前路由器来说,如果某个路由器的接口IP地址落在某个区域的网段内,则该接口属于这个区域并使能了OSPF功能,OSPF将把这个接口的直连路由宣告出去。
Router ID用来在一个自治系统中唯一地标识一台路由器,一台路由器如果要运行OSPF协议,则必须存在Router ID。
· 用户可以在创建OSPF进程的时候指定Router ID,配置时,必须保证自治系统中任意两台路由器的ID都不相同。通常的做法是将路由器的ID配置为与该路由器某个接口的IP地址一致。
· 如果在创建OSPF进程的时候没有指定Router ID,则缺省使用全局Router ID。建议用户在创建OSPF进程的时候指定Router ID。
目前,系统支持OSPF多进程和OSPF多实例:
· 当在一台路由器上启动多个OSPF进程时,需要指定不同的进程号。OSPF进程号是本地概念,不影响与其它路由器之间的报文交换。因此,不同的路由器之间,即使进程号不同也可以进行报文交换。
· 可以指定OSPF进程所属的VPN。如果未指定VPN,则表示OSPF位于公网中。VPN的相关内容请参见“MPLS配置指导”中的“MPLS L3VPN”。
接口配置优先,接口使能OSPF优于命令network的配置。
接口使能OSPF时,如果不存在进程和区域,则创建对应的进程和区域;接口去使能OSPF时,不删除已经创建的进程和区域。
表1-2 使能OSPF功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
(可选)配置全局Router ID |
router id router-id |
缺省情况下,未配置全局Router ID 如果没有配置全局路由器ID,则按照下面的规则进行选择: (1) 如果存在配置IP地址的Loopback接口,则选择Loopback接口地址中最大的作为Router ID (2) 如果没有配置IP地址的Loopback接口,则从其他接口的IP地址中选择最大的作为Router ID(不考虑接口的up/down状态) |
启动OSPF,并进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
缺省情况下,系统没有运行OSPF |
(可选)配置OSPF进程描述 |
description text |
缺省情况下,未配置进程描述 建议用户为每个OSPF进程配置进程描述信息,帮助识别进程的用途,以便于记忆和管理 |
创建OSPF区域,并进入OSPF区域视图 |
area area-id |
缺省情况下,不存在OSPF区域 |
(可选)配置区域描述 |
description text |
缺省情况下,未配置区域描述 建议用户为每个区域配置区域描述信息,帮助识别区域的用途,以便于记忆和管理 |
配置区域所包含的网段并在指定网段的接口上使能OSPF |
network ip-address wildcard-mask |
缺省情况下,接口不属于任何区域且OSPF功能处于关闭状态 一个网段只能属于一个区域 |
表1-3 在指定接口上使能OSPF
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口使能OSPF |
ospf process-id area area-id [ exclude-subip ] |
缺省情况下,未配置接口使能OSPF |
网络管理员对整个网络划分区域完毕后,可以根据组网需要进一步将区域配置成Stub区域或NSSA区域。
当非骨干区域不能与骨干区域保持连通,或者骨干区域因为各方面条件的限制无法保持连通时,可以通过配置OSPF虚连接予以解决。
在配置OSPF的区域之前,需完成以下任务:
· 配置接口的网络层地址,使相邻节点网络层可达
· 使能OSPF功能
对于位于AS边缘的一些非骨干区域,我们可以在该区域的所有路由器上配置stub命令,把该区域配置为Stub区域。这样,描述自治系统外部路由的Type-5 LSA不会在Stub区域里泛洪,减小了路由表的规模。ABR生成一条缺省路由,所有到达自治系统外部的报文都交给ABR进行转发。
如果想进一步减少Stub区域路由表规模以及路由信息传递的数量,那么在ABR上配置stub命令时指定no-summary参数,可以将该区域配置为Totally Stub区域。这样,自治系统外部路由和区域间的路由信息都不会传递到本区域,所有目的地是自治系统外和区域外的报文都交给ABR进行转发。
Stub区域和Totally Stub区域内不能存在ASBR,即自治系统外部的路由不能在本区域内传播。
表1-4 配置Stub区域
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
进入OSPF区域视图 |
area area-id |
- |
配置当前区域为Stub区域 |
stub [ default-route-advertise-always | no-summary ] * |
缺省情况下,没有区域被设置为Stub区域 |
(可选)配置ABR发送到Stub区域缺省路由的开销 |
default-cost cost-value |
缺省情况下,ABR发送到Stub区域缺省路由的开销为1 本命令只有在Stub区域和Totally Stub区域的ABR上配置才能生效 |
配置时需要注意以下几点:
· 骨干区域不能配置成Stub区域或Totally Stub区域。
· 如果要将一个区域配置成Stub区域,则该区域中的所有路由器必须都要配置stub命令。
· 如果要将一个区域配置成Totally Stub区域,该区域中的所有路由器必须配置stub命令,该区域的ABR路由器需要配置stub no-summary命令。
Stub区域不能引入外部路由,为了在允许将自治系统外部路由通告到OSPF路由域内部的同时,保持其余部分的Stub区域的特征,网络管理员可以将区域配置为NSSA区域。NSSA区域也是位于AS边缘的非骨干区域。
配置nssa命令时指定no-summary参数可以将该区域配置为Totally NSSA区域,该区域的ABR不会将区域间的路由信息传递到本区域。
表1-5 配置NSSA区域
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
进入OSPF区域视图 |
area area-id |
- |
配置当前区域为NSSA区域 |
nssa [ default-route-advertise [ cost cost-value | nssa-only | route-policy route-policy-name | type type ] * | no-import-route | no-summary | suppress-fa | [ [ [ translate-always ] [ translate-ignore-checking-backbone ] ] | translate-never ] | translator-stability-interval value ] * |
缺省情况下,没有区域被设置为NSSA区域 |
(可选)配置发送到NSSA区域缺省路由的开销 |
default-cost cost-value |
缺省情况下,发送到NSSA区域的缺省路由的开销为1 本命令只有在NSSA区域和Totally NSSA区域的ABR/ASBR上配置才能生效 |
· 骨干区域不能配置成NSSA区域或Totally NSSA区域。
· 如果要将一个区域配置成NSSA区域,则该区域中的所有路由器必须都要配置nssa命令。
· 如果要将一个区域配置成Totally NSSA区域,该区域中的所有路由器必须配置nssa命令,该区域的ABR路由器需要配置nssa no-summary命令。
在划分区域之后,非骨干区域之间的OSPF路由更新是通过骨干区域来完成交换的。对此,OSPF要求所有非骨干区域必须与骨干区域保持连通,并且骨干区域自身也要保持连通。
但在实际应用中,可能会因为各方面条件的限制,无法满足这个要求。这时可以通过在ABR上配置OSPF虚连接予以解决。
虚连接不能穿过Stub区域和Totally Stub区域;虚连接不能穿过NSSA区域和Totally NSSA区域。
表1-6 配置虚连接
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
进入OSPF区域视图 |
area area-id |
- |
创建并配置虚连接 |
vlink-peer router-id [ dead seconds | hello seconds | { { hmac-md5 | md5 } key-id { cipher | plain } string | keychain keychain-name | simple { cipher | plain } string } | retransmit seconds | trans-delay seconds ] * |
缺省情况下,不存在虚链接 为使虚连接生效,在虚连接的两端都需配置此命令,并且两端配置的hello、dead参数必须一致 |
OSPF的网络类型有四种:广播、NBMA、P2MP和P2P。
当接口封装的链路层协议不同时,OSPF接口网络类型的缺省情况也不同:
· 广播:当接口封装的链路层协议是Ethernet、FDDI时,接口网络类型缺省值为广播;
· NBMA:当接口封装的链路层协议是ATM、帧中继或X.25时,接口网络类型缺省值为NBMA;
· P2P:当接口封装的链路层协议是PPP、LAPB、HDLC时,接口网络类型缺省值为P2P。
用户可以根据需要更改接口的网络类型,例如:
· 当NBMA网络通过配置地址映射成为全连通网络时(即网络中任意两台路由器之间都存在一条虚电路而直接可达),可以将网络类型更改为广播,不需要手工配置邻居,简化配置。
· 当广播网络中有部分路由器不支持组播时,可以将网络类型更改为NBMA。
· NBMA网络要求必须是全连通的,即网络中任意两台路由器之间都必须有一条虚电路直接可达;如果NBMA网络不是全连通而是部分连通时,可以将网络类型更改为P2MP,达到简化配置、节省网络开销的目的。
· 如果路由器在NBMA网络中只有一个对端,也可将接口类型配置为P2P,节省网络开销。
如果接口配置为广播、NBMA或者P2MP网络类型,只有双方接口在同一网段才能建立邻居关系。
在配置OSPF的网络类型之前,需完成以下任务:
· 配置接口的网络层地址,使相邻节点之间网络层可达
· 使能OSPF功能
表1-7 配置OSPF接口网络类型为广播
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置OSPF接口网络类型为广播 |
ospf network-type broadcast |
缺省情况下,接口的网络类型根据接口封装的链路层协议而定 |
(可选)配置OSPF接口的路由器优先级 |
ospf dr-priority priority |
缺省情况下,接口的路由器优先级为1 |
把接口类型配置为NBMA后,需要进行一些特殊的配置。
由于无法通过广播Hello报文的形式动态发现相邻路由器,必须手工为接口指定相邻接口的IP地址、该相邻接口是否有选举权等(dr-priority参数的值仅表示路由器是否具有DR选举权,为0表示不具有DR选举权,大于0时表示具有DR选举权)。
表1-8 配置OSPF接口网络类型为NBMA
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置OSPF接口的网络类型为NBMA |
ospf network-type nbma |
缺省情况下,接口的网络类型根据物理接口而定 |
(可选)配置OSPF接口的路由器优先级 |
ospf dr-priority priority |
缺省情况下,接口的路由器优先级为1 本命令设置的优先级用于实际的DR选举 |
退回系统视图 |
quit |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置NBMA网络的邻居 |
peer ip-address [ dr-priority priority ] |
缺省情况下,未配置邻居 本命令设置的优先级用于表示邻居是否具有选举权。如果在配置邻居时将优先级指定为0,则本地路由器认为该邻居不具备选举权,不向该邻居发送Hello报文,这种配置可以减少在DR和BDR选举过程中网络上的Hello报文数量。但如果本地路由器是DR或BDR,它也会向优先级为0的邻居发送Hello报文,以建立邻接关系 |
表1-9 配置OSPF接口网络类型为P2MP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置OSPF接口的网络类型为P2MP |
ospf network-type p2mp [ unicast ] |
缺省情况下,接口的网络类型根据物理接口而定 当把接口类型配置为P2MP单播后,OSPF协议在该接口上发送的报文均为单播报文。由于无法通过广播Hello报文的形式动态发现相邻路由器,必须手工为接口指定相邻接口的IP地址 |
退回系统视图 |
quit |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
(可选)配置P2MP单播网络的邻居 |
peer ip-address [ cost cost-value ] |
缺省情况下,未配置邻居 如果接口类型为P2MP单播,必选 |
表1-10 配置OSPF接口网络类型为P2P
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置OSPF接口的网络类型为P2P |
ospf network-type p2p [ peer-address-check ] |
缺省情况下,接口的网络类型根据物理接口而定 |
通过本节的配置,可以控制OSPF的路由信息的发布与接收,并引入其他协议的路由。
在配置OSPF路由信息控制之前,需完成以下任务:
· 配置接口的网络层地址,使相邻节点之间网络层可达
· 使能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,并发布给其它区域的路由器。
如果区域里存在一些连续的网段,则可以在ABR上配置路由聚合,将这些连续的网段聚合成一个网段,ABR向其它区域发送路由信息时,以网段为单位生成Type-3 LSA。
这样ABR只发送一条聚合后的LSA,所有属于聚合网段范围的LSA将不再会被单独发送出去,既可以减少其它区域中LSDB的规模,也减小了因为网络拓扑变化带来的影响。
表1-11 配置ABR路由聚合
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
进入OSPF区域视图 |
area area-id |
- |
配置ABR路由聚合 |
abr-summary ip-address { mask-length | mask } [ advertise | not-advertise ] [ cost cost-value ] |
缺省情况下,ABR不对路由进行聚合 |
ASBR引入外部路由后,每一条路由都会放在单独的一条Type-5 LSA中向外宣告;通过配置路由聚合,路由器只把聚合后的路由放在Type-5 LSA中向外宣告,减少了LSDB中LSA的数量。
在ASBR上配置路由聚合后,将对聚合地址范围内的Type-5 LSA进行聚合;如果ASBR在NSSA区域里面,将对聚合地址范围内的Type-7 LSA进行聚合。
如果本地路由器同时是ASBR和ABR,并且是NSSA区域的转换路由器,将对由Type-7 LSA转化成的Type-5 LSA进行聚合处理;如果不是NSSA区域的转换路由器,则不进行聚合处理。
表1-12 配置ASBR路由聚合
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置ASBR路由聚合 |
asbr-summary ip-address { mask-length | mask } [ cost cost-value | not-advertise | nssa-only | tag tag ] * |
缺省情况下,ASBR不对路由进行聚合 |
OSPF是基于链路状态的动态路由协议,路由信息是根据接收到的LSA计算出来的,可以对通过接收到的LSA计算出来的OSPF路由信息进行过滤。
一共有四种过滤方式:
· 基于要加入到路由表的路由信息的目的地址进行过滤,可以通过配置访问控制列表或IP地址前缀列表来指定过滤条件;
· 基于要加入到路由表的路由信息的下一跳进行过滤,可以通过在命令中配置gateway参数来指定过滤条件;
· 基于要加入到路由表的路由信息的目的地址和下一跳进行过滤,可以通过配置访问控制列表或IP地址前缀列表指定过滤目的地址的条件,同时配置gateway参数来指定过滤下一跳的条件;
· 基于路由策略对要加入到路由表的路由信息进行过滤,可以通过在命令中配置route-policy参数来指定过滤条件。
表1-13 配置OSPF对通过接收到的LSA计算出来的路由信息进行过滤
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF对通过接收到的LSA计算出来的路由信息进行过滤 |
filter-policy { ipv4-acl-number [ gateway prefix-list-name ] | gateway prefix-list-name | prefix-list prefix-list-name [ gateway prefix-list-name ] | route-policy route-policy-name } import |
缺省情况下,OSPF不对通过接收到的LSA计算出来的路由信息进行过滤 |
通过在ABR上配置Type-3 LSA过滤,可以对进入ABR所在区域或ABR向其它区域发布的Type-3 LSA进行过滤。
表1-14 配置过滤Type-3 LSA
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
进入OSPF区域视图 |
area area-id |
- |
配置对Type-3 LSA进行过滤 |
filter { ipv4-acl-number | prefix-list prefix-list-name | route-policy route-policy-name } { export | import } |
缺省情况下,不对Type-3 LSA进行过滤 |
OSPF有两种方式来配置接口的开销值:
· 在接口视图下直接配置开销值;
· 配置接口的带宽参考值,OSPF根据带宽参考值自动计算接口的开销值,计算公式为:接口开销=带宽参考值÷接口期望带宽(接口期望带宽通过命令bandwidth进行配置,具体情况请参见接口分册命令参考中的介绍)。当计算出来的开销值大于65535时,开销取最大值65535;当计算出来的开销值小于1时,开销取最小值1。
如果没有在接口视图下配置此接口的开销值,OSPF会根据该接口的带宽自动计算其开销值。
表1-15 配置OSPF接口的开销值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
设置OSPF接口的开销值 |
ospf cost cost-value |
缺省情况下,接口按照当前的带宽自动计算接口运行OSPF协议所需的开销。对于Loopback接口,缺省值为0 |
表1-16 配置带宽参考值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance instance-name ] * |
- |
配置带宽参考值 |
bandwidth-reference value |
缺省情况下,带宽参考值为100Mbps |
如果到一个目的地有几条开销相同的路径,可以实现等价路由负载分担,IP报文在这几个链路上负载分担,以提高链路利用率。该配置用以设置OSPF协议的最大等价路由条数。
表1-17 配置OSPF最大等价路由条数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF最大等价路由条数 |
maximum load-balancing number |
缺省情况下,OSPF支持的等价路由的最大条数与系统支持最大等价路由的条数相同 |
由于路由器上可能同时运行多个动态路由协议,就存在各个路由协议之间路由信息共享和选择的问题。系统为每一种路由协议设置一个优先级,在不同协议发现同一条路由时,优先级高的路由将被优先选择。
表1-18 配置OSPF协议的优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF协议的路由优先级 |
preference [ ase ] { preference | route-policy route-policy-name } * |
缺省情况下,OSPF协议对自治系统内部路由的优先级为10,对自治系统外部路由的优先级为150 |
本命令用来配置是否产生NULL0路由以及产生NULL0路由的优先级。
表1-19 配置NULL0路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置NULL0路由以及NULL0路由的优先级 |
discard-route { external { preference | suppression } | internal { preference | suppression } } * |
缺省情况下,产生引入聚合NULL0路由和区域间聚合NULL0路由,且NULL0路由优先级为255 |
import-route bgp命令表示只引入EBGP路由;import-route bgp allow-ibgp命令表示将IBGP路由也引入,容易引起路由环路,请慎用。
如果在路由器上不仅运行OSPF,还运行着其它路由协议,可以配置OSPF引入其它协议生成的路由,如RIP、IS-IS、BGP、静态路由或者直连路由,将这些路由信息通过Type5 LSA或Type7 LSA向外宣告。
OSPF还可以对引入的路由进行过滤,只将满足过滤条件的外部路由转换为Type5 LSA或Type7 LSA发布出去。
表1-20 配置OSPF引入其它协议的路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF引入其它协议的路由 |
import-route protocol [ as-number ] [ process-id | all-processes | allow-ibgp ] [ allow-direct | cost cost-value | nssa-only | route-policy route-policy-name | tag tag | type type ] * |
缺省情况下,不引入其他协议的路由信息 只能引入路由表中状态为active的路由,是否为active状态可以通过display ip routing-table protocol命令来查看 |
(可选)配置对引入的路由进行过滤 |
filter-policy { ipv4-acl-number | prefix-list prefix-list-name } export [ protocol [ process-id ] ] |
缺省情况下,不对引入的路由信息进行过滤 |
OSPF不能通过import-route命令从其它协议引入缺省路由,如果想把缺省路由引入到OSPF路由区域,必须要使用下面命令配置OSPF引入缺省路由。
表1-21 配置OSPF引入缺省路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF引入缺省路由 |
default-route-advertise [ [ always | permit-calculate-other ] | cost cost-value | route-policy route-policy-name | type type ] * default-route-advertise [ summary cost cost-value ] |
缺省情况下,不引入缺省路由 default-route-advertise summary cost命令仅在VPN中应用,以Type-3 LSA引入缺省路由,PE路由器会将引入的缺省路由发布给CE路由器 |
当OSPF引入外部路由时,还可以配置一些开销、路由数量、标记和类型等参数的缺省值。路由标记可以用来标识协议相关的信息,如OSPF从BGP引入路由时,可以用来标记自治系统的编号。
表1-22 配置引入路由时的相关参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置引入外部路由时的参数缺省值(开销、路由数量、标记、类型) |
default { cost cost-value | tag tag | type type } * |
缺省情况下,OSPF引入的外部路由的度量值为1,引入的外部路由的标记为1,引入的外部路由类型为2 |
表1-23 配置发布一条主机路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
进入OSPF区域视图 |
area area-id |
- |
配置并发布一条主机路由 |
host-advertise ip-address cost |
缺省情况下,OSPF不发布所包含网段之外的主机路由 |
缺省情况下,OSPF区域下的接口会自动加入标准拓扑。本命令允许区域下的接口从标准拓扑中分离出来。
表1-24 配置允许区域下的接口从标准拓扑中分离
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
进入OSPF区域视图 |
area area-id |
- |
配置允许区域下的接口从标准拓扑中分离 |
capability default-exclusion |
缺省情况下,OSPF区域下的接口自动加入标准拓扑 |
用户可以从以下几个方面来调整和优化OSPF网络:
· 通过改变OSPF的报文定时器,可以调整OSPF网络的收敛速度以及协议报文带来的网络负荷。在一些低速链路上,需要考虑接口传送LSA的延迟时间。
· 通过调整SPF计算间隔时间,可以抑制由于网络频繁变化带来的资源消耗问题。
· 在安全性要求较高的网络中,可以通过配置OSPF验证特性,来提高OSPF网络的安全性。
在调整和优化OSPF网络之前,需完成以下任务:
· 配置接口的网络层地址,使相邻节点之间网络层可达
· 使能OSPF功能
用户可以在接口上配置下列OSPF报文定时器:
· Hello定时器:接口向邻居发送Hello报文的时间间隔,OSPF邻居之间的Hello定时器的值要保持一致。
· Poll定时器:在NBMA网络中,路由器向状态为down的邻居路由器发送轮询Hello报文的时间间隔。
· 邻居失效时间:在邻居失效时间内,如果接口还没有收到邻居发送的Hello报文,路由器就会宣告该邻居无效。
· 接口重传LSA的时间间隔:路由器向它的邻居通告一条LSA后,需要对方进行确认。若在重传间隔时间内没有收到对方的确认报文,就会向邻居重传这条LSA。
表1-25 配置OSPF报文定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置Hello定时器 |
ospf timer hello seconds |
缺省情况下,P2P、Broadcast类型接口发送Hello报文的时间间隔为10秒,P2MP、NBMA类型接口发送Hello报文的时间间隔为30秒 修改了网络类型后,Hello定时器将恢复缺省值 |
配置Poll定时器 |
ospf timer poll seconds |
缺省情况下,发送轮询Hello报文的时间间隔为120秒 轮询Hello报文的时间间隔至少应为Hello时间间隔的4倍 |
配置邻居失效时间 |
ospf timer dead seconds |
缺省情况下,P2P、Broadcast类型接口的OSPF邻居失效时间为40秒,P2MP、NBMA类型接口的OSPF邻居失效时间为120秒 邻居失效时间应至少为Hello时间间隔的4倍 修改了网络类型后,邻居失效时间将恢复缺省值 |
配置接口重传LSA的时间间隔 |
ospf timer retransmit seconds |
缺省情况下,时间间隔为5秒 相邻路由器重传LSA时间间隔的值不要设置得太小,否则将会引起不必要的重传。通常应该大于一个报文在两台路由器之间传送一个来回的时间 |
考虑到OSPF报文在链路上传送时也需要花费时间,所以LSA的老化时间(age)在传送之前要增加一定的延迟时间,在低速链路上需要对该项配置进行重点考虑。
表1-26 配置接口传送LSA的延迟时间
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口传送LSA的延迟时间 |
ospf trans-delay seconds |
缺省情况下,接口传送LSA的延迟时间为1秒 |
当OSPF的LSDB发生改变时,需要重新计算最短路径。如果网络频繁变化,且每次变化都立即计算最短路径,将会占用大量系统资源,并影响路由器的效率。通过调节路由计算的时间间隔,可以抑制由于网络频繁变化带来的影响。
本命令在网络变化不频繁的情况下将连续路由计算的时间间隔缩小到minimum-interval,而在网络变化频繁的情况下可以进行相应惩罚,增加incremental-interval×2n-2(n为连续触发路由计算的次数),将等待时间按照配置的惩罚增量延长,最大不超过maximum-interval。
表1-27 配置SPF计算时间间隔
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF路由计算的时间间隔 |
spf-schedule-interval maximum-interval [ minimum-interval [ incremental-interval ] ] |
缺省情况下,OSPF路由计算的最大时间间隔为5秒,最小时间间隔为50毫秒,时间间隔惩罚增量为200毫秒 |
如果在重复到达的最小时间间隔内连续收到一条LSA类型、LS ID、生成路由器ID均相同的LSA则直接丢弃,这样就可以抑制网络频繁变化可能导致的占用过多带宽资源和路由器资源。
表1-28 配置LSA的重复接收最小间隔
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置LSA重复到达的最小时间间隔 |
lsa-arrival-interval interval |
缺省情况下,LSA重复到达的最小时间间隔为1000毫秒 |
建议lsa-arrival-interval命令配置的interval小于或等于lsa-generation-interval命令所配置的minimum-interval。
通过调节LSA重新生成的时间间隔,可以抑制网络频繁变化可能导致的占用过多带宽资源和路由器资源。
本命令在网络变化不频繁的情况下将LSA重新生成时间间隔缩小到minimum-interval,而在网络变化频繁的情况下可以进行相应惩罚,增加incremental-interval×2n-2(n为连续触发路由计算的次数),将等待时间按照配置的惩罚增量延长,最大不超过maximum-interval。
表1-29 配置LSA发送间隔
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置LSA重新生成的时间间隔 |
lsa-generation-interval maximum-interval [ minimum-interval [ incremental-interval ] ] |
缺省情况下,最大时间间隔为5秒,最小时间间隔为50毫秒,惩罚增量为200毫秒 |
如果要使OSPF路由信息不被某一网络中的路由器获得,可以禁止接口收发OSPF报文。
将运行OSPF协议的接口指定为Silent状态后,该接口的直连路由仍可以由同一路由器的其它接口通过Router-LSA发布出去,但OSPF报文将被阻塞,接口上无法建立邻居关系。这样可以增强OSPF的组网适应能力,减少系统资源的消耗。
表1-30 禁止接口收发OSPF报文
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
禁止接口收发OSPF报文 |
silent-interface { interface-type interface-number | all } |
缺省情况下,允许接口收发OSPF报文 不同的进程可以对同一接口禁止收发OSPF报文,但本命令只对本进程已经使能的OSPF接口起作用,对其它进程的接口不起作用 |
Stub路由器用来控制流量,它告知其他OSPF路由器不要使用这个Stub路由器来转发数据,但可以拥有一个到Stub路由器的路由。
通过将当前路由器配置为Stub路由器,在该路由器发布的Router-LSA中,当链路类型取值为3表示连接到Stub网络时,链路度量值不变;当链路类型为1、2、4分别表示通过P2P链路与另一路由器相连、连接到传送网络、虚连接时,链路度量值将设置为最大值65535。通过增加include-stub参数可以将路由器发布的Router-LSA中,链路类型为3的Stub链路度量值设置为最大值65535。
这样其邻居计算出这条路由的开销就会很大,如果邻居上有到这个目的地址开销更小的路由,则数据不会通过这个Stub路由器转发。
表1-31 配置Stub路由器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置当前路由器为Stub路由器 |
stub-router [ external-lsa [ max-metric-value ] | include-stub | on-startup { seconds | wait-for-bgp [ seconds ] } | summary-lsa [ max-metric-value ] ] * |
缺省情况下,当前路由器没有被配置为Stub路由器 Stub路由器与Stub区域无关 |
从安全性角度来考虑,为了避免路由信息外泄或者OSPF路由器受到恶意攻击,OSPF提供报文验证功能。
OSPF路由器建立邻居关系时,在发送的报文中会携带配置好的口令,接收报文时进行验证,只有通过验证的报文才能接收,否则将不会接收报文,不能正常建立邻居。
如果区域验证和接口验证都进行了配置,以接口验证的配置为准。
一个区域中所有路由器的验证模式和验证密钥必须一致。
表1-32 配置区域验证
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
进入OSPF区域视图 |
area area-id |
- |
配置OSPF区域的验证模式 |
authentication-mode { hmac-md5 | md5 } key-id { cipher | plain } string |
三者选其一 缺省情况下,未配置区域验证模式 关于keychain功能的介绍,请参见“安全配置指导”中的“keychain” |
authentication-mode simple { cipher | plain } string |
||
authentication-mode keychain keychain-name |
邻居路由器两端接口的验证模式和验证密钥必须一致。
表1-33 配置接口验证
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置OSPF接口的验证模式 |
ospf authentication-mode simple { cipher | plain } string |
三者选其一 缺省情况下,接口不对OSPF报文进行验证 关于keychain功能的介绍,请参见“安全配置指导”中的“keychain” |
ospf authentication-mode { hmac-md5 | md5 } key-id { cipher | plain } string |
||
ospf authentication-mode keychain keychain-name |
一般情况下,接口发送DD报文时不使用接口的实际MTU值,而是用0代替。进行此配置后,将使用接口的实际MTU值填写DD报文Interface MTU字段。
表1-34 配置DD报文中的MTU
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置DD报文中MTU域的值为发送该报文接口的MTU值 |
ospf mtu-enable |
缺省情况下,接口发送的DD报文中MTU域的值为0 |
DSCP优先级用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定OSPF发送协议报文的DSCP优先级。
表1-35 配置OSPF发送协议报文的DSCP优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF发送协议报文的DSCP优先级 |
dscp dscp-value |
缺省情况下,OSPF发送协议报文的DSCP优先级值为48 |
表1-36 配置LSDB中External LSA的最大数量
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置LSDB中External LSA的最大数量 |
lsdb-overflow-limit number |
缺省情况下,不对LSDB中External LSA的最大条目数进行限制 |
网络中出现过多LSA,会占用大量系统资源。当设置的LSDB中External LSA的最大数量达到上限时,LSDB会进入overflow状态,在overflow状态中,不再接收External LSA,同时删除自己生成的External LSA,对于已经收到的External LSA则不会删除。这样就可以减少LSA从而节省系统资源。
通过配置可以调整OSPF退出overflow状态的时间。
表1-37 配置OSPF尝试退出overflow状态的定时器时间间隔
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF尝试退出overflow状态的定时器时间间隔 |
lsdb-overflow-interval interval |
缺省情况下,OSPF尝试退出overflow定时器间隔是300秒,配置为0时,表示不退出Overflow状态 |
当有多条路径可以到达同一个外部路由时,在选择最优路由的问题上,RFC 2328中定义的选路规则与RFC 1583的有所不同,进行此配置可以兼容RFC 1583中定义的规则。
具体的选路规则如下:
(1) 当RFC 2328兼容RFC 1583时,所有到达ASBR的路由优先级相同。当RFC 2328不兼容RFC 1583时,非骨干区的区域内路由优先级最高,区域间路由与骨干区区域内路由优先级相同,优选非骨干区的区域内路由,尽量减少骨干区的负担;
(2) 若存在多条优先级相同的路由时,按开销值优选,优选开销值小的路由;
(3) 若存在多条开销值相同路由时,按路由来源区域的区域ID选择,优选区域ID大的路由。
为了避免路由环路,同一路由域内的路由器建议统一配置相同选择规则。
表1-38 配置兼容RFC 1583的外部路由选择规则
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置兼容RFC 1583的外部路由选择规则 |
rfc1583 compatible |
缺省情况下,兼容RFC 1583的路由选择优先规则的功能处于开启状态 |
打开邻居状态变化的输出开关后,OSPF邻居状态变化时会生成日志信息发送到设备的信息中心,通过设置信息中心的参数,最终决定日志信息的输出规则(即是否允许输出以及输出方向)。(有关信息中心参数的配置请参见“网络管理和监控配置指导”中的“信息中心”。)
表1-39 配置邻居状态变化的输出开关
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
打开邻居状态变化的输出开关 |
log-peer-change |
缺省情况下,邻居状态变化的输出开关处于打开状态 |
配置OSPF进程绑定MIB功能后,可以通过网管软件对指定的OSPF进程进行管理。
开启OSPF模块的告警功能后,该模块会生成告警信息,用于报告该模块的重要事件。生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。(有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。)
通过调整OSPF在指定时间间隔内允许输出的告警信息条数,可以避免网络出现大量告警信息时对资源的消耗。
表1-40 配置OSPF网管功能
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
配置OSPF进程绑定MIB |
ospf mib-binding process-id |
缺省情况下,MIB绑定在进程号最小的OSPF进程上 |
开启OSPF的告警功能 |
snmp-agent trap enable ospf [ authentication-failure | bad-packet | config-error | grhelper-status-change | grrestarter-status-change | if-state-change | lsa-maxage | lsa-originate | lsdb-approaching-overflow | lsdb-overflow | neighbor-state-change | nssatranslator-status-change | retransmit | virt-authentication-failure | virt-bad-packet | virt-config-error | virt-retransmit | virtgrhelper-status-change | virtif-state-change | virtneighbor-state-change ] * |
缺省情况下,OSPF的告警功能处于开启状态 |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF在指定时间间隔内允许输出的告警信息条数 |
snmp trap rate-limit interval trap-interval count trap-number |
缺省情况下,OSPF在10秒内允许输出7条告警信息 |
如果路由器路由表里的路由条目很多,在与邻居进行LSDB同步时,可能需要发送大量LSU,有可能会对当前设备和网络带宽带来影响;因此,路由器将LSU报文分为多个批次进行发送,并且对OSPF接口每次允许发送的LSU报文的最大个数做出限制。
用户可根据需要配置OSPF接口发送LSU报文的时间间隔以及接口一次发送LSU报文的最大个数。
表1-41 配置接口发送LSU报文的时间间隔和一次发送LSU报文的最大个数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置接口发送LSU报文的时间间隔和一次发送LSU报文的最大个数 |
transmit-pacing interval interval count count |
缺省情况下,OSPF接口发送LSU报文的时间间隔为20毫秒,一次最多发送3个LSU报文 |
本功能用于需要对接口发送OSPF报文的大小进行限制的场景。例如,通过隧道建立OSPF邻居时,为避免隧道口发送的OSPF报文分片,可用此命令在隧道口上设置OSPF报文的最大长度,保证OSPF报文的最大长度+封装报文头长度≤隧道出接口的IP MTU。关于隧道的详细介绍请参见“三层技术-IP业务配置指导”中的“隧道”。
表1-42 配置接口发送OSPF报文的最大长度
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口发送OSPF报文的最大长度 |
ospf packet-size value |
缺省情况下,接口发送OSPF报文的最大长度为本接口的IP MTU值 |
ISPF(Incremental Shortest Path First,增量最短路径优先)是对OSPF中最短路径树的增量计算,当网络的拓扑结构发生变化,即影响到最短路径树的结构时,只对受影响的部分节点进行重新计算拓扑结构,只对最短路径树中受影响的部分进行修正,而不需要重建整棵最短路径树。
表1-43 配置增量SPF计算
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
开启增量SPF计算功能 |
ispf enable |
缺省情况下,增量SPF计算功能处于使能状态 |
OSPF使能网段时会将接口上匹配该网段的所有网段路由与主机路由都通过LSA发布,但有些时候主机路由或网段路由是不希望被发布的。通过前缀抑制配置,可以减少LSA中携带不需要的前缀,即不发布某些网段路由和主机路由,从而提高网络安全性,加快路由收敛。
当使能前缀抑制时,具体情况如下:
· P2P或P2MP类型网络:Type-1 LSA中不发布接口的主地址,即Type-1 LSA中链路类型为3的Stub链路被抑制,不生成接口路由,但其他路由信息可以正常计算,不会影响流量转发。
· 广播类型或者NBMA网络:DR发布的Type-2 LSA的掩码字段会填成32位,即不生成网段路由,但其他路由信息可以正常计算,不会影响流量转发。另外,如果没有邻居,发布的Type-1 LSA中也不发布接口的主地址,即Type-1 LSA中链路类型为3的Stub链路被抑制。
如果需要抑制前缀发布,建议整个OSPF网络都配置本命令。
全局配置不能抑制从地址、LoopBack接口以及处于抑制状态的接口对应的前缀。如果想对LoopBack接口或处于抑制状态的接口进行抑制,可以通过配置接口前缀抑制来实现。
表1-44 配置全局前缀抑制
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置前缀抑制功能 |
prefix-suppression |
缺省情况下,不抑制OSPF进程进行前缀发布 |
接口配置不抑制从地址对应的前缀。
表1-45 配置接口前缀抑制
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口的前缀抑制功能 |
ospf prefix-suppression [ disable ] |
缺省情况下,不抑制接口进行前缀发布 |
通过策略指定优先权,不同前缀按优先权顺序下发,由高到低分为4个优先权(Critical、High、Medium和Low),如果一条路由符合多个收敛优先权的匹配规则,则这些收敛优先权中最高者当选为路由的收敛优先权。
OSPF路由的32位主机路由为Medium优先权,其它为Low优先权。
表1-46 配置OSPF的前缀按优先权收敛功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
使能OSPF的前缀按优先权快速收敛功能 |
prefix-priority route-policy route-policy-name |
缺省情况下,OSPF的前缀按优先权快速收敛功能处于关闭状态 |
PIC和OSPF快速重路由功能同时配置时,OSPF快速重路由功能生效。
目前只支持区域间路由以及外部路由的PIC功能。
PIC(Prefix Independent Convergence,前缀无关收敛),即收敛时间与前缀数量无关,加快收敛速度。传统的路由计算快速收敛都与前缀数量相关,收敛时间与前缀数量成正比。
表1-47 配置PIC
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
使能PIC功能 |
pic [ additional-path-always ] |
缺省情况下,前缀无关收敛功能处于使能状态 |
OSPF协议的PIC特性中,主用链路缺省不使用BFD进行链路故障检测。配置本功能后,将使用BFD进行检测,可以加快OSPF协议的收敛速度。
(1) 配置PIC支持BFD检测功能(Ctrl方式)
表1-48 配置PIC支持BFD检测功能(Ctrl方式)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能OSPF协议中主用链路的BFD(Ctrl方式)检测功能 |
ospf primary-path-detect bfd ctrl |
缺省情况下,OSPF协议中主用链路的BFD(Ctrl方式)检测功能处于关闭状态 |
(2) 配置PIC支持BFD检测功能(Echo方式)
表1-49 配置PIC支持BFD检测功能(Echo方式)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置BFD Echo报文源地址 |
bfd echo-source-ip ip-address |
缺省情况下,未配置BFD Echo报文源地址 echo报文的源IP地址用户可以任意指定。建议配置echo报文的源IP地址不属于该设备任何一个接口所在网段 本命令的详细情况请参见“可靠性命令参考”中的“BFD” |
进入接口视图 |
interface interface-type interface-number |
- |
使能OSPF协议中主用链路的BFD(Echo方式)检测功能 |
ospf primary-path-detect bfd echo |
缺省情况下,OSPF协议中主用链路的BFD(Echo方式)检测功能处于关闭状态 |
OSPF的日志信息包括路由计算日志信息和邻居日志信息。
表1-50 配置OSPF的日志信息个数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF的日志信息个数 |
event-log { lsa-flush | peer | spf } size count |
缺省情况下,路由计算和邻居的日志信息个数为10 |
通过该功能,不希望让邻居接收到的LSA可在本端接口出方向上被过滤掉,从而减小邻居LSDB的规模,并节省带宽。
表1-51 配置过滤接口出方向的LSA
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置过滤接口出方向的LSA |
ospf database-filter { all | { ase [ acl ipv4-acl-number ] | nssa [ acl ipv4-acl-number ] | summary [ acl ipv4-acl-number ] } * } |
缺省情况下,不对接口出方向的LSA进行过滤 |
在P2MP网络中,一台路由器可以有多个接口的网络类型为P2MP的OSPF邻居。当两台路由器之间存在多条P2MP链路时,不希望让某个指定邻居收到的LSA,通过该功能可在本地被过滤掉。
表1-52 配置对P2MP邻居进行LSA过滤
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置过滤发送给接口的网络类型为P2MP的邻居的LSA |
database-filter peer ip-address { all | { ase [ acl ipv4-acl-number ] | nssa [ acl ipv4-acl-number ] | summary [ acl ipv4-acl-number ] } * } |
缺省情况下,不对发送给接口的网络类型为P2MP的邻居的LSA进行过滤 |
开启OSPF GTSM功能时,要求本设备和邻居设备上同时配置本特性,指定的hop-count值可以不同,只要能够满足合法性检查即可。
GTSM(Generalized TTL Security Mechanism,通用TTL安全保护机制)是一种简单易行的、对基于IP协议的上层业务进行保护的安全机制。开启OSPF报文的GTSM功能后,当设备收到来自OSPF普通邻居或虚连接邻居的报文时,会判断报文的TTL是否在255-“hop-count”+1到255之间。如果在,就上送报文;如果不在,则直接丢弃报文。以使设备避免受到CPU利用(CPU-utilization)等类型的攻击(如CPU过载),增强系统的安全性。
开启GTSM功能的方式有两种:一种是在OSPF区域视图下开启,另一种是在接口视图下开启。在OSPF区域视图下开启GTSM功能会对该区域中所有使能OSPF的接口生效;接口视图下开启GTSM功能只对当前接口生效。在接口视图下配置的hops参数的优先级高于在OSPF区域视图下配置的hops参数。
该命令对区域中所有使能OSPF的接口都会生效,并且只会对来自OSPF普通邻居和虚连接邻居的报文进行安全检测,不会对来自OSPF伪连接邻居的报文进行安全检测。关于OSPF伪连接的GTSM功能的详细信息,请参见“MPLS配置指导”中的“MPLS L3VPN”。
表1-53 配置区域开启OSPF报文的GTSM功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
进入OSPF区域视图 |
area area-id |
- |
开启区域的OSPF GTSM功能 |
ttl-security [ hops hop-count ] |
缺省情况下,区域的OSPF GTSM功能处于关闭状态 |
该命令只对当前接口生效,并且只会对来自OSPF普通邻居和虚连接邻居的报文进行安全检测,不会对来自OSPF伪连接邻居的报文进行安全检测。关于OSPF伪连接的GTSM功能的详细信息,请参见“MPLS配置指导”中的“MPLS L3VPN”。
表1-54 配置接口开启OSPF报文的GTSM功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置开启接口的OSPF GTSM功能 |
ospf ttl-security [ hops hop-count | disable ] |
缺省情况下,接口的OSPF GTSM功能处于关闭状态 |
设备充当GR Restarter后不能再配置OSPF NSR功能。
GR(Graceful Restart,平滑重启)是一种通过备份OSPF配置信息,在协议重启或主备倒换时OSPF进行平滑重启,从邻居那里获得邻居关系,并对LSDB进行同步,从而保证转发业务不中断的机制。
GR有两个角色:
· GR Restarter:发生协议重启或主备倒换事件且具有GR能力的设备。
· GR Helper:和GR Restarter具有邻居关系,协助完成GR流程的设备。
目前有两种方式实现OSPF GR技术:
· 一种是基于IETF标准,GR Restarter通过向GR Helper发送一种称为Grace LSA的9类Opaque LSA来控制GR的交互过程。
· 另外一种是非IETF标准,GR Restarter与GR Helper之间是通过相互发送携带LLS与OOB扩展信息的OSPF报文来完成GR的交互过程。
一台设备可以同时充当GR Restarter和GR Helper。
可以在GR Restarter上配置基于OSPF的IETF标准或非IETF标准的GR能力。在作为GR Restarter的设备上进行如下配置:
表1-55 配置IETF标准GR Restarter
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动OSPF,进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
使能Opaque LSA发布接收能力 |
opaque-capability enable |
缺省情况下,OSPF的Opaque LSA发布接收能力处于开启状态 |
使能OSPF协议的IETF标准GR能力 |
graceful-restart ietf [ global | planned-only ] * |
缺省情况下,OSPF协议的IETF标准GR能力处于关闭状态 |
(可选)配置OSPF协议的GR重启间隔时间 |
graceful-restart interval interval |
缺省情况下,OSPF协议的GR重启间隔时间为120秒 |
表1-56 配置非IETF标准GR Restarter
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动OSPF,进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
使能OSPF本地链路信令能力 |
enable link-local-signaling |
缺省情况下,OSPF本地链路信令能力处于关闭状态 |
使能OSPF带外同步能力 |
enable out-of-band-resynchronization |
缺省情况下,OSPF带外同步能力处于关闭状态 |
使能OSPF协议的非IETF标准GR能力 |
graceful-restart [ nonstandard ] [ global | planned-only ] * |
缺省情况下,OSPF协议的非IETF标准GR能力处于关闭状态 |
(可选)配置OSPF协议的GR重启间隔时间 |
graceful-restart interval interval |
缺省情况下,OSPF协议的GR重启间隔时间为120秒 |
可以在作为GR Helper的设备上配置基于OSPF的IETF标准或非IETF标准的GR Helper能力。在作为GR Helper的设备上进行如下配置:
表1-57 配置IETF标准GR Helper
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动OSPF,进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
使能Opaque LSA发布接收能力 |
opaque-capability enable |
缺省情况下,OSPF的Opaque LSA发布接收能力处于开启状态 |
(可选)使能GR Helper能力 |
graceful-restart helper enable [ planned-only ] |
缺省情况下,OSPF的GR Helper能力处于开启状态 |
(可选)配置GR Helper 严格检查LSA能力 |
graceful-restart helper strict-lsa-checking |
缺省情况下,OSPF协议的GR Helper严格LSA检查能力处于关闭状态 |
表1-58 配置非IETF标准GR Helper
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动OSPF,进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
使能OSPF本地链路信令能力 |
enable link-local-signaling |
缺省情况下,OSPF本地链路信令能力处于关闭状态 |
使能OSPF带外同步能力 |
enable out-of-band-resynchronization |
缺省情况下,OSPF带外同步能力处于关闭状态 |
(可选)使能GR Helper能力 |
graceful-restart helper enable |
缺省情况下,OSPF的GR Helper能力处于开启状态 |
(可选) 配置GR Helper 严格检查LSA能力 |
graceful-restart helper strict-lsa-checking |
缺省情况下,OSPF协议的GR Helper严格LSA检查能力处于关闭状态 |
设备进行主备倒换或者进行如下操作均可以以GR方式重启OSPF进程。
操作 |
命令 |
说明 |
以GR方式重启OSPF进程 |
reset ospf [ process-id ] process graceful-restart |
请在用户视图下执行该命令 |
设备配置了GR NSR功能后不能再充当GR Restarter。
NSR(Nonstop Routing,不间断路由)通过将OSPF链路状态信息从主进程备份到备进程,使设备在发生主备倒换时可以自行完成链路状态的恢复和路由的重新生成,邻接关系不会发生中断,从而避免了主备倒换对转发业务的影响。
GR特性需要周边设备配合才能完成路由信息的恢复,在网络应用中有一定的限制。NSR特性不需要周边设备的配合,网络应用更加广泛。
表1-60 配置OSPF NSR
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
使能OSPF NSR功能 |
non-stop-routing |
缺省情况下,OSPF NSR功能处于关闭状态 各个进程的NSR功能是相互独立的,只对本进程生效。如果存在多个OSPF进程,建议在各个进程下使能OSPF NSR功能 |
BFD(Bidirectional Forwarding Detection,双向转发检测)能够为OSPF邻居之间的链路提供快速检测功能。当邻居之间的链路出现故障时,加快OSPF协议的收敛速度。关于BFD的介绍和基本功能配置,请参见“可靠性配置指导”中的“BFD”。
OSPF使用BFD来进行快速故障检测时,提供两种检测方式:
· control报文双向检测:需要建立OSPF邻居的两端设备均支持BFD配置。
· echo报文单跳检测:仅需要一端设备支持BFD配置。
表1-61 配置OSPF与BFD联动(control报文双向检测)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能OSPF的BFD功能 |
ospf bfd enable |
缺省情况下,OSPF的BFD功能处于关闭状态 创建BFD会话的通信双方必须处于特定区域的同一网段 |
表1-62 配置OSPF与BFD联动(echo报文单跳检测)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置echo报文源地址 |
bfd echo-source-ip ip-address |
缺省情况下,未配置echo报文源地址 |
进入接口视图 |
interface interface-type interface-number |
- |
使能OSPF的BFD功能 |
ospf bfd enable echo |
缺省情况下,OSPF的BFD功能处于关闭状态 |
OSPF快速重路由功能(通过LFA算法选取备份下一跳信息)不能与vlink-peer命令同时使用。
OSPF快速重路由功能和PIC同时配置时,OSPF快速重路由功能生效。
当OSPF网络中的链路或某台路由器发生故障时,需要通过故障链路或故障路由器传输才能到达目的地的报文将会丢失或产生路由环路,数据流量将会被中断,直到OSPF根据新的拓扑网络路由收敛完毕后,被中断的流量才能恢复正常的传输。
为了尽可能缩短网络故障导致的流量中断时间,网络管理员可以根据需要配置OSPF快速重路由功能。
图1-7 OSPF快速重路由功能示意图
如图1-7所示,通过在Router B上使能快速重路由功能,OSPF将为路由计算或指定备份下一跳,当Router B检测到网络故障时,OSPF会使用事先获取的备份下一跳替换失效下一跳,通过备份下一跳来指导报文的转发,从而大大缩短了流量中断时间。在使用备份下一跳指导报文转发的同时,OSPF会根据变化后的网络拓扑重新计算最短路径,网络收敛完毕后,使用新计算出来的最优路由来指导报文转发。
网络管理员可以配置给所有OSPF路由通过LFA(Loop Free Alternate)算法选取备份下一跳,也可以在路由策略中指定备份下一跳,为符合过滤条件的路由指定备份下一跳。
在配置OSPF快速重路由特性之前,需完成以下任务:
· 配置接口的网络层地址,使相邻节点网络层可达
· 使能OSPF功能
(1) 配置OSPF快速重路由功能(通过LFA算法选取备份下一跳信息)
表1-63 配置OSPF快速重路由功能(自动计算备份下一跳)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
(可选)指定接口上使能参与LFA计算 |
ospf fast-reroute lfa-backup |
缺省情况下,接口参与LFA计算,能够被选为备份接口 |
退回系统视图 |
quit |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF快速重路由功能(通过LFA算法选取备份下一跳信息) |
fast-reroute lfa [ abr-only ] |
缺省情况下,OSPF快速重路由功能处于关闭状态 abr-only表示仅选取到ABR设备的路由作为备份下一跳 |
(2) 配置OSPF快速重路由功能(通过路由策略指定备份下一跳)
网络管理员可以通过apply fast-reroute backup-interface命令在路由策略中指定备份下一跳,为符合过滤条件的路由指定备份下一跳,关于apply fast-reroute backup-interface命令以及路由策略的相关配置,请参见“三层技术-IP路由配置指导”中的“路由策略”。
表1-64 配置OSPF支持快速重路由功能(通过路由策略指定备份下一跳)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置OSPF快速重路由功能(通过路由策略指定备份下一跳) |
fast-reroute route-policy route-policy-name |
缺省情况下,OSPF快速重路由功能处于关闭状态 |
OSPF协议的快速重路由特性中,主用链路缺省不使用BFD进行链路故障检测。配置本功能后,将使用BFD进行检测,可以加快OSPF协议的收敛速度。
(1) 配置OSPF快速重路由支持BFD检测功能(Ctrl方式)
表1-65 配置OSPF快速重路由支持BFD检测功能(Ctrl方式)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能OSPF协议中主用链路的BFD(Ctrl方式)检测功能 |
ospf primary-path-detect bfd ctrl |
缺省情况下,OSPF协议中主用链路的BFD检测功能(Ctrl方式)处于关闭状态 |
(2) 配置OSPF快速重路由支持BFD检测功能(Echo方式)
表1-66 配置OSPF快速重路由支持BFD检测功能(Echo方式)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置BFD Echo报文源地址 |
bfd echo-source-ip ip-address |
缺省情况下,未配置BFD Echo报文源地址 echo报文的源IP地址用户可以任意指定。建议配置echo报文的源IP地址不属于该设备任何一个接口所在网段 本命令的详细情况请参见“可靠性命令参考”中的“BFD” |
进入接口视图 |
interface interface-type interface-number |
- |
使能OSPF协议中主用链路的BFD(Echo方式)检测功能 |
ospf primary-path-detect bfd echo |
缺省情况下,OSPF协议中主用链路的BFD(Echo方式)检测功能处于关闭状态 |
本功能允许设备将链路状态信息发布到BGP,由BGP向外发布,以满足需要知道链路状态信息的应用的需求。BGP LS的相关内容请参见“三层技术-IP路由”中的“BGP”。
表1-67 配置允许设备将OSPF链路状态信息发布到BGP
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
配置允许设备将OSPF链路状态信息发布到BGP |
distribute bgp-ls |
缺省情况下,不允许设备将OSPF链路状态信息发布到BGP |
在完成上述配置后,在任意视图下执行display命令可以显示配置后OSPF的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除OSPF的统计信息、重启OSPF进程或重新向OSPF引入外部路由。
表1-68 OSPF显示和维护
操作 |
命令 |
显示OSPF的进程信息 |
display ospf [ process-id ] [ verbose ] |
显示OSPF进程的GR状态信息 |
display ospf [ process-id ] graceful-restart [ verbose ] |
显示区域中FRR备份下一跳候选列表 |
display ospf [ process-id ] [ area area-id ] fast-reroute lfa-candidate |
显示OSPF的LSDB信息 |
display ospf [ process-id ] lsdb [ brief | originate-router advertising-router-id | self-originate ] display ospf [ process-id ] lsdb { opaque-as | ase } [ link-state-id ] [ originate-router advertising-router-id | self-originate ] display ospf [ process-id ] [ area area-id ] lsdb { asbr | network | nssa | opaque-area | opaque-link | router | summary } [ link-state-id ] [ originate-router advertising-router-id | self-originate ] |
显示进程中的下一跳信息 |
display ospf [ process-id ] nexthop |
显示OSPF的NSR阶段信息 |
display ospf [ process-id ] non-stop-routing status |
显示OSPF邻居的信息 |
display ospf [ process-id ] peer [ verbose ] [ interface-type interface-number ] [ neighbor-id ] |
显示OSPF各区域邻居的统计信息 |
display ospf [ process-id ] peer statistics |
显示OSPF路由表的信息 |
display ospf [ process-id ] routing [ ip-address { mask-length | mask } ] [ interface interface-type interface-number ] [ nexthop nexthop-address ] [ verbose ] |
显示OSPF区域中的拓扑信息 |
display ospf [ process-id ] [ area area-id ] spf-tree [ verbose ] |
显示OSPF的统计信息 |
display ospf [ process-id ] statistics [ error | packet [ interface-type interface-number ] ] |
显示OSPF虚连接信息 |
display ospf [ process-id ] vlink |
显示OSPF请求列表 |
display ospf [ process-id ] request-queue [ interface-type interface-number ] [ neighbor-id ] |
显示OSPF重传列表 |
display ospf [ process-id ] retrans-queue [ interface-type interface-number ] [ neighbor-id ] |
显示OSPF ABR及ASBR信息 |
display ospf [ process-id ] abr-asbr [ verbose ] |
显示OSPF的ABR聚合信息 |
display ospf [ process-id ] [ area area-id ] abr-summary [ ip-address { mask-length | mask } ] [ verbose ] |
显示OSPF接口信息 |
display ospf [ process-id ] interface [ interface-type interface-number | verbose ] |
显示OSPF路由计算的日志信息 |
display ospf [ process-id ] event-log { lsa-flush | peer | spf } |
显示OSPF的ASBR聚合信息 |
display ospf [ process-id ] asbr-summary [ ip-address { mask-length | mask } ] |
显示全局Router ID |
display router id |
清除OSPF的统计信息 |
reset ospf [ process-id ] statistics |
清除OSPF的日志信息 |
reset ospf [ process-id ] event-log [ lsa-flush | peer | spf ] |
重启OSPF进程 |
reset ospf [ process-id ] process [ graceful-restart ] |
重新向OSPF引入外部路由 |
reset ospf [ process-id ] redistribution |
· 所有的交换机都运行OSPF,并将整个自治系统划分为3个区域。
· 其中Switch A和Switch B作为ABR来转发区域之间的路由。
· 配置完成后,每台交换机都应学到AS内的到所有网段的路由。
图1-8 OSPF基本功能配置组网图
(1) 配置各接口的IP地址(略)
(2) 配置OSPF基本配置
# 配置Switch A。
<SwitchA> system-view
[SwitchA] router id 10.2.1.1
[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。
<SwitchB> system-view
[SwitchB] router id 10.3.1.1
[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。
<SwitchC> system-view
[SwitchC] router id 10.4.1.1
[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。
<SwitchD> system-view
[SwitchD] router id 10.5.1.1
[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
# 查看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
Options is 0x02 (-|-|-|-|-|-|E|-)
Dead timer due in 37 sec
Neighbor is up for 06:03:59
Authentication Sequence: [ 0 ]
Neighbor state change count: 5
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
Options is 0x02 (-|-|-|-|-|-|E|-)
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 Table
Routing for network
Destination Cost Type NextHop AdvRouter Area
10.2.1.0/24 1 Transit 10.2.1.1 10.2.1.1 0.0.0.1
10.3.1.0/24 2 Inter 10.1.1.2 10.3.1.1 0.0.0.0
10.4.1.0/24 2 Stub 10.2.1.2 10.4.1.1 0.0.0.1
10.5.1.0/24 3 Inter 10.1.1.2 10.3.1.1 0.0.0.0
10.1.1.0/24 1 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 D的OSPF路由信息。
[SwitchD] display ospf routing
OSPF Process 1 with Router ID 10.5.1.1
Routing Table
Routing for network
Destination Cost Type NextHop AdvRouter Area
10.2.1.0/24 3 Inter 10.3.1.1 10.3.1.1 0.0.0.2
10.3.1.0/24 1 Transit 10.3.1.2 10.3.1.1 0.0.0.2
10.4.1.0/24 4 Inter 10.3.1.1 10.3.1.1 0.0.0.2
10.5.1.0/24 1 Stub 10.5.1.1 10.5.1.1 0.0.0.2
10.1.1.0/24 2 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 (10.4.1.1): 56 data bytes, press CTRL_C to break
56 bytes from 10.4.1.1: icmp_seq=0 ttl=253 time=1.549 ms
56 bytes from 10.4.1.1: icmp_seq=1 ttl=253 time=1.539 ms
56 bytes from 10.4.1.1: icmp_seq=2 ttl=253 time=0.779 ms
56 bytes from 10.4.1.1: icmp_seq=3 ttl=253 time=1.702 ms
56 bytes from 10.4.1.1: icmp_seq=4 ttl=253 time=1.471 ms
--- Ping statistics for 10.4.1.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.779/1.408/1.702/0.323 ms
· 所有的交换机都运行OSPF,整个自治系统划分为3个区域。
· 其中Switch A和Switch B作为ABR来转发区域之间的路由。
· 在Switch C上配置为ASBR引入外部路由(静态路由),且路由信息可正确的在AS内传播。
图1-9 OSPF引入自治系统外部路由配置组网图
(1) 配置各接口的IP地址(略)
(2) 配置OSPF(同前例1.14.1 )
(3) 配置引入自治系统外部路由
# 在Switch C上配置一条到目的网段3.1.2.0/24的静态路由。
<SwitchC> system-view
[SwitchC] ip route-static 3.1.2.1 24 10.4.1.2
# 在Switch C上配置OSPF引入静态路由。
[SwitchC] ospf 1
[SwitchC-ospf-1] import-route static
# 查看Switch D的ABR/ASBR信息。
<SwitchD> display ospf abr-asbr
OSPF Process 1 with Router ID 10.5.1.1
Routing Table to ABR and ASBR
Type Destination Area Cost Nexthop RtType
Intra 10.3.1.1 0.0.0.2 10 10.3.1.1 ABR
Inter 10.4.1.1 0.0.0.2 22 10.3.1.1 ASBR
# 查看Switch D的OSPF路由表。
<SwitchD> display ospf routing
OSPF Process 1 with Router ID 10.5.1.1
Routing Table
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
Routing for ASEs
Destination Cost Type Tag NextHop AdvRouter
3.1.2.0/24 1 Type2 1 10.3.1.1 10.4.1.1
Total nets: 6
Intra area: 2 Inter area: 3 ASE: 1 NSSA: 0
· Switch A和Switch B位于AS 200内,AS 200内使用OSPF作为IGP协议。
· Switch C、Switch D和Switch E位于AS 100内,AS 100内使用OSPF作为IGP协议。
· Switch B和Switch C之间建立EBGP连接,配置BGP引入OSPF和直连路由,配置OSPF进程引入BGP路由。
· 为了减小Switch A的路由表规模,在Switch B上配置路由聚合,只发布聚合后的路由10.0.0.0/8。
图1-10 OSPF发布聚合路由配置组网图
(1) 配置接口的IP地址(略)
(2) 配置OSPF
# 配置Switch A。
<SwitchA> system-view
[SwitchA] router id 11.2.1.2
[SwitchA] ospf
[SwitchA-ospf-1] area 0
[SwitchA-ospf-1-area-0.0.0.0] network 11.2.1.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] quit
[SwitchA-ospf-1] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] router id 11.2.1.1
[SwitchB] ospf
[SwitchB-ospf-1] area 0
[SwitchB-ospf-1-area-0.0.0.0] network 11.2.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] quit
[SwitchB-ospf-1] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] router id 11.1.1.2
[SwitchC] ospf
[SwitchC-ospf-1] area 0
[SwitchC-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0] network 10.2.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0] quit
[SwitchC-ospf-1] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] router id 10.3.1.1
[SwitchD] ospf
[SwitchD-ospf-1] area 0
[SwitchD-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[SwitchD-ospf-1-area-0.0.0.0] network 10.3.1.0 0.0.0.255
[SwitchD-ospf-1-area-0.0.0.0] quit
[SwitchD-ospf-1] quit
# 配置Switch E。
<SwitchE> system-view
[SwitchE] router id 10.4.1.1
[SwitchE] ospf
[SwitchE-ospf-1] area 0
[SwitchE-ospf-1-area-0.0.0.0] network 10.2.1.0 0.0.0.255
[SwitchE-ospf-1-area-0.0.0.0] network 10.4.1.0 0.0.0.255
[SwitchE-ospf-1-area-0.0.0.0] quit
[SwitchE-ospf-1] quit
(3) 配置BGP,引入OSPF和直连路由
# 配置Switch B。
[SwitchB] bgp 200
[SwitchB-bgp] peer 11.1.1.2 as 100
[SwitchB-bgp] address-family ipv4 unicast
[SwitchB-bgp-ipv4] import-route ospf
[SwitchB-bgp-ipv4] import-route direct
[SwitchB-bgp-ipv4] quit
[SwitchB-bgp] quit
# 配置Switch C。
[SwitchC] bgp 100
[SwitchC-bgp] peer 11.1.1.1 as 200
[SwitchC-bgp] address-family ipv4 unicast
[SwitchC-bgp-ipv4] import-route ospf
[SwitchC-bgp-ipv4] import-route direct
[SwitchC-bgp-ipv4] quit
[SwitchC-bgp] quit
(4) 在Switch B和Switch C上配置OSPF引入BGP路由
# 在Switch B上配置OSPF引入BGP路由。
[SwitchB] ospf
[SwitchB-ospf-1] import-route bgp
# 在Switch C上配置OSPF引入BGP路由。
[SwitchC] ospf
[SwitchC-ospf-1] import-route bgp
# 查看SwitchA的路由表信息。
[SwitchA] display ip routing-table
Destinations : 16 Routes : 16
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.0/24 O_ASE2 150 1 11.2.1.1 Vlan100
10.2.1.0/24 O_ASE2 150 1 11.2.1.1 Vlan100
10.3.1.0/24 O_ASE2 150 1 11.2.1.1 Vlan100
10.4.1.0/24 O_ASE2 150 1 11.2.1.1 Vlan100
11.2.1.0/24 Direct 0 0 11.2.1.2 Vlan100
11.2.1.0/32 Direct 0 0 11.2.1.2 Vlan100
11.2.1.2/32 Direct 0 0 127.0.0.1 InLoop0
11.2.1.255/32 Direct 0 0 11.2.1.2 Vlan100
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
(5) 在Switch B上配置路由聚合,只发布聚合路由10.0.0.0/8。
[SwitchB-ospf-1] asbr-summary 10.0.0.0 8
# 查看Switch A的路由表信息。
[SwitchA] display ip routing-table
Destinations : 13 Routes : 13
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
10.0.0.0/8 O_ASE2 150 1 11.2.1.1 Vlan100
11.2.1.0/24 Direct 0 0 11.2.1.2 Vlan100
11.2.1.0/32 Direct 0 0 11.2.1.2 Vlan100
11.2.1.2/32 Direct 0 0 127.0.0.1 InLoop0
11.2.1.255/32 Direct 0 0 11.2.1.2 Vlan100
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
224.0.0.0/4 Direct 0 0 0.0.0.0 NULL0
224.0.0.0/24 Direct 0 0 0.0.0.0 NULL0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
可以看出,路由10.1.1.0/24、10.2.1.0/24、10.3.1.0/24、10.4.1.0/24已经聚合为一条路由10.0.0.0/8。
· 所有的交换机都运行OSPF,整个自治系统划分为3个区域。
· 其中Switch A和Switch B作为ABR来转发区域之间的路由,Switch D作为ASBR引入了外部路由(静态路由)。
· 要求将Area1配置为Stub区域,减少通告到此区域内的LSA数量,但不影响路由的可达性。
图1-11 OSPF Stub区域配置组网图
(1) 配置接口的IP地址(略)
(2) 配置OSPF(同前例1.14.1 )
(3) 配置Switch D引入静态路由
<SwitchD> system-view
[SwitchD] ip route-static 3.1.2.1 24 10.5.1.2
[SwitchD] ospf
[SwitchD-ospf-1] import-route static
[SwitchD-ospf-1] quit
# 查看Switch C的ABR/ASBR信息。
<SwitchC> display ospf abr-asbr
OSPF Process 1 with Router ID 10.4.1.1
Routing Table to ABR and ASBR
Type Destination Area Cost Nexthop RtType
Intra 10.2.1.1 0.0.0.1 3 10.2.1.1 ABR
Inter 10.5.1.1 0.0.0.1 7 10.2.1.1 ASBR
# 查看Switch C的OSPF路由表,可以看到路由表中存在AS外部的路由。
<SwitchC> display ospf routing
OSPF Process 1 with Router ID 10.4.1.1
Routing Table
Routing for network
Destination Cost Type NextHop AdvRouter Area
10.2.1.0/24 3 Transit 0.0.0.0 10.2.1.1 0.0.0.1
10.3.1.0/24 7 Inter 10.2.1.1 10.2.1.1 0.0.0.1
10.4.1.0/24 3 Stub 10.4.1.1 10.4.1.1 0.0.0.1
10.5.1.0/24 17 Inter 10.2.1.1 10.2.1.1 0.0.0.1
10.1.1.0/24 5 Inter 10.2.1.1 10.2.1.1 0.0.0.1
Routing for ASEs
Destination Cost Type Tag NextHop AdvRouter
3.1.2.0/24 1 Type2 1 10.2.1.1 10.5.1.1
Total nets: 6
Intra area: 2 Inter area: 3 ASE: 1 NSSA: 0
(4) 配置Area1为Stub区域
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ospf
[SwitchA-ospf-1] area 1
[SwitchA-ospf-1-area-0.0.0.1] stub
[SwitchA-ospf-1-area-0.0.0.1] quit
[SwitchA-ospf-1] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] ospf
[SwitchC-ospf-1] area 1
[SwitchC-ospf-1-area-0.0.0.1] stub
[SwitchC-ospf-1-area-0.0.0.1] quit
[SwitchC-ospf-1] quit
# 查看Switch C的OSPF路由表,已经看不到AS外部的路由,取而代之的是一条缺省路由。
[SwitchC] display ospf routing
OSPF Process 1 with Router ID 10.4.1.1
Routing Table
Routing for network
Destination Cost Type NextHop AdvRouter Area
0.0.0.0/0 4 Inter 10.2.1.1 10.2.1.1 0.0.0.1
10.2.1.0/24 3 Transit 0.0.0.0 10.2.1.1 0.0.0.1
10.3.1.0/24 7 Inter 10.2.1.1 10.2.1.1 0.0.0.1
10.4.1.0/24 3 Stub 10.4.1.1 10.4.1.1 0.0.0.1
10.5.1.0/24 17 Inter 10.2.1.1 10.2.1.1 0.0.0.1
10.1.1.0/24 5 Inter 10.2.1.1 10.2.1.1 0.0.0.1
Total nets: 6
Intra area: 2 Inter area: 4 ASE: 0 NSSA: 0
# 配置Area1为Totally Stub区域。
[SwitchA] ospf
[SwitchA-ospf-1] area 1
[SwitchA-ospf-1-area-0.0.0.1] stub no-summary
[SwitchA-ospf-1-area-0.0.0.1] quit
[SwitchA-ospf-1] quit
# 查看Switch C的OSPF路由表,可以看到路由表项进一步减少,只保留了一条通往区域外部的缺省路由。
[SwitchC] display ospf routing
OSPF Process 1 with Router ID 10.4.1.1
Routing Table
Routing for network
Destination Cost Type NextHop AdvRouter Area
0.0.0.0/0 4 Inter 10.2.1.1 10.2.1.1 0.0.0.1
10.2.1.0/24 3 Transit 0.0.0.0 10.4.1.1 0.0.0.1
10.4.1.0/24 3 Stub 10.4.1.1 10.4.1.1 0.0.0.1
Total nets: 3
Intra area: 2 Inter area: 1 ASE: 0 NSSA: 0
· 所有的交换机都运行OSPF,整个自治系统划分为3个区域。
· 其中Switch A和Switch B作为ABR来转发区域之间的路由。
· 要求将Area1配置为NSSA区域,同时将Switch C配置为ASBR引入外部路由(静态路由),且路由信息可正确的在AS内传播。
图1-12 OSPF NSSA区域配置组网图
(1) 配置各接口的IP地址(略)
(2) 配置OSPF(同前例1.14.1 )
(3) 配置Area1区域为NSSA区域
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ospf
[SwitchA-ospf-1] area 1
[SwitchA-ospf-1-area-0.0.0.1] nssa
[SwitchA-ospf-1-area-0.0.0.0] quit
[SwitchA-ospf-1] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] ospf
[SwitchC-ospf-1] area 1
[SwitchC-ospf-1-area-0.0.0.1] nssa
[SwitchC-ospf-1-area-0.0.0.1] quit
[SwitchC-ospf-1] quit
# 查看Switch C的OSPF路由表。
[SwitchC] display ospf routing
OSPF Process 1 with Router ID 10.4.1.1
Routing Table
Routing for network
Destination Cost Type NextHop AdvRouter Area
10.2.1.0/24 3 Transit 10.2.1.2 10.4.1.1 0.0.0.1
10.3.1.0/24 7 Inter 10.2.1.1 10.2.1.1 0.0.0.1
10.4.1.0/24 3 Stub 10.4.1.1 10.4.1.1 0.0.0.1
10.5.1.0/24 17 Inter 10.2.1.1 10.2.1.1 0.0.0.1
10.1.1.0/24 5 Inter 10.2.1.1 10.2.1.1 0.0.0.1
Total nets: 5
Intra area: 2 Inter area: 3 ASE: 0 NSSA: 0
(4) 配置Switch C引入静态路由
[SwitchC] ip route-static 3.1.3.1 24 10.4.1.2
[SwitchC] ospf
[SwitchC-ospf-1] import-route static
[SwitchC-ospf-1] quit
# 查看Switch D的OSPF路由表,可以看到NSSA区域引入了一条AS外部路由。
<SwitchD> display ospf routing
OSPF Process 1 with Router ID 10.5.1.1
Routing Table
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
Routing for ASEs
Destination Cost Type Tag NextHop AdvRouter
3.1.3.0/24 1 Type2 1 10.3.1.1 10.2.1.1
Total nets: 6
Intra area: 2 Inter area: 3 ASE: 1 NSSA: 0
· Switch A、Switch B、Switch C、Switch D在同一网段,运行OSPF协议;
· 配置Switch A为DR,Switch C为BDR。
图1-13 OSPF的DR选择配置组网图
(1) 配置各接口的IP地址
(2) 配置OSPF基本功能
(3) 改变交换机接口的路由器优先级使Switch A成为DR,Switch C成为BDR。
(1) 配置各接口的IP地址(略)
(2) 配置OSPF基本功能
# 配置Switch A。
<SwitchA> system-view
[SwitchA] router id 1.1.1.1
[SwitchA] ospf
[SwitchA-ospf-1] area 0
[SwitchA-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[SwitchA-ospf-1-area-0.0.0.0] quit
[SwitchA-ospf-1] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] router id 2.2.2.2
[SwitchB] ospf
[SwitchB-ospf-1] area 0
[SwitchB-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] quit
[SwitchB-ospf-1] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] router id 3.3.3.3
[SwitchC] ospf
[SwitchC-ospf-1] area 0
[SwitchC-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0] quit
[SwitchC-ospf-1] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] router id 4.4.4.4
[SwitchD] ospf
[SwitchD-ospf-1] area 0
[SwitchD-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255
[SwitchD-ospf-1-area-0.0.0.0] quit
[SwitchD-ospf-1] quit
# 查看Switch A的邻居信息。
[SwitchA] display ospf peer verbose
OSPF Process 1 with Router ID 1.1.1.1
Neighbors
Area 0.0.0.0 interface 192.168.1.1(Vlan-interface1)'s neighbors
Router ID: 2.2.2.2 Address: 192.168.1.2 GR State: Normal
State: 2-Way Mode: None Priority: 1
DR: 192.168.1.4 BDR: 192.168.1.3 MTU: 0
Options is 0x02 (-|-|-|-|-|-|E|-)
Dead timer due in 38 sec
Neighbor is up for 00:01:31
Authentication Sequence: [ 0 ]
Neighbor state change count: 6
BFD status: Disabled
Router ID: 3.3.3.3 Address: 192.168.1.3 GR State: Normal
State: Full Mode: Nbr is master Priority: 1
DR: 192.168.1.4 BDR: 192.168.1.3 MTU: 0
Options is 0x02 (-|-|-|-|-|-|E|-)
Dead timer due in 31 sec
Neighbor is up for 00:01:28
Authentication Sequence: [ 0 ]
Neighbor state change count: 6
BFD status: Disabled
Router ID: 4.4.4.4 Address: 192.168.1.4 GR State: Normal
State: Full Mode: Nbr is master Priority: 1
DR: 192.168.1.4 BDR: 192.168.1.3 MTU: 0
Options is 0x02 (-|-|-|-|-|-|E|-)
Dead timer due in 31 sec
Neighbor is up for 00:01:28
Authentication Sequence: [ 0 ]
Neighbor state change count: 6
BFD status: Disabled
可以看到Switch D为DR,Switch C为BDR。
(3) 配置接口上的路由器优先级
# 配置Switch A。
[SwitchA] interface vlan-interface 1
[SwitchA-Vlan-interface1] ospf dr-priority 100
[SwitchA-Vlan-interface1] quit
# 配置Switch B。
[SwitchB] interface vlan-interface 1
[SwitchB-Vlan-interface1] ospf dr-priority 0
[SwitchB-Vlan-interface1] quit
# 配置Switch C。
[SwitchC] interface vlan-interface 1
[SwitchC-Vlan-interface1] ospf dr-priority 2
[SwitchC-Vlan-interface1] quit
# 查看Switch D的邻居信息。
<SwitchD> display ospf peer verbose
OSPF Process 1 with Router ID 4.4.4.4
Neighbors
Area 0.0.0.0 interface 192.168.1.4(Vlan-interface1)'s neighbors
Router ID: 1.1.1.1 Address: 192.168.1.1 GR State: Normal
State: Full Mode:Nbr is slave Priority: 100
DR: 192.168.1.4 BDR: 192.168.1.3 MTU: 0
Options is 0x02 (-|-|-|-|-|-|E|-)
Dead timer due in 31 sec
Neighbor is up for 00:11:17
Authentication Sequence: [ 0 ]
Neighbor state change count: 6
BFD status: Disabled
Router ID: 2.2.2.2 Address: 192.168.1.2 GR State: Normal
State: Full Mode:Nbr is slave Priority: 0
DR: 192.168.1.4 BDR: 192.168.1.3 MTU: 0
Options is 0x02 (-|-|-|-|-|-|E|-)
Dead timer due in 35 sec
Neighbor is up for 00:11:19
Authentication Sequence: [ 0 ]
Neighbor state change count: 6
BFD status: Disabled
Router ID: 3.3.3.3 Address: 192.168.1.3 GR State: Normal
State: Full Mode:Nbr is slave Priority: 2
DR: 192.168.1.4 BDR: 192.168.1.3 MTU: 0
Options is 0x02 (-|-|-|-|-|-|E|-)
Dead timer due in 33 sec
Neighbor is up for 00:11:15
Authentication Sequence: [ 0 ]
Neighbor state change count: 6
BFD status: Disabled
可以看到,网络中DR/BDR并没有改变。
网络中DR/BDR已经存在的情况下,接口上的路由器优先级的配置并不会立即生效。
(4) 重启OSPF进程
# 重启Switch D的进程。
<SwitchD> reset ospf 1 process
Warning : Reset OSPF process? [Y/N]:y
# 查看Switch D的邻居信息。
<SwitchD> display ospf peer verbose
OSPF Process 1 with Router ID 4.4.4.4
Neighbors
Area 0.0.0.0 interface 192.168.1.4(Vlan-interface1)'s neighbors
Router ID: 1.1.1.1 Address: 192.168.1.1 GR State: Normal
State: Full Mode: Nbr is slave Priority: 100
DR: 192.168.1.1 BDR: 192.168.1.3 MTU: 0
Options is 0x02 (-|-|-|-|-|-|E|-)
Dead timer due in 39 sec
Neighbor is up for 00:01:40
Authentication Sequence: [ 0 ]
Neighbor state change count: 6
BFD status: Disabled
Router ID: 2.2.2.2 Address: 192.168.1.2 GR State: Normal
State: 2-Way Mode: None Priority: 0
DR: 192.168.1.1 BDR: 192.168.1.3 MTU: 0
Options is 0x02 (-|-|-|-|-|-|E|-)
Dead timer due in 35 sec
Neighbor is up for 00:01:44
Authentication Sequence: [ 0 ]
Neighbor state change count: 6
BFD status: Disabled
Router ID: 3.3.3.3 Address: 192.168.1.3 GR State: Normal
State: Full Mode: Nbr is slave Priority: 2
DR: 192.168.1.1 BDR: 192.168.1.3 MTU: 0
Options is 0x02 (-|-|-|-|-|-|E|-)
Dead timer due in 39 sec
Neighbor is up for 00:01:41
Authentication Sequence: [ 0 ]
Neighbor state change count: 6
BFD status: Disabled
可以看到Switch A成为DR,Switch C为BDR。
如果邻居的状态是Full,这说明它和邻居之间形成了邻接关系;
如果邻居的状态是2-Way,则说明它们都不是DR或BDR,两者之间不需要交换LSA。
# 查看OSPF接口的状态。
[SwitchA] display ospf interface
OSPF Process 1 with Router ID 1.1.1.1
Interfaces
Area: 0.0.0.0
IP Address Type State Cost Pri DR BDR
192.168.1.1 Broadcast DR 1 100 192.168.1.1 192.168.1.3
[SwitchB] display ospf interface
OSPF Process 1 with Router ID 2.2.2.2
Interfaces
Area: 0.0.0.0
IP Address Type State Cost Pri DR BDR
192.168.1.2 Broadcast DROther 1 0 192.168.1.1 192.168.1.3
如果OSPF接口的状态是DROther,则说明它既不是DR,也不是BDR。
· Area 2与Area 0没有直接相连。Area 1被用作传输区域(Transit Area)来连接Area 2和Area 0。Switch B和Switch C之间配置一条虚连接。
· 配置完成后,Switch B能够学到Area 2中的路由。
图1-14 OSPF虚链路配置组网图
(1) 配置各接口的IP地址(略)
(2) 配置OSPF基本功能
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ospf 1 router-id 1.1.1.1
[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] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ospf 1 router-id 2.2.2.2
[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 1
[SwitchB–ospf-1-area-0.0.0.1] network 10.2.1.0 0.0.0.255
[SwitchB–ospf-1-area-0.0.0.1] quit
[SwitchB-ospf-1] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] ospf 1 router-id 3.3.3.3
[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] quit
[SwitchC-ospf-1] area 2
[SwitchC–ospf-1-area-0.0.0.2] network 10.3.1.0 0.0.0.255
[SwitchC–ospf-1-area-0.0.0.2] quit
[SwitchC-ospf-1] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] ospf 1 router-id 4.4.4.4
[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] quit
[SwitchD-ospf-1] quit
# 查看Switch B的OSPF路由表。
[SwitchB] display ospf routing
OSPF Process 1 with Router ID 2.2.2.2
Routing Table
Routing for network
Destination Cost Type NextHop AdvRouter Area
10.2.1.0/24 2 Transit 10.2.1.1 3.3.3.3 0.0.0.1
10.1.1.0/24 2 Transit 10.1.1.2 2.2.2.2 0.0.0.0
Total nets: 2
Intra area: 2 Inter area: 0 ASE: 0 NSSA: 0
由于Area 0没有与Area 2直接相连,所以Switch B的路由表中没有Area 2的路由。
(3) 配置虚连接
# 配置Switch B。
[SwitchB] ospf
[SwitchB-ospf-1] area 1
[SwitchB-ospf-1-area-0.0.0.1] vlink-peer 3.3.3.3
[SwitchB-ospf-1-area-0.0.0.1] quit
[SwitchB-ospf-1] quit
# 配置Switch C。
[SwitchC] ospf 1
[SwitchC-ospf-1] area 1
[SwitchC-ospf-1-area-0.0.0.1] vlink-peer 2.2.2.2
[SwitchC-ospf-1-area-0.0.0.1] quit
[SwitchC-ospf-1] quit
# 查看Switch B的OSPF路由表。
[SwitchB] display ospf routing
OSPF Process 1 with Router ID 2.2.2.2
Routing Table
Routing for network
Destination Cost Type NextHop AdvRouter Area
10.2.1.0/24 2 Transit 10.2.1.1 3.3.3.3 0.0.0.1
10.3.1.0/24 5 Inter 10.2.1.2 3.3.3.3 0.0.0.0
10.1.1.0/24 2 Transit 10.1.1.2 2.2.2.2 0.0.0.0
Total nets: 3
Intra area: 2 Inter area: 1 ASE: 0 NSSA: 0
可以看到,Switch B已经学到了Area 2的路由10.3.1.0/24。
· Switch A、Switch B和Switch C既属于同一自治系统,也属于同一OSPF域,通过OSPF协议实现网络互连,并提供GR机制。
· Switch A作为非IETF标准GR Restarter,Switch B和Switch C作为GR Helper并且通过GR机制与Switch A保持带外同步。
图1-15 OSPF GR配置组网图
(1) 配置各接口的IP地址(略)
(2) 配置OSPF基本功能
# 配置Switch A。
<SwitchA> system-view
[SwitchA] router id 1.1.1.1
[SwitchA] ospf 100
[SwitchA-ospf-100] area 0
[SwitchA-ospf-100-area-0.0.0.0] network 192.1.1.0 0.0.0.255
[SwitchA-ospf-100-area-0.0.0.0] quit
[SwitchA-ospf-1] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] router id 2.2.2.2
[SwitchB] ospf 100
[SwitchB-ospf-100] area 0
[SwitchB-ospf-100-area-0.0.0.0] network 192.1.1.0 0.0.0.255
[SwitchB-ospf-100-area-0.0.0.0] quit
[SwitchB-ospf-1] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] router id 3.3.3.3
[SwitchC] ospf 100
[SwitchC-ospf-100] area 0
[SwitchC-ospf-100-area-0.0.0.0] network 192.1.1.0 0.0.0.255
[SwitchC-ospf-100-area-0.0.0.0] quit
[SwitchC-ospf-1] quit
(3) 配置OSPF GR
# 配置Switch A作为非IETF标准GR Restarter,即使能OSPF进程100的本地链路信令能力、OSPF带外同步能力和非IETF标准GR能力。
[SwitchA-ospf-100] enable link-local-signaling
[SwitchA-ospf-100] enable out-of-band-resynchronization
[SwitchA-ospf-100] graceful-restart
[SwitchA-ospf-100] quit
# 配置Switch B作为GR Helper,即使能OSPF进程100的本地链路信令能力和OSPF带外同步能力。
[SwitchB-ospf-100] enable link-local-signaling
[SwitchB-ospf-100] enable out-of-band-resynchronization
# 配置Switch C作为GR Helper,即使能OSPF进程100的本地链路信令能力和OSPF带外同步能力。
[SwitchC-ospf-100] enable link-local-signaling
[SwitchC-ospf-100] enable out-of-band-resynchronization
# 打开Switch A的OSPF平滑启动事件调试信息开关。在Switch A上以GR方式重启OSPF进程。
<SwitchA> debugging ospf event graceful-restart
<SwitchA> terminal monitor
<SwitchA> terminal logging level 7
<SwitchA> reset ospf 100 process graceful-restart
Reset OSPF process? [Y/N]:y
%Oct 21 15:29:28:727 2011 SwitchA OSPF/5/OSPF_NBR_CHG: OSPF 100 Neighbor 192.1.1.2(Vlan-interface100) from Full to Down.
%Oct 21 15:29:28:729 2011 SwitchA OSPF/5/OSPF_NBR_CHG: OSPF 100 Neighbor 192.1.1.3(Vlan-interface100) from Full to Down.
*Oct 21 15:29:28:735 2011 SwitchA OSPF/7/DEBUG:
OSPF 100 nonstandard GR Started for OSPF Router
*Oct 21 15:29:28:735 2011 SwitchA OSPF/7/DEBUG:
OSPF 100 created GR wait timer,timeout interval is 40(s).
*Oct 21 15:29:28:735 2011 SwitchA OSPF/7/DEBUG:
OSPF 100 created GR Interval timer,timeout interval is 120(s).
*Oct 21 15:29:28:758 2011 SwitchA OSPF/7/DEBUG:
OSPF 100 created OOB Progress timer for neighbor 192.1.1.3.
*Oct 21 15:29:28:766 2011 SwitchA OSPF/7/DEBUG:
OSPF 100 created OOB Progress timer for neighbor 192.1.1.2.
%Oct 21 15:29:29:902 2011 SwitchA OSPF/5/OSPF_NBR_CHG: OSPF 100 Neighbor 192.1.1.2(Vlan-interface100) from Loading to Full.
*Oct 21 15:29:29:902 2011 SwitchA OSPF/7/DEBUG:
OSPF 100 deleted OOB Progress timer for neighbor 192.1.1.2.
%Oct 21 15:29:30:897 2011 SwitchA OSPF/5/OSPF_NBR_CHG: OSPF 100 Neighbor 192.1.1.3(Vlan-interface100) from Loading to Full.
*Oct 21 15:29:30:897 2011 SwitchA OSPF/7/DEBUG:
OSPF 100 deleted OOB Progress timer for neighbor 192.1.1.3.
*Oct 21 15:29:30:911 2011 SwitchA OSPF/7/DEBUG:
OSPF GR: Process 100 Exit Restart,Reason : DR or BDR change,for neighbor : 192.1.1.3.
*Oct 21 15:29:30:911 2011 SwitchA OSPF/7/DEBUG:
OSPF 100 deleted GR Interval timer.
*Oct 21 15:29:30:912 2011 SwitchA OSPF/7/DEBUG:
OSPF 100 deleted GR wait timer.
%Oct 21 15:29:30:920 2011 SwitchA OSPF/5/OSPF_NBR_CHG: OSPF 100 Neighbor 192.1.1.2(Vlan-interface100) from Full to Down.
%Oct 21 15:29:30:921 2011 SwitchA OSPF/5/OSPF_NBR_CHG: OSPF 100 Neighbor 192.1.1.3(Vlan-interface100) from Full to Down.
%Oct 21 15:29:33:815 2011 SwitchA OSPF/5/OSPF_NBR_CHG: OSPF 100 Neighbor 192.1.1.3(Vlan-interface100) from Loading to Full.
%Oct 21 15:29:35:578 2011 SwitchA OSPF/5/OSPF_NBR_CHG: OSPF 100 Neighbor 192.1.1.2(Vlan-interface100) from Loading to Full.
Switch S、Switch A、Switch B属于同一OSPF区域,通过OSPF协议实现网络互连。要求对Switch S进行主备倒换时,Switch A和Switch B到Switch S的邻居没有中断,Switch A到Switch B的流量没有中断。
图1-16 OSPF NSR配置组网图
(1) 配置各路由器接口的IP地址和OSPF协议
请按照上面组网图配置各接口的IP地址和子网掩码,具体配置过程略。
配置各交换机之间采用OSPF协议进行互连,确保Switch S、Switch A和Switch B之间能够在网络层互通,并且各交换机之间能够借助OSPF协议实现动态路由更新。具体配置过程略。
(2) 配置OSPF NSR
# 使能Switch S的OSPF NSR功能。
<SwitchS> system-view
[SwitchS] ospf 100
[SwitchS-ospf-100] non-stop-routing
[SwitchS-ospf-100] quit
# Switch S进行主备倒换。
[SwitchS] placement reoptimize
Predicted changes to the placement
Program Current location New location
---------------------------------------------------------------------
lb 0/0 0/0
lsm 0/0 0/0
slsp 0/0 0/0
rib6 0/0 0/0
routepolicy 0/0 0/0
rib 0/0 0/0
staticroute6 0/0 0/0
staticroute 0/0 0/0
ospf 0/0 1/0
Continue? [y/n]:y
Re-optimization of the placement start. You will be notified on completion
Re-optimization of the placement complete. Use 'display placement' to view the new placement
# 查看Switch A上OSPF协议的邻居和路由。
<SwitchA> display ospf peer
OSPF Process 1 with Router ID 2.2.2.1
Neighbor Brief Information
Router ID Address Pri Dead-Time State Interface
3.3.3.1 12.12.12.2 1 37 Full/BDR Vlan100
<SwitchA> display ospf routing
OSPF Process 1 with Router ID 2.2.2.1
Routing Table
Routing for network
Destination Cost Type NextHop AdvRouter Area
44.44.44.44/32 2 Stub 12.12.12.2 4.4.4.1 0.0.0.0
14.14.14.0/24 2 Transit 12.12.12.2 4.4.4.1 0.0.0.0
22.22.22.22/32 0 Stub 22.22.22.22 2.2.2.1 0.0.0.0
12.12.12.0/24 1 Transit 12.12.12.1 2.2.2.1 0.0.0.0
Total nets: 4
Intra area: 4 Inter area: 0 ASE: 0 NSSA: 0
# 查看Switch B上OSPF协议的邻居和路由。
<SwitchB> display ospf peer
OSPF Process 1 with Router ID 4.4.4.1
Neighbor Brief Information
Area: 0.0.0.0
Router ID Address Pri Dead-Time State Interface
3.3.3.1 14.14.14.2 1 39 Full/BDR Vlan200
<SwitchB> display ospf routing
OSPF Process 1 with Router ID 4.4.4.1
Routing Table
Routing for network
Destination Cost Type NextHop AdvRouter Area
44.44.44.44/32 0 Stub 44.44.44.44 4.4.4.1 0.0.0.0
14.14.14.0/24 1 Transit 14.14.14.1 4.4.4.1 0.0.0.0
22.22.22.22/32 2 Stub 14.14.14.2 2.2.2.1 0.0.0.0
12.12.12.0/24 2 Transit 14.14.14.2 2.2.2.1 0.0.0.0
Total nets: 4
Intra area: 4 Inter area: 0 ASE: 0 NSSA: 0
通过上面信息可以看出在Switch S发生主备倒换的时候,Switch A和Switch B的邻居和路由信息保持不变,从Switch A到Switch B的流量转发没有受到主备倒换的影响。
· Switch A、Switch B和Switch C上运行OSPF,网络层相互可达。
· 当Switch A和Switch B通过L2 Switch通信的链路出现故障时BFD能够快速感知通告OSPF协议,并且切换到Switch C进行通信。
图1-17 OSPF与BFD联动配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Switch A |
Vlan-int10 |
192.168.0.102/24 |
Switch B |
Vlan-int10 |
192.168.0.100/24 |
|
Vlan-int11 |
10.1.1.102/24 |
|
Vlan-int13 |
13.1.1.1/24 |
|
Loop0 |
121.1.1.1/32 |
|
Loop0 |
120.1.1.1/32 |
Switch C |
Vlan-int11 |
10.1.1.100/24 |
|
|
|
|
Vlan-int13 |
13.1.1.2/24 |
|
|
|
(1) 配置各接口的IP地址(略)
(2) 配置OSPF基本功能
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ospf
[SwitchA-ospf-1] area 0
[SwitchA-ospf-1-area-0.0.0.0] network 192.168.0.0 0.0.0.255
[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] network 121.1.1.1 0.0.0.0
[SwitchA-ospf-1-area-0.0.0.0] quit
[SwitchA-ospf-1] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ospf
[SwitchB-ospf-1] area 0
[SwitchB-ospf-1-area-0.0.0.0] network 192.168.0.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] network 13.1.1.0 0.0.0.255
[SwitchB-ospf-1-area-0.0.0.0] network 120.1.1.1 0.0.0.0
[SwitchB-ospf-1-area-0.0.0.0] quit
[SwitchB-ospf-1] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] ospf
[SwitchC-ospf-1] area 0
[SwitchC-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0] network 13.1.1.0 0.0.0.255
[SwitchC-ospf-1-area-0.0.0.0] quit
[SwitchC-ospf-1] quit
(3) 配置BFD功能
# 在Switch A上使能BFD检测功能,并配置BFD参数。
[SwitchA] bfd session init-mode active
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] ospf bfd enable
[SwitchA-Vlan-interface10] bfd min-transmit-interval 500
[SwitchA-Vlan-interface10] bfd min-receive-interval 500
[SwitchA-Vlan-interface10] bfd detect-multiplier 7
[SwitchA-Vlan-interface10] quit
# 在Switch B上使能BFD检测功能,并配置BFD参数。
[SwitchB] bfd session init-mode active
[SwitchB] interface vlan-interface 10
[SwitchB-Vlan-interface10] ospf bfd enable
[SwitchB-Vlan-interface10] bfd min-transmit-interval 500
[SwitchB-Vlan-interface10] bfd min-receive-interval 500
[SwitchB-Vlan-interface10] bfd detect-multiplier 6
[SwitchB-Vlan-interface10] quit
下面以Switch A为例,Switch B和Switch A类似,不再赘述。
# 显示Switch A的BFD信息。
<SwitchA> display bfd session
Total Session Num: 1 Up Session Num: 1 Init Mode: Active
IPv4 Session Working Under Ctrl Mode:
LD/RD SourceAddr DestAddr State Holdtime Interface
3/1 192.168.0.102 192.168.0.100 Up 1700ms Vlan10
# 在Switch A上查看120.1.1.1/32的路由信息,可以看出Switch A和Switch B是通过L2 Switch进行通信的。
<SwitchA> display ip routing-table 120.1.1.1 verbose
Summary Count : 1
Destination: 120.1.1.1/32
Protocol: O_INTRA
Process ID: 1
SubProtID: 0x1 Age: 04h20m37s
Cost: 1 Preference: 10
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x0 OrigVrf: default-vrf
TableID: 0x2 OrigAs: 0
NibID: 0x26000002 LastAs: 0
AttrID: 0xffffffff Neighbor: 0.0.0.0
Flags: 0x1008c OrigNextHop: 192.168.0.100
Label: NULL RealNextHop: 192.168.0.100
BkLabel: NULL BkNextHop: N/A
Tunnel ID: Invalid Interface: Vlan-interface10
BkTunnel ID: Invalid BkInterface: N/A
FtnIndex: 0x0 TrafficIndex: N/A
Connector: N/A
当Switch A和Switch B通过L2 Switch通信的链路出现故障时:
# 在Switch A上查看120.1.1.1/32的路由信息,可以看出Switch A和Switch B已经切换到Switch C进行通信。
<SwitchA> display ip routing-table 120.1.1.1 verbose
Summary Count : 1
Destination: 120.1.1.1/32
Protocol: O_INTRA
Process ID: 1
SubProtID: 0x1 Age: 04h20m37s
Cost: 2 Preference: 10
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x0 OrigVrf: default-vrf
TableID: 0x2 OrigAs: 0
NibID: 0x26000002 LastAs: 0
AttrID: 0xffffffff Neighbor: 0.0.0.0
Flags: 0x1008c OrigNextHop: 10.1.1.100
Label: NULL RealNextHop: 10.1.1.100
BkLabel: NULL BkNextHop: N/A
Tunnel ID: Invalid Interface: Vlan-interface11
BkTunnel ID: Invalid BkInterface: N/A
FtnIndex: 0x0 TrafficIndex: N/A
Connector: N/A
如图1-18所示,Switch A、Switch B和Switch C属于同一OSPF区域,通过OSPF协议实现网络互连。要求当Switch A和Switch B之间的链路出现故障时,业务可以快速切换到链路B上。
图1-18 OSPF快速重路由配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
Switch A |
Vlan-int100 |
12.12.12.1/24 |
Switch B |
Vlan-int101 |
24.24.24.4/24 |
|
Vlan-int200 |
13.13.13.1/24 |
|
Vlan-int200 |
13.13.13.2/24 |
|
Loop0 |
1.1.1.1/32 |
|
Loop0 |
4.4.4.4/32 |
Switch C |
Vlan-int100 |
12.12.12.2/24 |
|
|
|
|
Vlan-int101 |
24.24.24.2/24 |
|
|
|
(1) 配置各交换机接口的IP地址和OSPF协议
请按照上面组网图配置各接口的IP地址和子网掩码,具体配置过程略。
配置各交换机之间采用OSPF协议进行互连,确保Switch A、Switch B和Switch C之间能够在网络层互通,并且各交换机之间能够借助OSPF协议实现动态路由更新。
具体配置过程略。
(2) 配置OSPF快速重路由
OSPF支持快速重路由配置有两种配置方法,可以任选一种。
方法一:使能Switch A和Switch B的OSPF快速重路由功能(通过LFA算法选取备份下一跳信息)
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ospf 1
[SwitchA-ospf-1] fast-reroute lfa
[SwitchA-ospf-1] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ospf 1
[SwitchB-ospf-1] fast-reroute lfa
[SwitchB-ospf-1] quit
方法二:使能Switch A和Switch B的OSPF快速重路由功能(通过路由策略指定备份下一跳)
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ip prefix-list abc index 10 permit 4.4.4.4 32
[SwitchA] route-policy frr permit node 10
[SwitchA-route-policy-frr-10] if-match ip address prefix-list abc
[SwitchA-route-policy-frr-10] apply fast-reroute backup-interface vlan-interface 100 backup-nexthop 12.12.12.2
[SwitchA-route-policy-frr-10] quit
[SwitchA] ospf 1
[SwitchA-ospf-1] fast-reroute route-policy frr
[SwitchA-ospf-1] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ip prefix-list abc index 10 permit 1.1.1.1 32
[SwitchB] route-policy frr permit node 10
[SwitchB-route-policy-frr-10] if-match ip address prefix-list abc
[SwitchB-route-policy-frr-10] apply fast-reroute backup-interface vlan-interface 101 backup-nexthop 24.24.24.2
[SwitchB-route-policy-frr-10] quit
[SwitchB] ospf 1
[SwitchB-ospf-1] fast-reroute route-policy frr
[SwitchB-ospf-1] quit
# 在Switch A上查看4.4.4.4/32网段路由,可以看到备份下一跳信息。
[SwitchA] display ip routing-table 4.4.4.4 verbose
Summary Count : 1
Destination: 4.4.4.4/32
Protocol: O_INTRA
Process ID: 1
SubProtID: 0x1 Age: 04h20m37s
Cost: 1 Preference: 10
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x0 OrigVrf: default-vrf
TableID: 0x2 OrigAs: 0
NibID: 0x26000002 LastAs: 0
AttrID: 0xffffffff Neighbor: 0.0.0.0
Flags: 0x1008c OrigNextHop: 13.13.13.2
Label: NULL RealNextHop: 13.13.13.2
BkLabel: NULL BkNextHop: 12.12.12.2
Tunnel ID: Invalid Interface: Vlan-interface200
BkTunnel ID: Invalid BkInterface: Vlan-interface100
FtnIndex: 0x0 TrafficIndex: N/A
Connector: N/A
# 在Switch B上查看1.1.1.1/32网段路由,可以看到备份下一跳信息。
[SwitchB] display ip routing-table 1.1.1.1 verbose
Summary Count : 1
Destination: 1.1.1.1/32
Protocol: O_INTRA
Process ID: 1
SubProtID: 0x1 Age: 04h20m37s
Cost: 1 Preference: 10
IpPre: N/A QosLocalID: N/A
Tag: 0 State: Active Adv
OrigTblID: 0x0 OrigVrf: default-vrf
TableID: 0x2 OrigAs: 0
NibID: 0x26000002 LastAs: 0
AttrID: 0xffffffff Neighbor: 0.0.0.0
Flags: 0x1008c OrigNextHop: 13.13.13.1
Label: NULL RealNextHop: 13.13.13.1
BkLabel: NULL BkNextHop: 24.24.24.2
Tunnel ID: Invalid Interface: Vlan-interface200
BkTunnel ID: Invalid BkInterface: Vlan-interface101
FtnIndex: 0x0 TrafficIndex: N/A
Connector: N/A
OSPF邻居无法建立。
如果物理连接和下层协议正常,则检查接口上配置的OSPF参数,必须保证与相邻路由器的参数一致,区域号相同,网段与掩码也必须一致(点到点与虚连接的网段与掩码可以不同)。
(1) 使用display ospf peer命令查看OSPF邻居状态。
(2) 使用display ospf interface命令查看OSPF接口的信息。
(3) 检查物理连接及下层协议是否正常运行,可通过ping命令测试。若从本地路由器Ping对端路由器不通,则表明物理连接和下层协议有问题。
(4) 检查OSPF定时器,在同一接口上邻居失效时间应至少为Hello报文发送时间间隔的4倍。
(5) 如果是NBMA网络,则应该使用peer ip-address命令手工指定邻居。
(6) 如果网络类型为广播网或NBMA,则至少有一个接口的路由器优先级大于零。
OSPF不能发现其他区域的路由。
应保证骨干区域与所有的区域相连接。若一台路由器配置了两个以上的区域,则至少有一个区域应与骨干区域相连。骨干区域不能配置成Stub区域。
在Stub区域内的路由器不能接收外部AS的路由。如果一个区域配置成Stub区域,则与这个区域相连的所有路由器都应将此区域配置成Stub区域。
(1) 使用display ospf peer命令查看OSPF邻居状态。
(2) 使用display ospf interface命令查看OSPF接口的信息。
(3) 使用display ospf lsdb查看LSDB的信息是否完整。
(4) 使用display current-configuration configuration ospf命令查看区域是否配置正确。若配置了两个以上的区域,则至少有一个区域与骨干区域相连。
(5) 如果某区域是Stub区域,则该区域中的所有路由器都要配置stub命令;如果某区域是NSSA区域,则该区域中的所有路由器都要配置nssa命令。
(6) 如果配置了虚连接,使用display ospf vlink命令查看OSPF虚连接是否正常。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!