OSPF协议原理简析

这篇具有很好参考价值的文章主要介绍了OSPF协议原理简析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.OSPF简介

  • OSPF(Open Shortest Path First,开放式最短路径优先)是一种链路状态路由协议,属于内部网关协议(IGP),是目前现网中使用最广泛的IGP路由协议,采用迪克斯彻(Dijkstra)算法用于计算一个节点到其他所有节点的最短路径。

  • OSPF协议的报文封装于IP,协议号89。

  • OSPF使用的组播地址:224.0.0.5(所有OSPF路由器),224.0.0.6(DR/BDR)

2.链路状态路由协议

2.1 简介

OSPF协议原理简析

链路状态路由协议是层次式的,网络中的路由器并不向邻居传递“路由项”,而是通告给邻居一些链路状态LSA(Link State Adver-tisement,例如接口设置的IP、掩码、开销值),OSPF路由器将自己的链路状态全部转发给邻居,通过LSA的泛洪,全网中所有路由器都知道整个网络的链路状态,因为所有路由器得到的链路状态信息都是一致的,就构建了统一且一致的链路状态数据库LSDB(Link-State Database),通过运行SPF算法,以自己为根,计算到达各目的地址的最短路径,从而形成路由表。

2.2 对比距离矢量路由协议

OSPF协议原理简析

  • 距离矢量协议直接传送各自的路由表信息。网络中的路由器从自己的邻居路由器得到路由信息,并将这些路由信息连同自己的本地路由信息发送给其他邻居,这样一级级的传递下去以达到全网同步。每个路由器都不了解整个网络拓扑,它们只知道与自己直接相连的网络情况,并根据从邻居得到的路由信息更新自己的路由。这是一种依照传闻进行选路的路由协议,自己并不考虑对错,且扩展性较差,路由通告报文会越来越大,效率低。

  • 链路状态路由协议传输的是链路状态,然后根据状态信息生成网络拓扑结构,每一个路由器再根据拓扑结构,以自己为根计算出路由。

3.OSPF术语

3.1 Router-ID

Router-ID相当于每个人的身份证号,每一台运行OSPF进程的路由器,在OSPF区域内唯一的一个标识符。因为Router-ID要求唯一性和稳定性,如果没有配置OSPF的Router-ID,系统会根据接口选举设备的Router-ID。
选举规则如下:

  1. 如果手工配置了routerid,手工配置的routerid最优。

  2. 如果路由器配置了loopback接口,以loopback接口地址的ip地址为routerid,越大越优。

  1. 如果没有配置loopback接口,以物理接口的ip地址为routerid,越大越优。

3.2 DR和BDR

OSPF协议原理简析

  • DR:Designated Router指定路由器。

  • BDR:Backup Designated Router备份指定路由器。

  • DR与BDR只存在于MA(多路访问)网络,以太网就是MA型网络。选择DR和BDR是为减少邻接关系带来的低效率和LSA泛洪问题,MA网络中所有OSPF路由器均与DR、BDR建立邻接关系,DROther之间是2way关系。

DR选举比较顺序:

  1. 比较接口优先级,越大越优,范围0-255,默认为1。(注意优先级为0是不能与参与DR的选举)

  2. 如果优先级相同,比较Router-ID,越大越优。

  1. 在DR与BDR的选举期(40秒)结束后,如果再加入优先级更高的路由器,也无法抢占DR,BDR角色,稳定第一。

  2. DR的选举基于接口/链路,不可以说某个路由器是DR,这是错误的。如果一台OSPF路由器有多个接口,很可能在每个接口上担任的OSPF角色各不相同。

4.OSPF网络类型

4.1 广播多路访问MA(Broadcast Multiple Access )

OSPF协议原理简析

现如今使用频率最多的OSPF网络类型,通常出现在以太网,当链路层协议是Ethernet时,OSPF缺省认为网络类型是广播型。此类型网络需要进行OSPF的DR、BDR选举。在该类型的网络中,OSPF通常以组播方式(224.0.0.5和224.0.0.6)发送协议报文。

4.2 非广播多路访问NBMA(Non-Broadcast Multiple Access)

OSPF协议原理简析

虽然从一个接口可以到达多个目的节点,但是网络本身不支持广播功能,当链路层协议是帧中继、ATM或X.25时,OSPF缺省认为网络类型是NBMA。此时OSPF的邻居需要管理员手工指定。在该类型的网络中,以单播方式发送协议报文。

4.3 点到点P2P(Point-To-Point)

OSPF协议原理简析

是指该接口通过点到点的方式与一台路由器相连。串行链路的二层协议代表为PPP,HDLC,则OSPF网络类型为P2P,此类型网络不需要进行OSPF的DR、BDR选举。

4.4 点到多点P2MP(Point-to-multipoint)

