07-OSPF配置指导
本章节下载: 07-OSPF配置指导 (392.72 KB)
本章内容可以帮助您了解OSPF原理,并指导您在设备上完成对OSPF功能的配置。
OSPF(Open Shortest Path First,开放最短路径优先)是IETF(Internet Engineering Task Force,互联网工程任务组)组织开发的一个基于链路状态的内部网关协议。目前针对IPv4协议使用的是OSPF Version 2。
· OSPF的特点
· OSPF的报文类型
· OSPF的区域划分
· OSPF的路由器类型
· OSPF的路由类型
· OSPF的网络类型
· OSPF的协议规范
本章所介绍的配置都是指OSPF version 2。
OSPF具有如下特点:
· 可适应大规模网络:支持各种规模的网络,最多可支持几百台路由器。
· 路由变化收敛快:在网络的拓扑结构发生变化后立即发送更新报文,使这一变化在自治系统中同步。
· 无路由自环:由于OSPF根据收集到的链路状态用最短路径树算法计算路由,从算法本身保证了不会生成自环路由。
· 支持区域划分:允许自治系统的网络被划分成区域来管理。路由器链路状态数据库的减小降低了内存的消耗和CPU的负担;区域间传送路由信息的减少降低了网络带宽的占用。
· 支持等价路由:支持到同一目的地址的多条等价路由。
· 支持路由分级管理:使用4类不同的路由,按优先顺序来说分别是:区域内路由、区域间路由、第一类外部路由、第二类外部路由。
· 支持验证:支持基于区域和接口的报文验证,以保证报文交互和路由计算的安全性。
· 组播发送:在某些类型的链路上以组播地址发送协议报文,减少对其它设备的干扰。
路由器标识是一个32位数字,使其用来独一无二的识别AS中的路由器。
OSPF协议需要路由器的Router-ID,作为本路由器在自治系统中的唯一标识。一般在协议任务启动后,会自动选出一个Router-ID。通常路由器先挑选IP地址最大的环回地址。若无环回地址,则在接口状态为up的物理接口中,选取最大的IP地址作为Router-ID。也可以指定一个Router-ID,并且指定的Router-ID优先级最高。
随着链路状态数据库的增大,计算SPF所需的时间也增加了,将网络分成较小的区域,并要求路由器与同一区域的路由器交换链路状态。这样传播的信息减少了。
· 降低CPU的负担;
· 减小LSDB的内存开销;
· LSA相关计算和Flooding负担均降低。
· 为了控制开销和便于管理OSPF支持将整个自治系统划分成域来管理标准划分为骨干域和边缘域。
· 原则上要求每个非骨干区域要和骨干域直接相连,骨干域要求连通性强带宽高。
· 当一台路由器配置两个以上域时,必须有一个是骨干域。
骨干区域:所有的域间通信量都必须通过骨干区域,非骨干区域之间不能直接交换数据包,区域0(或0.0.0.0)是骨干区域保留的区域ID号,所有的域间通信量都必须通过骨干区域,非骨干区域之间不能直接交换数据包。
(1) 标准区域:一个标准区域可以接收链路更新信息和路由总结。
(2) 末梢区域(stub area):只与一个区域相连的非骨干区域,不接受外部自治系统的LSA(类型5),区域内路由器会把去往外部网络的路由基于缺省路由(目的地址是0.0.0.0)发送出去。
(3) 完全末梢区域(totally stub area):不接受类型3、类型4 和类型5的LSA ,区域内路由器会把去往其它区域的路由基于缺省路由(目的地址是0.0.0.0)发送出去。
(4) 非完全末梢区域(Not-so-stubby-area,NSSA):区域是Stub区域的变形,与Stub区域的区别在于NSSA区域允许引入自治系统外部路由,由ASBR发布Type7 LSA通告给本区域。当Type7 LSA到达NSSA的ABR时,由ABR将Type7 LSA转换成Type5 LSA,传播到其它区域。
OSPF路由器根据在AS中的不同位置,可以分为以下四类:
· 区域内路由器(Internal Router)
该类路由器的所有接口都属于同一个OSPF区域。
· 区域边界路由器ABR
该类路由器可以同时属于两个以上的区域,但其中一个必须是骨干区域。ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。
· 骨干路由器(Backbone Router)
该类路由器至少有一个接口属于骨干区域。因此,所有的ABR和位于Area0的内部路由器都是骨干路由器。
· 自治系统边界路由器ASBR
与其它AS交换路由信息的路由器称为ASBR。ASBR并不一定位于AS的边界,它有可能是区域内路由器,也有可能是ABR。只要一台OSPF路由器引入了外部路由的信息,它就成为ASBR。
OSPF使用4类不同的路由,按优先级由高到低排列如下:
· 区域内路由
· 区域间路由
· 第一类外部路由
· 第二类外部路由
区域内和区域间路由描述自治系统内部的网络结构;外部路由则描述了如何选择到自治系统以为的路由。第一类外部路由是指接收的是IGP路由(例如RIP、STATIC),由于这类路由的可信程度较高,所以,计算出的外部路由的花费与自治系统内部的路由花费的数量级相同,并且与OSPF自身路由的花费具有可比性,即到第一类外部路由的花费值=本路由器到相应的ASBR的花费值+ASBR到该路由目的地址的花费值。第二类外部路由器是指接收的是EGP路由,由于这类路由的可信度比较低,所以OSPF协议认为,从ASBR到自治系统之外的花费远远大于在自治系统之内到达ASBR的花费,计算路由花费时主要考虑前者。即第二类外部路由的花费值=ASBR到该路由目的地址的花费值。如果该值相等,再考虑本路由器到相应的ASBR的花费值。
缺省情况下,按不同介质可划分成下列三种网络:广播网络(以太网,令牌环网、FDDI),非广播多路访问网络(帧中继、X.25),点到点网络(HDLC、PPP)。对以上任一类网络都可以进行OSPF配置。可以不考虑缺省的介质类型,选择配置OSPF网络类型。利用这一点,可将非广播多路访问网络配置为广播网络,如X.25和帧中继允许OSPF在其上以广播型运行,这就不用再去配置邻居。可将广播网络配置为非广播多路访问网络,例如当网络中有不支持组播传送地址的路由器时。对于不具有广播和组播能力的网络,必须配置对端邻居来指定发送hello报文,并可以指定邻居的优先级和轮询时间间隔。
点到多点时具有一个或者多个邻居的编号的点到点接口,它建立多主机路由。与非广播多路访问和点到点网络相比,点到多点网络具有以下优点:一到多接口更易于配置,因为它不需要配置邻居命令,只需要一个IP子网,所以不必分配路由选择。不需要全网络拓扑结构,开销较小。
设备只支持广播型网络和点对点型网络。
OSPF协议报文直接封装为IP报文,协议号为89。
OSPF有五种类型的协议报文:
· Hello报文:发现及维持邻居关系,选举DR,BDR;
· DD(Database Description,数据库描述)报文:相邻路由器直间互发DD报文,报告对方自己所拥有的路由信息内容包括LSDB中每一条LSA摘要(摘要是指LSA的HEAD,通过改HEAD可以唯一标识一条LSA),这样做的目的是为了减少路由器之间传递信息的量,因为LSA的HEAD只占一条LSA的整个数据量的一小部分。根据HEAD,对端路由器就可以判断出是否已经有了这条LSA。
· LSR(Link State Request,链路状态请求)报文:向对方请求所需的LSA。两台路由器互相交换DD报文之后,得知对端的路由器有哪些LSA是本地的LSDB所缺少的,这时需要发送LSR报文向对方请求所需的LSA。
· LSU(Link State Update,链路状态更新)报文:向对方发送其所需要的LSA。
· LSAck(Link State Acknowledgment,链路状态确认)报文:用来对收到的LSA进行确认。
与OSPF相关的协议规范有:
· RFC 1765:OSPF Database Overflow
· RFC 2328:OSPF Version 2
· RFC 3101:OSPF Not-So-Stubby Area (NSSA) Option
· RFC 3137:OSPF Stub Router Advertisement
· RFC 3630:Traffic Engineering Extensions to OSPF Version 2
· RFC 4811:OSPF Out-of-Band LSDB Resynchronization
· RFC 4812:OSPF Restart Signaling
· RFC 4813:OSPF Link-Local Signaling
表1-1 RIP配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置OSPF基本功能 |
必选 |
||
配置OSPF区域 |
配置stub区域 |
可选 |
|
配置NSSA区域 |
可选 |
||
配置OSPF的网络类型 |
配置OSPF接口类型为广播 |
可选 |
|
配置OSPF接口类型为点到点 |
|||
配置OSPF的路由控制信息 |
配置OSPF路由聚合 |
可选 |
|
配置OSPF路由优先级 |
|||
配置OSPF路由重发布 |
|||
调整和优化OSPF网络 |
配置OSPF报文定时器 |
可选 |
|
配置SPF计算时间间隔 |
|||
配置OSPF报文认证 |
通过本节可以完成OSPF的基本配置,并通过OSPF通信。
在配置OSPF之前,应完成如下工作:
· 配置链路层协议
· 配置接口的IP地址,并使相邻节点的网络可达。
表1-2 开启OSPF路由协议
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
进入ospf视图 |
router ospf |
必选 |
配置router-id |
router-id ip-address |
可选 缺省情况下的选举,参见“1.2.1 OSPF的router-id” |
配置运行OSPF的接口 |
network ip-address/mask-len area {ip-address|area-id } |
必选 |
开启OSPF路由协议后,可能由于组网需求进一步将区域配置成stub区域或nssa区域。当在实际组网过程中,有可能出现非骨干区域无法直接与骨干区域相连的情况,可以配置OSPF虚链路给予解决。
在配置OSPF的区域之前,需要开启OSPF协议。
OSPF Stub是一个末梢区域,当一个OSPF区域处于整个自治系统边界时,而又不含其它路由协议,这时就可以配置OSPF Stub区域。当配置OSPF Stub区域后,Stub区域中的路由器会增加一条至ABR的默认路由条目,当在ABR上配置了完全末梢区域后,末梢区域的其它路由器的路由条目除了直连的路由条目外,只有一条到达ABR的路由条目默认路由,不会学习其它区域的路由条目,到其它区域的数据包通过ABR转发。这样减少了末梢区域其它路由器的路由条目,提高路由器的性能。
配置stub网络使用关键字stub,如果在配置stub时加上no-summary参数,则可以将该区域配置成totally stub区域。
表1-3 配置stub区域
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入ospf视图 |
router ospf |
必选 |
配置区域为stub区域 |
area {ip-address |area-id} stub [ no-summary ] |
必选 |
配置ABR发送到stub区域缺省路由的开销 |
area {ip-address|area-id}default-cost cost |
可选 缺省情况下,开销为1 |
· 骨干区域不能设置为stub区域。
· default-cost只能在stub或者nssa区域内的边界路由器才会生效。
NSSA区域允许一些外部路由通告到OSPF自治系统内部,NSSA同时也保留自治系统区域部分的stub区域的特征。配置nssa命令时指定no-summary参数可以将该区域配置为完全NSSA区域,该区域的ABR不会将区域间的路由信息传递到本区域。
表1-4 配置NSSA区域
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入ospf视图 |
router ospf |
必选 |
配置区域为nssa区域 |
area {ip-address |area-id}nssa{ no-summary | translate-always | translate-never } |
必选 |
配置ABR发送到nssa区域缺省路由的开销 |
area {ip-address |area-id}default-cost cost |
可选 缺省情况下,开销为1 |
· 骨干区域不能设置为nssa区域。
· default-cost只能在nssa或者stub区域内的边界路由器才会生效。
设备只支持广播型和点对点型。
在配置OSPF网络类型之前,需要完成以下配置:
· 开启OSPF功能
表1-5 配置OSPF接口网络类型为广播
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interfaceinterface |
必选 |
配置OSPF接口网络类型为广播 |
ip ospf network broadcast |
必选 |
配置接口的优先级 |
ip ospf priority priority |
可选 缺省情况下,优先级为1,优先级越高,越有可能成为DR |
表1-6 配置OSPF接口网络类型为点到点
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interfaceinterface |
必选 |
配置OSPF接口网络类型为广播 |
ip ospf network point-to-point |
必选 |
通过本节,可以配置OSPF的路由信息的发布和接收,并重发布其它协议路由。
在配置OSPF网络类型之前,需要完成以下配置:
· 开启OSPF功能
区域间的路由聚合是为了减少区域间路由数量,它使ABR通告一条聚合的域间路由到其它区域,而被聚合的路由不被宣告出去。在OSPF中,ABR向其它区域发送路由信息时,以网段为单位生成Type 3 LSA。如果该区域中存在一些连续的网段,则可以配置ABR将这些连续的网段聚合成一个网段。这样ABR只发送一条聚合后的LSA,所有落入本命令指定的聚合网段范围的LSA将不再会被单独发送出去,这样可减少其它区域中链路状态数据库(LSDB)的规模。如果该网段范围用关键字not-advertise限定,则到这一个网段路由的聚合路由将不会被广播出去。这个网段是由IP地址/掩码的方式说明的。接收聚合网段和对网段的限定,可减少区域间路由信息的交流量。
表1-7 配置OSPF路由聚合
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入ospf视图 |
router ospf |
必选 |
配置OSPF路由聚合 |
area {ip-address |area-id} range ip-address/mask-len[ cost cost | {advertise[ costcost] } |not-advertise | substitutep-address/mask-len] |
必选 |
一个协议的优先级指的是一个路由信息来源的可信度等级。优先级是一个1到255的整数,通常情况下,值越高可信度越低。值为255就意味着路由信息源根本不可信,应该被忽略。
表1-8 配置OSPF路由的优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入ospf视图 |
router ospf |
必选 |
配置OSPF路由优先级 |
distance {distance | {intra-areadistance| inter-area distance| external distance}} |
必选 |
为了能够使得多个路由协议同时运作,可以将一种路由协议的信息引入到另一种路由协议中,这个过程可以称为路由重分布。运行OSPF的自治系统可以引入自治系统外部的其它路由协议的路由或者静态路由以达到路由信息共享。当路由器运行OSPF且还运行其它路由协议,若要引入外部路由信息,需要配置路由重分布。
表1-9 配置OSPF路由重发布
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
— |
进入ospf视图 |
router ospf |
必选 |
配置OSPF路由重发布 |
redistribute {connected|static|rip } [metric metric[ metric-type { 1 | 2 } ] ] |
必选 |
表1-10 配置OSPF路由重发布默认路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
— |
进入ospf视图 |
router ospf |
必选 |
配置OSPF重发布默认路由 |
default-information originate [always] |
必选 |
如果路由表中没有默认路由,则必须使用always参数才能产生默认路由。
用户可以从以下几个方面来调整和优化OSPF网络
· 报文定时器
· 调整SPF计算间隔时间
· OSPF报文认证
在配置OSPF网络类型之前,需要完成以下配置:
· 开启OSPF功能
用户可以在接口上配置报文定时器,具体有如下定时器:
· Hello定时器:接口向邻居发送Hello报文的时间间隔,OSPF邻居之间的Hello定时器的值要保持一致。
· Dead 时间:接口在该时间段内,没有收到hello报文,则宣告邻居无效。
· 重传LSA时间间隔:路由器向它的邻居通告一条LSA后,需要对方进行确认。若在重传间隔时间内没有收到对方的确认报文,就会向邻居重传这条LSA。
· 延迟发送间隔:生成的报文不会立即发送,而是延迟一个时间间隔,这样会节省带宽。
表1-11 配置OSPF报文定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
— |
进入接口视图 |
interfaceinterface |
必选 |
配置Hello定时器 |
ip ospf hello-intervalinterval |
可选 缺省情况下,广播网络和点到点网络时间间隔为10s |
配置Dead时间 |
ip ospf dead-intervalinterval |
可选 缺省情况下,广播网络和点到点网络时间间隔为40s |
配置重传LSA时间间隔 |
ip ospf retransmit-interval retransmit-interval |
可选 缺省情况下,为5s |
配置延迟重发时间间隔 |
ip ospf transmit-delay interval |
可选 缺省情况下,为1s |
· 如修改了网络类型后,Hello定时器与邻居失效时间都将恢复缺省值。
· 在同一接口上邻居失效时间应至少为Hello时间间隔的4倍。
· 相邻路由器重传LSA时间间隔的值不要设置得太小,否则将会引起不必要的重传。通常应该大于一个报文在两台路由器之间传送一个来回的时间。
配置OSPF收拓扑结构改变之后和启动最短路径优先(OSPF)之间的延迟时间和配置连续两次SPF计算之间的时间。
表1-12 配置OSPF路由重发布默认路由
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
— |
进入ospf视图 |
router ospf |
必选 |
配置SPF计算时间间隔 |
timers throttle spf delay hold max-hold |
必选 缺省情况下,延迟时间为5s,spf间隔时间为10s |
· deay是指收到报文后延迟执行spf,取值范围是0-600000,单位是msec。
· hold是指两次spf之间的间隔时间,取值范围是0-600000,单位是msec。
· max-hold是指最大间隔时间,取值范围是0-60000,单位是msec。
OSPF支持接口间的邻居在建立邻居关系的时候进行认证,防止非法设备接入网络。OSPF支持两种认证模式:明文认证和MD5认证。
表1-13 配置OSPF报文明文认证
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
— |
进入接口视图 |
interfaceinterface |
必选 |
配置OSPF认证方式为明文 |
ip ospf authentication |
必选 |
配置OSPF明文认证的password值 |
ip ospf authentication-keypassword |
必选 |
表1-14 配置OSPF报文明文认证
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
— |
进入接口视图 |
interfaceinterface |
必选 |
配置OSPF认证方式为密文 |
ip ospf authentication message-digest |
必选 |
配置OSPF密文认证的password值 |
ip ospf message-digest-keykey md5 password |
必选 |
缺省况下,OSPF报文是不认证的。
完成上述配置后,可以在任意视图下执行display命令查看OSPF的运行情况,从而验证配置的效果。
表1-15 ospf显示和维护
操作 |
命令 |
说明 |
显示OSPF配置信息 |
display running-config ospf |
- |
显示OSPF的统计信息 |
display ip ospf |
- |
显示OSPF的LSDB信息 |
display ip ospf database [ max-age | self-originate | { asbr-summary | external | network | router | summary |nssa-external } [ self-originate |ip-address | adv-router ip-address] ] |
- |
显示OSPF邻居的信息 |
display ip ospf neighbor [ all | detail |{ip-address | interface} [detail]] |
- |
显示OSPF接口的信息 |
display ip ospf interface [interface] |
- |
显示OSPF路由表的信息 |
display ip ospf route |
- |
显示OSPF边界路由器表 |
display ip ospf border-routers |
- |
按照图1-1所示,配置IP地址,要求设备A和设备B上启用OSPF,并在设备B上发布默认路由,设备A设备能学到192.168.1.0/24网段的路由,设备B能学到192.168.31.0/24网段的路由。
图1-1 配置OSPF通信组网图
#配置设备A。
host # system-view
host (config)# router ospf
host (router-ospf)# network 192.168.31.0/24 area 0
host (router-ospf)# network 100.0.1.0/24 area 0
host (router-ospf)#end
host #
#配置设备B。
host # system-view
host (config)# router ospf
host (router-ospf)# network 192.168.31.0/24 area 0
host (router-ospf)# network 100.0.1.0/24 area 0
host (router-ospf)# default-information originate always
host (router-ospf)#end
host #
#查看设备A的OSPF邻居。
host# display ip ospf neighbor detail
Neighbor 192.168.1.144, interface address 100.0.1.2
In the area 0.0.0.0 via interface ge1
Neighbor priority is 1, State is Full, 6 state changes
Most recent state change statistics:
Progressive change 10m17s ago
DR is 100.0.1.2, BDR is 100.0.1.1
Options 2 *|-|-|-|-|-|E|*
Dead timer due in 32s
Database Summary List 0
Link State Request List 0
Link State Retransmission List 0
Thread Inactivity Timer on
Thread Database Description Retransmision off
Thread Link State Request Retransmission on
Thread Link State Update Retransmission on
#查看设备A的LSDB邻居。
host# display ip ospf database
OSPF Router with ID (192.168.31.167)
Router Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum Link count
192.168.1.144 192.168.1.144 114 0x80000006 0x0dfe 2
192.168.31.167 192.168.31.167 617 0x80000005 0x6e19 2
Net Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum
100.0.1.2 192.168.1.144 648 0x80000001 0x27a5
AS External Link States
Link ID ADV Router Age Seq# CkSum Route
0.0.0.0 192.168.1.144 114 0x80000001 0xc1a9 E2 0.0.0.0/0 [0x0]
#查看设备A的ospf路由
host# display ip ospf route
============ OSPF network routing table ============
N 100.0.1.0/24 [1] area: 0.0.0.0
directly attached to ge1
N 192.168.1.0/24 [2] area: 0.0.0.0
via 100.0.1.2, ge1
N 192.168.31.0/24 [1] area: 0.0.0.0
directly attached to ge0
============ OSPF router routing table =============
R 192.168.1.144 [1] area: 0.0.0.0, ASBR
via 100.0.1.2, ge1
============ OSPF external routing table ===========
N E2 0.0.0.0/0 [2/1] tag: 0
via 100.0.1.2, ge1
两台设备不能建立邻接关系。
(1) 区域ID不匹配。
(2) 认证类型不匹配。
(3) 密钥不匹配。
(4) 网段(网络掩码匹配)。
(5) Hello-interval不匹配。
(6) Dead-interval不匹配。
(7) 两台设备间是否需要建立邻接关系。
(8) 接口的MTU不匹配。
(1) 检查接口上OSPF参数的配置
(2) 是否应该和邻居路由器建立一个邻接关系,满足下列条件中的一个或者多个,那么将建立邻接关系:
· 网络类型是点对点的。
· 网络类型是点到多点的。
· 网络类型是虚链路。
· 本地路由器是邻接路由器所在网络的DR。
· 本地路由器是邻接路由器所在网络的BDR。
· 邻居路由器是DR。
· 邻居路由器是BDR。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!