ospf工作过程.docx

上传人:b****3 文档编号:4737204 上传时间:2023-05-07 格式:DOCX 页数:26 大小:236.24KB
下载 相关 举报
ospf工作过程.docx_第1页
第1页 / 共26页
ospf工作过程.docx_第2页
第2页 / 共26页
ospf工作过程.docx_第3页
第3页 / 共26页
ospf工作过程.docx_第4页
第4页 / 共26页
ospf工作过程.docx_第5页
第5页 / 共26页
ospf工作过程.docx_第6页
第6页 / 共26页
ospf工作过程.docx_第7页
第7页 / 共26页
ospf工作过程.docx_第8页
第8页 / 共26页
ospf工作过程.docx_第9页
第9页 / 共26页
ospf工作过程.docx_第10页
第10页 / 共26页
ospf工作过程.docx_第11页
第11页 / 共26页
ospf工作过程.docx_第12页
第12页 / 共26页
ospf工作过程.docx_第13页
第13页 / 共26页
ospf工作过程.docx_第14页
第14页 / 共26页
ospf工作过程.docx_第15页
第15页 / 共26页
ospf工作过程.docx_第16页
第16页 / 共26页
ospf工作过程.docx_第17页
第17页 / 共26页
ospf工作过程.docx_第18页
第18页 / 共26页
ospf工作过程.docx_第19页
第19页 / 共26页
ospf工作过程.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

ospf工作过程.docx

《ospf工作过程.docx》由会员分享,可在线阅读,更多相关《ospf工作过程.docx(26页珍藏版)》请在冰点文库上搜索。

ospf工作过程.docx

ospf工作过程

OSPF-工作过程

2011-08-1909:

41:

06我来说两句

收藏

我要投稿

1、状态机的变化过程:

(1)OSPF路由器接口up,发送Hello包,(NBMA模式时将进入Attempt状态)。

(2)OSPF路由器接口收到Hello包,检查Hello中携带的参数,如果匹配,进入Init状态;并将该Hello包的发送者的RouterID,添加到Hello包(自己将要从该接口发送出去的Hello包)的邻居列表中。

(3)OSPF路由器接口收到邻居列表中含有自己RouterID的Hello包,进入Two-way状态,形成OSPF邻居关系,并把该路由器的RouterID添加到自己的OSPF邻居表中。

(4)在进入Two-way状态后,广播、非广播网络类型的链路,在DR选举等待时间内进行DR选举。

点对点没有这个过程。

(5)在DR选举完成或跳过DR选举后,建立OSPF邻接关系,进入exstart(准启动)状态;并通过交换DBD交换主从路由器,由主路由器定义DBD序列号,RouterID大的为主路由器。

目的是为了解决DBD自身的可靠性。

(6)主从路由器选举完成后,进入Exchange(交换)状态,通过交换携带lsa头部信息的DBD包描述各自的LSDB。

(7)进入Loading状态,对链路状态数据库和收到的DBD的LSA头部进行比较,发现自己数据库中没有的LSA就发送LSR,向邻居请求该LSA;邻居收到LSR后,回应LSU;收到邻居发来的LSU,存储这些LSA到自己的链路状态数据库,并发送LSAck确认。

(8)LSA交换完成后,进入FULL状态,同一个区域内所有OSPF路由器都拥有相同链路状态数据库。

(9)定期发送Hello包,维护邻居关系。

2、协商过程:

本文出自“Esc结束”博客

OSPF协议之详细图解

2012-10-1010:

31:

46我来说两句作者:

xuzhiming302

收藏

我要投稿

OSPF是一种基于SPF算法的链路状态路由协议。

下面老马就将本协议的详细工作过程做一总结,希望对大家有所帮助……

上图是在一个OSPF区域里面添入一台新的路由器的时候,OSPF协议的工作过程,如果你能非常详细的叙述出这张图的话,基本上OSPF协议的工作过程你就掌握了。

下面老马的主要工作就是分析这张图。

首先大家要清楚,一台运行了OSPF协议的路由器,最终都会存储三张表:

邻居表、拓扑表、路由表。

老马下面以这三张表的产生过程为线索,来分析在这个过程中,路由器发生了那些变化,从而说明OSPF协议的工作过程。

(一)邻居表的建立

一台新加入OSPF区域的路由器首先要跟邻居路由器建立邻接关系,过程如下:

图1

图2

图3

通过上面3步,新加入的路由器和其邻居路由器已经建立了邻居关系。