是指该接口通过点到多点的网络与多台路由器相连。
P2MP型网络比较特殊,没有一种链路层协议会被缺省地认为是点到多点类型。点到多点必须是由其他网络类型强制更改而来。常用做法是将NBMA改为点到多点的网络。在该类型的网络中,缺省情况下以组播方式(224.0.0.5)发送协议报文,也可以根据用户需要,以单播形式发送协议报文。

5.OSPF报文

OSPF协议原理简析

  • Hello报文:周期性发送,用来发现和维护OSPF邻居关系。

  • DBD报文(数据库描述):邻居建立之后,并不会立刻就将自己链路状态数据库中所有的LSA全部发给邻居,而是将LSA的基本描述信息发给邻居,使得路由器之间可以对比数据库是否同步,这就是Database Description Packets (DBD)。是LSA的目录信息,相当于书的目录,邻居在看完DBD之后,就能知道哪些LSA是需要邻居发送给自己的。

  • LSR报文(链路状态请求):LSR数据包在数据库同步过程中使用。路由器会发送LSR,请求其OSPF邻居发送缺失LSA的最新版本。

  • LSU报文(链路状态更新):链路状态更新,LSU数据包包括几种类型的LSA。LSU负责泛洪LSA,以及发送对LSR包的响应。LSA信息是封装在LSU包中。

  • LSAck报文(链路状态确认):LSAck负责进行可靠的LSA泛洪。

6.OSPF邻居建立过程(状态机)

6.1 关系变化过程

OSPF协议原理简析

Down->Init->2way->Exstart->Exchange->Loading->Full

  • Down:表示还没有建立起邻接关系,没有检测到活动邻居。

  • Init:表示从对端收到的HELLO包中,没有自己的路由器ID信息。

  • 2-way:双向阶段。表示从对端收到的HELLO包中,已经有自己的路由器ID信息了,已建立邻居关系可以共享链路状态数据。在MA网络中会选举DR、BDR,但OSPF邻居之间并不一定就会交换LSA,如果不需要交换LSA,则永远停留在此状态,如果需要形成邻接并互相交换LSA,则状态继续往下进行。(比如Drother与Drother之间将永远停留在Two-way状态,因为Drother与Drother之间不需要交换LSA。)

  • Exstart:在Exstart状态,就是确定邻居之间的主从关系(Master/Slave),Router-ID数字大的为主路由器,另一端为从路由器,由主路由器先向从路由器发送信息。

  • Exchange:交换阶段。在主的带领下开始交换DBD中LSA的摘要信息。

  • Loading:加载状态。请求更详细的信息,路由器会发送LSR来请求一个或者多个LSA的信息,对端会发送回LSU来告诉路由器他想要的信息。

  • Full:已建立完全邻接关系,其LSDB数据库与邻居完全相同。

6.2 过程详细描述

6.2.1邻居发现

OSPF协议原理简析

6.2.1.1 Down状态

运行OSPF路由器的初始状态,表示没有从邻居收到OSPF Hello报文,但是自己仍然可以向外发送OSPF的Hello报文。

6.2.1.2 Init状态

1、R1给R2发送Hello包
(以组播的方式发送,目的地址为224.0.0.5),在报文中Router-ID为172.16.1.1,R2收到此Hello报文后,进入Init状
态。
2、R2同样也会发送Hello包,R1收到R2发送的报文后,状态为Init。
3、当收到了邻居的hello报文中存在邻居的RID就进入Init状态。

6.2.1.3 2-way状态

1、R2向R1发送 的Hello报文中Active Neighbor字段携带R1的RID,R1在收到R2发来的报文邻居列表中发现自己的Router ID,状态为2-way,也称为邻居状态。
2、同样的道理,R1发送的报文中携带R2的Router-ID,R2收到后。从Init转变为2-way,进入邻居状态。
3、两端同时进入2-way标志着OSPF邻居关系(neighbor)的正常建立,里程碑式的阶段。
4、同时由于双方互相知道了邻居的ROUTERID,在2-WAY阶段,进入40秒的wait timer等待定时器,MA网络中的DR与BDR选举在此时选举期内完成选举。

6.2.2 路由发现

OSPF协议原理简析

6.2.2.1 Exstart状态

1、2-WAY中DR-BDR选举完成后,DBD中I位初始化位=1,此阶段关键是选择DBD中的主从。

OSPF协议原理简析

2、2-WAY阶段结束后,两边进入Exstart阶段,相互发送DBD报文(第一个DBD报文不包含具体LSA信息),First DBD只用作主从选举(Master/Slave),通过比较Router ID ,RID大的将成为主路由器(Master)。

6.2.2.2 Exchange状态

1、主从选举(Master/Slave)完成后,进入Exchange阶段,
I位初始化=0,DBD主从选举完毕之后,此阶段交换DBD的LSA。

