OSPF接口状态机
OSPF协议原理
<OSPF之一>OSPF协议原理,基本概念和链路状态2007-07-26 10:021.1 OSPF协议原理OSPF 是Open Shortest Path First(即“开放最短路由优先协议”)的缩写。
它是IETF (Internet Engineering Task Force)组织开发的一个基于链路状态的自治系统内部路由协议。
在IP 网络上,它通过收集和传递自治系统的链路状态来动态地发现并传播路由。
当前OSPF协议使用的是第二版,最新的RFC是2328。
OSPF协议具有如下特点:适应范围:OSPF 支持各种规模的网络,最多可支持几百台路由器。
快速收敛:如果网络的拓扑结构发生变化,OSPF 立即发送更新报文,使这一变化在自治系统中同步。
无自环:由于OSPF 通过收集到的链路状态用最短路径树算法计算路由,故从算法本身保证了不会生成自环路由。
子网掩码:由于OSPF 在描述路由时携带网段的掩码信息,所以OSPF协议不受自然掩码的限制,对VLSM 提供很好的支持。
区域划分:OSPF 协议允许自治系统的网络被划分成区域来管理,区域间传送的路由信息被进一步抽象,从而减少了占用网络的带宽。
等值路由:OSPF 支持到同一目的地址的多条等值路由。
路由分级:OSPF 使用 4 类不同的路由,按优先顺序来说分别是:区域内路由、区域间路由、第一类外部路由、第二类外部路由。
支持验证:它支持基于接口的报文验证以保证路由计算的安全性。
组播发送:OSPF在有组播发送能力的链路层上以组播地址发送协议报文,即达到了广播的作用,又最大程度的减少了对其他网络设备的干扰。
1.2 OSPF基本概念1. Router IDOSPF协议使用一个被称为Router ID的32位无符号整数来唯一标识一台路由器。
基于这个目的,每一台运行OSPF的路由器都需要一个Router ID。
这个Router ID一般需要手工配置,一般将其配置为该路由器的某个接口的IP地址。
ospf知识点总结与案例分析
Ospf知识点总结与案例分析一、知识点总结1.OSPF报文有哪些?报文的作用?报文hello建立、维护和保持邻居关系DD 数据库摘要描述选举主从LSR 请求所需要的LSA,只携带了LSA的头部信息LSU 更新请求的LSA,携带了完整LSA信息LSACK 对收到的LSA做确认①影响邻居关系建立?OSPF头部:Router ID不冲突、区域ID一致、认证类型、数据一致Hello报文:网络掩码一致(P2P除外)、option选项、hello和dead时间一致、邻居列表有自己的router id②领接关系建立失败?双方开启协商MTU,如果从大主小,从卡在exchange,主卡在exstart,如果从小主大,主从都卡在exstart状态2.OSPF状态机有哪些?状态机的作用?down状态,开启了ospf,未收到对方的hello报文init状态,收到对方的hello报文,不包含自己的router id2-way状态,收到对方hello报文,包含自己的router id,邻居建立成功的标识Exstart状态,双方首包发送DD报文,进行主从关系选举,携带序列号、I、M、MS,进行比较选出主从Exchange,从以主的序列号进行发送DD,进行数据库摘要描述,主收到后,序列号+1,也会给从发送DD数据库摘要,从收到后要给予回复,从永远会比主多发一个回复给予确认Loading状态,进行实际的LSR、LSU、LSACK的交互FUll状态,SPF算法进行路径最优计算状态机作用,标识ospf协商的工作阶段,方便后续排错3.DR BDR 作用?DR作用,避免出现LSA的过度泛洪,减小LSDB数据库大小BDR作用,BDR是DR可靠,当DR出现故障时,BDR能够成为DR的角色DR选举:优先级高的为DR,优先级相同,router id大的优先4.OSPF的网络类型有哪些?broadcast广播P2P点到点NBMA 非广播多路访问P2MP 点到多点这些网络类型的作用是什么?区分二层链路,更好的构建拓扑信息5.OSPF防环原则和LSA头部和分类区域内1/2LSA 通过SPF怎么防环?//说明过程根据spf算法,以自己为根算出最短路径树,不出现环路区域间3/4LSA 通过ABR水平割防环?区域设计防环?3类lsa传递的路由信息,从非骨干区域接收的路由只接收不计算非骨干区域必须和骨干区域相连接3类描述的是区域间的路由信息,而4类描述的是asbr的cost 信息区域外5/7LSA 通过3/4防环。
OSPF状态机
OSPF状态机OSPF共有8种状态机,分别是:Down、Attempt、Init、2-way、Exstart、Exchange、Loading、Full。
Down:邻居会话的初始阶段,表明没有在邻居失效时间间隔内收到来⾃邻居路由器的Hello数据包。
Attempt:该状态仅发⽣在NBMA⽹络中,表明对端在邻居失效时间间隔(dead interval)超时前仍然没有回复Hello报⽂。
此时路由器依然每发送轮询Hello报⽂的时间间隔(poll interval)向对端发送Hello报⽂。
Init:收到Hello报⽂后状态为Init。
2-way:收到的Hello报⽂中包含有⾃⼰的Router ID,则状态为2-way;如果不需要形成邻接关系则邻居状态机就停留在此状态,否则进⼊Exstart状态。
Exstart:开始协商主从关系,并确定DD的序列号,此时状态为Exstart。
Exchange:主从关系协商完毕后开始交换DD报⽂,此时状态为Exchange。
Loading:DD报⽂交换完成即Exchange done,此时状态为Loading。
Full:LSR重传列表为空,此时状态为Full。
接下来,我们来聊聊⼏个主要的状态:1、Init每台路由器只与启⽤了OSPF,接⼝宣告到OSPF进程,就会开始发OSPF报⽂。
当收到别⼈发过来的Hello报⽂,⼀开始,R5收到R4发过来的Hello包,查看,只看到R4的router id 4.4.4.4 ,没有看到⾃⼰,所以状态置为init状态,并且R5已发现⾃⼰有个邻居是R4。
R4收到R5发过来的Hello包,查看,只看到R5的router id 5.5.5.5 ,没有看到⾃⼰,所以状态置为init状态,并且R4已发现⾃⼰有个邻居是R5。
R5再次收到R4发过来的Hello包,查看,看到R4的router id 4.4.4.4,还看到⾃⼰R5的router id 5.5.5.5 ,认为双向通信没问题,所以状态置为2-way。
ospf路由协议
Osfp 路由协议1、OSPF协议概述OSPF(Open Short Path First)开放最短路径优先协议,是一种基于链路状态的内部网协议(Interior Gateway Protocol),主要用于规模较大的网络中。
2、OSPF的特点●适应范围广:支持各种规模的网络,最多可支持数百台路由器。
●快速收敛:在网络拓扑结构发生变化后立即发送更新报文,使这一变化在自治系统中被处理。
●无环路由:根据收集到的链路状态用最短路径树算法计算路由。
●区域划分:允许自治系统内的网络被划分成区域来管理,区域间传送的路由信息被汇聚,从而减少了占用的网络资源。
●路由分级:使用4类不同的路由,按照优先顺序分别是区域间路由、区域路由、第一类路由、第二类路由。
3、OSPF的基本概念●自治系统(Autonomous System,AS):为一组路由器使用相同路由协议交换路由信息的路由器。
●路由器ID号:运行OSPF协议的路由器,每一个OSPF进程必须存在自己的Router-ID。
●OSPF邻居:OSPF路由器启动后,便会通过OSPF接口向外发送Hello报文,收到Hello报文的OSPF路由器会检查报文中所定义的参数,使双方成为邻居。
●OSPF连接:只有当OSPF路由器双方成功交换DD报文,交换LSA并达到LSDB的同步后,才能形成邻接关系。
4、OSPF路由的计算过程每台路由器根据自己周围的网络拓扑结构生成链路状态通告(State Advertisement,LSA),并通过更新报文将LSA发送给网络中的其他OSPF路由器。
每台OSPF路由器都会收到其他路由器通告的LSA,所有的LSA放在一起便组成了链路状态数据库(Link State Database,LSD)。
LSA是对路由器周围网络拓扑结构的描述,LSDB 则是对整个自治系统的网络拓扑结构的描述。
OSPF路由器将LSDB转换成一张带权的有向图,这张图便是对整个网络拓扑结构的真实反映。
网络建设与运营维护
⽹络建设与运营维护OSPF⽹络类型:1.点到点T1链路:1.544Mbps,是链接单独⼀对路由器的。
在这种类型的链路上总是可以形成邻居关系的。
在这种⽹络上的OSPF使⽤组播地址进⾏通讯。
2.⼴播型⽹络⽐如以太⽹,DR与BDR使⽤AllSPFRouters(224.0.0.5)与⾮DR/BDR进⾏通信,⽽⾮DR/BDR使⽤AllDRothers(224.0.0.6)与DR/BDR 进⾏通信。
3.NBMA⽹络⽐如帧中继⽹络,这样多路访问⽹络没有⼴播能⼒,需要选举DR和BDR,并且OSPF数据包是以单播进⾏通信的,必须要使⽤neighbor⼿⼯指定邻居。
4.点到多点⽹络是NBMA⽹络的特殊配置,可以看做是⼀群点到点链路的集合。
不需要选举DR/BDR,OSPF数据包以单播进⾏传输。
5.虚链路OSPF数据包以单播⽅式发送。
除了以上5中⽹络类型,也可以将⽹络归纳为以下两种⽹络传送⽹络:与两台及以上的路由器相连的⽹络。
末梢⽹络:仅仅和⼀台路由器相连。
如果没有DR/BDR的话,那么⽹络上将产⽣n²个:LSA通告,显得太乱了,于是就选举DR。
1.⾸先根据端⼝优先级(缺省为1,ip ospf priority),越⼤越优先。
0表⽰没有资格选举为DR。
2.优先级相等,再根据RID,越⼤越优先。
注意DR/BDR具有稳定性,指的是:路由器的优先级可以影响⼀个选举过程,但是⼀旦选举完毕,即使更⾼的优先级加⼊后也不会替换DR/BDR。
这点与RID类似。
DR是⼀个伪节点的概念,即任从伪节点到任何与之相连的路由器的代价都有0,通过这种⽅式,所有代价都不会受到伪节点的影响。
并且DR是接⼝特性。
Process ID:这个是思科私有的,可以依赖这个属性让Cisco路由器运⾏多个OSPF进程。
不同进程之间相当于不能类型的协议。
OSPF Hello Interval:在⼴播型⽹络上为10s(点到点或者⼴播),⾮⼴播上为30s(点到多点或NBMA)OSPF RouterDeadInterval:⼴播型⽹络上为40s,⾮⼴播为120s。
报文分析,技术介绍,OSPF的报文格式,报文类型及含义
PROFIBUS-DP站点可分为主站和从站,开发从站设备要比开发主站设备容易得多,因为从站只需要响应来自主站的请求即可。
从站接收总线上的每条报文,如果与自己无关,则忽略不处理,如果是发给自己的则按照下图给出的状态机进行响应。
该状态机中有四个状态:1、Power_On(上电)状态在上电后从站进入Power_On状态,在这个状态下从站首先需要进行初始化,设置各项参数如站地址和报文缓冲区等等。
2、Wait-Prm(等待参数化)状态初始化完毕后,从站进入Wait-Prm状态,等待来自一个主站的Set_Prm报文。
通俗地讲,参数化相当于一个主站告诉一个从站,你是属于我的,同时也指定了从站的一些运行参数。
主站只对被它参数化的从站进行数据轮询。
3、Wait_Cfg(等待组态)状态在进行正确的参数化后,从站进入Wait_Cfg状态,等待Check_Cfg报文。
Check_Cfg 报文规定输入和输出字节数,也就是主站和从站每次交换的数据量。
4、Date_Exchange(数据交换)状态当进行正确的参数化和组态后,从站进入Date_Exchange状态,这个时候从站才可以和主站进行正常的数据交换。
下面是我从一个PROFIBUS-DP网络中采集下来的部分报文数据,该网络中有一站地址为1的主站和站地址为3的从站。
我结合有关报文解释一下从站3的工作机制。
(报文数据为16进制)......(从站已经完成初始化)......10 03 01 49 4D 16(该报文为主站1发给从站3的请求帧,查询从站3的FDL状态,即从站3是否“活着”。
)10 01 03 00 04 16(该报文为从站3对主站1的应答帧,告诉主站1“我活着呢”。
).....68 05 05 68 83 81 6D 3C 3E EB 16(该报文为主站1发给从站3的请求帧,读取查询从站3的诊断报文,以获取从站3的进一步信息。
)68 0B 0B 68 81 83 08 3E 3C 02 05 00 FF 00 08 94 16(该报文为从站3对主站1的应答帧,其中包含6个字节的诊断数据:02 05 00 FF 00 08,具体含义可参阅协议,其中第四字节为FF表明从站3尚未被任何主站所参数化。
OSPF协议各种错误的解释及产生的原因(V5)
OSPF协议各种错误的解释及产生的原因(V5)OSPF协议各种错误的解释及产生的原因内部公开OSPF协议各种错误的解释及产生的原因(V5)OSPF协议各种错误可以通过display ospf error命令显示,通过这个命令来说明OSPF协议的各种错误的产生原因。
【命令】display ospf [ process-id ] error【视图】任意视图【参数】process-id:OSPF进程号,取值范围为1~65535。
如果不指定进程号,则对当前所有OSPF进程有效。
【描述】display ospf error命令的功能是显示OSPF发生错误的次数。
在正常情况下,这些错误的值不会很大,如果出现了网络故障,通常会发现某个错误的值非常大,而且一直在不断地增长。
display ospf error显示结果如下:【举例】dis ospf errorOSPF Process 1 with Router ID 1.0.0.1 OSPF Packet Error Statistics0 : OSPF Router ID confusion 0 : OSPF bad packet 0 : OSPF bad version 0 : OSPF bad checksum0 : OSPF bad area ID 0 : OSPF drop on unnumber interface 0 : OSPF bad virtual link 0 : OSPF bad authentication type 0 : OSPF bad authentication key 0 : OSPF packet too small 0 : OSPF Neighbor state low 0 : OSPF transmit error 0 : OSPF interface down 0 : OSPF unknown neighbor 0 : HELLO: Netmask mismatch 0 : HELLO: Hello timer mismatch 0 :HELLO: Dead timer mismatch 0 : HELLO: Extern option mismatch 0 : HELLO: NBMA neighbor unknown 0 : DD: MTU option mismatch 0 : DD: Unknown LSA type 0 : DD: Extern option mismatch 0 : LS ACK: Bad ack 0 : LS ACK: Unknown LSA type 0 : LS REQ: Empty request 0 : LS REQ: Bad request0 : LS UPD: LSA checksum bad 0 : LS UPD: Received lessrecent LSA 2021-07-21华为三康机密,未经许可不得扩散第1页, 共6页OSPF协议各种错误的解释及产生的原因0 : LS UPD: Unknown LSA type内部公开【原因和处理方法】错误名称 OSPF Router ID confusion 收到了一个含有和本机相同Router-ID的OSPF报文。
交换机路由器OSPF协议(v2.0)
广播类型网络接口的数据结构
Copyright © 2004, 港湾网络培训中心 BHBIN 1-11
OSPF接口数据结构(续) 接口数据结构( 接口数据结构
RT1# show ip ospf interface s0/0 serial0/0 is up, line protocol is up Internet Address 172.16.1.1/24, Area (0.0.0.0) Router ID 172.16.1.1, Network Type POINTOMULTIPOINT, Cost: 1563 Transmit Delay is 1 sec, State Point-To-Point, Priority 1 flag20483 ifp-type4 No designated router on this network No backup designated router on this network Timer intervals configured, Hello 30, Dead 120, Wait 120, Retransmit 5 Hello due in 00:00:07 Neighbor Count is 2, Adjacent neighbor count is 2 Neighbor information : Neighbor ID State Address Interface 172.16.2.254 Full/DROther 172.16.1.2 serial0/0:172.16.1.1 172.16.3.254 Full/DROther 172.16.1.3 serial0/0:172.16.1.1
Point-to-Point
Down
DR
[知识]ospf百科
OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interio r Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。
与RIP相对,OSPF是链路状态路由协议,而RIP是距离矢量路由协议。
一。
OSPF起源I E T F为了满足建造越来越大基于I P网络的需要,形成了一个工作组,专门用于开发开放式的、链路状态路由协议,以便用在大型、异构的I P网络中。
新的路由协议以已经取得一些成功的一系列私人的、和生产商相关的、最短路径优先( S P F )路由协议为基础,S P F在市场上广泛使用。
包括O S P F在内,所有的S P F路由协议基于一个数学算法—D i j k s t r a算法。
这个算法能使路由选择基于链路-状态,而不是距离向量。
O S P F由I E T F在2 0世纪8 0年代末期开发,O S P F是S P F类路由协议中的开放式版本。
最初的O S P F规范体现在RFC 11 3 1中。
这个第1版( O S P F版本1 )很快被进行了重大改进的版本所代替,这个新版本体现在RFC 1247文档中。
RFC 1247 OSPF称为O S P F版本2是为了明确指出其在稳定性和功能性方面的实质性改进。
这个O S P F版本有许多更新文档,每一个更新都是对开放标准的精心改进。
接下来的一些规范出现在RFC 1583、2 1 7 8和2 3 2 8中。
O S P F版本2的最新版体现在RFC 2328中。
最新版只会和由RFC 2138、1 5 8 3和1 2 4 7所规范的版本进行互操作。
链路是路由器接口的另一种说法,因此OSPF也称为接口状态路由协议。
OSPF 通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器使用这些最短路径构造路由表。
OSPF详解
OSPF详解Open Shortest Path First(⼀)OSPF协议是由Internet⼯程任务组(Internet Engineering Task Force)开发的路由选择协议,且来替代存在⼀些问题的RIP协议。
OSPF协议是IETF 组织建议使⽤的内部⽹关协议(IGP)。
OSPF使⽤Dijkstra的最短路径优先(SPF)算法,其的发展经过了⼏个RFC,所有的RFC都是由John Moy撰写。
RFC1131详细说明了OSPF协议版本1,这个版本从来没有在实验平台以外使⽤过,OSPF协议版本2,也就是现在IPv4协议仍然使⽤的版本,最初是在RFC1247中说明的,最新是在RFC2328中说明的。
(⼀)OSPF基本原理与实现OSPF的基本特性:·OSPF属于IGP,是Link-State协议,基于IP Pro 89。
·采⽤SPF算法(Dijkstra算法)计算最佳路径。
·快速响应⽹络变化。
·以较低频率(每隔30分钟)发送定期更新,被称为链路状态刷新。
·⽹络变化时是触发更新。
·⽀持等价的负载均衡。
·OSPF协议将IP头部的TTL值设置为1,并且把优选位设置成互连⽹络控制OSPF的邻居与邻接关系:OSPF中路由器之间的关系分两种:1、邻居2、邻接·OSPF路由器可与它直连的邻居建⽴邻居关系。
·P2P链路上,邻居可以到达FULL状态,形成邻接关系·MA⽹络,所有路由器只和DR/BDR(Backup Designated Router)到达FULL状态。
形成邻接·路由器只和建⽴了邻接关系的邻居才可以到达FULL状态。
·路由更新只在形成FULL状态的路由器间传递。
·OSPF路由器只会与建⽴了邻接关系的路由器互传LSA。
同步LSDBR2#sh ip os neiNeighbor ID Pri State Dead Time Address Interface1.1.1.1 0 FULL/ - 00:00:35 12.1.1.1 Serial1/03.3.3.3 0 FULL/ - 00:00:38 23.1.1.3 Serial1/1⼀台OSPF路由器对其他OSPF路由器的跟踪需要每台路由器都提供⼀个路由器ID,路由器ID在OSPF区域内惟⼀标识⼀台路由器的IP地址,Cisco路由器通过下⾯的⽅法得到它的路由器ID:1)⼿⼯指定Route-ID x.x.x.x(可任意,但区域内不能重复) 2)⾃动选择最⼤的Loopback IP作route-id 3)⾃动选择最⼤的物理接⼝IP(接⼝必须是激活状态)推荐⼿⼯指定的router-id这⾥,使⽤Loopback接⼝作为路由器ID有两个好处:(1):Loopback接⼝⽐任何其他物理接⼝更稳定,只有整个路由器失效进它才会失效(2):⽹络管理只在预先分配和识别作为路由器ID的地址时有更多的回旋余地其实,Loopback接⼝的⼀个主要好处在于它具有更好控制路由器ID能⼒.OSPF开销值计算:·OSPF Cost = 10^8/BW (bps)⼏种常⽤接⼝的COST值:1、环回⼝的COST值是12、serial⼝的COST值是643、标准以太接⼝是104、快速以太接⼝是1SPF算法:最短路径优先算法1、在⼀个区域内的所有路由器有同样的LSDB2、每⼀个路由器在计算时都将⾃已做为树根3、具有去往⽬标的最低cost值的路由是最好的路径4、最好的路由被放⼊转发表·OSPF的报⽂:1:数据包头部:所有OSPF数据包都是由⼀个24个⼋位组字节的头部开始的,如下图所⽰:这⾥,如果认证类型=2。
ospf的理解
OSPF:Open Shortest Path FirstOSPF路由协议是由IETF组织开发,作为RIP路由协议的替代协议,解决RIP 路由协议的固有问题。
是IETF组织推荐使用的IGP协议。
OSPF路由协议是一种链路状态协议,使用SPF算法进行最佳路由计算。
作为链路状态协议,OSPF协议的主要优点在于路由表的快速收敛,对大型网络的支持以及不易受到错误路由信息的影响。
OSPF路由协议其他的的特点如下:²使用area的概念,降低协议对CPU和内存的影响,减少路由协议产生的流量,可以构筑分层的网络拓扑结构。
²完全支持无类别路由处理,消除了有类别路由协议的一些问题,例如不连续子网的问题。
²支持无类别路由表的检索,支持VLSM,支持Supernetting可以更有效的进行地址管理。
²支持无大小限制的,任意的metric值。
²等价负载均衡,可以更有效的利用多路径进行数据传输。
²使用预留的组播地址,减小对非OSPF设备的影响。
²支持认证,提供更安全的路由²可以对路由进行标记,跟踪外部的路由。
OSPF的操作介绍第一步:OSPF路由器从启动了OSPF协议的接口向外发送Hello数据包,如果两台路由器共享公共的数据链路,并且Hello数据包中指定的数据参数协商一致,这两个路由器将建立邻居关系成为邻居(Neighbors)。
第二步:建立邻接(Adjacencies)关系。
邻接关系是在两个建立了邻居关系的OSPF路由器之间建立的,类似于一条点到点的虚拟链路。
两个OSPF路由器必须先建立邻居关系然后才能建立邻接关系。
因此在故障排除时可以依次检查相应的数据库列表。
OSPF定义了几种网络类型和路由器类型,网络类型和路由器类型也在Hello数据包中传输。
邻接关系的建立也需要依据网络类型和路由器类型来建立。
第三步:所有的路由器向所有的建立了邻接关系的路由器上发送LSA(Link State Advertisement)数据包。
OSPF 协议
1.OSPF协议简介OSPF(Open Shortest Path First)协议是一种内部网关协议(IGP),用于在大型企业网络或互联网中实现路由选择。
它是一个开放的、链路状态路由协议,旨在优化路由器之间的通信,并根据网络拓扑信息计算最短路径。
OSPF协议具有以下特点:•开放性:OSPF协议是公开的,它的工作原理和规范可以被广泛理解和应用。
这使得不同厂商的路由器可以相互通信和交换路由信息,促进了网络设备的互操作性。
•链路状态路由:OSPF协议通过在网络中广播链路状态更新来确定网络拓扑信息。
每个路由器都维护一个链路状态数据库(LSDB),其中包含有关网络中所有路由器和链路的状态信息。
基于这些信息,OSPF使用Dijkstra 算法计算最短路径,并构建路由表。
•分层和区域化:OSPF协议将网络划分为不同的区域(Area),每个区域内部的路由器使用区域内链路状态数据库进行路由计算,而不需要了解整个网络的拓扑。
这种分层和区域化的设计减少了路由器之间的通信量,提高了网络的可扩展性。
•动态适应性:OSPF协议能够根据网络的变化自动调整路由,以适应链路的故障、拓扑的变化或带宽的变化。
当网络发生改变时,路由器会通过链路状态更新通知其他路由器,并更新各自的链路状态数据库,从而重新计算最短路径。
OSPF协议在大型企业网络和互联网中被广泛应用,特别适用于要求快速收敛、具备高可靠性和可扩展性的网络环境。
它提供了灵活的路由控制和路由优先级设置,使网络管理员能够根据具体需求进行网络设计和优化。
2.OSPF协议的工作原理OSPF(Open Shortest Path First)协议是一种基于链路状态的路由协议,它通过交换链路状态信息来计算最短路径并构建路由表。
以下是OSPF协议的工作原理的概要:1.邻居发现:OSPF协议运行在每个支持OSPF的路由器上。
当路由器启动时,它会发送Hello报文来发现和识别相邻的OSPF路由器。
OSPFV3
OSPFV3⽬录OSPFv3OSPFv3的概念:OSPFv3是基于IPv6的OSPF协议,⼯作在IPv6上,可⽀持多协议,OSPFv3在OSPFv2上做了改进,是⼀个独⽴的路由协议,可以⽀持IPv4和IPv6,OSPFv3与OSPFv2的相同点:⽹络类型和接⼝类型接⼝状态机和邻居状态机LSDBLSA的泛洪机制报⽂SPF算法及SPF计算过程OSPFv3与OSPFv2的不同点:OSPFv3OSPFv2基于链路基于⼦⽹利⽤链路本地地址来维持邻居利⽤本地接⼝地址来维持邻居报⽂中移除了协议地址的字段1. OSPFV3基于链路,⽽OSPFv2基于⽹段,OSPFv3运⾏在IPv6协议上,IPv6是基于链路⽽不是⽹段,既不论接⼝是否配置IPv6地址,也不论路由器间的接⼝地址是否在同⼀⽹段,只要双⽅在同⼀条链路上,都可以建⽴OSPFv3的邻居关系。
2. OSPFv3利⽤链路本地地址来维持邻居。
OSPFv3使⽤链路本地地址来维持邻居,同步LSDB,链路上的报⽂,除Vlink外的所有OSPFv3接⼝都使⽤链路本地地址作为报⽂源地址这样的话,不⽤配置IPv6全局地址,就可以得到OSPFv3拓扑,实现拓扑与地址分离运⾏IPv6的路由器不转发⽬的地址为链路本地地址的IPv6报⽂,此类报⽂置在本地链路有效。
OSPFv3的虚链路,如果是⾮直连的虚链路,那么就不能依赖于链路本地地址了,需要使⽤全球单播地址来建⽴3. OSPFv3协议报⽂上移除了协议地址OSPFv2中的1/2类LSA中含有太多关于ipv4地址的描述,通过观察OSPFv2的1/2类LSA就可以得知当前运⾏的协议为IPv4OSPFv3中由于IPv6协议地址太长,会过多的占⽤报⽂空间,若之后想扩展OSPFv3协议,那么就必须的重新改写了,重新出⼀个OSPFv4,于是OSPFv3移除了对协议地址的依赖性,⽤接⼝ID来取代本地接⼝的IP地址,对端接⼝IP地址,就使⽤链路本地地址这样意味着拓扑与协议地址分离了,建⽴邻居关系的不在依赖于协议地址,并且OSPFv3的1/2类LSA可以为多种协议簇服务,可以同时为IPv4和IPv6创建协议进程,⽬前华为不⽀持,所以在当前的双栈环境下,依旧要创建OSPFv2的进程及OSPFv3的进程4. OSPFv3链路间的泛洪范围OSPFv3添加了链路间的泛洪范围,新的LSA-8类型仅在可以在邻居之间通告,其LSA不会被泛洪到其他链路,LSA-8承载内容仅在直连的邻居中通告,不会被泛洪到其他链路,LSA-8所承载的内容只在直连邻居之间有⽤,⽤于通告该链路上的地址前缀及link-local地址5. OSPFv3⽀持⼀条链路上多个进程(实例复⽤)OSPFv3在OSPF报⽂头中新加了字域:instance id,他是定义在接⼝上的标识OSPF实例的,取值范围为0-255,OSPFv2下,⼀个接⼝只能运⾏⼀个OSPF实例,⽽在OSPFv3中,可以让⼀个接⼝运⾏多个OSPF实例,并且在⼀条链路上,只有OSPF实例号相同才能建⽴OSPF邻居关系,OSPF实例只在本地有效。
[转载]华三OSPF学习笔记
[转载]华三OSPF学习笔记原⽂地址:华三OSPF学习笔记作者:Network_Wei⼀、OSPF简介:RIP是⼀个距离⽮量路由协议,使⽤过程中,有以下限制:1.⽹络扩展不好2.周期性⼴播消耗带宽资源3.路由收敛速度慢(30s)4.以跳数作为度量值5.存在路由环路OSPF的优点:(链路状态路由协议)IP协议89号适应范围⼴——⽀持各种规模的⽹络,最多可⽀持⼏百台路由器。
快速收敛——在⽹络的拓扑结构发⽣变化后⽴即发送更新报⽂,使这⼀变化在⾃治系统中同步。
⽆⾃环——由于OSPF根据收集到的链路状态⽤最短路径树算法计算路由,从算法本⾝保证了不会⽣成⾃环路由。
区域划分——允许⾃治系统的⽹络被划分成区域来管理,区域间传送的路由信息被进⼀步抽象,从⽽减少了占⽤的⽹络带宽。
等价路由——⽀持到同⼀⽬的地址的多条等价路由。
路由分级——使⽤4类不同的路由,按优先顺序来说分别是:区域内路由、区域间路由、第⼀类外部路由、第⼆类外部路由。
⽀持验证——⽀持基于接⼝的报⽂验证,以保证报⽂交互和路由计算的安全性。
组播发送——在某些类型的链路上以组播地址发送协议报⽂,减少对其他设备的⼲扰。
⼆、OSPF协议基本原理⼯作过程:邻居发现、路由交换、路由计算、路由维护1、邻居表:记录所有建⽴了邻居关系的路由器,包括相关描述和邻居状态。
会定期的相互发送hello报⽂来维护,若在⼀定的周期内没有收到领居回应的hello报⽂,则认为邻居路由器失效,将它从邻居表中删除2、链路状态数据库表(LSDB):此表⾥包含了⽹络拓扑中链路状态的通告。
每台路由器在同⼀个区域内LSDB表⼀样3、路由表:在获得完整LSDB表后,进⾏SPF算法,形成最优路由加⼊路由表OSPF协议路由⽣成过程:1、⽣成LSA描述⾃⼰的接⼝状态每台路由器都根据⾃⼰周围的接⼝状态⽣成LSA(接⼝状态up或down)、链路开销、IP地址/⼦⽹掩码链路开销与接⼝带宽成反⽐3、使⽤spf计算路由ospf路由器⽤spf算法以⾃⾝为根节点计算出⼀棵最短路径树如果通过SPF算法发现到达同⼀⽬标的路径cost值相同,就将两条路由同时加⼊路由表,形成等价路由COST值(开销)算⼊⼝的三、分层结构1)、⾻⼲区域与⾮⾻⼲区域区域的边界是路由器,⽽不是链路。
RFC1131_OSPF规范
所有的OSPF协议交换是有认证的,即只有信任的路由器能参与自治系统的路由交换,可以使用多种认证方案,一个区域只有使用一种认证方案,这可使一些区域使用比其它区域更严格的认证。
译文发布时间:
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须保留本文档的翻译及版权信息。
Network Working Group J.Moy
Request for Comments: 1131 Proteon, Inc.
作者感谢Rob Coltun,Milo Medin,Mike Petry 和其它为OSPF工作组提供建议和对这个项目提供支持的人们。
1.1 协议概述
OSPF路由IP包只基于IP包头中的目的IP地址和IP服务类别。IP包被路由,即当包在自治系统内传输时不封闭任何更多的协议头。OSPF是一个动态路由协议,它可以快速确定在自治系统内的拓朴改变及在一个收敛周期内计算出新的无回路路由。这个收敛周期很短,只有少量的路由通信。
OSPF协议是由Internet工程任务组的OSPF工作组开发,它专为互联网环境设计,明确支持IP子网,基于TOS(服务类型)的路由和由外部驱动触发的路由信息。OSPF提供路由更新身份确认,利用IP组播传送/接收更新。另外,大量的工作是实现用最少的路由协议传送,达到在网络拓朴改变时快速响应的协议。
12.4 TOS尺度 58
13 传播过程 59
OSPF七种状态详解
所有路由器上 OSPF 协议均采用以下配置: router ospf 10 router-id x.x.x.x (x 为路由器编号) network 0.0.0.0 255.255.255.255 area 0
1. Attempt: 只适于 NBMA 网络,如果一台路由器的 OSPF 一直”卡“在 Attempt 状态:表明该路由器已 发送一个 Hello 报文,但是没有接到邻居的回应。通常,这个问题出现在使用了 neighbor 命令指定邻居的 NBMA 网络中。
R3: interface Serial1/1
ip ospf network broadcast frame-relay map ip 13.1.1.1 301 no frame-relay inverse-arp ! R3#show ip os neighbor
Neighbor ID Interface 1.1.1.1 Serial1/1
00:00:34
23.1.1.3
R3#show ip os neighbor
Neighbor ID Interface 2.2.2.2 FastEthernet0/0
Pri State 0 2WAY/DROTHER
Dead Time Address
00:00:34
23.1.1.2
4. EXSTA RT/EXCHANGE : 信息交换初始状态:在这个状态下,本地路由器和邻居将建立 Master/Slave 关系,并确 定 DD Sequence Number ,路由器 ID 大的的成为 Master 。
Neighbor ID Interface 2.2.2.2 FastEthernet0/0
R3: interface Loopback0 ip address 3.3.3.3 255.255.255.255 ! interface FastEthernet0/0 ip address 23.1.1.3 255.255.255.0 speed auto duplex auto !
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培训ppt
OSPF的网络类型 的网络类型
OSPF的网络类型作用: OSPF的网络类型决定了邻居邻接关系的形成,以及对HELLO报文的处 理,使得OSPF的适应性和性能得到提高。 OSPF的网络类型:
网络类型 目的地址 224.0.0.5/6 单播 224.0.0.5 单播 224.0.0.5 间隔时间 10S 30S 10S 30S 10S
参考资料
《Routing TCPIP Volume I》 RFC2328
OSPF概述(一) 概述( 概述
OSPF(OPEN SHORTEST PATH FIRST),即开放最短路径优 先。是一种链路状态协议,采用Dijkstra算法,也叫最短路径算 法(SPF);OPEN代表OSPF是一个标准、开放的、与产商无 关的标准路由协议;它由IETF制订的,用来替代RIP的一个IGP 路由协议。最新的RFC文档为RFC2328,也叫OSPFV2。 相对RIP,OSPF具有很多的优点: RIP OSPF
Loading
DD (Seq = y+n,I = 0, M = 0, MS = 1) DD (Seq = y+n,I = 0, M = 0, MS = 0) LS Request LS Update LS Ack Full
Full
DR、BDR 、
DR(Designated Router )的作用 1:代表多路访问网络和其它的路由器 2:管理泛洪进程 BDR(Backup Designated Router )的作用 作为DR的备份,防止DR失效,引起网络中断。 DR的选举 在多路访问网络中,DR的选举由路由器的优先级(8bits)和 ROUTER ID来决定。
1:广播网络类型 2:NBMA网络类型 3:点到点网络类型 4:点到多点网络类型 5:虚链路网络类型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OSPF接口状态机
IE1:低层协议指明接口可操作
IE2:低层协议指明接口不可操作
IE3:网络管理系统或低层协议指明接口loop up
IE4:网络管理系统或低层协议指明接口loop down
IE5:收到Hello包
IE6:Wait Timer超时
IE7:选举为DR
IE8:被选举为BDR
IE9:没有被选举为DR/BDR,成为DRothers
IE10:邻居路由器发生了变化
DOWN
接口的初始状态。
这时下层协议之处接口未断开,接口上没有协议流量的手法。
接口上的所有参数都被设为初始值,关闭所有的接口计时器,该接口上也没有相关联的邻接。
LOOPBACK
路由器到网路的接口处于回环(Loopback),回环可能以硬件或软件的方式实现。
回环接口不能用于正常的数据传输,但仍能通过ICMP ping或为错误检测来收集接口信息。
IP包仍需要被发往回环接口。
为此,要在Router-LSA中宣告此接口为接口IP地址的主机路径。
Wating
适合广播型,NBMA等网络类型上的接口.这个时候接口发送和接收hello报文,设置等待时间,试图识别网络上的DR、BDR.
为此,路由器对其接收到的Hello包进行监听。
在结束等待前,路由器不能被选举为DR或BDR。
这可以避免不必要地改变DR和BDR。
在这里可以看出,ospf在选举DR、BDR的时候是再端口状态机waiting状态~!
在此状态是,路由器试图判定网络上的DR、BDR。
为此,路由器对其接收到的Hello包进行监听。
在结束等待前,路由器不能被选为DR或BDR。
这可以避免不必要的改变DR和BDR Point-to-Point
仅适合点到点点到多点线路虚电路等网络类型。
这时,连接到物理点对点网络或虚拟通道的接口开始工作,进入此状态之后,路由器试图与邻居路由器形成邻接。
并按HelloInterval的间隔发送Hello包
DR-Other
广播或者NBMA网络张的其他路由器被选为DR,其自身也没有被选为BDR。
路由器开始与DR和BDR(如果存在的话)形成邻接
Backup
在此状态时。
路由器是所接入网络的BDR。
并将在当前的DR失效时成为DR。
该路由器与接入该网络的所有其他路由器形成邻接。
在泛洪过程中,BDR的工作与DR稍有不同。
DR
在此状态时,路由器是所接入网络的DR。
该路由器与接入该网络的所有其他路由器形成邻接。
路由器必须为网络节点生成一个Network-LSA。
该Network-LSA包含了所有接入该网络的路由器(包括DR自身)。
关于DR的工作细节见第7.3节。
2.接口状态机程序实现
//处理OSPF ISM事件
Intospf_ism_event (struct thread *thread);
→voidism_change_state (structospf_interface *oi, int state)//接口状态改变,产生相应的LSA // router-LSA、network-LSA、释放自己产生的network-LSA(age设为最大)
→voidism_timer_set (structospf_interface *oi);//此函数设置了接口处于DOWN、LoopBack、//Waiting、Point-to-Point、DROther、BDR、DR状态是的定时器的设置
/**/
struct
{
int (*func) ();
intnext_state;
} ISM [OSPF_ISM_STATE_MAX][OSPF_ISM_EVENT_MAX] ={各种ISM状态改变对应的操作}
//接口状态机函数:
Intism_interface_up (structospf_interface *oi);
Intism_loop_ind (structospf_interface *oi);
Intism_interface_down (structospf_interface *oi);
Intism_backup_seen (structospf_interface *oi);
intism_wait_timer (structospf_interface *oi);
intism_neighbor_change (structospf_interface *oi);
intism_ignore (structospf_interface *oi);
//一下三种接口状态机的改变均导致DR的election (ospf_dr_election)
Intism_backup_seen (structospf_interface *oi);
Intism_wait_timer (structospf_interface *oi);
Intism_neighbor_change (structospf_interface *oi);
// elect DR and BDR. Refer to RFC2319 section 9.4
Intospf_dr_election (structospf_interface *oi);
→voidospf_dr_eligible_routers (structroute_table *nbrs, list el_list);//从oi的nbrs中选出符
//合要求的router加入到list中→structospf_neighbor *ospf_elect_dr (structospf_interface *oi, list el_list);//选举DR
→structospf_neighbor*ospf_dr_election_sub (list routers) ;
structospf_neighbor*ospf_elect_bdr (structospf_interface *oi, list el_list);//选举BDR
→structospf_neighbor*ospf_dr_election_sub (list routers) ;
→intospf_ism_state (structospf_interface *oi);//接口状态是DR、BDR还是DROther
→voidospf_dr_change (structospf *ospf, structroute_table *nbrs);//选举后,DR或者BDR改
//变时,产生NSM_AdjOK时间
//各种定时器
Intospf_hello_timer (struct thread *thread);//定时器到时,发送Hello包,并设置Hello定时器事件Intospf_wait_timer (struct thread *thread);//ISM_WaitTimer事件定时器(选举DR、BDR)
WaitTimer:选举DR/BDR之前,等待邻居路由器宣告DR/BDR的Hello包的时间长度,这个时间长度等于无效时间(RouterDeadInterval)
RxmtInterval:没有得到确认的情况下,重传OSPF packet所等待的时间长度,默认为5秒,可以使
用命令ipospf retransmit-interval <seconds>修改
Hello Timer:由HelloInterval设置的,当它超时后,将从接口发送一个Hello包,上图显示Hello Timer将在3秒后超时。