(二)拓扑表的建立

在建立拓扑表的时候,新加入的路由器要经历预启动状态、交换状态、加载状态、完全邻接状态。

下面老马就将此过程,以图的形式展示给大家:

图1

图2

图3

经过以上四步,此OSPF区域的所有路由器的数据拓扑图都达到了同步。

(三)然后每个路由器按照产生的全区域数据拓扑图,在运行SPF算法,产生到达目标网络的路由条目。

经过以上三大步,OSPF协议的运行过程基本结束。

注意:

在上面的过程当中有几个很重要的问题需要注意

1》此协议的管理距离是110、OSPF路由进程ID的范围必须在1-65535之间,而且只具有本地含义,不同路由器的路由进程ID可以不同、区域ID在0-4294967295,当区域值取0时本区域称为主干区域。

2》确定routerID遵循如下顺序:

用routerID命令指定的路由器ID的优先级最高

如果没有指定,那么选IP地址最大的环回接口的IP地址为routeID

如果没有换回接口,就选择UP端口中IP值最大的为routerID

但还是建议使用命令指定,这样可控性比较好。

3》DR选举的原则

首要因素是时间,最先启动的路由器被选举成为DR

如果同时启动,或者重新选举,则看接口优先级(0-255),优先级最高的被选举成DR,在默认情况下,多路访问网络的接口优先级为1,点到点网络的接口优先级为0,修改接口优先级的命令是“ipospfpriority”,如果接口的优先级被设置为0,那么该接口不参与DR选举。

如果前两者相同,最后看路由器ID,路由器ID最高的被选举成DR。

DR选举时非抢占的,除非人为地重新选举。

重新选举DR的方法有两种,一是路由器重新启动;二是执行“clearipospfprocess"命令

«[CCNA图文笔记十七]EIGRP协议详解[CCNA图文笔记十九]交换机基础»[CCNA图文笔记十八]OSPF协议详解

发表于2012年11月4日由晴刃

这篇文章主要介绍链路状态路由协议OSPF的特征、术语、包类型、邻居关系的建立、RID的选择、DR和BDR的选举、度量值的计算、默认路由、验证等。

___________________________________________

文章目录

[*1*].链路状态路由协议概述

▪工作过程

▪优缺点

[*2*].OSPF概述和基本配置

▪特性

▪术语

▪包格式

▪包类型

▪邻居关系的建立过程

▪基本配置实例

▪RouterID选举规则

▪DR和BDR选举规则

▪度量值计算方法

[*3*].OSPF高级配置

▪验证实例

▪默认路由实例

___________________________________________

[*1*].链路状态路由协议概述

链路状态路由协议使用Dijkstra算法,也称SPF(ShortestPathFirst,最短路径优先)算法。

常见的链路状态路由协议有:

OSPFv2、OSPFv3和IS-IS。

这篇文章主要针对OSPFv2,OSPFv3是面向IPv6的且不兼容IPv4。

*链路状态路由协议工作过程

1,每台路由器学习激活的直接相连的网络。

2,每台路由器和直接相连的路由器互交,发送Hello报文,建立邻居关系。

3,每台路由器构建包含直接相连的链路状态的LSA(Link-StateAdvertisement,链路状态通告)。

链路状态通告(LSA)中记录了所有相关的路由器,包括邻路由器的标识、链路类型、带宽等。

4,每台路由器泛洪链路状态通告(LSA)给所有的邻路由器,并且自己也在本地储存邻路由发过来的LSA,然后再将收到的LSA泛洪给自己的所有邻居,直到在同一区域中的所有路由器收到了所有的LSA。

每台路由器在本地数据库中保存所有收到的LSA副本,这个数据库被称作“链路状态数据库(LSDB,Link-StateDatabase)”

5,每台路由器基于本地的“链路状态数据库(LSDB)”然后执行“最短路径优先(SPF)”算法,并以本路由器为根,生成一个SPF树,基于这个SPF树计算去往每个网络的最短路径,也就得到了最终的路由表。

下图演示了链路状态路由协议路由表的生成过程:

*链路状态路由协议优缺点

优点:

运行链路状态路由协议的路由器通过LSA的交换,最后独立的计算出到每个网络的最短路径,相对距离矢量路由具有更强的全局观念;收到邻居的LSA后立即泛洪,并且本路由再执行SPF算法,比距离矢量路由有更高的收敛速度(EIGRP除外,EIGRP是高级距离矢量路由协议有更快的收敛速度);当检测到拓扑发生变化时立即发送更新;多区域设计,可以将一些问题限制在较小的区域中。

