OSPF路由协议综述及其配置.docx

上传人:b****7 文档编号:15927878 上传时间:2023-07-09 格式:DOCX 页数:52 大小:1.45MB
下载 相关 举报
OSPF路由协议综述及其配置.docx_第1页
第1页 / 共52页
OSPF路由协议综述及其配置.docx_第2页
第2页 / 共52页
OSPF路由协议综述及其配置.docx_第3页
第3页 / 共52页
OSPF路由协议综述及其配置.docx_第4页
第4页 / 共52页
OSPF路由协议综述及其配置.docx_第5页
第5页 / 共52页
OSPF路由协议综述及其配置.docx_第6页
第6页 / 共52页
OSPF路由协议综述及其配置.docx_第7页
第7页 / 共52页
OSPF路由协议综述及其配置.docx_第8页
第8页 / 共52页
OSPF路由协议综述及其配置.docx_第9页
第9页 / 共52页
OSPF路由协议综述及其配置.docx_第10页
第10页 / 共52页
OSPF路由协议综述及其配置.docx_第11页
第11页 / 共52页
OSPF路由协议综述及其配置.docx_第12页
第12页 / 共52页
OSPF路由协议综述及其配置.docx_第13页
第13页 / 共52页
OSPF路由协议综述及其配置.docx_第14页
第14页 / 共52页
OSPF路由协议综述及其配置.docx_第15页
第15页 / 共52页
OSPF路由协议综述及其配置.docx_第16页
第16页 / 共52页
OSPF路由协议综述及其配置.docx_第17页
第17页 / 共52页
OSPF路由协议综述及其配置.docx_第18页
第18页 / 共52页
OSPF路由协议综述及其配置.docx_第19页
第19页 / 共52页
OSPF路由协议综述及其配置.docx_第20页
第20页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

OSPF路由协议综述及其配置.docx

《OSPF路由协议综述及其配置.docx》由会员分享,可在线阅读,更多相关《OSPF路由协议综述及其配置.docx(52页珍藏版)》请在冰点文库上搜索。

OSPF路由协议综述及其配置.docx

OSPF路由协议综述及其配置

OSPF路由协议综述及其配置

(1)

Link-StateRoutingProtocols

链路状态路由协议(link-stateroutingprotocol)的一些特征:

1.对网络发生的变化能够快速响应

2.当网络发生变化的时候发送触发式更新(triggeredupdate)

3.发送周期性更新(链路状态刷新),间隔时间为30分钟

链路状态路由协议只在网络拓扑发生变化以后产生路由更新.当链路状态发生变化以后,检测到变化的设备创建LSA(linkstateadvertisement),通过使用组播地址传送给所有的邻居设备,然后每个设备拷贝一份LSA,更新它自己的链路状态数据库(linkstatedatabase,LSDB),接着再转发LSA给其他的邻居设备.这种LSA的洪泛(flooding)保证了所有的路由设备在更新自己的路由表之前更新它自己的LSDB

LSDB通过使用Dijkstra算法(shortestpathfirst,SPF)来计算到达目标网络的最佳路径,建立一条SPF树(tree),然后最佳路径从SPF树里选出来,被放进路由表里OSPF和IS-IS协议被归类到链路状态路由协议中.链路状态路由协议在一个特定的区域(area)里从邻居处收集网络信息,一旦路由信息都被收集齐以后,每个路由器开始通过使用Dijkstra算法(SPF)独立计算到达目标网络的最佳路径

运行了链路状态路由协议的路由器跟踪以下信息:

1.它们各自的邻居

2.在同一个区域中的所有路由器

3.到达目标网络的最佳路径

Link-StateDataStructures

为了能够做出更好的路由决策,OSPF路由器必须维持的有以下内容:

1.neighbortable:

也叫adjacencydatabase.存储了邻居路由器的信息.如果一个OSPF路由器和它的邻居路由器失去联系,在几秒中的时间内,它会标记所有到达那条路由均为无效并且重新计算到达目标网络的路径

2.topologytable:

一般叫做LSDB.OSPF路由器通过LSA学习到其他的路由器和网络状况,LSA存储在LSDB中

3.routingtable:

也就是我们所说的路由表了,也叫forwardingdatabase,包含了到达目标网络的最佳路径的信息

