31-OSPF配置
本章节下载: 31-OSPF配置 (584.00 KB)
目 录
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数量,还可以将网络拓扑变化带来的影响最小化。
OSPF划分区域之后,并非所有的区域都是平等的关系。其中有一个区域是与众不同的,它的区域号是0,通常被称为骨干区域。骨干区域负责区域之间的路由,非骨干区域之间的路由信息必须通过骨干区域来转发。对此,OSPF有两个规定:
· 所有非骨干区域必须与骨干区域保持连通;
· 骨干区域自身也必须保持连通。
在实际应用中,可能会因为各方面条件的限制,无法满足上面的要求。这时可以通过配置OSPF虚连接予以解决。
虚连接是指在两台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以外目的地址的路由。
路由器ID——即Router ID,用来在一个自治系统中唯一地标识一台路由器,一台路由器如果要运行OSPF协议,则必须存在Router ID。Router ID的获取方式有以下三种:
用户可以在创建OSPF进程的时候指定Router ID,配置时,必须保证自治系统中任意两台路由器的ID都不相同。通常的做法是将路由器的ID配置为与该路由器某个接口的IP地址一致。
如果在创建OSPF进程的时候选择自动分配Router ID,则OSPF进程将根据如下规则自动获取Router ID:
· OSPF进程启动时,将选取第一个运行该进程的接口的主IPv4地址作为Router ID;
· 设备重启时,OSPF进程将会选取第一个运行本进程的接口主IPv4地址作为Router ID;
· OSPF进程重启时,将从运行了本进程的所有接口的主IPv4地址中重新获取Router ID,具体规则如下:
¡ 如果存在配置IP地址的Loopback接口,则选择Loopback接口地址中最大的作为Router ID。
¡ 否则,从其他接口的IP地址中选择最大的作为Router ID(不考虑接口的up/down状态)。
如果在创建OSPF进程的时候没有指定Router ID,则缺省使用全局Router ID。建议用户在创建OSPF进程的时候手工指定Router ID,或者选择自动获取Router ID。
同一个区域内,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。在该类型的网络中,以单播方式发送DD报文,以组播方式发送其他类型的协议报文。
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设备从接口获取到链路状态信息后,通过与相邻设备建立邻接关系,交互彼此的链路状态信息。OSPF接口状态表明了OSPF设备在对应链路中的作用,使得邻居设备间能够明确角色分工,从而正常建立连接。
OSPF接口共有以下七种状态:
· Down:初始状态。该状态表明接口不可用,不能用于收发流量。
· Loopback:设备到网络的接口处于环回状态。环回接口不能用于正常的数据传输,但可能需要通过向环回接口发送ICMP ping报文、误码检测等方式来获取链路质量,因此设备会通过Router-LSA通告环回接口的状态信息。
· Waiting:设备正在判定网络上的DR和BDR。在设备参与DR和BDR选举前,接口会启动WaitTimer定时器。在WaitTimer定时器超时前,设备发送的Hello报文不包含DR和BDR信息,设备不能被选举为DR或BDR。这样可以避免DR和BDR的不必要更改。仅NBMA网络、广播网络有此状态。
· P-2-P:接口连接到物理点对点网络或者虚拟链路。进入此状态后,设备会与链路连接的另一端设备建立邻接关系。仅P2P、P2MP网络有此状态。
· DR Other:设备没有被选为DR或BDR,但连接到广播网络或者NBMA网络上的其他设备被选举为DR。DR Other会与DR、BDR建立邻接关系。
· BDR:设备是自身所连接的网络上的BDR,并将在当前DR失效时成为DR。BDR与自身连接的网络上的其他所有设备建立邻接关系。
· DR:设备是自身所连接的网络上的DR。DR与自身连接的网络上的其他所有设备建立邻接关系。
OSPF接口根据不同的情况(即输入事件)更改状态,这样就形成了如图1-7所示的OSPF接口状态机。
图1-7 OSPF接口状态机
触发OSPF接口状态变化的IE(InputEvent,输入事件)如表1-1所示。
表1-1 OSPF接口状态切换的IE
输入事件 |
描述 |
IE1 |
InterfaceUp:底层协议表明接口是可操作的 |
IE2 |
WaitTimer:等待定时器超时,表明设备参与DR或BDR选举需要等待的时间结束 |
IE3 |
BackupSeen:设备通过以下两种方式之一检测网络中是否存在BDR · 接口收到邻居发送的Hello报文,宣称自己是BDR · 接口收到邻居发送的Hello报文,宣称自己是DR,但没有指明BDR BackupSeen事件说明邻居之间能够进行双向通信,可以结束Waiting状态 |
IE4 |
接口被选举为DR |
IE5 |
接口被选举为BDR |
IE6 |
接口没有被选举为DR或BDR |
IE7 |
NeighborChange:与该接口相关的邻居关系变化事件发生,表明需要重新选举DR和BDR。如下邻居关系变化可能会导致重新选举DR和BDR: · 接口所在的设备和一个邻居设备之间能够进行双向通信 · 接口所在的设备和一个邻居设备之间不再能够进行双向通信 · 通过邻居设备发送的Hello报文检测到邻居设备重新宣称自己是DR或BDR · 通过邻居设备发送的Hello报文再一次检测到邻居设备宣称自己不再是DR或BDR · 通过邻居设备发送的Hello报文再一次检测到邻居设备的DR优先级发生变化 |
IE8 |
UnloopInd:网管系统或者底层协议表明接口不再处于环回状态 |
IE9 |
InterfaceDown:底层协议表明接口不可操作。无论接口当前处于何种状态,都可能由此事件触发切换到Down状态 |
IE10 |
LoopInd:网管系统或者底层协议表明接口处于环回状态。无论接口当前处于何种状态,都可能由此事件触发切换到Loopback状态 |
在OSPF网络中,相邻设备间通过不同的邻居状态切换,最终可以达到LSDB同步并形成完全邻接关系。
OSPF邻居共有以下八种状态:
· Down:邻居会话的初始阶段。表明在邻居失效时间间隔内没有收到来自邻居设备的Hello报文。OSPF设备会每隔PollInterval时间间隔对外轮询发送Hello报文,仅NBMA网络的OSPF设备会向处于Down状态的邻居设备发送Hello报文,其他网络类型中的OSPF设备不会向处于Down状态的邻居设备发送Hello报文。
· Attempt:本状态仅对NBMA网络上的邻居有效。邻居关系处于Attempt状态时,OSPF设备会每隔HelloInterval时间间隔向自己手工指定的邻居发送Hello报文,尝试建立邻居关系。
· Init:本状态表示在邻居失效时间内收到来自邻居发送的Hello报文,但该Hello数据包内没有包含自己的Router ID,双向通信还没有建立起来。
· 2-Way:本状态表示双方互相收到了彼此发送的Hello报文,并在收到的Hello报文中看到了自己的Router ID,由此建立邻居关系。如果不形成邻接关系(例如DRother之间),则邻居状态机停留在2-Way状态,否则进入Exstart状态。只有邻居状态处于2-Way或者比2-Way更高的状态,才会选举DR和BDR。
· ExStart:协商主从关系。建立主从关系主要是为了确定初始DD报文的序列号,为后续有序交换DD报文做好准备。
· Exchange:交换DD报文。本端设备使用DD报文描述本地的LSDB,并发送给邻居。
· Loading:正在同步LSDB。两端设备发送LSR报文向邻居请求对方的LSA,通过交互LSU、LSAck同步LSDB。
· Full:建立邻接关系。两端设备的LSDB已同步,本端设备和邻居设备建立了完全的邻接关系。
OSPF邻居状态的切换机制如图1-8所示。
图1-8 OSPF邻居状态机
触发OSPF邻居状态变化的IE(InputEvent,输入事件)如表1-2所示。
表1-2 OSPF接口状态切换的IE
输入事件 |
描述 |
IE1 |
Start:以HelloInterval时间间隔向邻居设备发送Hello报文,尝试建立邻居关系。仅NBMA网络适用 |
IE2 |
HelloReceived:从邻居设备收到一个Hello报文 |
IE3 |
2-WayReceived:收到了邻居设备发送的Hello报文,并在收到的Hello报文中看到了自己的Router ID,邻居之间建立了双向通信关系。接下来进行如下判断: · IE3(Y):如果相邻设备间应当建立邻接关系,则将邻居状态切换为ExStart。 · IE3(N):如果相邻设备间不应当建立邻接关系,只建立邻居关系,则将邻居状态切换为2-Way。 |
IE4 |
NegotiationDone:邻居间主从关系已协商完成,已确定初始DD报文的序列号 |
IE5 |
ExchangeDone:邻居间成功交换了DD报文。接下来进行如下判断: · IE5(Y):如果链路状态请求列表为空,则将邻居状态切换为Full,表示LSDB已同步,邻居间建立了完全邻接关系。 · IE5(N):如果链路状态请求列表不为空,则将邻居状态切换为Loading,开始或继续向邻居发送LSR报文,请求还没有接收到的链路状态信息。 |
IE6 |
LoadingDone:链路状态请求列表为空 |
与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 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协议将无法正常运行。在进行各项配置的时候应该先做好网络规划,错误的配置可能会导致相邻路由器之间无法相互传递信息,甚至导致路由信息的阻塞或者产生路由环路。
system-view
(2) (可选)配置全局Router ID。
router id router-id
缺省情况下,未配置全局Router ID。
未配置全局路由器ID时,按照下面的规则进行选择:
¡ 如果存在配置IP地址的Loopback接口,则选择Loopback接口地址中最大的作为Router ID。
¡ 如果没有配置IP地址的Loopback接口,则从其他接口的IP地址中选择最大的作为Router ID(不考虑接口的up/down状态)。
(3) 进入OSPF视图。
ospf [ process-id | router-id { auto-select |router-id } ] *
缺省情况下,系统没有运行OSPF。
(4) (可选)配置OSPF进程描述。
description text
缺省情况下,未配置进程描述。
建议用户为每个OSPF进程配置进程描述信息,帮助识别进程的用途,以便于记忆和管理。
(1) 进入系统视图。
system-view
(2) (可选)配置全局Router ID。
router id router-id
缺省情况下,未配置全局Router ID。
(3) 进入OSPF视图。
ospf [ process-id | router-id { auto-select |router-id } ] *
缺省情况下,系统没有运行OSPF。
(4) (可选)配置OSPF进程描述。
description text
缺省情况下,未配置进程描述。
建议用户为每个OSPF进程配置进程描述信息,帮助识别进程的用途,以便于记忆和管理。
(5) 创建OSPF区域,并进入OSPF区域视图。
area area-id
(6) (可选)配置区域描述。
description text
缺省情况下,未配置区域描述。
建议用户为每个区域配置区域描述信息,帮助识别区域的用途,以便于记忆和管理。
要在路由器上使能OSPF功能,必须先创建OSPF进程、指定该进程关联的区域以及区域包括的网段;对于当前路由器来说,如果某个路由器的接口IP地址落在某个区域的网段内,则该接口属于这个区域并使能了OSPF功能,OSPF将把这个接口的直连路由宣告出去。
OSPF支持多进程,即可以在一台路由器上通过为不同的OSPF进程指定不同的进程号来启动多个OSPF进程。OSPF进程号是本地概念,不影响与其它路由器之间的报文交换。因此,不同的路由器之间,即使进程号不同也可以进行报文交换。
可以在指定接口上使能OSPF,或者在指定网段上使能OSPF。在指定接口上使能OSPF的优先级高于在指定网段上使能OSPF。
在接口上使能OSPF时,如果不存在进程和区域,则创建对应的进程和区域;在接口上关闭OSPF时,不删除已经创建的进程和区域。
(1) 进入系统视图。
system-view
(2) 进入OSPF视图。
ospf [ process-id | router-id { auto-select | router-id } ] *
(3) 创建OSPF区域,并进入OSPF区域视图。
area area-id
(4) 配置区域所包含的网段并在指定网段的接口上使能OSPF。
network ip-address wildcard-mask
缺省情况下,接口不属于任何区域且OSPF功能处于关闭状态。
一个网段只能属于一个区域。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口使能OSPF。
ospf process-id area area-id [ exclude-subip ]
缺省情况下,未配置接口使能OSPF。
OSPF用Router ID来在一个自治系统中唯一地标识一台路由器,Router ID长度固定为4字节。当网络管理员检查OSPF邻居关系的状态、路由表以及LSDB中的内容时,使用点分十进制表示的Router ID不够直观,查看也不方便。
主机名映射提供了一种将Router ID映射到主机名的服务,运行OSPF的路由器维护一个主机名到Router ID的映射关系表,在维护和管理以及网络故障诊断时,使用主机名比使用Router ID会更直观,也更容易记忆。
OSPF使用Type-10 LSA或Type-11 LSA携带动态主机名属性信息,因此,使用该功能前,需要保证OSPF的Opaque LSA发布接收能力处于开启状态。
(1) 进入系统视图。
system-view
(2) 启动OSPF,进入OSPF视图。
ospf [ process-id | router-id { auto-select | router-id } ] *
(3) 使能Opaque LSA发布接收能力。
opaque-capability enable
缺省情况下,OSPF的Opaque LSA发布接收能力处于开启状态。
(4) 使能OSPF动态主机名映射功能。
hostname [ host-name ]
缺省情况下,OSPF动态主机名映射功能处于关闭状态。
如果设备通过质量差的链路转发OSPF报文,可能会出现报文发送缓慢、报文被丢弃等情况。本功能用于尽可能减小质量差的链路对OSPF网络的影响。
以下两种因素会影响链路的质量等级:
· 误码。误码是指通信设备接收到的信号与源信号之间存在比特差错。由于不可避免的线路老化、光路抖动等原因,误码是不能从根本上避免的。当误码积累到一定程度可能导致服务等级降低,甚至停止服务。链路质量检测模块会根据误码率调整链路质量等级。关于误码的详细介绍,请参见“可靠性配置指导”中的“误码检测”。
· 单板健康度。单板因不同的原因出现故障时,会影响单板健康度。链路质量检测模块会根据单板健康度调整链路质量等级。关于硬件检测功能的详细介绍,请参见“基础配置指导”中的“设备管理”。
配置本命令后,OSPF将根据链路质量等级来调整接口开销值,具体机制如下:
· 当链路质量检测模块检测到链路质量变差,即链路质量检测模块将链路的质量等级由GOOD变为LOW时,链路质量检测模块向OSPF上报高误码事件,OSPF将接口开销值调大。
· 当链路质量检测模块检测到链路质量变好,即链路质量检测模块将链路的质量等级由LOW变为GOOD时,链路质量检测模块向OSPF上报高误码解除事件,OSPF将接口开销值恢复为调整前的值。
上述机制可以使OSPF选择质量等级为GOOD的链路转发流量,从而尽可能减少链路质量对OSPF网络的影响。
本功能只能调整问题链路在本端的开销值,因此只能影响单方向的路由优选和流量路径,无法影响另一方向的路由和流量。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启OSPF根据链路质量等级调整接口开销值的功能,并设置开销调整值。
ospf link-quality adjust-cost { cost-offset | max }
本命令的缺省情况与设备的型号有关,请以设备的实际情况为准。
在完成上述配置后,在任意视图下执行display命令可以显示配置后OSPF的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除OSPF的统计信息、重启OSPF进程或重新向OSPF引入外部路由。
表1-3 OSPF显示和维护
操作 |
命令 |
显示OSPF的ABR聚合信息 |
display ospf [ process-id ] [ area area-id ] abr-summary [ ip-address { mask-length | mask } ] [ verbose ] |
显示OSPF区域的最短路径树信息 |
display ospf [ process-id ] [ area area-id ] spf-tree [ verbose ] |
显示OSPF的进程信息 |
display ospf [ process-id ] [ verbose ] |
显示OSPF ABR及ASBR信息 |
display ospf [ process-id ] abr-asbr [ verbose ] |
显示OSPF的ASBR聚合信息 |
display ospf [ process-id ] asbr-summary [ ip-address { mask-length | mask } ] |
显示OSPF的日志信息 |
display ospf [ process-id ] event-log { lsa-flush | peer | spf } |
显示OSPF接收或发送Hello报文的日志信息 |
display ospf [ process-id ] event-log hello { received [ abnormal | dropped ] | sent } [ neighbor-id ] display ospf [ process-id ] event-log hello sent { abnormal | failed } [ neighbor-address ] |
显示OSPF进程的GR状态信息 |
display ospf [ process-id ] graceful-restart [ verbose ] |
显示Router ID到主机名称的映射关系表 |
display ospf [ process-id ] hostname-table |
显示OSPF接口信息 |
display ospf [ process-id ] interface [ interface-type interface-number | verbose ] |
显示接口发送Hello报文的信息 |
display ospf [ process-id ] interface [ interface-type interface-number ] hello |
显示OSPF的LSDB信息 |
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 ] [ age { max-value max-age-value | min-value min-age-value } * ] [ resolve-hostname ] display ospf [ process-id ] [ area area-id ] lsdb { asbr | network | nssa | opaque-area | opaque-link | router | summary } [ link-state-id ] hostname host-name [ age { max-value max-age-value | min-value min-age-value } * ] display ospf [ process-id ] lsdb [ brief | originate-router advertising-router-id | self-originate ] [ age { max-value max-age-value | min-value min-age-value } * ] [ resolve-hostname ] display ospf [ process-id ] lsdb hostname host-name [ age { max-value max-age-value | min-value min-age-value } * ] display ospf [ process-id ] lsdb { ase | opaque-as } [ link-state-id ] [ originate-router advertising-router-id | self-originate ] [ age { max-value max-age-value | min-value min-age-value } * ] [ resolve-hostname ] display ospf [ process-id ] lsdb { ase | opaque-as } [ link-state-id ] hostname host-name [ age { max-value max-age-value | min-value min-age-value } * ] |
显示进程中的下一跳信息 |
display ospf [ process-id ] nexthop |
显示OSPF邻居的信息 |
display ospf [ process-id ] peer [ hello | verbose ] [ interface-type interface-number ] [ [ neighbor-id ] [ resolve-hostname ] | hostname host-name ] |
显示OSPF各区域邻居的统计信息 |
display ospf [ process-id ] peer statistics |
显示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路由表的信息 |
display ospf [ process-id ] routing [ ip-address { mask-length | mask } ] [ interface interface-type interface-number ] [ nexthop nexthop-address ] [ verbose ] |
显示OSPF的统计信息 |
display ospf [ process-id ] statistics [ error | packet [ hello | interface-type interface-number ] ] |
显示OSPF虚连接信息 |
display ospf [ process-id ] vlink |
显示全局Router ID |
display router id |
清除OSPF的日志信息 |
reset ospf [ process-id ] event-log [ lsa-flush | peer | spf ] |
清除OSPF接收或发送Hello报文的日志信息 |
reset ospf [ process-id ] event-log hello { received [ abnormal | dropped ] | sent [ abnormal | failed ] } |
重启OSPF进程 |
reset ospf [ process-id ] process [ graceful-restart ] |
重新向OSPF引入外部路由 |
reset ospf [ process-id ] redistribution |
清除OSPF的统计信息 |
reset ospf [ process-id ] statistics |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!