OSPF概述:

1、出现意义:

RIP的缺陷:

  1. 以跳数评估的路由并非最优路径;
  2. 最大跳数16导致网络尺度小;
  3. 更新发送全部路由表浪费网络资源;
  4. 收敛速度慢.
  1. 概述;

OSPF协议Open Shortest Path First是链路状态协议,是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。OSPF支持负载均衡和基于服务类型的选路,也支持多种路由形式,如特定主机路由和子网路由等。RIP和EIGRP是距离矢量协议,只知道邻居,但链路状态可知道全网信息。距离矢量协议和链路状态协议最大的区别就是后者对全网了解的更多。同样有邻居表,拓扑表,路由表。OSPF传递的并不是路由,而是传递LSA(链路状态广播),最终路由表是从LSA中获取全网信息后通过SPF算法计算得出的,存放LSA的地方就是LSDB(链路状态数据库)。处于同一区域的路由器内的LSDB都是一样的。

在信息交换的安全性上,OSPF规定了路由器之间的任何信息交换在必要时都可以经过认证或鉴别(Authentication),以保证只有可信的路由器之间才能传播选路信息。OSPF支持多种鉴别机制,并且允许各个区域间采用不同的鉴别机制。OSPF对链路状态算法在广播式网络(如以太网)中的应用进行了优化,以尽可能地利用硬件广播能力来传递链路状态报文。通常链路状态算法的拓扑图中一个结点代表一个路由器。若K个路由器都连接到以太网上,在广播链路状态时,关于这K个路由器的报文将达到K的平方个。为此,OSPF在拓扑结构图允许一个结点代表一个广播网络。每个广播网络上所有路由器发送链路状态报文,报告该网络中的路由器的链路状态。

先大致描述一下:OSPF是链路状态协议,能知道全网的信息。OSPF里封装的IP协议号是89。组播地址是224.0.0.5 / 224.0.0.6。定时30分钟更新LSA(注意不是更新路由表),支持触发更新。AD值是110。度量是带宽,计算公式:10^8/接口带宽,单位bps。EIGRP度量里带宽是取最小带宽来计算,而OSPF度量是沿途每一段带宽计算值之和。天然无环路。支持VLSM和CIDR。支持等价负载均衡。支持认证。

  1. 特点:

OSPF(Open Shortest Path First,开放最短路径有限)是IETF开发的基于链路状态的自治系统内部路由协议;

OSPF仅传播对端设备不具备的路由信息,网络收敛迅速,并有效避免了网络资源浪费;

OSPF直接工作于IP层之上,IP协议号为89;

OSPF以组播地址发送协议包;

  • OSPF原理及工作过程;

OSPF的路由器类型:

1·区域边界路由器(ABR):用来连接Area0和其他区域的路由器

2·内部路由器:保存自己区域的链路状态信息

3·自治边界路由器(ASBR):用来连接ospf的AS与外部其他的路由器,也就是说连接不是ospf协议的路由器

1、原理

OSPF的简单说就是两个相邻的路由器通过发报文的形式成为邻居关系,邻居再相互发送链路状态信息形成邻接关系,之后各自根据最短路径算法算出路由,放在OSPF路由表,OSPF路由与其他路由比较后优的加入全局路由表。整个过程使用了五种报文、三个阶段、四张表。

五种报文

Hello报文:建立并维护邻居关系。

DBD报文:发送链路状态头部信息。

LSR报文:把从DBD中找出需要的链路状态头部信息传给邻居,请求完整信息。

LSU报文:将LSR请求的头部信息对应的完整信息发给邻居。

LSACK:收到LSU报文后确认该报文。

三个阶段

邻居发现:通过发送Hello报文形成邻居关系。

路由通告:邻居问发送链路状态信息形成邻接关系。

路由计算:根据最短路径算法算出路由表。

四张表

邻居表:主要记录形成邻居关系路由器。

链路状态数据库:记录链路状态信息。

OSPF路由表:通过链路状态数据库得出。

全局路由表:SPF路由与其他比较得出。

2、工作过程

(1)了解自身链路

每台路由器了解其自身的链路,即与其直连的网络。

(2)寻找邻居

不同于RIP,OSPF协议运行后,并不立即向网络广播路由信息,而是先寻找网络中可与自己交换链路状态信息的周边路由器。可以交互链路状态信息的路由器互为邻居;

