ospf路由计算过程
OSPF_协议的解析及详解

OSPF_协议的解析及详解OSPF协议的解析及详解OSPF(Open Shortest Path First)是一种内部网关协议(IGP),用于在大型企业网络中进行路由选择。
本文将对OSPF协议进行解析和详解,包括其工作原理、协议格式、路由选择算法等内容。
一、OSPF协议的工作原理OSPF协议基于链路状态路由(LSR)算法,通过交换链路状态信息来计算最短路径。
它将网络拓扑信息分发给所有路由器,每个路由器都会构建一个链路状态数据库(LSDB),并根据该数据库计算最短路径树。
OSPF协议使用Hello消息来发现邻居路由器,并建立邻居关系。
一旦建立了邻居关系,路由器就会交换链路状态更新消息(LSU)来更新链路状态数据库。
每个路由器都会根据链路状态数据库计算最短路径,并将其存储在路由表中。
二、OSPF协议的协议格式OSPF协议使用IP协议号89,其协议格式如下:1. OSPF报文头部:- 版本号:用于指示OSPF协议的版本。
- 报文类型:用于指示报文的类型,如Hello、数据库描述、链路状态请求等。
- 报文长度:指示整个报文的长度。
- 路由器ID:唯一标识一个路由器。
- 区域ID:将网络划分为不同的区域,用于控制链路状态数据库的大小。
2. OSPF Hello消息:- 网络类型:指示网络类型,如点对点、广播、NBMA等。
- 路由器优先级:用于选举DR(Designated Router)和BDR(Backup Designated Router)。
- 邻居列表:列出与该路由器相邻的所有路由器。
3. OSPF LSU消息:- 序列号:用于标识链路状态数据库的更新。
- 链路状态记录:包含了与该路由器相邻的所有路由器的链路状态信息。
4. OSPF LSR消息:- 链路状态请求列表:列出了需要请求的链路状态信息。
三、OSPF协议的路由选择算法OSPF协议使用Dijkstra算法来计算最短路径树。
该算法通过不断更新最短路径表来选择最短路径。
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转换成一张带权的有向图,这张图便是对整个网络拓扑结构的真实反映。
计算机网络实验_实验5 OSPF路由协议实验_实验56 OSPF协议路由的计算_

北航计算机网络实验实验5.6OSPF协议的路由计算OSPF协议的路由计算⏹SPF算法和COST值⏹区域内路由的计算⏹区域间路由的计算--骨干区域和虚连接⏹区域外路由的计算--与自治系统外部通信SPF算法LSDBLSA 的RTA LSA 的RTBLSA 的RTCLSA 的RTD(二)每台路由器的链路状态数据库(一)网络的拓朴结构CABD123CAB D 123CAB D 123CABD123(四)每台路由器分别以自己为根节点计算最短路径树(三)由链路状态数据库得到的带权有向图CABD1235RTCRTD3215RTBRTASPF算法和COST值⏹SPF算法也被称为Dijkstra算法,是OSPF路由协议的基础。
☐SPF算法将每一个路由器作为根(Root)来计算到每一个目的地路由器之间的距离,每一个路由器根据一个统一的数据库会计算出路由域的拓扑结构图,该结构图类似于一棵树,在SPF算法中,被称为最短路径树。
⏹在OSPF路由协议中,最短路径树的树干长度,即OSPF路由器至每一个目的地路由器的距离,称为OSPF的Cost值。
☐Cost值应用于每一个启动了OSPF的链路,它是一个16bit的整数,范围是1~65535。
Cost值的计算方法⏹计算方法108/bandwidth☐56-kbps serial link = 1785☐10M Ethernet = 10☐64-kbps serial link = 1562☐T1 (1.544-Mbps serial link) = 64⏹用户可以手动调节链路Cost,缺省情况下,接口按照当前的波特率自动计算开销区域内路由的计算S1Vlan2:10.1.1.2/24Vlan2:30.1.1.2/24E1:30.1.1.1/24Vlan3:40.1.1.1/24E0:40.1.1.2/24R1R2AREA 0E0:10.1.1.1/24S0:20.1.1.1/24S0:20.1.1.2/24E0/1E0/24E0/1S2100200300500。
OSPF路由汇总应用实例

