简介
本文描述OSPF邻接关系形成路由器在与其邻居完全邻接之前经历几次状态更改的时间。
先决条件
要求
本文档没有任何特定的要求。
使用的组件
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
规则
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
背景信息
形成 OSPF 邻接时,路由器会经过多次状态更改,然后才变为与其邻居完全邻接。OSPF RFC 2328 第 10.1 部分中定义了这些状态。这些状态为 Down、Attempt、Init、2-Way、Exstart、Exchange、Loading 和 Full。本文档详细介绍了每个状态。
OSPF邻接关系
关闭
这是第一个 OSPF 邻居状态。它表示未从该邻居收到信息 (hello),但是仍然可以将 hello 数据包发送到此状态中的邻居。
在完全邻接邻居状态下,如果路由器在RouterDeadInterval时间内未收到来自邻居的hello数据包(默认情况下为RouterDeadInterval = 4*HelloInterval),或者如果手动配置的邻居已从配置中删除,则邻居状态将从Full更改为Down。
尝试
此状态仅对在 NBMA 环境中手动配置的邻居有效。在 Attempt 状态下,路由器每隔一定的轮询间隔时间就会向邻居发送单播 hello 数据包,而在 dead 间隔期间未能收到来自此邻居的 hello。
初始
此状态指定路由器已收到来自其邻居的hello数据包,但接收路由器ID未包含在hello数据包中。当路由器收到来自邻居的hello数据包时,它必须在其hello数据包中列出发送方路由器ID,以确认它收到了有效的hello数据包。
双向
此状态表示已在两个路由器之间建立双向通信。双向表示每台路由器都能看到来自另一台路由器的hello数据包。收到hello数据包的路由器在收到hello数据包的neighbor字段中看到自己的路由器ID时,就会达到此状态。在此状态下,路由器将决定是否与该邻居形成邻接关系。在广播介质和非广播多路访问网络上,路由器只有指定路由器(DR)和备用指定路由器(BDR)才能变为full;它在所有其他邻居处保持双向状态。在点对点和单点对多点网络上,路由器针对所有连接的路由器都可转入 full 状态。
本阶段结束时,将选举广播和非广播多路访问网络的DR和BDR。有关 DR 选择过程的详细信息,请参阅 DR 选择。
注意:从处于init状态的邻居接收数据库描述符(DBD)数据包也会导致转换到2-way状态。
Exstart
一旦选举DR和BDR,交换链路状态信息的实际过程就会在路由器与其DR和BDR之间开始。
在此状态下,路由器及其DR和BDR会建立主 — 次关系,并选择用于形成邻接关系的初始序列号。具有较高路由器ID的路由器成为主路由器并开始交换,因此,它是唯一可以增加序列号的路由器。从逻辑上您可以断定,具有最高路由器ID的DR/BDR是此过程的主路由器。DR/BDR选举可能是因为路由器上配置了较高的优先级,而不是最高的路由器ID。因此,DR可能扮演次要角色。此外,主/辅助选举基于每个邻居。
交换
在 exchange 状态下,OSPF 路由器将会交换数据库描述符 (DBD) 数据包。数据库描述符仅包含链路状态通告(LSA)报头,并描述整个链路状态数据库的内容。每个DBD数据包都有一个序列号,该序列号只能按主数据包递增,而辅助数据包则明确确认该序列号。在此状态下,路由器还会发送链路状态请求数据包和链路状态更新数据包(包含整个 LSA)。路由器收到 DBD 内容时会将其与路由器链路状态数据库中包含的信息进行比较,以检查邻居是否可提供新的或更新的链路状态信息。
正在加载
在此状态下,将发生链路状态信息的实际交换。基于 DBD 提供的信息,路由器将发送链路状态请求数据包。然后,邻居将在链路状态更新数据包中提供所请求的链路状态信息。在邻接过程中,如果路由器收到过时或丢失的LSA,它会发送该LSA的链路状态请求数据包。 所有链路状态更新数据包都经过了确认。
完全
在此状态下,路由器彼此之间完全邻接。所有的路由器及网络 LSA 都已交换,而且路由器数据库已完全同步。
FULL 是 OSPF 路由器的正常状态。如果路由器处于其它状态,则表明形成邻接关系时出现问题。 唯一的例外情况是 2-way 状态,此状态在广播网络中是正常的。路由器在NBMA/广播媒体中通过其DR和BDR实现FULL状态,在剩余媒体(如点对点和点对多点)中的每个邻居实现FULL状态。
注意:当您在DR或BDR上输入命令时,网段上每台路由器均处于FULL状态的DR和BDR可以显示 show ip ospf neighbor
FULL/DROTHER。这仅仅意味着邻居不是DR或BDR,但是由于输入命令的路由器是DR或BDR,因此该邻居显示为FULL/DROTHER
相关信息