04-OSPF配置
本章节下载: 04-OSPF配置 (1.19 MB)
目 录
1.6.3 配置OSPF对通过接收到的LSA计算出来的路由信息进行过滤
1.6.6 配置OSPF通告给邻居的链路开销值保持最大值的持续时间
1.7.14 配置LSDB中External LSA的最大数量
1.7.15 配置OSPF尝试退出overflow状态的定时器时间间隔
1.7.19 配置OSPF记录邻居关系断开故障检测信息的最大条数
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)类型:本设备缺省情况下,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,非广播多路访问)类型:在该类型的网络中,以单播形式发送协议报文。
· P2MP(Point-to-MultiPoint,点到多点)类型:没有一种链路层协议会被缺省的认为是P2MP类型。P2MP必须是由其他的网络类型强制更改的,常用做法是将NBMA网络改为P2MP网络。在该类型的网络中,缺省情况下,以组播形式(224.0.0.5)发送协议报文。可以根据用户需要,以单播形式发送协议报文。
· P2P(Point-to-Point,点到点)类型:在该类型的网络中,以组播形式(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 1245:OSPF protocol analysis
· RFC 1246:Experience with the OSPF protocol
· RFC 1370:Applicability Statement for OSPF
· RFC 1403:BGP OSPF Interaction
· RFC 1745:BGP4/IDRP for IP---OSPF Interaction
· RFC 1765:OSPF Database Overflow
· RFC 1793:Extending OSPF to Support Demand Circuits
· RFC 2154:OSPF with Digital Signatures
· RFC 2328:OSPF Version 2
· RFC 3101:OSPF Not-So-Stubby Area (NSSA) Option
· RFC 3166:Request to Move RFC 1403 to Historic Status
· RFC 3509:Alternative Implementations of OSPF Area Border Routers
· RFC 4167:Graceful OSPF Restart Implementation Report
· RFC 4577:OSPF as the Provider/Customer Edge Protocol for BGP/MPLS IP Virtual Private Networks (VPNs)
· RFC 4750:OSPF Version 2 Management Information Base
· RFC 4811:OSPF Out-of-Band LSDB Resynchronization
· RFC 4812:OSPF Restart Signaling
· RFC 4915:Multi-Topology (MT) Routing in OSPF
· RFC 5088:OSPF Protocol Extensions for Path Computation Element (PCE) Discovery
· RFC 5250:The OSPF Opaque LSA Option
· RFC 5613:OSPF Link-Local Signaling
· RFC 5642:Dynamic Hostname Exchange Mechanism for OSPF
· RFC 5709:OSPFv2 HMAC-SHA Cryptographic Authentication
· RFC 5786:Advertising a Router's Local Addresses in OSPF Traffic Engineering (TE) Extensions
· RFC 6571:Loop-Free Alternate (LFA) Applicability in Service Provider (SP) Networks
· RFC 6860:Hiding Transit-Only Networks in OSPF
· RFC 6987:OSPF Stub Router Advertisement
无论是哪种类型的路由器,都必须先使能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网络 |
配置OSPF报文定时器 |
可选 |
|
|
配置接口传送LSA的延迟时间 |
可选 |
||
|
配置OSPF路由计算的时间间隔 |
可选 |
||
|
配置LSA重复到达的最小时间间隔 |
可选 |
||
|
配置LSA重新生成的时间间隔 |
可选 |
||
|
禁止接口收发OSPF报文 |
可选 |
||
|
配置Stub路由器 |
可选 |
||
|
配置OSPF isolate功能 |
可选 |
||
|
配置OSPF shutdown功能 |
可选 |
||
|
配置OSPF验证 |
可选 |
||
|
配置DD报文中的MTU |
可选 |
||
|
配置报文的DSCP值 |
可选 |
||
|
配置LSDB中External LSA的最大数量 |
可选 |
||
|
配置OSPF尝试退出overflow状态的定时器时间间隔 |
可选 |
||
|
配置兼容RFC1583的外部路由选择规则 |
可选 |
||
|
配置邻居状态变化的输出开关 |
可选 |
||
|
配置OSPF网管功能 |
可选 |
||
|
配置OSPF记录邻居关系断开故障检测信息的最大条数 |
可选 |
||
|
配置发送LSU报文的速率 |
可选 |
||
|
配置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 | [ authentication-none | { 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接口网络类型的缺省值为广播类型。
用户可以根据需要更改接口的网络类型,例如:
· 当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接口网络类型为广播类型 |
把接口类型配置为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 |
OSPF网络中,链路发生故障并从故障中恢复,或接口状态变化时,OSPF会重新建立邻接关系,路由会重新进行收敛。在路由重新收敛的过程中,由于各个节点的路由收敛速度不一致,可能会形成环路,造成流量丢失。为了在路由收敛过程中保持转发路径不变,可以使用本功能使OSPF在一段时间内向邻居通告最大链路开销,这段时间结束后OSPF向邻居通告的链路开销从最大值恢复为原始开销值,OSPF重新进行路由优选。
表1-17 配置OSPF通告给邻居的链路开销值保持最大值的持续时间
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入接口视图 |
interface interface-type interface-number |
- |
|
配置OSPF通告给邻居的链路开销值保持最大值的持续时间 |
ospf peer hold-max-cost duration time |
缺省情况下,未配置OSPF通告给邻居的链路开销值保持最大值的持续时间 |
如果到一个目的地有几条开销相同的路径,可以实现等价路由负载分担,IP报文在这几个链路上负载分担,以提高链路利用率。该配置用以设置OSPF协议的最大等价路由条数。
表1-18 配置OSPF最大等价路由条数
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
|
配置OSPF最大等价路由条数 |
maximum load-balancing number |
缺省情况下,OSPF支持的等价路由的最大条数与系统支持最大等价路由的条数相同 |
由于路由器上可能同时运行多个动态路由协议,就存在各个路由协议之间路由信息共享和选择的问题。系统为每一种路由协议设置一个优先级,在不同协议发现同一条路由时,优先级高的路由将被优先选择。
表1-19 配置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-20 配置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 |
如果在路由器上不仅运行OSPF,还运行着其它路由协议,可以配置OSPF引入其它协议生成的路由,如RIP、IS-IS、BGP、静态路由或者直连路由,将这些路由信息通过Type5 LSA或Type7 LSA向外宣告。
OSPF还可以对引入的路由进行过滤,只将满足过滤条件的外部路由转换为Type5 LSA或Type7 LSA发布出去。
只能引入路由表中状态为active的路由,是否为active状态可以通过display ip routing-table protocol命令来查看。
表1-21 配置OSPF引入其它协议的路由
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
|
配置OSPF引入其它协议的路由 |
import-route bgp [ as-number ] [ allow-ibgp ] [ [ cost cost-value | inherit-cost ] | nssa-only | route-policy route-policy-name | tag tag | type type ] * import-route { direct | static } [ [ cost cost-value | inherit-cost ] | nssa-only | route-policy route-policy-name | tag tag | type type ] * import-route { isis | ospf | rip } [ process-id | all-processes ] [ allow-direct | [ cost cost-value | inherit-cost ] | nssa-only | route-policy route-policy-name | tag tag | type type ] * |
缺省情况下,不引入外部路由 执行import-route命令引入BGP路由时,未指定allow-ibgp参数表示只引入EBGP路由;指定allow-ibgp参数表示将IBGP路由也引入,容易引起路由环路,请慎用 |
|
(可选)配置对引入的路由进行过滤 |
filter-policy { ipv4-acl-number | prefix-list prefix-list-name } export [ protocol [ process-id ] ] |
缺省情况下,不对引入的路由信息进行过滤 |
OSPF不能通过import-route命令从其它协议引入缺省路由,如果想把缺省路由引入到OSPF路由区域,必须要使用下面命令配置OSPF引入缺省路由。
表1-22 配置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-23 配置引入路由时的相关参数
|
操作 |
命令 |
说明 |
|
进入系统视图 |
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-24 配置发布一条主机路由
|
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
|
进入OSPF区域视图 |
area area-id |
- |
|
配置并发布一条主机路由 |
host-advertise ip-address cost-value |
缺省情况下,OSPF不发布所包含网段之外的主机路由 |
缺省情况下,OSPF区域下的接口会自动加入标准拓扑。本命令允许区域下的接口从标准拓扑中分离出来。
表1-25 配置允许区域下的接口从标准拓扑中分离
|
操作 |
命令 |
说明 |
|
进入系统视图 |
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-26 配置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-27 配置接口传送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-28 配置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-29 配置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-30 配置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-31 禁止接口收发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-32 配置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区域无关 |
Isolate是一种对网络设备进行软件或硬件维护的方式。Isolate使用网络中的冗余路径,平滑移除需要维护的设备。当完成设备维护后,该设备可以重新投入使用。
当用户需要对网络中某台设备的OSPF协议进行升级时,为了不对当前网络中通过该设备发布的OSPF路由指导转发的流量产生影响,可以使用OSPF isolate功能把该设备上的OSPF协议从当前网络中隔离出来,具体工作机制如下:
(1) 开启OSPF isolate功能后,OSPF将链路度量值调大,以便邻居重新进行路径优选。OSPF调整链路度量值的机制如下:
¡ 发布的Type-1 LSA(Router LSA)中,OSPF将链路度量值调整为最大值65535。
¡ 发布的Type-3 LSA(Network Summary LSA)、Type-5 LSA(AS External LSA)和Type-7 LSA(NSSA External LSA)中,OSPF将链路度量值调整为16711680。
(2) 邻居收到LSA完成路由计算后,将选择更优的路径转发流量,不再将流量发往OSPF isolate设备。此时,设备的OSPF协议完全从当前组网中隔离出来,可以对该设备上的OSPF协议进行升级处理。
(3) 对OSPF协议的维护结束后,关闭OSPF isolate功能将链路度量值恢复为调整前的值,从而让该设备的OSPF协议重新加入网络。
单独配置isolate enable命令的效果与单独配置stub-router external-lsa 16711680 summary-lsa 16711680 include-stub命令的效果相同。
同时配置OSPF isolate功能和OSPF stub路由器功能时,需要注意:
· OSPF isolate功能和OSPF stub路由器功能均生效时,发布的Type-3 LSA、Type-5 LSA、Type-7 LSA的链路度量值为Isolate功能和Stub路由器功能中该类LSA链路度量值的较大者。
· 如果stub-router命令中指定了on-startup参数,在Stub路由器功能未生效期间,仅Isolate功能会影响流量转发路径。
表1-33 配置OSPF isolate功能
|
操作 |
命令 |
说明 |
|
|
进入系统视图 |
system-view |
- |
|
|
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
|
|
使用OSPF isolate功能对设备的OSPF协议进行维护 |
开启OSPF协议的隔离功能,将设备的OSPF协议从网络中隔离出来 |
isolate enable |
缺省情况下,OSPF协议的隔离功能处于关闭状态 |
|
OSPF协议维护结束后,关闭OSPF协议的隔离功能,让设备的OSPF协议重新加入网络 |
undo isolate enable |
||
当用户需要对某台设备进行调试或升级等维护操作时,可以使用OSPF shutdown功能暂时关闭设备的OSPF进程,并通知邻居设备自己要离开网络。邻居设备将流程切换到备份路径上,不再通过该设备转发流量,从而降低设备维护对网络的影响。具体工作机制如下:
· 开启OSPF shutdown功能的OSPF进程向邻居发送1-way Hello报文。
邻居收到1-way Hello报文后,断开与发送该报文的设备的邻居关系。
· 开启OSPF shutdown功能的OSPF进程停止收发OSPF协议报文,清除邻居信息、LSDB(包括自己产生的LSP和接收到的LSP)以及OSPF路由等信息。
对设备的维护结束后,通过undo shutdown process命令重新开启OSPF进程,从而让设备的OSPF进程重新加入网络。
与undo ospf命令相比,本功能在关闭OSPF进程后,不会删除该进程下的配置,降低了用户维护设备的成本。
表1-34 配置OSPF shutdown功能
|
操作 |
命令 |
说明 |
|
|
进入系统视图 |
system-view |
- |
|
|
进入OSPF视图 |
ospf [ process-id | router-id router-id | vpn-instance vpn-instance-name ] * |
- |
|
|
配置OSPF shutdown功能 |
关闭OSPF进程 |
shutdown process |
缺省情况下,OSPF进程处于开启状态 |
|
设备维护结束后,重新开启OSPF进程,让设备的OSPF进程重新加入网络 |
undo shutdown process |
||
从安全性角度来考虑,为了避免路由信息外泄或者OSPF路由器受到恶意攻击,OSPF提供报文验证功能。
OSPF路由器建立邻居关系时,在发送的报文中会携带验证模式等信息,接收报文时进行验证,只有通过验证的报文才能接收,否则将不会接收报文,不能正常建立邻居。
如果区域验证和接口验证都进行了配置,以接口验证的配置为准。
对于keychain认证算法和key的标识符的范围,OSPF的支持情况如下:
· OSPF仅支持MD5、HMAC-MD5认证算法。
· OSPF仅支持标识符取值范围为0~255的key。
一个区域中所有路由器的验证模式必须一致,如果设置了密钥,需要保证密钥的一致性。
表1-35 配置区域验证
|
操作 |
命令 |
说明 |
|
进入系统视图 |
|