OSPF路由汇总应⽤实例⼀、拓扑结构⼆、配置要求1-根据拓扑图,完成⽹络设备的基本配置(设备名、⽤户名和密码、控制⼝配置、远程登录配置、系统密码、端⼝描述和banner等相关信息)2-根据拓扑图的要求,完成⽹络设备接⼝的相应配置;3-根据拓扑图的要求,完成接⼊层交换机的基本配置(划分VLAN、分配接⼝、中继链路、端⼝安全、中继链路安全、⼦接⼝和DHCP等相关信息配置);4-根据拓扑图的要求,配置OSPF协议;5-根据拓扑图的要求,完成路由汇总配置;三、路由汇总实例(1)路由汇总的计算⽅式,是将各⼦⽹地址段中不同的部分以⼆进制写出。
(2)从第1位⽐特开始进⾏⽐较,找出相同的部分使其保持不变,将不相同部分⽤0进⾏填充、补满。
由此得到的地址为汇总后的⽹段的⽹络地址,其⽹络位为连续的相同的⽐特的位数。
(3)假设下⾯有4个⽹段,分别是11.1.0.0/24,11.1.1.0/24,11.1.2.0/24,11.1.3.0/24,进⾏路由汇总后的⽹段是多少?算法为:11.1.0.0的⼆进制代码是11.1.00000000.011.1.1.0的⼆进制代码是11.1.00000001.011.1.2.0的⼆进制代码是11.1.00000010.011.1.3.0的⼆进制代码是11.1.00000011.0把相同的地⽅⽤红⾊标记出来,在进⾏⽹络汇总是这部分是不变的;将不同的部分⽤【0】进⾏填充后的结果是【00000000】,变成⼗进制数为【0】;则汇总后的⽹段是【11.1.0.0/?】;【?】是多少,如何求解?在⽹络中找不变的⼏位,即【11.1.000000】,其代表汇总后的⽹络位,是8+8+6=22;则汇总后的表⽰⽅式为【11.1.0.0/22】。
(4)11.1.0.0/22的反向⼦⽹掩码是多少?其正向⼦⽹掩码是【255.255.11111100.0】 =【255.255.252.0】其反向⼦⽹掩码是【0 . 0.00000011.255】=【0 . 0. 3.255】(5)使⽤前缀地址来汇总路由能够将路由条⽬保持为可管理的,⽽它带来的优点是:★路由更加有效;★减少重新计算路由表或匹配路由时的CPU周期;★减少路由器的内存消耗;★在⽹络发⽣变化时可以更快的收敛;此外,虽然不是传统的⽅法,也可以将有类的⼦⽹进⾏汇总。
OSPF协议的LSDB分析和路由计算