缺点:

内存需求高,需要更强的CPU的支持,在网络初始化时,大量链路状态包泛洪,会影响网络的可用带宽。

[*2*].OSPF概述和基本配置

OSPF(OpenShortestPathFirst,开放最短路径优先)是一个被各厂商设备广泛支持的链路状态路由协议。

*OSPF特性

OSPF执行IETF标准,IETF标准被不同厂商的设备所支持;执行SPF算法,不会产生环路;支持VLSM和CIDR;可以用于大型网络;层次型设计,易扩展;区域化设计,减小路由更新给设备带来的负担;快速收敛,使用触发式更新;支持针对区域和链路的验证。

执行OSPF的路由默认每隔30分钟会泛洪一次链路状态通告(LSA),称为链路状态刷新(并非周期性更新);当一条LSA被接收并被储存到链路状态数据库中后,路由器会给这条记录增加一个老化时间标识,默认是一小时,所以为了防止一些正常的LSA被清除,始发这条LSA的路由会每隔30分钟泛洪一次这条LSA的一个新拷贝。

*OSPF术语

▪链路(Link):

当一个接口加入OSPF进程,就被当做是OSPF的一条链路。

▪链路状态(Link-State):

包括接口的IP、子网、网络类型、链路花费、链路上的邻居等。

▪路由器ID(RouterID,简称RID):

RID是一个用来标识路由器的IP地址,可以在OSPF路由进程中手工指定;如果没有指定,路由器默认选择回环接口中最高的IP作为RID;如果没有回环地址,路由器使用所有激活的物理接口中最高的IP作为RID。

▪邻居(Neighbor):

两台或多台路由连接在一个公共的网络上,如两台路由通过串行线路相连,多台路由通过以太网相连。

▪邻接(Adjacency):

邻接是两台路由器之间的关系,OSPF只与建立了邻接关系的邻居共享路由信息。

▪区域(Area):

OSPF通过划分区域来实现分层设计,跨越两个或两个以上区域的路由被称作ABR(AreaBorderRouter,区域边界路由)。

所有的区域都和“Area0”相连,“Area0”被称作骨干区域,骨干区域路由器具有整个自制系统中所有路由条目,LSA的扩散仅限制在区域内,通过划分多个区域可以减小LSA扩散过程中对硬件的负担。

▪指定路由器(DesignatedRouter,简称RD):

当OSPF链路被连接到多路访问的网络中时,需要选择一台指定路由器(DR),每台路由器都把拓扑变化发给DR和BDR,然后由DR通知该多路访问网络中的其他路由器。

▪备用的指定路由器(BackupDesignatedRouter,简称BDR):

当DR发生故障的时候,BDR转变成DR,接替DR个工作。

▪花费(Cost):

OSPF中使用的唯一度量值,使用链路的带宽计算得来。

*OSPF包格式

OSPF和EIGRP一样,也被设计成一个网络层协议,协议号89。

包格式如下图:

各部分解释如下:

▪数据链路层头部:

OSPF使用的组播IP地址是224.0.0.5(非DR和BDR路由使用的地址)和224.0.0.6(DR和BDR使用的组播地址),这两个组播地址对应的MAC地址分别为”01-00-5E-00-00-05″和”01-00-5E-00-00-06″。

▪包头部:

协议号是89,源IP是发送路由的IP,目的IP是组播IP地址224.0.0.5或224.0.0.6。

▪OSPF头部:

包括路由ID和所在的区域号、包的类型代码(5种类型的包代码)。

▪OSPF包对应的数据:

每种包有每种包具体的内容。

*OSPF包类型

1,Hello包

Hello报文用来建立和维护OSPF路由器间的邻接关系,它的主要作用是:

发现OSPF邻居,建立和维护邻接关系;在多路访问中选择DR和BDR。

OSPF泛洪链路状态通告给其他路由前需要先建立邻接关系,通过在OSPF协议的接口上发送Hello报文判断是否有其他OSPF路由器运行在相同的链路上。

双方要建立邻接关系,Hello报文中的区域号、Hello间隔和死亡间隔、验证(如果有)以及区域类型都要一致。

在广播(如以太网)和点对点链路(如串行线路)中,Hello间隔默认是10秒;死亡时间默认是Hello间隔的4倍(40秒);非广播多路访问(NBMA),比如帧中继网络中默认Hello间隔是30秒。