OSPF协议原理简析


2、路由器会将收到的DBD中的信息,而自己LSDB中不存在的LSA头部加入到链路请求列表中,进入LOADING状态后会根据这个列表来发送请求信息。

6.2.2.3 Loading状态

1、在DBD中M位初始化=0,DBD中没有更多的LSA摘要信息了,M=0(后续不再有更多的DBD报文了),是进入Loading状态的标志。

OSPF协议原理简析

2、这时路由器就有了邻居的LSA索引列表,路由器都将进入LOADING状态,来请求自己LSDB中还没有的LSA的信息。路由器会发送LSR来请求一个或者多个LSA的信息,对端会发送回LSU来告诉路由器他想要的信息。

OSPF协议原理简析

6.2.2.4 Full状态

1.假如R1有10条请求LSA重传列表,当10条LSA都被LSR请求,并且LSU更新过后,LSA重传列表为空,R1与R2进入FULL状态,标示OSPF邻接彻底完成。
2、FULL建立完毕后,R1与R2互相按照HELLO间隔来发送HELLO保活OSPF。

7.LSA类型

7.1 什么是LSA

LSA:Link State Advertisement 链路状态通告,LSA头部和LSA数据封装在LSU报文中,LSU报文封装在OSPF报文中,OSPF报文封装在IP报文中,LSA数据才是真实的链路状态通告信息。链路指的是设备的接口,状态是指IP、掩码、COST,OSPF传递的不是路由信息,而是链路状态,LSA不是报文,而是封装到LSU中所存储的信息。LSA有很多种类型,最常见的是以下6类:

OSPF协议原理简析

7.2 1类LSA-路由器LSA

OSPF协议原理简析

1.描述: 路由器LSA由每个路由器生成,描述了路由器的链路状态和花费,传递到整个区域。路由器在区域内的接口和接口所连接的邻居(包含链路的开销)路由器链路状态。
2.传播范围: 只在该接口所属的区域内传递,不会穿越该区域的ABR。
3.产生: 所有运行了OSPF的路由器。
4.网络连接类型:(在不同的链路类型中LSA描述的信息不同)
4.1 P2P:描述的是邻居路由器ID。
4.2 中转网络:描述的是DR接口的IP地址。
4.3 末节网络:描述的是IP网络的子网。
4.4 虚链路:描述的是邻居路由器RID。

OSPF协议原理简析

R1#show ip ospf database router 

            OSPF Router with ID (172.16.1.1) (Process ID 110)

                Router Link States (Area 0)

  LS age: 42
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 172.16.1.1
  Advertising Router: 172.16.1.1
  LS Seq Number: 80000002
  Checksum: 0xEF3D
  Length: 36
  Number of Links: 1

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 172.16.1.2
     (Link Data) Router Interface address: 172.16.1.1
      Number of MTID metrics: 0
       TOS 0 Metrics: 10


  LS age: 43
  Options: (No TOS-capability, DC)
  LS Type: Router Links
  Link State ID: 172.16.1.2
  Advertising Router: 172.16.1.2
  LS Seq Number: 80000002
  Checksum: 0xED3C
  Length: 36
  Number of Links: 1

    Link connected to: a Transit Network
     (Link ID) Designated Router address: 172.16.1.2
     (Link Data) Router Interface address: 172.16.1.2
      Number of MTID metrics: 0
       TOS 0 Metrics: 10

7.3 2类LSA-网络LSA

OSPF协议原理简析

1.描述: 由DR生成,描述了本网段的链路状态,传递到整个区域。用来描述MA网络中所有路由器的RID和掩码信息。
2.传播范围: 只有在存在DR和BDR的网络中才会存在,传播范围无法跨区域。
3.产生: 由DR产生。

R1#show ip ospf database network

            OSPF Router with ID (172.16.1.1) (Process ID 110)

                Net Link States (Area 0)

  Routing Bit Set on this LSA in topology Base with MTID 0
  LS age: 15
  Options: (No TOS-capability, DC)
  LS Type: Network Links
  Link State ID: 172.16.1.2 (address of Designated Router)
  Advertising Router: 172.16.1.2
  LS Seq Number: 80000001
  Checksum: 0xF249
  Length: 32
  Network Mask: /24
        Attached Router: 172.16.1.2
        Attached Router: 172.16.1.1

7.4 3类LSA-网络汇总LSA

OSPF协议原理简析

1.描述: 1类和2类LSA可以了解到本区域的所有道路,互通已经没有问题,如果要去往其他区域,就需要3类LSA。3类LSA由ABR产生,用于OSPF区域间路由计算。
2.传播范围: 除了本区域,由一个区域通告到另一个区域。
3.产生: ABR文章来源地址https://www.toymoban.com/news/detail-482507.html