链路状态路由协议和距离向量路由协议的一个区别就是:

距离向量路由协议是routingbyrumors,也就是说,距离向量路由协议依靠邻居发给它的信息来做路由决策,而且路由器不需要保持完整的网络信息;而运行了链路状态路由协议的路由器保持的有完整的网络信息的快照,而且每个路由器自己做出路由决策

DefininganOSPFArea

OSPF的网络设计要求是双层层次化(2-layerhierarchy),包括如下2层:

1.transitarea(backbone或area0)

2.regularareas(nonbackboneareas)

transitarea负责的主要功能是IP包快速和有效的传输.transitarea互联OSPF其他区域类型.一般的,这个区域里不会出现端用户(enduser)

regularareas负责的主要功能就是连接用户和资源.这种区域一般是根据功能和地理位置来划分.一般的,一个regulararea不允许其他区域的流量通过它到达另外一个区域,必须穿越transitarea比如area0.regularareas还可以有很多子类型,比如stubarea,locallyarea和not-so-stubbyarea

在链路状态路由协议中,所有的路由器都保持的有LSDB,OSPF路由器越多,LSDB就越大.这可能对了解完整的网络信息有帮助,但是随着网络的增长,可扩展性的问题就会越来越大.采用的折中方案就是引入区域的概念.在某一个区域里的路由器只保持的有该区域中所有路由器或链路的详细信息和其他区域的一般信息.当某个路由器或某条链路出故障以后,信息只会在那个区域以内在邻居之间传递.那个区域以外的路由器不会收到该信息.OSPF要求层次化的网络设计,意味着所有的区域要和area0直接相连.如下图:

注意area1和area2或3之间的连接是不允许的,它们都必须通过backbonearea0进行连接.Cisco建议每个区域中路由器的数量为50到100个构建area0的路由器称为骨干路由器(backbonerouter,BR),如上图,A和B就是BR;区域边界路由器(areaborderrouter,ABR)连接area0和nonbackboneareas.如图,C,D和E就是ABR.ABR通常具有以下特征:

1.分隔LSA洪泛的区域

2.是区域地址汇总的主要因素

3.一般做为默认路由的源头

4.为每个区域保持LSDB

理想的设计是使每个ABR只连接2个区域,backbone和其他区域,3个区域为上限

DefiningOSPFAdjacencies

运行OSPF的路由器通过交换hello包和别的路由器建立邻接(adjacency)关系,过程如下:

1.路由器和别的路由器交换hello包,目标地址采用多播地址

2.hello包交换完毕,邻接关系形成

3.接下来通过交换LSA和对接收方的确认进行同步LSDB.对于OSPF路由器而言,进入完全邻接状态

4.如果需要的话,路由器转发新的LSA给其他的邻居,来保证整个区域内LSDB的完全同步

对于点到点的WAN串行连接,两个OSPF路由器通常使用HDLC或PPP来形成完全邻接状态

对于LAN连接,选举一个路由器做为designatedrouter(DR)再选举一个做为backupdesignatedrouter(BDR),所有其他的和DR以及BDR相连的路由器形成完全邻接状态而且只传输LSA给DR和BDR.DR从邻居处转发更新到另外一个邻居那里.DR的主要功能就是在一个LAN内的所有路由器拥有相同的数据库,而且把完整的数据库信息发送给新加入的路由器.路由器之间还会和LAN内的其他路由器(非DR/BDR,即DROTHERs)维持一种部分邻居关系(two-wayadjacency)

OSPF的邻接一旦形成以后,会交换LSA来同步LSDB,LSA将进行可靠的洪泛

OSPFCalculation

链路状态陆游协议使用Dijkstra算法来查找到达目标网络中的最佳路径.所有的路由器拥有相同的LSDB后,把自己放进SPFtree中的root里,然后根据每条链路的耗费(cost),选出耗费最低的做为最佳路径,最后把最佳路径放进forwardingdatabase(路由表)里

下图就是一个SPF计算的例子:

1.LSA遵循splithorizon原则,H对E宣告它的存在,E把H的宣告和它自己的宣告再传给C和G;C和G再和之前类似,继续传播开来……

2.X有4个邻居:

A,B,C和D,假设这里都是以太网,每条网链路的耗费为10,经过计算,路由器可以算出最佳路径.上图的右半部分实线所标即为最佳路径