可以通过下面的命令修改默认的Hello时间和死亡时间:

/*修改串行线路s0/0的Hello间隔为5秒,死亡间隔为20秒。

*/

Router(config)#ints0/0

Router(config-if)#ipospfhello-interval5

Router(config-if)#ipospfdead-interval20

Router(config-if)#end

Router#

2,DBD(DatabaseDescription,数据库状态描述包)DBD包是发送端对自己链路状态数据库的一个简短描述,接收路由器根据接收到的DBD包对比自己的链路状态数据库,检测发送端和接收端的链路状态数据库是否同步。

3,LSR(Link-StateRequest,链路状态请求包)接收端可以发送LSA来请求接收到的DBD中的某些详细信息。

4,LSU(Link-StateUpdate,链路状态更新包)LSU用来更新OSPF路由信息,回复LSR请求。

5,LSAck(Link-StateAcknowledgement,链路状态确认)当收到一个LSU,路由器发送LSAck确认。

*OSPF邻居关系的建立过程

OSPF中邻居建立过程演示图如下:

▪Down:

OSPF初始状态,还没有开始交换信息。

▪Init:

交换信息初期,表示已经收到了邻居的Hello报文,但是报文中没有列出本路由的RID,也就是说对方还没有收到本路由发出的Hello报文。

▪Two-Way:

双向阶段,双方都收到了对方发送的Hello报文,建立了邻居关系。

在多路访问的网络中,两个接口状态是DROther的路由器之间将停留在此状态,其他情况将继续转入高级状态。

在此状态下的路由器是不能共享路由信息的,想共享路由信息,必须建立邻接关系。

(注意邻居关系和邻接关系的区别)

▪Exstart:

准备开始交换阶段,双方通过Hello报文决定主从关系,最高RID的路由将成为主路由,最先发起交换。

主从关系确立后进入下一个阶段。

▪Exchange:

开始交换阶段,路由器将本地的”路由状态数据库(LSDB)”用”数据库描述(DBD)”报文来描述,然后发给邻路由。

如果这个阶段中的路由收到不在其数据库中的有关链路的信息,那么在下一个阶段中将请求对方发送该路由条目的完整信息。

▪Loading:

加载阶段,路由器通过发送”链路状态请求(LSR)”,来向邻居请求一些路由条目的详细信息。

邻居则会使用”链路状态更新包(LSU)”来回复LSR请求,收到邻居发回的LSU后,再发送LSAck向发送LSU的路由进行确认。

▪FULL:

完全邻接状态,Loading结束后,路由器之间就变成了”Fulladjacency”。

*OSPF基本配置实例

使用OSPF配置下面的拓扑:

R1配置:

R1(config)#ints0/0

R1(config-if)#ipadd12.1.1.1255.255.255.0

R1(config-if)#noshut

R1(config-if)#intlo0

R1(config-if)#ipadd1.1.1.1255.255.255.0

R1(config-if)#noshut

R1(config-if)#intfa1/0

R1(config-if)#ipadd123.1.1.1255.255.255.0

R1(config-if)#noshut

R1(config-if)#routerospf1/*启用OSPF进程,进程号1只具有本地意义。

*/

R1(config-router)#net123.1.1.00.0.0.255area0

R1(config-router)#net1.1.1.00.0.0.255area0

R1(config-router)#net12.1.1.00.0.0.255area0

R1(config-router)#end

R1#

/*

*“routerospf1”中的OSPF进程号1,只具有本地意义,每个路由可以不同,

*“net123.1.1.00.0.0.255area0”OSPF网络的宣告使用反掩码形式,

*最后的“area0”是OSPF区域号,同一个区域里的路由器区域号要保持一致,

*CCNA中只涉及区域0,也就是骨干区域的配置。

*其实这里还可以使用下面这条命令,一次性将路由上的所有接口都宣告进OSPF进程:

*“net0.0.0.0255.255.255.255area0”

*/

R2配置:

R2(config)#ints0/1

R2(config-if)#ipadd12.1.1.2255.255.255.0

R2(config-if)#noshut

R2(config-if)#intlo0

R2(config-if)#ipadd2.2.2.2255.255.255.0

R2(config-if)#noshut

R2(config-if)#intfa1/0

R2(config-if)#ipadd123.1.1.2255.255.255.0

R2(config-if)#noshut

R2(config-if)#routerospf2