(3)创建链路状态数据包

路由器一旦建立了邻居关系,就可以创建链路状态数据包;

(4)链路状态信息传递

路由器将描述链路状态的LSP泛洪到邻居,最终形成包含网络完整链路状态信息的链路状态数据库;

(5)计算路由

路由区域内的每台路由器都可以使用SPF算法来独立计算路由;

OSPF用IP报文直接封装协议报文,协议号为89。OSPF分为5种报文,Hello报文、DD报文、LSR报文、LSU报文和LSAck报文。OSPF这五种报文具有相同的报文头格式,长度为24字节。

字段

长度

含义

Version

1字节

版本,OSPF的版本号。对于OSPFv2来说,其值为2。

Type

1字节

类型,OSPF报文的类型,有下面几种类型:1:Hello报文;2:DD报文;3:LSR报文;4:LSU报文;5:LSAck报文

Packet length

2字节

OSPF报文的总长度,包括报文头在内,单位为字节。

Router ID

4字节

发送该报文的路由器标识。

Area ID

4字节

发送该报文的所属区域。

CheckSum

2字节

校验和,包含除了认证字段的整个报文的校验和。

Autype

2字节

验证类型,值有如下几种表示, 0:不验证;1:简单认证;2:MD5认证。

Authentication

8字节

鉴定字段,其数值根据验证类型而定。当验证类型为0时未作定义;类型为1时此字段为密码信息;类型为2时此字段包括Key ID、MD5验证数据长度和序列号的信息。MD5验证数据添加在OSPF报文后面,不包含在Authenticaiton字段中。

抓包:

OSPF Hello报文格式

Hello报文是最常用的一种报文,其作用为建立和维护邻接关系,周期性的在使能了OSPF的接口上发送。报文内容包括一些定时器的数值、DR、BDR以及自己已知的邻居。

字段

长度

含义

Network Mask

32比特

发送Hello报文的接口所在网络的掩码。

HelloInterval

16比特

发送Hello报文的时间间隔。

Options

8比特

可选项:E:允许Flood AS-External-LSAs MC:转发IP组播报文 N/P:处理Type-7 LSAs DC:处理按需链路

Rtr Pri

8比特

DR优先级。默认为1。如果设置为0,则路由器不能参与DR或BDR的选举。

RouterDeadInterval

32比特

失效时间。如果在此时间内未收到邻居发来的Hello报文,则认为邻居失效。

Designated Router

32比特

DR的接口地址。

Backup Designated Router

32比特

BDR的接口地址。

Neighbor

32比特

邻居,以Router ID标识。

OSPF Hello 抓包:

OSPF DD 报文格式

两台路由器在邻接关系初始化时,用DD报文(Database Description Packet)来描述自己的LSDB,进行数据库的同步。报文内容包括LSDB中每一条LSA的Header(LSA的Header可以唯一标识一条LSA)。LSA Header只占一条LSA的整个数据量的一小部分,这样可以减少路由器之间的协议报文流量,对端路由器根据LSA Header就可以判断出是否已有这条LSA。在两台路由器交换DD报文的过程中,一台为Master,另一台为Slave。由Master规定起始序列号,每发送一个DD报文序列号加1,Slave方使用Master的序列号作为确认。

字段解释:

字段

长度

含义

Interface MTU

16比特

在不分片的情况下,此接口最大可发出的IP报文长度。

Options

8比特

可选项:E:允许Flood AS-External-LSAs;MC:转发IP组播报文;N/P:处理Type-7 LSAs;DC:处理按需链路。

I

1比特

当发送连续多个DD报文时,如果这是第一个DD报文,则置为1,否则置为0。

M (More)

1比特

当发送连续多个DD报文时,如果这是最后一个DD报文,则置为0。否则置为1,表示后面还有其他的DD报文。

M/S (Master/Slave)

1比特

当两台OSPF路由器交换DD报文时,首先需要确定双方的主从关系,Router ID大的一方会成为Master。当值为1时表示发送方为Master。

DD sequence number

32比特

DD报文序列号。主从双方利用序列号来保证DD报文传输的可靠性和完整性。

LSA Headers

可变

该DD报文中所包含的LSA的头部信息。

DD抓包:

OSPF LSR报文格式

两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地的LSDB所缺少的和哪些LSA是已经失效的,这时需要发送LSR报文(Link State Request Packet)向对方请求所需的LSA。内容包括所需要的LSA的摘要。LSR报文格式如下图所示,其中LS type、Link State ID和Advertising Router可以唯一标识出一个LSA,当两个LSA一样时,需要根据LSA中的LS sequence number、LS checksum和LS age来判断出所需要LSA的新旧。

字段解释:

字段

长度

含义

LS type

32比特

LSA的类型号。

Link State ID

32比特

根据LSA中的LS Type和LSA description在路由域中描述一个LSA。

Advertising Router

32比特

产生此LSA的路由器的Router ID。

LSR抓包:

OSPF LSU报文格式

用来向对端Router发送其所需要的LSA或者泛洪自己更新的LSA,内容是多条LSA(全部内容)的集合。LSU报文(Link State Update Packet)在支持组播和广播的链路上是以组播形式将LSA泛洪出去。为了实现Flooding的可靠性传输,需要LSAck报文对其进行确认。对没有收到确认报文的LSA进行重传,重传的LSA是直接发送到邻居的。

字段解释:

字段

长度

含义

Number of LSAs

32比特

LSA的数量。

LSU抓包:

OPSF LSAck报文格式

用来对接收到的LSU报文进行确认。内容是需要确认的LSA的Header(一个LSAck报文可对多个LSA进行确认)。LSAck(Link State Acknowledgment Packet)报文根据不同的链路以单播或组播的形式发送。

字段解释:

字段

长度

含义

LSAs Headers

可变

通过LSA的头部信息确认收到该LSA。

LSAck抓包:

1、OSPF是真正的LOOP- FREE(无路由自环)路由协议。源自其算法本身的优点。(链路状态及最短路径树算法)

2、OSPF收敛速度快:能够在最短的时间内将路由变化传递到整个自治系统。

3、提出区域(area)划分的概念,将自治系统划分为不同区域后,通过区域之间的对路由信息的摘要,大大减少了需传递的路由信息数量。也使得路由信息不会随网络规模的扩大而急剧膨胀。

4、将协议自身的开销控制到最小。

5、通过严格划分路由的级别(共分四极),提供更可信的路由选择

6、良好的安全性,ospf支持基于接口的明文及md5 验证。

7、OSPF适应各种规模的网络,最多可达数千台。

参考文章:

https://blog.51cto.com/13746824/2153847

https://blog.csdn.net/qq_38265137/article/details/80390729

1、协议简介

边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。 BGP 构建在EGP 的经验之上, BGP 系统的主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。这些信息有效地构造了 AS 互联的拓朴图并由此清除了路由环路,同时在 AS 级别上可实施策略决策。BGP是一种基于策略的路由选择协议,BGP在确定最佳路径时考虑的不是速度,而是让AS能够根据多种BGP属性老控制数据流的传输。

2、消息类型

bgp是建立在tcp之上的协议,tcp端口号179

1:open(打开消息)

2:keepalive(存活消息)

3:update(更新消息)

4:notification(报错消息)

3、BGP包头格式:

bgp的所有消息都会以该头开始

Maker(16字节)——-全为1,标识bgp报文边界

Length(2字节)——-BGP包全长,长度的值必须最少19字节最大4096字节。

Type(1字节)—

1 - OPEN

2 - UPDATE

3 - NOTIFICATION

4 – KEEPALIVE

OPEN消息格式:

1.Version(1字节)—–当前的BGP版本号为4

2.My Autonomous System(2字节)—-发送者自制系统号

3.Hold Time(2字节)—-BGP hold time默认为180秒。如果180秒内,没有收到keepalive消息,则删除bgp邻居。

4.BGP Identifier(4字节)—-发送者的BGP router-ID.

5.Optional Parameters Length(可选参数长度)(1字节):如果这个域是0,说明没有可选参数。

6.Optional Parameters(可选参数):这里总长度是和Optional Parameters Length指定的值是一致的。

从上可以看出open消息最短也得是 19(固定头长)+1+2+2+4+1 = 29字节。

keepalive报文

该报文比较简单,只有bgp的固定头。默认每60秒发送一次,对等体收到后,会更新保活消息计时,如果联系三次发送的消息,都没到达对等体,那么对方见删除bgp邻居。

