ospf邻接关系的建立过程
OSPF协议原理及配置详解
OSPF协议原理及配置详解OSPF(Open Shortest Path First)是一种用于计算机网络中的内部网关协议(IGP),用于在大型网络中动态确定数据包的传输路径。
其算法基于Dijkstra最短路径算法,并支持IPv4和IPv6网络。
OSPF的工作原理如下:1. 链路状态数据库(Link State Database):每个OSPF路由器都维护着一个链路状态数据库,其中存储了它所连接的所有网络的信息,包括链路的状态、带宽、延迟等。
每个OSPF路由器通过发送链路状态更新(Link State Update)将自己的链路状态信息告知其他路由器。
2.路由器之间的邻居关系建立:OSPF路由器之间通过邻居发现过程建立邻居关系。
当一个OSPF路由器启动时,它会向网络广播HELLO消息来寻找其他路由器。
当两个路由器之间收到彼此的HELLO消息时,它们可以建立邻居关系。
3. 路由计算:每个OSPF路由器通过收集链路状态信息来计算最短路径。
路由器将链路状态信息存储在链路状态数据库中,并使用Dijkstra 最短路径算法来确定到达目标网络最短路径。
4.路由更新:当链路状态发生变化时,OSPF路由器将会发送更新消息通知其他路由器。
其他路由器接收到更新消息后,会更新自己的链路状态数据库,并重新计算最短路径。
OSPF的配置如下:1. 启用OSPF协议:在路由器配置模式下使用"router ospf"命令启用OSPF协议。
2. 配置区域(Area):将网络划分为不同的区域。
在配置模式下使用"area <区域号> range <网络地址> <网络掩码>"命令将网络地址加入到区域中。
3. 配置邻居:使用"neighbor <邻居IP地址>"命令来配置OSPF邻居关系。
邻居IP地址可以手动配置或通过HELLO消息自动发现。
OSPF邻居关系建立过程详解
当OSPF接口收到链路上某个邻居发来的第一个HELLO包的时候,它会在接口上将该邻居置为init状态,注意这个hello包中可能并未包含任何的邻居信息。但是这至少证明,我这个OSPF接口在这个链路上,至少有个活的邻居。下面是一个没有发现任何active neighbor的hello包:
4.Two-way
指定路由器DR和一个备份指定路由器BDR。
3.非广播多址网络(NBMA)
NBMA网络,像X.25、帧中继和ATM等,可以连接两台以上的路由器,但是他们没有广播数
据包的能力。在NBMA网络上的OSPF路由器需要选举DR和BDR,并且所有的OSPF报文都是单播的。
4.点到多点网络(Point-to-Multipoint)
下面是一个装载了LSA头部的DBD消息:
7.loading 状态
OSPF router使用LSR去请求LSA的详细信息,对方使用LSU发来更新,因此只有LSU里才有LSA的完整信息。在收到LSU后,一方面本地使用LSAack进行确认,另一方面将LSU中包含的LSA装载进自己的LSDB。
以下是一个LSR消息,非常的简单:
I位 或称为初始位(initial bit)用于ex-start协商主从关系的初始化协商的DBD包,该位置1
M位 或称为后继位(More bit) 如果这不是OSPFrouter发送的最后一个DBD,该位置1
MS位 或称为主/从位(Master/slave bit) 如果始发路由器是Master,则该位置1
在这里我们有个地方需要留意,我们通常说,OSPF路由器A与B进入了xx状态,其实这句话并不严谨,原因之一,是因为OSPF是接口敏感型协议,许多的操作都是以OSPF接口作为立足点去考虑的,譬如邻居关系的建立,再如DR和BDR,我们不能说一台路由器是DR,准确的说,应该是某路由器的某个接口是DR;再者,说两台路由器之间是xx状态,这个也不严谨,所谓的邻居状态,必须是以某台路由器为观察点,在其某个接口上观察到的某个邻居的状态,因此可能出现的一个情况是,在A上,看到的B的状态为Loading,但是在B上,A的状态已经是FULL了。
OSPF建立邻接关系的过程
OSPF建立邻接关系的过程OSPF 建立邻接关系的过程2008-10-29 23:15:50| 分类:Cisco | 标签:ospf 邻居| 字号大中小订阅首先要了解这个过程中涉及到的几种分组:(1)Hello 分组:这是一台路由器告诉其他路由器自己存在的一种方式。
Hello 分组会定期发送,以告诉其他路由器自己还活着。
(2)DBD 分组:数据库描述,这是链路状态的一个概况,可以把它看做是链路状态的一个目录,其中包含它知道的所有路由器的ID ,以及各条链路的序列号(用来判断链路的新旧程度)。
(3)LSU 分组:链路状态更新,这是真正的链路状态信息,也就是通往某个目标的详细路径信息。
(4)LSR 分组:用来请求一个链路状态信息。
(5)LSAck 分组:对其他分组进行确认。
还有一个概念就是LSDB (链路状态数据库),它保存所有链路状态信息。
下面我们结合在R1 上执行debug ip ospf events 的输出(该输出来自互联网),来详细说明建立的步骤:1.R1的OSPF接口开始向外发送Hello分组,发送的时候使用组播,组播地址是224.0.0.5。
这个Hello 分组包含一些重要的信息:路由器ID、DR/BDR 、区域号、优先级等,以及R1 知道的所有邻居的列表(这时侯为空)。
*Apr 8 00:47:54.059: OSPF: Interface FastEthernet0/0 going Up *Apr 8 00:47:54.059: OSPF: Send hello to 224.0.0.5 area 0 on FastEthernet0/0 from 10.1.1.12.R2 收到Hello 分组后,会将R1 加入到自己的邻居表中,邻居表中除了从Hello 分组中得到的信息之外,还会从承载Hello 分组的IP 数据包中得到源IP 地址(R1 某个接口的IP 地址),以及本路由器收到这个分组的接口。
OSPF_协议的解析及详解
OSPF_协议的解析及详解OSPF协议的解析及详解OSPF(Open Shortest Path First)是一种内部网关协议(IGP),用于在IP网络中实现动态路由。
本文将对OSPF协议进行解析和详解,包括其基本概念、工作原理、路由计算算法、协议报文格式以及配置和故障排除等方面的内容。
一、基本概念1.1 OSPF协议OSPF是一种链路状态路由协议,通过交换链路状态信息来计算最短路径,并维护路由表。
它基于Dijkstra算法,具有快速收敛、可扩展性强等特点。
1.2 OSPF区域OSPF将网络划分为不同的区域,每个区域由一个区域边界路由器(Area Border Router,ABR)连接。
区域之间通过区域边界路由器进行路由信息的交换。
1.3 OSPF邻居关系OSPF通过建立邻居关系来交换路由信息。
邻居关系的建立是通过Hello报文来实现的,Hello报文中包含了路由器的标识、优先级、网络类型等信息。
二、工作原理2.1 OSPF路由计算OSPF使用Dijkstra算法来计算最短路径。
每个路由器维护一个链路状态数据库(Link State Database,LSDB),其中保存了所有邻居路由器发送的链路状态信息。
根据LSDB中的信息,路由器计算出最短路径树,并更新路由表。
2.2 OSPF的路由选择OSPF使用最短路径优先(Shortest Path First,SPF)算法来选择最优路径。
SPF算法考虑了路径的成本(Cost),成本越低的路径被认为是最优路径。
2.3 OSPF的路由更新OSPF使用链路状态通告(Link State Advertisement,LSA)来更新路由信息。
当网络拓扑发生变化时,路由器会生成LSA,并向邻居路由器发送更新信息。
邻居路由器收到LSA后,更新自己的链路状态数据库,并重新计算最短路径。
三、协议报文格式3.1 Hello报文Hello报文用于建立邻居关系。
它包含了路由器的标识、优先级、Hello间隔等信息。
华为OSPF理论和配置命令
OSPF要求每台运行OSPF的路由器都了解整个网络的链路状态信息,这样才能计算出到达目的地的最优路径。
OSPF的收敛过程由链路状态公告LSA(Link State Advertisement)泛洪开始,LSA中包含了路由器已知的接口IP地址、掩码、开销和网络类型等信息。
收到LSA的路由器都可以根据LSA提供的信息建立自己的链路状态数据库LSDB(Link State Database),并在LSDB的基础上使用SPF算法进行运算,建立起到达每个网络的最短路径树。
最后,通过最短路径树得出到达目的网络的最优路由,并将其加入到IP路由表中。
OSPF直接运行在IP协议之上,使用IP协议号89。
OSPF有五种报文类型,每种报文都使用相同的OSPF报文头。
Hello报文:最常用的一种报文,用于发现、维护邻居关系。
并在广播和NBMA(None-Broadcast Multi-Access)类型的网络中选举指定路由器DR(Designated Router)和备份指定路由器BDR(Backup Designated Router)。
DD报文:两台路由器进行LSDB数据库同步时,用DD报文来描述自己的LSDB。
DD报文的内容包括LSDB中每一条LSA的头部(LSA的头部可以唯一标识一条LSA)。
LSA头部只占一条LSA的整个数据量的一小部分,所以,这样就可以减少路由器之间的协议报文流量。
LSR报文:两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地LSDB 所缺少的,这时需要发送LSR报文向对方请求缺少的LSA,LSR只包含了所需要的LSA的摘要信息。
LSU报文:用来向对端路由器发送所需要的LSA。
LSACK报文:用来对接收到的LSU报文进行确认。
邻居和邻接关系建立的过程如下:Down:这是邻居的初始状态,表示没有从邻居收到任何信息。
Attempt:此状态只在NBMA网络上存在,表示没有收到邻居的任何信息,但是已经周期性的向邻居发送报文,发送间隔为HelloInterval。
OSPF邻居-邻接关系建立
OSPF邻接关系建立过程:分两大步骤七种状态:1、建立邻居关系:建立双向通信:DOWN:没有检测到活动邻居INIT:路由器(R2)收到对方(R1)的hello包,并将R1加入到R2的邻居表中,R2成为INIT状态Two-way:收到hello的R2将单播回复R1一个hello,其中包含R2的所有邻居路由器,包括路由器R1。
R1收到来自R2的hello后,发现其中包含有自己的信息,则R1将R2加入到自己的邻居列表中。
R1,R2都处于Two-way状态。
第一步完成后,R1,R2形成邻居关系!2、建立邻接关系:R1,R2成为邻居后,如果在多路访问的广播网络中,R1,R2便选举DR,BDR。
注:新网络的DR,BDR的选举是在two-way状态后完成的,并且DR,BDR是非抢占的,并且DRother只能与DR或BDR建立邻接关系,DRother之间只能建立邻居关系(Two-way状态)。
建立邻接关系的机制是为了减少路由形成的冗余度,成为邻接关系最终是为了能够形成路由,能够转发数据包,所以就要进行发现网络路由和添加链路状态条目1)、发现网络路由:Exstart:确立主从关系,在DR和BDR,DR和DRother,BDR 和DRother之间确立主从关系,Router ID大的为主路由器。
Exchange:发送DBD(LSDB摘要),发现需要更新的LSA的条目2)、添加链路状态条目:Load:交换LSR,LSU以填充LSDB,完成链路状态条目更新。
Full:完全邻接状态。
LSA:链路状态通告DR:制定路由器,只作用于接口,因为邻接关系是基于接口的,而DR是为邻接关系服务的。
也就是说,DR是链路级的,每个网段(MA网络)都有自己DR和BDR。
BDR:备用DR。
ospf协议的工作原理
ospf协议的工作原理OSPF(Open Shortest Path First)协议是一个用于路由选择的链路状态路由协议,它通过收集链路信息并计算最短路径来确定网络中的最佳路径。
OSPF协议的工作原理如下:1. 邻居发现:启动OSPF路由器会发送Hello消息来探测相邻路由器,通过相互交换Hello消息来建立邻居关系。
邻居关系是通过比较OSPF路由器配置中的OSPF区域号、认证密码和虚拟链路等参数来判断的。
2. 路由器地图:每个OSPF路由器维护一个链路状态数据库(Link State Database,LSDB),其中存储了与其他路由器相邻链路的信息。
这些信息包括链路的状态、度量值(通常是链路带宽)和与链路关联的路由器。
3. 路由计算:每个OSPF路由器使用Dijkstra算法在链路状态数据库上进行计算,以确定到达网络中其他路由器的最短路径。
该算法通过比较路径的度量值来选择最佳路径。
4. 路由更新:一旦计算出最短路径,OSPF将把这些路径信息发送给相邻路由器。
路由器之间使用链路状态更新(Link State Update)消息来交换路由信息。
5. 路由表生成:每个OSPF路由器使用从相邻路由器接收到的链路状态更新消息来更新其路由表。
它选择最佳路径并将其添加到路由表中。
6. 路径维护:OSPF协议不仅在路由计算时选择最佳路径,还在路径维护过程中对网络进行监控。
当链路状态发生变化(例如断开连接、带宽变化等)时,OSPF会使用链路状态通告(Link State Advertisement)消息更新链路状态数据库,并重新计算路径。
通过上述步骤,OSPF协议能够建立网络中的最佳路径,并在网络发生变化时及时更新路径信息,确保数据在网络中的快速传输。
OSPF邻居、邻接关系
邻居关系和邻接关系。
如果两台路由器之间共享一条公共数据链路(两台路由器中间没有其它路由器,或者两台路由器之间存在虚连接),并且成功协商了hello包中所指定的参数,那么它们就成为邻居。
如果两个邻居之间需要同步LSDB,那么它们之间需要建立邻接关系。
如果两个路由器之间建立了邻接关系,那么它们的LSDB一定是同步的。
LSA只在存在邻接关系的路由器之间传递。
那么邻居关系和邻接关系怎么建立呢?邻居关系通过hello报文来建立。
Hello报文中包含如下一些内容:1、始发路由器的router-id2、始发路由器接口的area-id3、始发路由器接口的地址掩码4、始发路由器接口的authentication type和authentication message5、始发路由器接口的hello-interval6、始发路由器接口的router dead-interval7、路由器优先级8、指定DR和BDR9、标识可选性能的5个标志位10、始发路由器的所有有效neighbor router-id(始发路由器接收到了它们的hello报文)以两台路由器之间建立邻居关系为例:1、R1发送hello报文(组播或者单播,链路层类型来定),neighbor字段为空2、R2收到hello报文,为R1建立一个邻居数据结构,并把R1的邻居状态臵为init,然后向R1发送hello报文,neighbor字段中包含R1的rougerID,表示自己收到了R1的hello报文。
3、R1收到R2的hello报文之后,为R2建立一个邻居数据结构,并把邻居状态臵为2way,然后向R2发送hello报文,报文的neighbor字段中包含R2的routerID。
4、R2收到R1的hello报文后,把R1的邻居状态臵为2way至此,邻居关系就建立起来了,邻居路由器之间会按时发送hello报文进行保活,如果hello 报文超时,那么该路由器就会宣告这里邻居失效。
OSPF_协议的解析及详解
OSPF_协议的解析及详解OSPF(Open Shortest Path First)协议的解析及详解一、引言OSPF是一种用于路由选择的链路状态路由协议,广泛应用于大型企业网络和互联网中。
本协议的目标是通过计算最短路径来实现网络中的数据转发,并提供高可靠性和快速收敛的路由选择机制。
二、协议概述OSPF协议基于链路状态数据库(Link State Database)来构建网络拓扑,并通过计算最短路径树来确定数据的转发路径。
它使用了Dijkstra算法来计算最短路径,并支持分层的网络设计,可以适应复杂的网络环境。
三、OSPF协议的工作原理1. 邻居关系建立OSPF协议通过Hello消息来建立邻居关系,邻居关系的建立是协议正常工作的前提。
Hello消息包含了路由器的标识、优先级、网络类型等信息,用于建立邻居关系。
2. 链路状态数据库同步邻居关系建立后,路由器之间开始交换链路状态信息。
每个路由器将自己的链路状态信息广播给邻居,邻居收到后更新自己的链路状态数据库。
通过链路状态信息的交换,所有路由器最终达到链路状态数据库的同步。
3. 最短路径计算在链路状态数据库同步完成后,路由器使用Dijkstra算法计算最短路径树。
最短路径树是基于链路状态数据库构建的,它表示了从当前路由器到其他所有路由器的最短路径。
4. 路由表生成最短路径计算完成后,每个路由器根据最短路径树生成自己的路由表。
路由表中包含了到达目的网络的下一跳路由器和距离等信息。
5. 路由更新和收敛当网络发生变化时,路由器会发送路由更新消息通知邻居。
邻居收到路由更新消息后,根据收到的信息更新自己的链路状态数据库,并重新计算最短路径。
通过路由更新和最短路径计算,网络可以快速收敛到新的状态。
四、OSPF协议的特点1. 分层设计OSPF协议支持分层的网络设计,可以将大型网络划分为多个区域(Area),每个区域内部使用独立的链路状态数据库和最短路径计算,减少了网络的复杂性。
ospf协议的工作原理
ospf协议的工作原理OSPF(Open Shortest Path First)是一种基于链路状态的内部网关协议(IGP),它用于在自治系统内部路由器之间进行动态路由选择。
以下是OSPF协议的工作原理:1. 邻居发现:OSPF路由器通过发送Hello报文来发现相邻的OSPF路由器,并建立邻居关系。
当两个路由器在相同的网络上收到对方的Hello报文时,它们就会成为邻居。
2. 路由器状态:每个OSPF路由器都会维护一个链路状态数据库(Link State Database),其中包含该路由器所知的所有网络和链路的状态信息。
这些信息包括链路带宽、延迟、可靠性等。
3. 链路状态广播:OSPF路由器通过发送链路状态广播(LSA)将自己的链路状态信息传播给网络中的其他路由器。
LSA包含了该路由器所连接网络的拓扑信息以及链路状态。
4. 最短路径计算:每个OSPF路由器根据收到的链路状态信息计算出到达目的网络的最短路径。
OSPF使用Dijkstra算法来计算最短路径,其中考虑了链路的带宽、延迟等因素。
5. 路由更新:一旦计算出最短路径,OSPF路由器就会更新自己的路由表,并将更新后的路由信息传播给其他路由器。
这样,网络中的每个路由器都会拥有到达目的网络的最短路径信息。
6. 动态路由选择:OSPF路由器根据路由表中的信息选择传输数据的最佳路径。
OSPF使用最短路径优先的原则进行路由选择,选择路径时首先考虑路径的成本和可靠性。
7. 路由调整:当网络拓扑发生变化或链路状态信息发生变化时,OSPF路由器会重新计算最短路径并更新路由表。
这种动态的路由调整可以提高网络的可靠性和适应性。
总的来说,OSPF协议通过邻居发现、链路状态广播、最短路径计算和路由更新等步骤实现动态路由选择,并通过路由调整来适应网络拓扑的变化,从而提供高效、可靠的内部网关路由。
解析CISCO设备中OSPF路由协议邻居关系建立的过程
OSPF( Open Shortest Path First 开放式最短路径优先 ) 是 所有商厂都支持的采用最短路径优先算法的链路状态 ( Link - state) 路由协议。Link 指的是路由器上的哪些接口运行了 此协议, 这些接口的特征, 包括 IP 地址、 子网掩码、 开销值等 信息; state 指 的 是 此 路 由 器 与 谁 建 立 了 邻 居 关 系 。 Link - state 基本上描述了整个网络的拓扑结构 , 对路由的处理更精 确。为了对路由处理更精确 , 它需要做好以下三件事 , 一是 每个路由器都需要知道自己的邻居是谁 , 二是每个路由器需 要知道在自己本区域内有哪些器由器 , 三是需要通过 SPF 算 法来对链路状态数据库的拓扑结构 , 进行计算, 算出通往目 的网络的最佳路径。 OSPF 形成了三张表。 邻居表: 就是 为了做好这三件事, 记录与谁建立了邻居关系 ; 链路状态数据 邻居关系数据库, LSDB) 表: 记录了哪些路由器, 产生 库( Link - state DataBase , LSA ) 信 息, 了哪些链路状态通告 ( Link State Advertisement, LSA 泛洪到本区域内所有 OSPF 路由器, 而不仅是直连的路 由器, 收集由 OSPF 路由器生成的所有 LSA, 以创建本区域内 同步的链路状态数据库 ; 路由表: 使用 SPF 算法计算到每个 目的地的最短距离, 并将他们放到自己的路由表里 。 OSPF 路由协议有五种类型的包 , Hello 包, Database Description( 数据库描述包) , Link - State Request( 链路状态请求 Link - Stae Update ( 链路状态更新数据包 ) , Link - 数据包) , State Acknowledgment( 链路状态确认包) 。 其中 Hello 包负责建立和维护邻居关系 。 每一个 Hello 数据包都包含以下信息 : ( 一) Router ID。始发路由器的路由器 ID, 在 OSPF 区域 内唯一标识一台路由器的标识 。 可以用以下方法获得路由 Router ID 由 路 由 器 的 ID, 首 先, 如果是使用命令 器的 ID, router - id 手工配置 Router ID, 就优先使用此 Router ID; 其 如果没有手工配置 Router ID, 路由器就选取它所有的环 次, 回( loopback) 接口上数值最高的 IP 地址; 最后如果路由器没
OSPF详解
OSPF详解这篇⽂章将会让你对OSPF有⼀个⼤概的认识,仅仅是个认识,下⾯进⼊正题。
OSPF它是⼀个链路状态路由协议,运⾏OSPF的路由器它是知道知晓整个⽹络拓扑结构,这就使得它不易发⽣路由环路,它本⾝也⽀持VLSM,路由汇总,它还引⼊了Area(区域)的概念使得OSPF能够⽀持更⼤规模的⽹络。
OSPF它只要分为两个版本⼀个是针对IPV4的OSPFv2,⼀个是针对IPV6的OSPFv3。
OSPF的⼀些重要概念Router-ID:它是⼀个长度为32bit数值,⽤于OSPF域中唯⼀标识⼀台OSPF路由器。
MA(多路访问)⽹络:指在同⼀个共享介质中连接着多个设备的⽹络,任意两台设备之间都可以实现⼆次通信。
DR与BDR:OSPF会在每个MA⽹络中选举⼀个DR(指定路由器)和⼀个BDR(备⽤指定路由器),DR主要是负责监听⽹络拓扑中变更信息并通知给其他路由器,BDR主要监视DR状态并在DR发⽣故障后接替它的⼯作。
邻居表:当⼀个接⼝激活OSPF后,该接⼝将会周期性地发送hello报⽂从⽽发现直连路由上的邻居,当发现邻居后邻居信息(它包括Router-ID,address,DR,BDM,MTU,等)就会写⼊OSPF邻居表。
LSDB(链路状态数据库):运⾏在链路状态协议的路由器在⽹络中泛洪的状态信息即LSA(路由状态通告)路由器将所有收集到的LSA装载到⾃⼰的LSDB,所有你可以把它看做成⼀个集合,⽽他的⼦集就是LSA。
你也可以把它看做⼀个对OSPF⽹络的⼀个完整的认知。
OSPF路由表:它是根据LSDB的数据运⾏SPF算法得到⼀颗以⾃⼰为根,⽆环的最短路径树。
基于这棵树能够到达⽹络的最佳路径,从⽽得到的路由信息就组成了OSPF路由表。
度量值:OSPF使⽤Cost(开销)作为它的度量值。
值越⼩路径越优。
报⽂类型:报⽂类型分为五种主要有hello报⽂,DD报⽂,LSR报⽂,LSU报⽂,LSAck报⽂。
邻居关系:在通过Hello报⽂发现彼此并确定双⽅通讯后,边形成了邻居关系。
OSPF的基本工作原理
OSPF的基本工作原理OSPF(开放最短路径优先)是一种基于链路状态的内部网关协议(IGP),广泛应用于大型企业和互联网服务提供商(ISP)的网络中。
OSPF通过动态路由选择和路径计算来提供快速且可靠的数据包传输。
下面将详细介绍OSPF的基本工作原理。
一、OSPF邻居关系建立二、链路状态广播(LSA广播)一旦OSPF路由器建立邻居关系,它就会周期性地将链路状态广播给所有邻居。
这个过程称为LSA广播。
LSA包括了路由器的链路和连接的状态信息,比如链路可用性和链路的度量值。
每个OSPF路由器都收集并保存这些LSA信息。
三、链路状态数据库(LSDB)更新和计算最短路径每个OSPF路由器都会保存收到的链路状态信息,并存储在本地的链路状态数据库(LSDB)中。
OSPF使用Dijkstra算法计算最短路径树(SPF tree)以确定到达目的地址的最短路径。
OSPF将LSDB中的信息与通过Hello消息收到的邻居连接的信息结合在一起,计算出到达目的网络的最短路径。
四、路由表生成当最短路径树计算完成后,OSPF路由器就会生成路由表。
路由表包含了到达各个目的网络的最佳路径。
每个OSPF路由器只会在路由表中存储最优的路径。
五、链路状态更新和资源通告OSPF中链路状态的变化会导致链路状态数据库的更新。
当链路状态发生变化时,只有受到影响的路由器会更新链路状态信息,并将更新的信息广播给邻居。
这样,网络中的所有路由器都会同步更新链路状态数据库。
受到影响的路由器也会相应地更新最短路径树并重新计算路由表。
六、路径选择与数据包转发在路由表填充完毕后,OSPF路由器就开始根据目的地址选择最佳的路径。
当收到数据包时,路由器会根据最佳路径转发数据包。
OSPF利用目标网络的信息来计算出到达目标网络的最佳路径,并将数据包发送到相应的下一跳路由器。
七、路由器间的通信与同步在OSPF网络中,不同的路由器之间需要相互通信和同步信息。
路由器之间通过邻居关系建立连接并交换链路状态信息。
ospf工作过程
OSPF-工作过程2011-08-19 09:41:06 我来说两句收藏我要投稿1、状态机的变化过程:(1) OSPF路由器接口up,发送Hello包,(NBMA模式时将进入Attempt状态)。
(2) OSPF路由器接口收到Hello包,检查Hello中携带的参数,如果匹配,进入Init状态;并将该Hello包的发送者的Router ID,添加到Hello包(自己将要从该接口发送出去的Hello 包)的邻居列表中。
(3) OSPF路由器接口收到邻居列表中含有自己Router ID的Hello包,进入Two-way状态,形成OSPF邻居关系,并把该路由器的Router ID添加到自己的OSPF邻居表中。
(4) 在进入Two-way状态后,广播、非广播网络类型的链路,在DR选举等待时间内进行DR 选举。
点对点没有这个过程。
(5) 在DR选举完成或跳过DR选举后,建立OSPF邻接关系,进入exstart(准启动)状态;并通过交换DBD交换主从路由器,由主路由器定义DBD序列号,Router ID大的为主路由器。
目的是为了解决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-10 10:31:46 我来说两句作者:xuzhiming302收藏我要投稿OSPF是一种基于SPF算法的链路状态路由协议。
HC面试题题目完整版
H C面试题题目集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]1.OSPF邻接形成过程?首先通过HELLO报文建立邻居关系然后通过网络类型看是否要选出DR/BDR,如果需要就根据HELLO报文里的DR优先级和routerid选出DR和BDR通过第一个DD报文选出主从关系然后发送LSRLSULSack报文完成同步2.OSPF中承载完整的链路状态的包?LSU3.链路状态协议和距离矢量协议的比较?距离矢量是拿跳数作为COST值的衡量,链路状态协议主要是以带宽做为COST值MTU,接口稳定性4.OSPF防环措施?SPF算法本身就是一种无环的算法,OSPF多区域时,非骨干区域只有通过骨干区域传递路由5.OSPF是纯链路状态的协议吗?在单区域中,OSPF是纯链路状态的协议,在多区域的情况下,区域内部是链路状态,区域间是距离矢量6.OSPF中DR选举的意义DR选举时的网络类型DR和其它路由器的关系选举DR可以降低需要维护的邻接关系数量只有NBMA网络和broadcast网络7.OSPF的NSSA区域和其它区域的区别?NSSA区域和普通区域的区别是不允许4类,5类LSA的通过,但允许7类LSA的通过NSSA区域和STUB区域的区别是NSSA是STUB的变形,允许7类LSA的注入8.OSPF的LSA类型,主要由谁生成?1类是所有路由器都能生成2类是由DR生成3类是由ABR生成4类是由ABR生成5类是由ASBR生成7类是由ASBR生成9.IBGP为什么采用全互联不采用全互联怎么部署10.BGP发布者从IBGP对等体学习到的路由不向其他IBGP对等体发布可以采用反射和联盟10.路由反射器的反射原则?如果从客户机学习到的路由,反射给所有客户机和非客户机如果从非客户机学习到的路由,仅反射给客户机,不反射给其他非客户机从EBGP对等体学习到的路由,反射给所有客户机和非客户机11.OSPF邻居形成过程?id、认证类型和密码、hello时间和dead时间是否一致特殊位的标记(特殊区域)两台路由器由INIT变为2-WAY12.OSPF有几类LSA?一共有11类LSA,常用的有7种13.OSPF的NSSA区域与其它区域的通信方法?14.PPP协商过程?通过LCP报文来建立链路如果开启验证则开始PAP和CHAP验证通过NCP来进行网络层协商15.OSPF没有形成FULL状态的原因?16.OSPF在NBMA网络要配些什么?手工指定邻居17.OSPF虚链路在什么情况下用到为什么要用虚链路18.骨干区域被分割非骨干区域与骨干区域不相连当骨干区域被分割和非骨干区域与骨干区域不相连的情况下,会导致OSFP无法正常学习到路由18.OSPF虚链路的作用为什么有骨干区域19.当骨干区域被分割和非骨干区域与骨干区域不相连的情况下,会导致OSFP无法正常学习到路由任何非骨干区域之间都无法互相学习路由,只有通过骨干区域才能学习19.RIP路由协议环路问题解决机制?路由毒化水平分割毒性逆转定义最大值抑制时间触发更新20.OSPF邻居形成过程?21.PPP协商过程?22.CHAP认证过程?由主验证方发起请求,将自己本端的用户名和一个随机报文发送给被验证方被验证方通过发过来的用户名在本地用户表中查找对应的密码,并通过MD5算法对报文ID,密码和随机报文生成一个摘要,并将摘要和自己的用户名一起发给主验证方主验证方用MD5算法对本地保存的密码,报文ID和随机报文生成一个摘要,与被验证方发送过来的摘要进行对比,如果相同则验证通过,反之则不通过23.LSA5外部路由可以在ABR上做汇总吗?24.OSPF有哪些区域?骨干区域非骨干区域STUB区域totallystub区域NSSA区域totallyNSSA区域25.stub区域特点nssa区域特点26.STUB区域过滤4类5类LSANSSA区域过滤4类5类LSA但允许7类LSA通过26.OSPF有那几种协议包以及他们的作用27.HELLO报文用于建立和维护邻居关系DD报文用于邻居间的数据库同步LSR报文用于请求自己所需的LSALSU报文用于发送对方所需的LSALSack报文对收到的LSA进行确认27.OSPF划区域的好处?减小LSDB表的大小28.OSPF的选路原则;影响OSPF邻居形成的因素及解决方法。
OSPF动态路由协议笔记之(二):基本工作原理(下)
OSPF动态路由协议笔记之(⼆):基本⼯作原理(下)OSPF动态路由协议笔记之(⼆) : 基本原理(下) 本笔记承接上⼀节,继续对OSPF报⽂的报⽂头部和报⽂类型进⾏详尽的介绍,接着介绍OSPF建⽴邻接关系的过程(即LSDB同步的过程),最后补充上⼀节笔记中提及的DR和BDR选举的过程。
OSPF报⽂类型及作⽤ (1)OSPF协议报⽂头部 RIP路由器之间是基于UDP 520的报⽂进⾏通信,OSPF也有其规定的通信标准。
OSPF使⽤IP承载其报⽂,IP报⽂头部协议号为89。
在OSPF Packet部分,所有的OSPF报⽂均使⽤相同的OSPF报⽂头部。
报⽂头部各字段含义如下: ①Version(1个字节):版本。
对于当前所使⽤的OSPFv2,该字段的值为2。
② Type(1个字节):类型。
OSPF报⽂类型。
其值分别代表以下⼏种报⽂类型: l 1:Hello报⽂; l 2:DD报⽂; l 3:LSR报⽂; l 4:LSU报⽂; l 5:LSAck报⽂。
③Packet length(2个字节):数据包长度。
表⽰整个OSPF报⽂的长度,单位是字节。
④Router ID(4个字节):发送该报⽂的路由器标识。
表⽰⽣成此报⽂的路由器的Router ID。
⑤ Area ID(4个字节):发送该报⽂的所属区域。
表⽰此报⽂需要被通告到的区域。
⑥Checksum(2个字节):校验和。
⽤于校验报⽂的完整性,其校验的范围是整个OSPF报⽂,包括OSPF报⽂头部。
⑦Auth Type(2个字节):验证类型。
为0时表⽰不认证;为1时表⽰简单的明⽂密码认证;为2时表⽰加密(MD5)认证。
⑧Authentication(8个字节):鉴定字段。
认证所需的信息,该字段的内容随AuType(验证类型)的值不同⽽不同。
当验证类型为0时未作定义;类型为1时此字段为密码信息;类型为2时此字段包括Key ID、MD5验证数据长度和序列号的信息,MD5验证数据添加在OSPF报⽂后⾯,不包含在Authenticaiton字段中。
OSPF的邻接关系建立需要经历7种状态
OSPF的邻接关系建⽴需要经历7种状态OSPF的邻接关系建⽴需要经历7种状态DOWN—>INIT—>TWO WAY—>EXSTART—>EXCHANGE—>LODING—>FULL下⾯具体描述这7个状态的发⽣过程:DOWN——运⾏OSPF协议的接⼝还没有收到hello包时的状态,此时不会发⽣任何建⽴邻居关系的动作INIT——当双⽅收到hello包时将进⼊INIT状态,前提是hello包中必须匹配4个条件,分别为:①hello和dead的时间间隔要相同②area ID要相同③认证⽅式认证⼝令要相同④末节区域标⽰要相同TOW WAY——当收到了邻居发送过来的hello包并且在hello包中看到⼰⽅的RouterID时,将进⼊TOWTOW WAY——当收到了邻居发送过来的hello包并且在hello包中看到⼰⽅的RouterID时,将进⼊TOWEXSTART状态之间进⾏EXSTART——此状态将在邻居之间选择MASTER和SLAVE⾓⾊,⽤于交换DBD信息,拥有⾼RouterID的EXSTART——此状态将在邻居之间选择MASTER和SLAVE⾓⾊,⽤于交换DBD信息,拥有⾼RouterID的MASTER的⾓⾊,因为其RouterID为2.2.2.2,⼤于R1的1.1.1.1。
另,如果邻居之间的MTU值不匹配,将卡在EXSTART状态,这也是唯⼀⼀个卡在EXSTART状态的原因Exchange--当经过Exstart状态选出master和slave⾓⾊后将进⼊Exchange状态,⾸先由master和slave同步DBD信息,最终将完成双⽅DBD信息的同步。
Loading--当DBD信息同步完成后双⽅开始加载LSDB,此状态下将发送LSR和LSU。
Full--此时LSDB构建完成,双⽅数据库保持⼀致,⾄此可以说双⽅已经进⼊了逻辑上的邻接关系,同区域的OSPF路由器维护同⼀张LSDB。
13、OSPF协议工作过程
3 OSPF 的工作过程:建立邻接关系
DR(村长)的选举过程
• (1)登记选民
• 本村的18岁以上公民;本网段的OSPF路由器;
• (2)登记候选人
• 本村内的30岁以上公民;本网段的priority>0的OSPF路由器;
• (3)竞选演说
• 所有的候选人都认为自己应该当村长; • 所有的priority>0的OSPF路由器都认为自己是DR
3 OSPF 的工作过程:邻居发现阶段
小王
小一 小二 小三
你好啊
小王 (1)你好,我叫小王
你好啊
小一
小王
小一
(2)你好,小王,我叫小一
嘻嘻嘻,我 有3邻居
(3)邻居关系建立完成
3 OSPF 的工作过程:邻居发现阶段
D
E
Hello
B
A
C
afadjfjorqpoeru 39547439070713
Hello
2 OSPF 的关键概念
• 路由器ID即Router ID,它是唯一标识运行OSPF协议的一台路由器,经 常设置为掩码为32bits的IP主机地址。
• 产生方法: 手工指定:通过命令router-id ip-address 设置,一般指定逻辑的环回口 地址(环回口地址的稳定性) 自动产生:环回口地址——如果没有手工指定,则选择环回口IP地址; 如果有多个环回口,则比较IP地址大的作为Router ID; 物理接口IP地址——如果没有创建环回口,则选用物理接口IP 地址,如果有多个IP地址,则同样选择IP地址最大的作为Router ID。
Frame Checksum
IP协议号为89
1 OSPF 概述
快速收敛:快速扩散链路状态更新并同步计算路由表; 无路由环路:最短路径优先(SPF)算法; 完全无类别:支持可变长子网掩码(VLSM)和无类域间路由(CIDR); 减少所需的网络带宽:采用触发更新机制; 支持接口的包认证:确保路由计算的安全性; 使用组播方式发送更新:减小了对非相关网络设备的干扰。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
运行OSPF协议的路由器,如果你想正常运转的话,那么就得和其他的路由器建立完全邻接的关系。
因为这种状态下,同一个区域中的所有的路由器的LSDB都是完全同步的、一致的。
呵呵、、、其实呢,应该反过来说,当同一个区域中的所有的路由器的LSDB的完全同步、一致的情况下,OSPF路由器才算是达到了这个完全邻接的状态!
有这么几个过程:
OSPF 处于down 状态----àInit状态-----à双向(two—way)状态-----à邻接状态--à预启动( exstart )状态------à交换(exchange )状态----à完全( full )邻接状态!
当配置了OSPF的路由器刚刚启动的时候,这个协议还是处于down的状态的,为什么呢?因为还没有其他的路由器和他交换信息啊。
所以他接下来要做的就是通过所有的OSPF接口向外发送HELLO分组,并且分组的目标地址是224.0.0.5 (这个地址代表的是哪些路由器呢?我认识吧,他代表的是与发送HELLO分组的路由器直接相连的那些路由器,就是指的那些直连路由器。
并且在这里需要说明的是,HELLO分组不会被路由,这个HELLO分组的行程只有一跳。
那我们看到的“HELLO分组在整个区域中的多个路由器之间进行扩展”又该如何解释呢?HELLO分组在同一个区域中的多个路由器之间进行扩展,运用的不是路由功能,而是一个路由器发送这个HELLO分组到了直接相连的所有的路由器后,这些路由器就复制一个副本,并且将自己的信息添加进去后,就还是运用目标地址为224.0.0.5来分发这个HELLO分组到与自己直接相连的各个路由器上。
就这样一直下去,以此类推!)
所有的直连OSPF路由器接收到这个路由器发送来的HELLO分组后,就将这个路由器加入到邻居列表中。
这就是Init状态!(这里说的这个“邻居列表”说的是HELLO分组中的数据部分。
如果不理解的话,可以去看看5种类型的OSPF 分组的格式)
所有的这些收到HELLO分组的路由器,都会向发送这个HELLO分组的路由器发送一个单播应答分组;其中包含着自己的信息(因为人家这个路由器也不是死的啊,人家也同时在进行这个过程啊,人家也有自己的一些邻居啊),这个发回去的应答分组中的“邻居列表”中自然是包含那个开始发送这个HELLO分组的路由器了。
现在这个应答分组就是返回给他的。
原来那个路由器接收到这个应答分组后,先看看这个邻居列表中是否包含自己。
如果包含自己的话,就说明一个问题:即对方已经知道我的存在了。
并且接下来就将这个HELLO分组中带来的那些邻居表中包含的路由器ID加入到自己的LSDB中。
这样一来呢,这些路由器就建立了双向(two-way )状态。
到此为止,所有的路由器之间都建立了双向状态,即路由ID彼此出现在对方的邻居列表中;
接下来,要看看网络类型,确定下是否有必要进行DR与BDR的选举。
如果这个网络属于广播类型的网络(如以太网),那么就需要进行选举。
具体的选举过程可以自己去查阅相关的资料。
选择了DR与BDR后,那么网络中的路由器都
只与这种身份的路由器建立双向邻接关系,然后路由器之间才能进行交换链路状态信息。
注:当一个路由器加入到已经有DR与BDR的广播网络时,将同所有的路由器(包括DR、BDR、DROTHER)建立双向状态,但是只与DR与BDR建立双向邻接关系!并且我们需要知道的是,网络中的所有的路由器都会定期的进行HELLO包的交换,以确保通信不中断。
默认的时间间隔是10S。
这个HELLO分组中包含DR、BDR与一个路由器列表,其实他们都是邻居,也可以说是已经相互建立了双向状态的路由器。
还想来分析下这个“双向状态”与“邻接”状态的不同之处:
双向状态:这个状态下的路由器之间定期进行交换的是HELLO分组,通过这个HELLO分组可以学习到的是所有可能存在的邻居。
这个定期的交换,指的是10S 一次,并且这个对象说的是同一个区域中的所有的路由器,他们相互之间都会定期的进行这个动作,而不是某些具备特定条件的路由器才进行定期的交换!
邻接状态:这种状态是在“双向状态”状态下的一种提升。
且,这种状态下进行交换的已经不是HELLO分组了,而是LSU了。
并且,这种动作并不是定期的,而是触发式的,即只要有链路状态的改变,就会进行相应的LSU的建立、发送。
并且这个动作也不是发生在同一个区域中的所有路由器之间了。
而是发生具有特定身份的路由器之间的。
即发生在一个普通的路由器(DROTHER)与一个特殊角色路由器(DR/BDR)之间。
上面是选举了DR、BDR,各个路由器与DR、BDR建立了双向邻接关系,此时路由器就是处于预启动(exstart)状态了。
这个状态下,路由器已经做好了发
现有关互联网络的链路状态信息并建立LSDB的准备。
处于预启动状态后,DR与BDR之间建立主从关系。
接下来他们就开始互相交换DBD(此时就算是进入了交换状态),这个就是5种OSPF分组中的第二种。
里面包含的是LSDB中LSA条目的摘要信息。
LSA是关于链路或者网络的。
摘要信息包括链路状态类型、通告LSA的路由器的IP地址、链路的成本和序列号。
当路由器收到DBD后并不是将其中的包含的内容全部的收下,而是一步一步的采取下面的步骤:
1、首先给对方一个LSACK,来确认下已经收到了这个分组;
2、将收到的信息同本身的LSDB中信息进行比较。
如果有更新的条目的话,那么就向发送方发送一个LSR(这时候你就想了,他知道这个LSR发给谁吗?只要想要的是什么吗?呵呵、当然知道了,因为这些信息都在发送来的LSA摘要信息中包含着呢。
尤其是那个“通告LSA的路由器的地址”。
)
3、对方用LSU分组进行响应,该LSU中包含着有关被请求的条目的完整信息。
同样呢,收到这个LSU分组后,也要给对方一个LSACK进行确认下!
4、路由器将提供来的新的完整的LSA条目加入到自己的LSDB中。
彼此给对方提供所需要的全部LSA后相邻路由器就处于同步和完全的邻接状态了。
上面说的是DR与BDR之间完全邻接的这么一个过程,那么其他的互为邻接关系的路由器达到完全邻接的状态也是这么一个过程。
其实说的就是DRother 与DR之间的完全邻接过程!
那么如何来判定条目的新旧呢?通过摘要信息中的序列号字段就可以了,这个
序列号是个长32位的字段,最小的一个序列号是0X80000001,最大的是0X8FFFFFFF。
当序列号越大的时候,就表示越新!
路由器想转发数据流的话,必须处于完全邻接状态。
至此,区域内所有路由器的LSDB都相同。