码迷,mamicode.com
首页 > 其他好文 > 详细

Protocol_OSPF

时间:2015-07-04 18:08:38      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:

从一个非常概括的角度来看OSPF协议的操作是比较容易理解的

1.宣告OSPF的路由器从所有启动OSPF协议的接口上发出Hello数据包。如果两台路由器共享一条公共数据链路,并且能够相互成功协商它们各自Hello数据包中所有指定的某些参数,那么它们就成为了邻居(Neighbor)。2.邻接关系(Adjacency),可以想象成一条点到点的虚链路,它是在一些邻居路由器之间构成的。OSPF定义了一些网络类型和路由器类型的邻接关系。邻居关系的建立是由交换Hello信息的路由器类型和交换Hello信息的网络类型决定的。
3.每台路由器都会在所有形成邻接关系的邻居之间发送链路状态通告(LSA)。LSA描述了路由器所有的链路、接口、路由器的邻居以及链路状态信息。
4.每一台收到从邻居路由器分发出的LSA的路由器都会把这些LSA记录在它的链路状态数据库中,并且发送一份LSA的拷贝给路由器的其他所有区域。
5.通过LSA泛洪扩散到整个区域,所有的路由器都会形成同样的链路状态数据库。
6.当这些路由器的数据库完全相同时,每一台路由器都将以其自身为根,使用SPF算法来计算一个无环路的拓扑图,以描述他所知道到达每一个目的地的最短路径。这个拓扑图就是SPF最短路径树
7.每一台路由器都将从SPF算法数中构建出自己的路由表。

Hello协议的作用


1.它是发现邻居路由器的方法;
2.在两台路由器成为邻居之前,需要通告这两台路由器必须相互认可的几个参数。
3.Hello数据包在邻居路由器之间担当keepalive的角色。
4.确保了邻居路由器之间的双向通信。
5.用在Broadcast与NBMA网络上选取DR与BDR。

HelloInterval:在广播型网络上使用缺省的10s,对于非广播来说使用的是30s。可以通过ip ospf hello-interval来更改。
RouterDeadInterval:默认为HelloInterval间隔的4倍。可以通过ip ospf dead-interval来更改。

OSPF路由器要想建立邻居必须满足Hello数据包携带的一下参数匹配


1.Area ID
2.认证信息
3.网络掩码
4.Hello间隔时间
5.路由器无效时间间隔
6.Options

OSPF支持的网络类型


1.P2P
2.Broadcast
3.NBMA
4.P2MP
5.Virtual Links

在广播网络中需要选举DR和BDR。Hello数据包像所有始发于DR和BDR的OSPF数据包一样,是以组播方式发送给你到ALLSPFRouters(目的地址224.0.0.5)的。携带这些数据包的数据帧的MAC地址为0100.5E00.0005。其他路由器将通过224.0.0.6的IP地址(AllDRouters)。携带这些数据包的数据帧的目的MAC地址是0100.5E00.0006

OSPF网络类型
1.传输网络(源IP于目的IP都不是本区域)
2.末梢网络锁(至少有一个源IP或目的IP属于这个末梢网络)

DR

DR背后的一种概念是广播链路本身被认为是一个“伪节点”,或者虚拟路由器。当SPF树进行计算的时候,把链路看作一个节点,与该链路相连的路由器也是连接到这个节点上的。从与伪界节点相连的路由器到这个伪节点的代价就是整台路由器与这个广播链路相连的接口代价,但是从伪节点到任何与之相连的路由器的代价都是0。通过这种方式,所有路径的代价都不会受到伪节点的影响。请记住:一台路由器可能是它所连接的其中一个多路访问网络的指定路由器,也可能不是它所连接的另一个多路访问网络的指定路由器。换句话数,指定路由器是路由器接口的特性,而不是整个路由器的特性。

DR/BDR的选举过程