R2(config-router)#net0.0.0.0255.255.255.255area0

R2(config-router)#end

R2#

/*“net0.0.0.0255.255.255.255area0”将R2上的所有接口都发布进OSPF进程*/

R3配置:

R3(config)#intfa1/0

R3(config-if)#ipadd123.1.1.3255.255.255.0

R3(config-if)#noshut

R3(config-if)#intlo0

R3(config-if)#ipadd3.3.3.3255.255.255.0

R3(config-if)#noshut

R3(config-if)#intlo1

R3(config-if)#ipadd33.3.3.3255.255.255.0

R3(config-if)#noshut

R3(config-if)#routerospf3

R3(config-router)#net123.1.1.00.0.0.255area0

R3(config-router)#net3.3.3.00.0.0.255area0

R3(config-router)#end

R3#

/*R3并没有将Lo1接口宣告进OSPF进程*/

/*

*对于OSPF的宣告下面还有几种不规范形式,但可以使用:

*

*"net123.1.1.10.0.0.0area0"

*指定仅有一个IP(123.1.1.1)宣告进OSPF进程。

*

*"net123.1.1.0255.255.255.0area0",

*这条命令同"net123.1.1.00.0.0.255area0"效果相同。

*

*"net0.0.0.00.0.0.0area0",

*这条命令同"net0.0.0.0255.255.255.255area0"效果相同。

*

*上面几种格式都能被正确识别,但是最好使用规范格式。

*/

1,配置完成后查看路由表:

/*

*查看R1的路由表,显示如下:

*可以看到R1学习到了R2和R3上面的回环接口的IP地址,

*因为R3的Lo1并没有宣告进OSPF进程,所以这里没有33.3.3.3这个地址。

*“O”表示是从OSPF学习到的路由条目。

*/

R1#showiproute

1.0.0.0/24issubnetted,1subnets

C1.1.1.0isdirectlyconnected,Loopback0

2.0.0.0/32issubnetted,1subnets

O2.2.2.2[110/2]via123.1.1.2,00:

15:

04,FastEthernet1/0

3.0.0.0/32issubnetted,1subnets

O3.3.3.3[110/2]via123.1.1.3,00:

15:

04,FastEthernet1/0

123.0.0.0/24issubnetted,1subnets

C123.1.1.0isdirectlyconnected,FastEthernet1/0

12.0.0.0/24issubnetted,1subnets

C12.1.1.0isdirectlyconnected,Serial0/0

R1#

在OSPF中所有的回环接口都被自动宣告成32位的主机路由”/32″,如果想显示回环接口的实际子网掩码,可以使用下面的命令:

/*在R1、R2、R3宣告进OSPF的回环接口上执行下面的命令*/

R1(config)#intlo0

R1(config-if)#ipospfnetworkpoint-to-point

执行完成后,再次查看路由表就会发现所有回环接口的子网掩码都变成了实际的子网掩码。

2,查看OSPF邻居表

R1#showipospfneighbor

NeighborIDPriStateDeadTimeAddressInterface

2.2.2.20FULL/-00:

00:

3712.1.1.2Serial0/0

2.2.2.21FULL/BDR00:

00:

37123.1.1.2FastEthernet1/0

33.3.3.31FULL/DROTHER00:

00:

31123.1.1.3FastEthernet1/0

R1#

/*

*NeighborID:

邻居的RID,通过上面的输出可以看到R2的RID是2.2.2.2

*R3的RID是33.3.3.3,R1和R2通过不同的接口(以太网和串行线路),

*建立了两次邻居关系。

*

*Pir:

OSPF邻居接口的优先级,接口优先级用于DR和BDR的选举,

*以太网接口接口的默认优先级是1,串行线路不需要选举DR和BDR,

*所以上面显示中和串行线路建立的那条邻接关系的优先级是0,

*0代表不参与选举。

*

*State:

邻居路由器的状态,FULL代表已经建立邻接关系,

*斜杠"/"后面是选举的DR或BDR标识,因为串行线路不需要选举,所以是"-",

*"FULL/BDR"表示R2是BDR,R3是DROTHER,除了DR和BDR的其余路由器都是DROTHER。

*所以R1自己就是DR了。

稍后会介绍DR和BDR的选举过程。

*

*Deadtime:

默认的死亡时间是hello时间的4倍,即40秒。

*死亡时间是一个倒计时,计时器为0时,该邻居被删除。

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

当前位置:首页 > PPT模板 > 商务科技

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

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