OSPF邻接形成过程
![]() 一、DOWN : 双方没有进行任何交互活动。 二、INIT : 收到对方的hello包,但是还没收到含有自己RID的hello包,即对方没有收到自己的hello包。 这个时候发送 hello(224.0.0.5)中DR字段为全零,因为还没有选出 DR。 怎么知道对端有没有收到我的报文呢,通过 Neighbors Seen字段看。 Hello包的参数: 1、自己RID 2、Area ID 3、hello-interval 4、hello-deadinterval 5、网络掩码 6、优先级 7、DR/BDR 8、邻居RID 9、认证信息 只有hello包中的2、3、4、5、9字段一致,才能形成邻居。如有一项不相同的丢弃。 hello 包 ttl 值是 1,在E1中每 10 秒发送一次。因为只是相邻的两台路由器建立关系。Hello包无需穿越路由器到达非直连的路由器。 三、TWO-WAY: 两个OSPF路由器都从对端发来的hello包中发现自己的RID。建立邻邻居关系。 广播网络这个阶段选举DR/BDR。 DR/BDR选举步骤: step1:根据ospf路由器的接口的优先级选举DR/BDR(每个接口默认的优先级都是1)其中优先级最大的成为DR,次大的成为BDR,其它的都是DR-Other。如果有路由器的pri为0,表示放弃DR/BDR的选举. priority:1--255 (串口默认没有优先级,因为它默认是POINT_TO_POINT,不需要选举DR/BDR的,可通过sh ip ospf int e0查看) step2:如果接口的优先级相同,将使用router-id来决定DR/BDR的选举:其中router-id最大的成为DR,次大的成 为BDR,其他的都是DR-other。 先选举BDR,再从DR中选举DR。 四、EXSTART : 预启动状态,OSPF路由器建立主从关系,然后由主确定一个发送DD的序列号。 选主从原则:RID大的为主。 选主从原因:传输DD之前,先由主确定一个序列号,并且只能有主对序列号进行修改。为确定唯一的DD序列号,让数据可靠到达。因为 ip 是不可靠传输,采用确认+超时重传。 头两个 dd 报文为空,不包含 lsa 的数据,用于协商序列号。这时候都认为自己是主。 五、EXCHANGE: 交换状态。DRother和DR 开始交换数据,主先发送LSDB报文,此报文只是一个index(如同一本书的目录)不包含实际的路由数据,从也发送报文,发送主没有的。 DD包信息: 1、I-bit (intial-bit) 标示位,如果置1,则只有1个DD包,如果是子DD包,则置0. 2、M-bit (more-bit) 如置1,表示该DD包不是最后一个。如置0,表示其为最后一个。DD包发送结束。 3、MS-bit (master/slave-bit) 如置1,表示该包为主发的包,置0表示从发的包。 4、DD sequence number DD包序列号 六、LOADING: 装入状态。从DD 报文中查看那个是自己需要的路由数据,发送LSR 请求发送数据,对端发送LSU,此报文包含所需的全部数据。 LSR信息: 1、 link state type 。总共有11种,但是思科公司未实现全部。 常见:1)router lsa:LID为RID。描述路由器与OSPF区域接口的信息,只在本区域内flooding。 2)network lsa:LID为DR连接该区域的接口IP。有DR产生,描述本区域的路由器信息。是保证在广播网络中只产生一个network lsa 。 3)network summary lsa:LID为目的网络号。由ABR产生,描述其所知道的其他区域网络。 4)asbr las:LID为asba的RID。由ASBR产生,描述自己的位置,使其他路由器可以找到并到达它。 5)as external lsa :LID为外部网络号。由ASBR产生,描述到达外部网络的路由信息。 6)nssa external lsa:LID为外部网络号。由ASBR产生,描述nssa区的直连外部路由。它会被包含到第5类lsa中,以便可以被分发到支持第5类lsa的区域。 2、link id: 不同lsa的link id 不同。 3、 advertising router : 发送lsa的RID。 LSU信息: 数据链路更新包,LAS包含在LSU中。 LSA (数据链路通告,LSA是包含在LSU中的)的传播更新规律 : Step1:如果本路由器从来没有收到过此LSA,那么路由器就将其加入LSDB,并且转发/泛洪此LSA。 Step2: 如果本路由器,曾经收到描述同一个网络的LSA: 2-1: 如果LSA的序号,与自己已有的相同,则丢弃此LSA。 2-2: 如果LSA的序号,与自己的更新,则同step。 2-3: 如果LSA的序号,比自己的更旧,就将自己较新的LSA发送给源。 七、FULL: 收到LSU报文后发送确认,完成充满状态。 存在DR/BDR时,DR收到LSU后是不发送LSAck的。因为当DR将LSU在该区域内flooding,当发送路由器侦听到该LSA时,就认为是一个确认。 当不存在DR/BDR时,接收路由器发送LSAck。 完成full状态,说明该区域中所有路由都拥有相同的LSDB了。 Full状态是DR/BDR和DRother连接的正常状态。而two-way状态是DRother之间连接的正常状态 从INIT--LOADING 是路由器第一次交换信息的时候才出现,到了 full 以后,如果在有路由变化那么就只发送lsu 完成full状态后。路由器使用spf算法,以自己为根,计算出到达已知网络的最佳路径。 |



SHA-1
博客统计信息
热门文章
最新评论
友情链接