1.在具有资格的路由器的列表(路由其的优先级要大于0,并且它的邻居状态至少是2-way);所有的路由器将宣告自己是DR(Hello数据包的DR字段是他们自设接口的IP地址);所有路由器也将宣告自己为BDR。
2.从具有选举资格的路由器的里列表中,创建一个还没有宣告为DR路由器的所有路由器的子集(宣告自己为DR的路由器不能被宣告自己为BDR)
3.如果在这个子集中的一台或者多台邻居路由器,他们在Hello数据包的BDR字段包含了他们自己的接口地址,那么具有最高优先级的邻居路由器将宣告为BDR路由器。在优先级相同的条件下,具有最高RID的路由器将被选作BDR
4.如果在这个子集中没有路由器自己为BDR路由器,那么具有最高优先级的邻居路由器将被宣告为BDR路由器。在优先级相同的条件下。具有最高RID邻居路由器被选作BDR。
5.DR选举类似。
6.如果没有路由器宣城自己是DR,那么新选举的BDR将成为DR。
一旦DR和BDR选举成功,其他路由器将只和DR及BDR之间形成邻接关系。

路由器接口的数据信息


1.IP Address and Mask
2.Area ID
3.Proces ID
4.RID
5.Network Type
6.Cost
ospf的默认的参考带宽为10^8 ,我们可以通过ip ospf cost来改变cost值,而参考带宽:auto-cost reference-bandwidth

接口数据结构的参数信息


1.InfTransDelay:指的是LSA从路由器的接口发送后经历的时间,以s计算,当LSA从路由器接口发出后将会引起这个参数的不断增大。在Cisco路由器上缺省值为1s。InfTransDelay可以通过命令ip ospf transmit-delay来改变。
2.State
3.Router Priority:ip ospf priority来改变
4.DR
5.BDR
6.HelloInterval
7.RouterDeadInterval
8.Wait Timer:在开始选举DR和DBR之前,路由器等待邻居路由器Hello包通告DR和BDR的时长。
9.RxmInterval:是指在没有得到确认的情况下,路由器重传OSPF数据包将要等待确认的时间长度。
10.Hello Timer:这个计时器的初始值是由 HelloInterval来设置的。
11.Neighboring Router
12.AuType:我们可以通过show ip ospf interface来进行查看
13.Authentication Key:64bit的口令,是一个消息摘要密钥。

建立邻接关系通常经过四个阶段


1.邻居路由器发现阶段;
2.双向通信阶段(bidirectional communication)--当两台互为邻居路由器在它们的Hello数据包中都互相列出了他们对方的RID时,路由器就认为2-way了
3.数据库同步阶段(Database Synchronization)
4.完全邻接阶段(Full-Adjacency)

在NBMA网络中,路由器是每经过PollInterval的时间给它的邻居状态为down的邻居发送一次Hello数据包,但是在其他的各种网络类型中,路由器都是每经过HelloInterval的时间给它的邻居路由器发送一次Hello数据包,在Cisco路由器中,NBMA网络中PollInterval的缺省值为120s。

以下信息我们可以通过show ip ospf neighbor来显示


1.Master/Slave--在ExStart状态下,邻居之间协商的主从关系将用来控制数据库的同步问题。
2.DD Sequence Number--是指当前正在向邻居路由器发送的数据库描述序列号。
3.Last Received Database Description Packet(最后收到的数据库描述数据包)--这个数据包记录了初始化位(Initialize)、后继位(More)和主/从可选项,以及最后收到的数据库描述数据包的序列号等信息。这个信息可以用来确定下一个数据库描述数据包是否重复。、
4.Link State Retransmission List(链路状态重传列表)
5.Database Summary List(数据库摘要列表)--这一项指在数据库同步期间,数据库描述数据包中向邻居路由器发送的LSA列表。当路由器进入Exchange State时,这些LSA将会构成LSDB。
6.Link State Request List(链路状态请列表)--当路由器通过LSU收到请求的LSA时,请求列表就会减小,最终将变成空列表。

邻居状态机

Protocol_OSPF

标签:

原文地址:http://www.cnblogs.com/danbo/p/4620952.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!