OSPF协议的lsdb分析和路由计算OSPF协议的LSDB分析和路由计算拟制: 日期:审核: 日期:审核: 日期:批准: 日期:华为三康技术有限公司Huawei-3Com Technologies Co., Ltd.版权所有侵权必究All rights reserve目录1OSPF协议的LSDB分析和路由计算 (6)1.1OSPF的路由形成概述 (6)1.2组网图 (6)1.3OSPF的启动 (7)1.3.1启动OSPF (7)1.3.2接口使能OSPF (8)1.4LSDB详解 (9)1.5Router LSA (10)1.6Network LSA (12)1.7由一、二类LSA计算域内路由 (13)1.7.1域内路由计算1:计算最短路径树 (13)1.7.2域内路由计算2:把存根网络作为叶子加入最短路径树 (23)1.8Summary LSA (24)1.8.1Summary Network LSA (24)1.8.2Summary ASBR LSA (26)1.9AS-external-LSA (26)1.10计算区域外部路由 (27)1.10.1根据Summary LSA计算区域外部路由 (27)1.10.2根据AS-external-LSA计算区域外部路由 (28)2FAQ (30)2.1初学OSPF,看哪些文章好? (30)2.2什么是接口状态,什么是邻居状态,它们之间有什么关系? (30)2.3建立邻居关系需要多少时间? (33)2.4当存在连续的两个非骨干区域时,最边缘的区域怎样建立虚连接? (33)2.5在NSSA区域中的ABR,没有引入路由的情况下,为什么其声称自己是ASBR? (33)2.6当NSSA区域有多个ABR时,谁进行type7类LSA到type5类LSA的转换? (33)2.7LSA和报文的关系 (33)2.8报文的作用 (34)2.9DD报文中的I/M/MS位解释 (34)2.10有关路由COST的问题 (34)图目录图1 OSPF组网图 (7)图2 0.1.1.1的area 0上的最短路径树1 (14)图3 0.1.1.1的area 0上的最短路径树2 (16)图4 0.1.1.1的area 0上的最短路径树3 (17)图5 0.1.1.1的area 0上的最短路径树4 (19)图6 0.1.1.1的area 0上的最短路径树5 (20)图7 0.1.1.1的area 0上的最短路径树6 (22)图8 0.1.1.1的area 0上的最短路径树7 (23)图9 邻居状态机转换图 (30)图10 OSPF的邻居状态截图 (31)图11 接口状态机转换图 (32)图12 OSPF的接口状态截图 (32)图目录表1 五种LSA类型 (9)表2 交换机接口的四种连接类型 (11)表3 最短路径树计算所需的节点数据结构 (14)OSPF协议的LSDB分析和路由计算关键词:OSPF,LSDB,路由摘要:本文举例说明了OSPF协议中的各种LSA的组成、LSDB形成以及路由计算过程。
OSPF的基本工作原理

Hello报文
用于发现和建立邻居关系,通 过定期发送Hello报文来维护 邻居关系。
路由表报文
用于在OSPF区域内传递路由 信息,实现路由表的同步。
链路状态请求报文
用于请求其他路由器发送缺失 的链路状态记录,以完成链路 状态数据库的同步。
03 OSPF路由计算
OSPF路由表的生成
01
生成OSPF路由表
OSPF路由的优选原则
最短路径
01
OSPF路由器在选择最佳路径时,会优先选择路径长度最短的路
径。
稳定性
02
OSPF路由器还会考虑路径的稳定性,通常会选择经过的路由器
数量最少、网络带宽最高、负载最轻的路径。
可靠性
03
在选择路径时,OSPF路由器还会考虑路径的可靠性,优先选择
经过的路由器和链路状态更好的路径。
路由更新
当网络拓扑发生变化时,OSPF路由器会发送链路状态更 新报文,通知其他路由器网络变化情况,其他路由器会更 新自己的链路状态数据库和路由表。
OSPF协议的消息类型和交换方式
链路状态更新报文
用于同步链路状态信息,当网 络发生变化时,发送链路状态 更新报文通知其他路由器。
数据库描述报文
用于描述链路状态数据库的内 容,帮助其他路由器快速同步 链路状态数据库。
02
数据库同步
OSPF路由器通过收集网络中的链路 状 Nhomakorabea信息,构建一个链路状态数据库 ,并根据该数据库生成OSPF路由表 。
当网络发生变化时,OSPF路由器会 通过数据库同步机制,将链路状态信 息更新到其他OSPF路由器中,确保 所有路由器的链路状态数据库保持一 致。
03
路由计算
OSPF路由器根据链路状态数据库中 的信息,按照一定的算法计算出到达 各个目的网络的最佳路径,并将这些 路径添加到OSPF路由表中。
OSPF路由计算

