OSPF协议原理简析

OSPF协议原理简析​OSPF开放式最短路径优先,是一种链路状态路由协议,属于内部网关协议(IGP)

大家好,欢迎来到IT知识分享网。

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

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

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/12118.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信