建立邻居时,BGP先尝试与对等体建立一个TCP连接。如果TCP连接建立成功,BGP发送一个OPEN消息给对端,并等待从对端发来的OPEN消息。收到一个OPEN消息以后,BGP检查该消息的所有字段,如果没有发现错误,则向对端发送一个KEEPALIVE消息并启动KEEPALIVE定时器。收到KEEPALIVE消息,则邻居建立。

BGP update报文格式:

bgp目的就是要通告路由,而所有路由的添加,更新,删除都是依赖此消息完成。

Unfeasible Routes Length—-2字节,指示了撤销路由的字节总长度。0说明没有撤销路由。

Withdrawn Routes —-之前发布过,不再有效的路由。总长度与Unfeasible Routes Length值对应。

Total Path Attribute Length—-2字节,0代表在UPDATE消息中没有网络层可达信息域。

Path Attributes(路径属性):总长度和Total Path Attribute Length值对应。

NOTIFICATION报文格式:

当BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP会话会立即中断。该报文也比较简单,在bgp固定头之上,再增加四个字节即可

4、BGP协议状态机

BGP协议状态机包含6个状态,他们之间的转换过程实际上描述了BGP对等体关系建立的过程:

1. Idle状态(空闲状态): 是初始状态,不接受任何BGP连接,等待start时间的产生。如果有start事件产生则系统开启ConnectRetry定时器,向邻居发起TCP连接,将状态变为Connect。

2. Connect状态(连接状态): 在Connect状态,系统会等待TCP连接建立完成。

如果TCP状态为Established,则拆除ConnectRetry定时器,并发送OPEN消息,将状态变为Opensent状态;

如果TCP连接失败则重置ConnectRetry定时器,并发送OPEN消息,将状态变为Active;

如果ConnectRetry timer expired(重传定时器)超时,则重新连接,扔处于Connect状态

3. Active状态(活跃状态): 如果有启动时间但是TCP连接未完成则处于Active状态,在Active状态系统会响应ConnectRetry timer expired事件,重新进行TCP连接,同时重置ConnectRetry定时器,变为Connect状态;

如果与对方的TCP连接成功建立则会发送OPEN消息,将状态变为OpenSend,并清除

ConnectRetry定时器,重置HoldTime定时器。

4. Openset状态(OPEN消息已发送): 此状态表明系统已经发出Open消息,在等待BGP邻居发给自己的OPEN消息。如果收到BGP邻居发来的OPEN消息,并且没有错误的话,则转向Openconfirm状态,同时将HoldTime定时器的值置为协商值,发送Keepalive消息并置Keepalive定时器;

如果有错误则发送Notification消息并断开链接。

5. OpenConfirm状态(OPEN消息确认): 此状态表明系统已经发出Keepalive消息,并等待BGP邻居的Keepalive消息。

如果收到邻居的Keepalive消息则转向Established状态并重置HoldTime定时器;

如果KeepAlive定时器超时则重置并发送KeepAlive消息;

如果收到Notification消息,则断开链接。

6. Established状态(连接建立): 如果处于Established状态,则说明BGP链接建立完成,可以发送Update消息交换路由信息;

如果KeepAlive定时器超时则重置KeepAlive定时器并发送KeepAlive消息;

如果收到KeepAlive消息则重置HoldTime定时器:

如果检测到错误或者收到Notification消息则断开链接。