LSDataStructures:

LSAOptions

关于LSA的操作流程图如下:

如图可以看出当路由器收到一个LSA以后,先会查看它自己的LSDB看有没有相应的条目,如果没有就加进自己的LSDB中去,并反馈LSA确认包(LSAck),接着再继续洪泛LSA,最后运行SPF算法算出新的路由表

如果当它收到LSA的时候,自己的LSDB有该条目而且版本号一样,就忽略这个LSA;如果有相应条目,但是收到的LSA的版本号更新,就加进自己的LSDB中,发回LSAck,洪泛LSA,最后用SPF计算最佳路径;如果版本号没有自己LSDB中那条新,就反馈LSU信息给发送源

TypesofOSPFPackets

OSPF包的5种类型如下:

1.hello:

用来建立邻居关系的包

2.databasedescription(DBD):

用来检验路由器之间数据库的同步

3.linkstaterequest(LSR):

链路状态请求包

4.linkstateupdate(LSU):

特定链路之间的请求记录

5.linkstateacknowledgement(LSAck):

确认包

OSPFPacketHeaderFormat

5种OSPF包都是直接被封装在IP包里的而不使用TCP或UDP.由于没有使用可靠的TCP协议,但是OSPF包又要求可靠的传输,所以就有了LSAck包.如下图所示就是OSPF包在IP包里的形式:

 

协议号为89(EIGRP协议号为88),一些字段如下:

1.VersionNumber:

当前为OSPF版本2

2.Type:

定义OSPF包的类型

3.PacketLength:

包的长度,单位字节

4.RouterID(RID):

产生OSPF包的源路由器

5.AreaID:

定义OSPF包是从哪个area产生出来的

6.Checksum(校验和):

错误校验

7.AuthenticationType:

验证方法,可以是明文(cleartext)密码或者是MessageDigest5(MD5)加密格式

8.Data:

对于hello包来说,该字段是已知邻居的列表;对于DBD包来说,该字段包含的是LSDB的汇总信息,包括RID等等;对于LSR包来说,该字段包含的是需要的LSU类型和需要的LSU类型的RID;对于LSU包来说,包含的是完全的LSA条目,多个LSA条目可以装在一个包里;对于LSAck来说,字段为空

OSPFNeighborAdjacencyEstablishment

Hello协议用来建立和保持OSPF邻居关系,采用多播地址224.0.0.5,hello包包含的信息如下:

1.RouterID(RID):

路由器的32位长的一个唯一标识符,选举规则是,如果loopback接口不存在的话,就选物理接口中IP地址等级最高的那个;否则就选取loopback接口

2.hello/deadintervals:

定义了发送hello包频率(默认在一个多路访问网络中间隔为10秒);dead间隔是4倍于hello包间隔.邻居路由器之间的这些计时器必须设置成一样

3.neighbors:

邻居列表

4.areaID:

为了能够通信,OSPF路由器的接口必须属于同一网段中的同一区域(area),即共享子网以及子网掩码信息

5.routerpriority:

优先级,选举DR和BDR的时候使用.8位长的一串数字

6.DR/BDRIPaddress:

DR/BDR的IP地址信息

7.authenticationpassword:

如果启用了验证,邻居路由器之间必须交换相同的密码信息.此项可选

8.stubareaflag:

stubarea是通过使用默认路由代替路由更新的一种技术(有点像EIGRP中的stub功能)

EstablishingBidirectionalCommunication

看看双向通信的建立过程,如下图:

http:

//www.show-

1.刚开始A还没和别的路由器交换信息,还处于down的状态,接下来通过使用多播地址224.0.0.5开始发送hello包

2.B接收到hello包,把A加进自己的neighbortable中,并进入init状态,然后以单播的形式发送hello包对A做出应答

3.A收到以后把所有从hello包里找到的RID加进自己的neighbortable中,进入two-way状态

4.如果链路是广播型网络比如以太网,接下来选举DR和BDR,这一过程发生在交换信息之前

5.周期发送hello包保证信息交换

DiscoveringtheNetworkRoutes&AddingtheLink-StateEntries

当选举了DR和BDR,进入exstart状态,接下来就可以对链路状态信息进行发现并创建自己的LSDB,如下图:

http:

//www.show-

1.在exstart状态里,邻接关系形成,路由器和DR/BDR形成主仆关系(RID等级最高的为主,其他的为辅)

2.主仆交换DBD包(DDP),路由器进入exchange状态

DBD包含了出现在LSDB中的LSA条目头部信息,条目信息可以为一条链路(link)或者一个网络.每个LSA条目头部信息包括链路状态类型,宣告路由器的地址,链路耗费和序列号(版本号)

3.路由器收到DBD以后,将使用LSAck做出确认;还将和自己本身就有的DBD进行比较,过程如下图:

http:

//www.show-

如果DBD信息中有更新更全的链路状态条目,路由器就发送LSR给其他路由器,该状态为loading状态;收到LSR以后,路由器做出响应,以LSU作为应答,其中包含了LSR所需要的完整信息;收到LSU以后,再次做出确认,发送LSAck

4.路由器添加新的条目到LSDB中,进入full状态,接下来就可以对数据进行路由了

MaintainingRoutingInformation

当链路状态发生变化以后,路由器将洪泛LSA来对其他路由器做出通知,如下图:

http:

//www.show-

1.路由器意识到链路产生变化以后,对多播地址224.0.0.6和所有的DR/BDR发送LSU,其中LSU包含了更新了的LSA条目

2.DR对LSU做出确认,接着对多播地址224.0.0.5继续洪泛,每个收到LSU的路由器对DR做出确认(反馈LSAck),

3.如果路由器连接了其他网络,将通过转发LSU给DR(在点到点网络是转发给邻居路由器)来对其他网络进行洪泛

4.其他路由器通过LSU来更新自己的LSDB,然后使用SPF算法重新计算最佳路径

链路状态条目的最大生存周期是60分钟,60分钟只有,它将从LSDB中被移除

OSPFLink-StateSequenceNumbers

LSDB中的每个LSA记录都有个序列号,序列号是32位长,以0x80000001开头,0x7FFFFFFF结尾.OSPF路由器默认每30分钟洪泛一次LSA来保证LSDB的同步,每洪泛1次,序列号就加1.如果序列号达到最大并回到初始值的时候,已经存在的LSA的生存周期将设置为最大(1小时)并刷新LSDB(造成网络波动)

如果收到2条LSA,将比较序列号,序列号越高表示LSA版本越新

可以使用showipospfdatabase命令查看生存周期和序列号,如下:

RTC#showipospfdatabase

OSPFRouterwithID(203.250.15.67)(ProcessID10)

   RouterLinkStates(Area1)

LinkID         ADVRouter  Age Seq#      Checksum Linkcount

203.250.15.67 203.250.15.67  48  0x80000008 0xB112     2

203.250.16.130203.250.16.130 212 0x80000006 0x3F44     2

(略)

DebugIPOSPFPacket

使用debugipospfpacket命令对OSPF包进行排错和验证,如下:

Router#debugipospfpacket

 OSPF:

rcv.v:

2t:

1l:

48rid:

200.0.0.117aid:

0.0.0.0chk:

6AB2aut:

0auk:

(略)

一些输出的含义如下:

v:

OSPF版本

t:

OSPF包类型,如上是1,几种数字所代表的意义是:

1为hello,2为DBD,3为LSR,4为LSU,5为LSAck

l:

定义包长度,单位字节

rid/aid:

RID/areaID

chk:

校验和

aut:

验证类型,0代表不进行验证,1代表明文密码,2代表MD5加密

auk:

OSPF验证key

keyed:

MD5keyID

seq:

序列号

ConfiguringBasicSingle-AreaOSPF

OSPF的单域的配置命令:

在全局配置模式下输入routerospf [process-id]启动OSPF进程,接下来在路由配置模

式下输入network[address][inverse-mask]area[area-id]

process-id只是在本路由器有效,所以可以设置成和其他路由器的process-id一样的号码

address和inverse-mask为网络(或接口)地址和wildcardmask

来看一个配置实例,如下图:

http:

//www.show-

 

如图A是采用的网络地址,而B是采用的接口地址

VerifyingOSPFOperation

一些验证性的命令如下:

1.showipprotocols:

显示基于IP的路由协议信息

2.showiprouteospf:

显示OSPF已知路由条目信息

3.showipinterface:

显示RID,areaID和邻居信息

4.showipospf:

显示RID,计时器和LSA等信息

5.showipospfneighbor(detail):

显示邻居信息包括RID,优先级,邻接状态(比如exstart,full等)和deadtimer.detail为详细参数.如下

RouterB#showipospfneighbor

NeighborID  Pri  State      DeadTime    Address      Interface

10.64.1.1    1    FULL/BDR   00:

00:

31     10.64.1.1    Ethernet0

10.2.1.1     1    FULL/-     00:

00:

38     10.2.1.1     Serial0

(略)

6.showipospfneighbor[typenumber][neighbor-id](detail):

显示接口的邻居信息的命令.type为接口类型,number为接口号,neighbor-id为邻居ID

ManipulatingOSPFRouterID

关于RID的分配,如下:

1.可以选择物理接口地址等级最高的做为RID(假如没有设置回环接口的话),接口不是必须参与OSPF进程,但是它的状态必须是up.否则将接收到如下错误提示:

Router(config)#routerospf1

2wid:

%OSPF-4-NORTRID:

OSPFprocess1cannotstart.

2.假如回环接口存在的话,可以选举等级最高的设置为RID(因为回环接口永远不会down掉)

3.可以使用router-id命令进行设置

一旦RID设置了,将不会改变,即使设置为RID的接口down掉了,RID也不会改变,除非路由器重新启动,或者OSPF进程重启

如果你想设置回环接口为RID,如下:

1.Router(config)#interfaceloopback[number]

创建回环接口

2.Router(config-if)#ipaddress[address][mask]

分配IP地址(分配的地址等级高于物理接口的IP地址).mask参数一般为255.255.255.255

设置下次OSPF启动以后所采用的RID,如下:

1.Router(config)#routerospf[process-id]

2.Router(config-router)#router-id[ip-address]

创建新的RID.注意如果本次设置的新RID只会在下次OSPF进程中启用.可以重启路由器或者使用clearipospfprocess命令重启OSPF进程(这将暂时性的造成网络不稳定)

要查看RID的信息可以使用showipospf命令

AdjacencyBehaviorforaPoint-to-PointLink&BroadcastNetwork

在点到点链路中一般采用PPP或者HDLC的封装格式,OSPF自动检测接口类型,并且不需要进行DR/BDR的选举.邻居通过对多播地址224.0.0.5进行多播hello包来动态发现邻居.默认hello包的发送间隔是10秒,dead间隔是40秒在多路访问(multiaccess)广播型网络中(比如以太网和TokenRing),需要进行DR/BDR的选举,所有的非DR/BDR(即DROTHER)路由器和DR/BDR形成完全邻接关系,即DROTHER通过DR/BDR交换信息,如下图:

http:

//www.show-

到达DR的包使用多播地址224.0.0.6;经DR转发给DROTHRT的包使用多播地址224.0.0.5

ElectingtheDR/BDR

当选举DR/BDR的时候要比较hello包中的优先级(priority),优先级最高的为DR,次高的为BDR.默认优先级都为1.在优先级相同的情况下就比较RID,RID等级最高的为DR,次高的为BDR.当你把优先级设置为0以后,OSPF路由器就不能成为DR/BDR,只能成为DROTHER

当网络中新加入一个优先级更高的的路由器,不会影响现有的DR/BDR,除非DR出故障,BDR随即升级为DR,并重新选举BDR;如果是BDR出故障了就重新选举BDR

BDR对DR是否出故障的判定是根据使用waittimer,如果BDR在waittimer超时前确认DR仍然在转发LSA的话,它就认为DR出故障

设置优先级的命令如下:

Router(config-if)#ipospfpriority[number]

number的范围是0到255.注意仅当现有DR状态down掉以后,新设置的接口优先级才会生效

AdjacencyBehaviorforanNBMANetwork

NBMA网络比如帧中继,ATM和X.25,没有广播的能力.但是经验通过在每条PVC上复制hell包为广播和多播来实现广播和多播的能力(将占用额外的带宽) 

默认在NBMA网络中,hello包的发送时间间隔和dead时间间隔分别是30秒和120秒

OSPF认为NBMA网络的运做类似其他的BMA比如以太网

 

N

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2