R1#show ip ospf database 

        

                Summary Net Link States (Area 0)

Link ID         ADV Router      Age         Seq#       Checksum
192.168.1.0     3.3.3.3         665         0x80000001 0x00D6E5

到了这里,关于OSPF协议原理简析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ENSP回路配置&OPSF开放式最短路径优先协议

    OSPF的特征 1.支持等开销负载均衡 2.基于组播进行更新----224.0.0.5  224.0.0.6 3.支持触发更新 ; 每30min进行一次周期更新 4.需要结构化的部署---区域划分  地址规划   (1)距离矢量协议: 运行距离矢量协议的路由器会周期性的泛洪自己的路由表。通过路由的交互,每台路由器从

    2024年02月19日
    浏览(45)
  • 开放式基金净值估算数据 API 数据接口

    开放式基金净值估算数据 API 数据接口 全量基金数据,实时数据,所有基金数据。 返回实时开放式基金净值估值 可定义所有基金估值数据; 多个基金属性值返回; 多维指标,一次查询毫秒级返回; 数据持续更新与维护; 全接口支持 HTTPS(TLS v1.0 / v1.1 / v1.2 / v1.3); 全面兼

    2024年02月14日
    浏览(40)
  • 什么是 ODBC – 开放式数据库连接

    开放式数据库连接 (ODBC) 是用于访问数据库的开放式标准应用程序编程接口 (API)。1992年,微软与Simba合作打造了世界上第一个ODBC驱动;SIMBA.DLL 和基于标准的数据访问诞生了。通过在程序中使用 ODBC 语句,您可以访问多个不同公共数据库中的文件。除了 ODBC 软件,每个要访问的

    2024年02月06日
    浏览(48)
  • 【计网·湖科大·思科】实验七 路由信息协议RIP、开放最短路径优先协议OSPF、边界网关协议BGP

    🕺作者: 主页 我的专栏 C语言从0到1 探秘C++ 数据结构从0到1 探秘Linux 😘欢迎关注:👍点赞🙌收藏✍️留言 🏇 码字不易,你的👍点赞🙌收藏❤️关注对我真的很重要,有问题可在评论区提出,感谢支持!!! 加深对网络体系结构的理解。 了解路由信息协议RIP 了解开放

    2024年02月20日
    浏览(44)
  • AIGC+开放式社交,为年轻人注入了新的“Soul”?

    5月21日全国助残日,Soul App举办了一场与众不同的线上公益活动,邀请视障用户担任“见习解忧师”,诉说世界更多角落“不完美”的故事,展示人生更多可能,传递温暖与爱。 参与此次派对的“见习解忧师”都是Soul平台上充满正能量,并且拥有“野生解忧师”经历的用户。

    2024年02月11日
    浏览(40)
  • Llama2 论文中译版——开放式基础和微调聊天模型

    因为最近一直在使用 LLM 工具,所以在学习 Llama 2:开放式基础和微调聊天模型 这篇论文的期间,顺手将内容翻译了过来。 整片译文是由 ChatGPT3.5、DeepL、Copilot X和笔者一起完成的,特此表示感谢。 在这项工作中,我们开发并发布了 Llama 2,这是一组经过预训练和微调的大型语

    2024年02月15日
    浏览(42)
  • 虹科产品|HK-TrueNAS开放式存储平台被评为数字公益产品

    一、HK-TrueNAS 被评为数字公益产品 数字公共产品联盟(Digital Public Goods Alliance) 是一项多方利益相关者倡议,旨在促进数字公益(DPG)的发现、开发、使用和投资。数字公共产品的定义是所有人都能免费获取的资源或服务,它能为个人和整个社会带来至关重要的利益。数字公

    2024年02月09日
    浏览(39)
  • 博途PLC开放式以太网通信TRCV_C指令应用编程(运动传感器UDP通信)

    博途PLC开放式以太网通信TSENG_C指令应用,请参看下面的文章链接:  博途PLC 1200/1500PLC开放式以太网通信TSEND_C通信(UDP)_plc的udp通信_RXXW_Dor的博客-CSDN博客 开放式TSEND_C通信支持TCP 、UDP等,关于TSEND_C的TCP通信可以参看下面这篇文章:博途PLC 1200/1500PLC开放式以太网通信TSEND_C通信

    2023年04月24日
    浏览(47)
  • 开放式高实时高性能PLC控制器解决方案-基于米尔电子STM32MP135

    随着工业数字化进程加速与IT/OT深入融合,不断增加的OT核心数据已经逐步成为工业自动化行业的核心资产,而OT层数据具备高实时、高精度、冗余度高、数据量大等等特点,如何获取更加精准的OT数据对数字化进程起到至关重要的作用,同时随着国内工业控制系统逐步进入中

    2024年03月24日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包