OSPF与BGP协议流程与协议格式简单学习相关推荐

  1. 【计算机网络】网络层 : DHCP 协议 ( DHCP 协议概念 | DHCP 协议特点 | DHCP 协议流程 )

    文章目录 一.DHCP 协议 概念 二.DHCP 协议 特点 三.DHCP 协议 流程 一.DHCP 协议 概念 DHCP 协议 概念 : ① 全称 : DHCP 协议 全称 "动态主机配置 ...

  2. rtsp摘要认证协议流程

    1. rtsp摘要认证协议流程 RTSP协议,全称Real Time Streaming Protocol,是应用层的协议,它主要实现的功能是传输并控制具有实时特性的媒体流,如音频(Audio)和视频 ...

  3. 【计算机网络】网络层 : BGP 协议 ( BGP 协议简介 | BGP 协议信息交换 | BGP 协议报文格式 | BGP-4 常用报文 | RIP 、OSPF、BGP 协议对比 )

    文章目录 一.路由选择协议分类 二.BGP 协议 简介 三.BGP 协议 信息交换过程 三.BGP 协议 报文格式 四.BGP 协议 特点 五.BGP-4 协议的 四种报文 六.RIP .OSPF.B ...

  4. 4.5 计算机网络之网络层路由选择协议(自治系统AS、RIP、OSPF、BGP)

    文章目录 1.前言 2.路由选择协议的引入 3.路由信息协议---RIP协议 (1)概述 (2)RIP协议和谁交换?交换什么?多久交换一次? (3)距离向量算法 (4)RIP协议的报文格式 (5)RI ...

  5. 【计算机网络】Internet原理与技术2(因特网的路由协议RIP、OSPF、BGP,网络地址转换NAT,网络协议IPv6)

    Internet原理与技术 因特网的路由协议 自治系统与路由协议分类(IGP.EGP) 内部网关协议 - RIP [例]RIP路由信息表的交换 RIP工作过程 内部网关协议 - OSPF 外部网关协议 ...

  6. RIP、OSPF、BGP、动态路由选路协议、自治域AS

    目录 view sourceprint? 1.1. 动态路由选路协议简介 2.2. RIP(Routing Information Protocol)路由信息协议 3.3. OSPF(Open Sho ...

  7. linux_驱动_V4l2层_camera_应用层调用流程_MIPI协议包格式简介

    一. 摄像头基础介绍 1.摄像头结构和工作原理. 拍摄景物通过镜头,将生成的光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字信号经过DSP加工处理,再被送到电 ...

  8. 计算机网络 | 网络层的一些路由选择协议RIP、OSPF、BGP

    目录 路由选择协议概述 静态路由选择 动态路由选择 因特网所采用的路由选择协议的主要特点 常见的路由选择协议 路由器的组成 信号传输过程: 路由表 RIP协议 路由信息协议RIP的基本工作原理 举例: ...

  9. 通信网络基础 ——RIP、OSPF、BGP等协议及模拟实验

    通信网络基础 1. 常用设备及参数说明 1.1 路由器 1.2 交换机 1.2.1 主要知识点区别 1.2.2 三层交换机配置 1.3 物理介质 2. 常用命令解释 2.1 路由器常用基本命令 2.2 ...

最新文章

  1. macos终端快捷键
  2. python使用界面-(八)Python 图形化界面设计
  3. 关于Basware的使用随想
  4. 由几个问题引出EJB的概念
  5. 接口超时后程序还会继续执行嘛_答网友问:分析一段STL程序,并就如何读懂一段程序谈几点感想...
  6. C++ Primer 5th笔记(chap 16 模板和泛型编程)模板特例化
  7. Oracle 生成随机密码
  8. Ubuntu下增加Python的PATH环境变量
  9. 团队开发——冲刺2.g
  10. Spark Mllib里如何删除每一条数据中所有的双引号“”(图文详解)
  11. css实现圆球旋像水波波动_66 个超有用的CSS 特效!
  12. Idea修改主题,字体等常规操作
  13. mysql 公历变农历_巧用SQL函数让公历变农历
  14. 左/右移运算符,循环左/右移运算
  15. 采购员的主要职责是什么?
  16. 解决电脑右键点击文件转圈,然后卡死刷新的问题
  17. 实现简单计算器 两个数字的加减乘除计算
  18. leetcode378.有序矩阵中第K小的元素(中等)
  19. [RK3288][Android5.1] 移植笔记 --- eDP显示屏添加
  20. 一车abs线路怎么量_abs传感器怎么测量好坏

热门文章

  1. 读书笔记---货币战争
  2. 远程语音 开源_通过开源语音聊天简化远程会议
  3. Gentoo USE参数清单中文详解
  4. Linux 清空文件内容
  5. Android项目---快递查询
  6. 移动电影院新版本新功能新体验
  7. tsconfig.json中常见配置项的含义解析
  8. python爬取链家租房信息_python爬取链家租房之获取房屋的链接和页面的详细信息...
  9. 【论文翻译】Frustratingly Simple Few-Shot Object Detection
  10. python zipfile压缩文件夹