末端区域:只承载本区域发起的流量和访问本区域的流量,如Area 1。
Stub区域
Stub区域的ABR不向Stub区域内传播它接收到的自治系统外部路由(对应四类、五类LSA),Stub区域中路由器的LSDB、路由表规模都会大大减小。
Totally Stub区域内的路由器对其他区域及自制系统外部的访问需求是通过本区域ABR所产生的三类LSA缺省路由实现的。
与Stub区域配置的区别在于,在ABR上需要追加no-summary参数。
OSPF规定Stub区域是不能引入外部路由的,这样可以避免大量外部路由对Stub区域设备资源的消耗。
Type9:Opaque LSA(不透明LSA,本地链路范围)
Type10:Opaque LSA(不透明LSA,本地区域范围)
Type11:Opaque LSA(不透明LSA,AS范围)
Type9、Type10、Type11用于MPLS流量工程
OSPF的特殊区域
对于OSPF各区域,可分为两种类型:
1.骨干区域不能被配置为Stub区域。
2.如果要将一个区域配置成Stub区域,则该区域中的所有路由器必须都要配置成Stub路由器。
3.Stub区域内不能存在ASBR,自治系统外部路由不能在本区域内传播。
4.虚连接不能穿越Stub区域建立。
Totally Stub区域
既不允许自治系统外部路由(四类、五类LSA)在本区域内传播,也不允许区域间路由(三类LSA)在本区域内传播。
七类LSA由NSSA区域的ASBR产生,其扩散范围仅限于ASBR所在的NSSA区域。
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)。
– DEAD TIME:缺省为4倍的HELLO TIME
7
邻接关系形成后开始相互交流
• 数据库交换过 程
– 主从协商 – DD交换 – LSA请求 – LSA传播 – LSA应答
8
RT1
ExStart 开始交换 Exchange 交换
LSAck
afadjfjorqpoeru 39547439070713
LSR
Loading 状态
我需要对网络172.16.6.0/24的完整描述条目
好,这是对网络的172.16.6.0/24的具体描述
afadjfjorqpoeru 39547439070713
LSU
afadjfjorqpoeru 39547439070713
Init 状态
Router B 邻居列表: 172.16.5.1/24, int E1
13
交换过程
172.16.5.1/24
172.16.5.2/24
A E0
Down 状态
E1 B
我是路由器,id为172.16.5.1,我谁也没看到啊
Init 状态
Router B 邻居列表: 172.16.5.1/24, int E1
LSR
Loading 状态
我需要对网络172.16.6.0/24的完整描述条目
好,这是对网络的172.16.6.0/24的具体描述
afadjfjorqpoeru 39547439070713
LSU
afadjfjorqpoeru 39547439070713
LSAck 感谢你的链路状态信息!
Full状态
我是路由器,id为ID 172.16.5.2, 我看到了172.16.5.1.
14
交换过程
172.16.5.1/24
172.16.5.2/24
A E0
Down 状态
E1 B
我是路由器,id为172.16.5.1,我谁也没看到啊
Init 状态
Router B 邻居列表: 172.16.5.1/24, int E1
2C
2C
2C
3
3
3
3
D
D
D
D
(四)每台路由器分别以自己为跟节点计算最小生成树
2
OSPF的五种协议报文
• Hello报文
– 发现及维持邻居关系,选举DR,BDR
• DD报文
– 本地LSDB的摘要
• LSR报文
– 向对端请求本端没有或对端的更新的LSA
• LSU报文
– 向对方发送其需要的LSA
• LSAck报文
RT2
Init 初始化
ExStart 开始交换
Exchange 交换
Loading 装载
完成 Full
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
DR E0 172.16.5.3
我要启动交换,因为我的router id是172.16.5.1.
不!我来启动交换,因为我的router id比你的大
afadjfjorqpoeru 39547439070713
Hello
16
探寻路由信息
E0 172.16.5.1
afadjfjorqpoeru 39547439070713
20
OSPF协议路由计算过程
RTA
RTB
1
2
5
RTC
3
RTD
(1)网络的拓扑 结构
1
A
BA
2
2
C
3
LSDB LSA of RTA LSA of RTB
LSA of RTC LSA of RTD
1
A
B
2
5
C
3
D
(2)每台路由器的LSDB (3)由链路状态数据库生成 带权有向图
1
BA
1
BA
1
B
2
2
C
C
DR E0 172.16.5.3
afadjfjorqpoeru 39547439070713
LSAck
18
探寻路由信息
E0 172.16.5.1
afadjfjorqpoeru 39547439070713
LSAck
感谢你的链路状态摘要信息!
DR E0 172.16.5.3
afadjfjorqpoeru 39547439070713
小王 Slave
我先说
不行,还是我先说 好,你先说
小一 Slave
小一
Master
11
交换过程
172.16.5.1/24
172.16.5.2/24
A E0
Down状态
E1 B
12
交换过程
172.16.5.1/24
172.16.5.2/24
A E0
Down 状态
E1 B
我是路由器,id为172.16.5.1,我谁也没看到啊
Full 完成
9
邻居(Neighbor)的形成
小王
小一 小二
你好啊
小王
小一
(2)你好,小一,我叫小王
你好啊
小三
小王
小一
(3)你好,小王,我叫小一
(1)大家好,我是新来的,我叫小王
嘻嘻嘻,
我有3邻
居
(4)邻居关系建立完成 10
主从(Master,Slave)关系的协商
小王 Master
我先说 好,你先说
Backup
Neighbor Change
?
DROther
Neighbor Change
Neighbor Change
DR
25
点到点、点到多点网段和虚连接 的端口状态机
当前状态 事件
新状态
动作
Loopback UnloopInd
Down
无动作
Down
InterfaceUp
Point-to-point 启动Hello Timer定时器,开始从 端口上周期性发送Hello报文
OSPF路由计算过程
1
OSPF协议计算路由过程
RTA 1
RTB
2
5
RTC
31 RTD
2
(一)网络拓扑结构
LSDB
RTA的LSA RTB的LSA RTC的LSA RTD的LSA
(二)每台路由器的 链路状态数据库
A1
B
2
5
C
3
D
(三)由链路状态数据库 得到的带权有向图
A1 B
A1 B
A1 B
A1 B
2C
C
3
3
3Байду номын сангаас
D
D
D
D
(4)每台路由器分别以自己为根节点计算最小生成树
链路状态数据库同步
22
Hello协议
Type1表示这是一个 Hello报文
Hello报文中含有邻 居列表
23
验证合法Hello报文
灰色区域的字段和Options 字段中的E-bit必须和接收 端口的配置一致
Version #
Area ID AuType
重启该邻居的Inactivity Timer定 时器
30
是否和邻居建立邻接关系
网络类型
是否和邻居建立邻接关系
Point-to-point
总是和邻居建立邻接关系
Point-to-MultiPoint 总是和邻居建立邻接关系
Virtual link Broadcast NBMA
总是和邻居建立邻接关系
DR总是和其他所有路由器包括BDR建立邻接关系; BDR总是和其他所有路由器包括DR建立邻接关系; 处于DROther端口状态的路由器只与DR和BDR建立 邻接关系
LSAck 感谢你的链路状态信息!
19
探寻路由信息
E0 172.16.5.1
afadjfjorqpoeru 39547439070713
LSAck
感谢你的链路状态摘要信息!
DR E0 172.16.5.3
afadjfjorqpoeru 39547439070713
LSAck
afadjfjorqpoeru 39547439070713
28
邻居状态机(Hello协议相关)
当前状态 事件
新状态 动作
Down Start
Attempt
Attempt HelloReceived Init
开始向邻居发送Hello报文,并开启 相关邻居的Inactivity Timer定时器
重启该邻居的Inactivity Timer定时器
Down HelloReceived Init
Hello
Exstart 状态
DR E0 172.16.5.3
我要启动交换,因为我的router id是172.16.5.1.
不!我来启动交换,因为我的router id比你的大
afadjfjorqpoeru 39547439070713
Hello
Exchange 状态
这是我的链路状态数据库的描述(摘要)
– 选priority值最大的,若priority值相等,选RouterID最大 的;
– 选年纪最大,若年龄相等,按姓氏笔画排序
5
DR选举中的指导思想
• 选举制{民主!}
– DR是各路由器选出来的,而非人工指定的;