OSPF建立邻居的过程
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邻居状态建立
Init:收到hello参数协商成功,但是没有看到自己的router-id 。
同时发送携带对端router-id 的Hello2-way:参数协商成功,看到了自己的router-id 。
同时发送携带对端router-id的Hello 双向到达2-WAY后会周期性发送HELLO来维护邻居关系。
Exstart:发送空DD报文,前两个DD报文用于进行Master/salve ,此时DD报文不含任何LSA 信息为什么要建议主从关系?目的是为了保证后续exchange交互DD报文的可靠性和可控性。
为什么DD报文的交互需要可靠性和可控性?可靠性:OSPF协议是直接封装在IP报文之上的,但是IP报文本身是不保证报文可靠传递的网络层协议,所以OSPF协议必须设计自身的可靠性机制,必须实现自身的可靠性。
可控性:DD报文是用于交换LSDB的摘要信息,可能需要发送多个DD报文才能交换完毕,需要表明何时开始发送,何时表明发送完毕,需要有个控制能力。
可靠性:通过DD的seq完成的可控性:通过DD报文的I 、M 、MS来完成。
Exstart路由器会随机生成seq ,并且I \M \MS都置1I = 1 代表第一次发DD报文0 代表不是第一次发M= 1 代表还没发完,后面还要发0代表已经发完MS= 1 代表我为主0 代表我为从何为mster/何为salve :router-id大的为master ,小的为salve这也是router-ID不能冲突的原因,一样后会导致后续exstrat主从选举无法进行。
后续邻居也就建立不起来。
M/S选举完毕后就会进入Exchange状态Exchang:此时发送DD报文就会携带LSDB中LSA的摘要信息(LSA的头部信息)LSA的头部信息是用于唯一的标识一条LSA以及用于判断LSA的新旧。
所谓LSDB同步就是指邻居之间交换彼此没有的LSA以及用新的LSA替换掉旧的LSA,从而使邻居LSDB保持一致。
ospf协议原理
ospf协议原理
OSPF(Open Shortest Path First)是一种链路状态路由协议,
用于计算和选择最短路径来转发数据包。
1. 邻居发现:每个OSPF路由器(也称为OSPF进程)在启动时,通过向本地网络中的其他路由器发送Hello消息来发现邻居。
当两个路由器接收到对方的Hello消息时,它们将建立一
个邻居关系。
2. 路由器链路状态数据库(LSDB)同步:一旦邻居关系建立,路由器之间将开始同步链路状态信息。
每个路由器将收集关于它所连接网络的链路状态信息,并将其存储在链路状态数据库中。
链路状态信息包括连接的网络地址、链路的代价(成本)等。
3. SPF计算:一旦链路状态数据库同步完成,每个路由器将使
用Dijkstra算法计算从自身到达所有目标网络的最短路径树(SPF tree)。
在计算过程中,每个路由器将选择代价最小的
路径。
4. 路由表生成:根据SPF树的结果,每个路由器将生成本地
的路由表。
路由表中包含了到达每个目标网络的下一跳路由器以及相应的接口信息。
5. 连通性维护:一旦路由表生成完成,OSPF协议将定期发送Hello消息来维护邻居关系和链路状态信息。
如果某个邻居在
一段时间内没有收到Hello消息,将被认为是不可达的,邻居
关系将被删除,并相应地更新链路状态数据库和路由表。
6. 路由选择和数据包转发:当有数据包需要转发时,路由器将使用路由表中的信息选择最佳路径,然后将数据包发送到下一跳路由器。
总结来说,OSPF通过邻居发现、链路状态数据库同步、SPF 计算、路由表生成、连通性维护和数据包转发等步骤来实现最短路径路由的计算和选择。
简述ospf工作原理
简述ospf工作原理
OSPF的工作原理是基于链路状态的路由算法。
它使用信标(Hello)消息来建立、维护和验证邻居关系,并通过链路状态更新(LSU)消息来广播链路状态信息。
以下是OSP的工作原理的简要描述:
1. 邻居发现:路由器通过发送Hello消息来发现相邻的OSPF 路由器,并建立邻居关系。
Hello消息包含发送路由器的IP地址、区域ID和Hello间隔等信息。
2. 状态同步:邻居关系建立后,相邻的路由器交换链路状态信息,即每个路由器将其所知道的链路状态信息记录在链路状态数据库(LSDB)中,并使用数据库描述(DBD)消息进行交换。
该过程确保所有的路由器都拥有相同的链路状态信息。
3. 最短路径计算:每个路由器在获得完整的链路状态信息后,使用Dijsktra算法计算出到达所有目的地的最短路径树,这个树被称为最短路径树(SPF Tree)。
4. 路由更新:每个路由器根据最短路径树生成路由表,并将路由更新信息以链路状态更新(LSU)消息的形式发送给相邻的路由器。
这样,所有的路由器都能够互相交换自己的路由表,并将其更新到本地的路由表中。
5. 路由选择:根据本地路由表中的路由信息,路由器可以根据某种路由选择策略选择最佳的路由进行数据转发。
通过使用这种基于链路状态的路由算法,OSPF能够实现快速收敛、网络拓扑灵活性以及容错性。
同时,在OSPF网络中,每个区域之间可以通过区域边界路由器(ABR)进行连接,并在多区域网络中实现更高效的路由。
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); 减少所需的网络带宽:采用触发更新机制; 支持接口的包认证:确保路由计算的安全性; 使用组播方式发送更新:减小了对非相关网络设备的干扰。
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。
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协议的工作原理
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协议通过邻居发现、链路状态广播、最短路径计算和路由更新等步骤实现动态路由选择,并通过路由调整来适应网络拓扑的变化,从而提供高效、可靠的内部网关路由。
OSPF_协议的解析及详解
OSPF_协议的解析及详解OSPF协议的解析及详解一、介绍OSPF(Open Shortest Path First)是一种用于互联网协议(IP)网络中的动态路由协议。
它是一种链路状态路由协议,用于在路由器之间交换路由信息,以确定最短路径并进行路由选择。
本协议详解将介绍OSPF协议的工作原理、协议数据单元(Protocol Data Unit,PDU)格式、邻居关系建立、路由计算算法以及网络拓扑维护等内容。
二、OSPF协议的工作原理1. 链路状态数据库(Link State Database,LSDB):每个OSPF路由器都维护一个LSDB,其中包含了整个网络的链路状态信息。
LSDB中的每一条链路状态都包含了该链路的状态、成本、邻居路由器等信息。
2. 链路状态广播:OSPF路由器通过链路状态广播(Link State Advertisement,LSA)向相邻的路由器发送链路状态信息。
这些LSA包含了路由器所知道的链路状态信息。
3. 链路状态数据库同步:当一个OSPF路由器收到LSA时,它会更新自己的LSDB,并将新的LSA广播给其他相邻路由器。
通过这种方式,所有的OSPF路由器能够保持LSDB的同步。
4. 最短路径计算:OSPF使用最短路径优先算法(Shortest Path First,SPF)来计算最短路径。
该算法基于Dijkstra算法,通过比较链路的成本来确定最短路径。
5. 路由选择:每个OSPF路由器根据最短路径计算的结果选择最佳路径,并将该路径添加到自己的路由表中。
三、OSPF协议数据单元(PDU)格式OSPF协议使用不同类型的PDU来交换路由信息。
以下是常见的OSPF PDU类型及其格式:1. Hello PDU:用于邻居关系建立和维护。
包含了路由器的ID、优先级、Hello间隔等信息。
2. Database Description (DBD) PDU:用于在邻居路由器之间交换链路状态数据库的摘要信息。
ospfv3的原理和应用
OSPFv3的原理和应用1. OSPFv3简介OSPFv3(Open Shortest Path First version 3)是一种用于IPv6网络的动态路由协议。
它是IPv6网络中最常用的内部网关协议(IGP),用于计算和选择最佳路径,实现IPv6网络的自动路由分发。
2. OSPFv3的工作原理OSPFv3基于链路状态路由协议(Link State Routing Protocol),通过交换链路状态信息来计算网络中的最短路径。
下面是OSPFv3的工作原理的步骤:1.邻居发现:路由器通过发送Hello消息来建立与相邻路由器的邻居关系。
Hello消息中包含路由器的标识和接口及其启用OSPFv3状态的信息。
2.建立邻居关系:当两个路由器接收到对方的Hello消息,并验证消息中的信息正确时,它们就会建立邻居关系。
邻居关系的建立要求路由器具有相同的Area ID。
3.链路状态数据库同步:邻居关系建立后,路由器会交换链路状态数据库(Link State Database)中的信息,使路由器之间的数据库保持同步。
链路状态数据库记录了网络中所有路由器和链路的信息。
4.最短路径计算:路由器使用Dijkstra算法来计算网络中的最短路径。
该算法基于链路状态数据库中的信息,通过计算最短路径树来确定每个目的地的最短路径。
5.路由表更新:最短路径计算完成后,每个路由器都会更新自己的路由表,将所选的最佳路径添加到路由表中。
这样,路由器就能够根据路由表中的信息来转发数据包。
3. OSPFv3的应用OSPFv3广泛应用于IPv6网络中,为网络提供高效的动态路由功能。
下面是OSPFv3在实际应用中的几个方面:1.企业网络:OSPFv3被广泛用于企业网络中,特别是大型企业网络。
它能够自动计算最佳路由,确保数据在网络中的快速传输。
2.服务提供商网络:许多大型互联网服务提供商(ISP)使用OSPFv3作为核心路由协议,以提供高可靠性和高性能的网络连接。
解析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(开放最短路径优先)是一种基于链路状态的内部网关协议(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算法的链路状态路由协议。
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算法的工作流程
ospf算法的工作流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!1. 建立邻居关系:OSPF 路由器通过发送 Hello 数据包来发现和建立邻居关系。
ospf邻居建立过程
ospf邻居建⽴过程
1.
hello报⽂的作⽤
邻居发现:⾃动发现邻居路由器。
邻居建⽴:完成Hello报⽂中的参数协商,建⽴邻居关系。
邻居保持:通过Keepalive机制,检测邻居运⾏状态。
hello报⽂的发送时间,根据链路的不同为10s和30s,⽤于周期性更新
hello报⽂还有⼀个deadtime为⽼化时间,这个时间必须是hello时间的4倍,如果不是则不能建⽴邻居关系。
可以看到图中的RTA对RTB发送hello报⽂,此时报⽂内的neighbor为null,⽤于发现邻居,当RTB收到这条报⽂时,RTB的状态为init。
RTB与RTA发送neighbor为null的⽤于发现邻居的hello时是同步的,当RTB收到hello后,会根据数据包中的源地址了解到RTA是⾃⼰的邻居,于是发送新的hello报⽂⽤于建⽴邻居关系,此时报⽂的neighbor为RTA的RouterID,当RTA收到这条报⽂时从init进⼊2way状态,同时RTA也会发送neighbor为RTB的RouterID的hello报⽂,当RTB收到时从init进⼊到2way状态。
那么OSPF是怎么发现邻居的呢,因为不知道对⽅的IP地址所以肯定不可以采⽤单播的形式,它使⽤的是组播的形式发送hello报⽂,⽬的地址发送的224.0.0.5,对于NBMA⽹络,也就是不⽀持组播的⽹络ospf需要⼿动指定邻居的ip地址。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.R1的一个连接到广播类型网络的接口上激活了OSPF协议,并发送了一个HELLO报文(使用组播地址224.0.0.5)。
由于此时R1在该网段中还未发现任何邻居,所以HELLO报文中的Neighbor字段为空。
2.R2收到R1发送的HELLO报文后,为R1创建一个邻居的数据结构。
R2发送一个HELLO报文回应R1,并且在报文中的Neighbor字段中填入R1的Router -id,表示已收到R1的HELLO报文,并且将R1的邻居状态机置为Init
3.R1收到R2回应的HELLO报文后,为R2创建一个邻居的数据结构,并将邻居状态机置为Exstart状态。
下一步双方开始发送各自的链路状态数据库。
为了提高发送的效率,双方需先了解一下对端数据库中那些LSA是自己所需要的(如果某一条LSA自己已经有了,就不再需要请求了)。
方法是先发送DD报文,DD报文中包含了对本地数据库中LSA的摘要描述(每一条摘要可以惟一标识一条LSA,但所占的空间要少得多)。
由于OSPF直接用IP报文来封装自己的协议报文,所以在传输的过程中必须考虑到报文传输的可靠性。
为了做到这一点,在DD报文的发送过程中需要确定双方的主从关系。
作为Master的一方定义一个序列号seq,每发送一个新的DD报文将seq 加一。
作为Slave的一方,每次发送DD报文时使用接收到的上一个Master的DD报文中的seq。
实际上这种序列号机制是一种隐含的确认方法。
如果再加上每个报文都有超时重传,就可以保证这种传输是可靠的。
R1首先发送一个DD报文,宣称自己是Master(MS=1),并规定序列号为x。
I=1表示这是第一个DD报文,报文中并不包含LSA的摘要,只是为了协商主从关系。
M=1说明这不是最后一个报文。
4.R2在收到R1的DD报文后,将R1的邻居状态机改为Exstart,并且回应了一个DD报文(该报文中同样不包含LSA的摘要信息)。
由于RT2的Router ID 较大,所以在报文中R2认为自己是Master,并且重新规定了序列号为y。
5.R1收到报文后,同意了R2为Master,并将R2的邻居状态机改为Exchange。
R1使用R2的序列号y来发送新的DD报文,该报文开始正式地传送LSA的摘要。
在报文中R1将MS=0,说明自己是Slave。
6.R2收到报文后,将R1的邻居状态机改为Exchange,并发送新的DD报文来描述自己的LSA摘要,需要注意的是:此时R2已将报文的序列号改为y+1了。
7.上述过程持续进行,R1通过重复R2的序列号来确认已收到RT2的报文。
R2通过将序列号+1来确认已收到R1的报文。
当R2发送最后一个DD报文时,将报文中的M=0,表示这是最后一个DD报文了。
8.RT1收到最后一个DD报文后,发现R2的数据库中有许多LSA是自己没有的,将邻居状态机改为Loading状态。
此时R2也收到了R1的最后一个DD报文,但RT1的LSA,RT2都已经有了,不需要再请求,所以直接将R1的邻居状态机改为Full状态。
9.R1发送LS Request报文向R2请求所需要的LSA。
R2用LS Update报文来回应R1的请求。
R1收到之后,需要发送LS Ack报文来确认。
上述过程持续到R1中的LSA与R2的LSA完全同步为止。
此时R1将R2的邻居状态机改为Full 状态。