初识OSPF

Posted linxl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识OSPF相关的知识,希望对你有一定的参考价值。

初识OSPF

说明:学习ing...若有不对之处,欢迎指出

1 OSPF简介

OSPF协议是一种链路状态协议。每个路由器负责发现、维护与邻居的关系,并将已知的邻居列表和链路费用LSU(Link State Update)报文描述,通过可靠的泛洪与自治系统AS(Autonomous System)内的其他路由器周期性交互,学习到整个自治系统的网络拓扑结构;并通过自治系统边界的路由器注入其他AS的路由信息,从而得到整个Internet的路由信息。每隔一个特定时间或当链路状态发生变化时,重新生成LSA,路由器通过泛洪机制将新LSA通告出去,以便实现路由的实时更新

2 OSPF路由类型

OSPF将路由分为四类,按照优先级从高到低的顺序依次为:

  • 区域内路由
  • 区域间路由
  •  第一类外部路由

第一类外部路由:这类路由的可信程度较高,并且和OSPF自身路由的开销具有可比性,所以到第一类外部路由的开销等于本路由器到相应的ASBR的开销与ASBR到该路由目的地址的开销之和。

  • 第二类外部路由

第二类外部路由(Type2 External):这类路由的可信度比较低,所以OSPF协议认为从ASBR到自治系统之外的开销远远大于在自治系统之内到达ASBR的开销。所以计算路由开销时将主要考虑前者,即到第二类外部路由的开销等于ASBR到该路由目的地址的开销。如果计算出开销值相等的两条路由,再考虑本路由器到相应的ASBR的开销。

区域内和区域间路由描述的是AS内部的网络结构,外部路由则描述了应该如何选择到AS以外目的地址的路由

3 OSPF网络类型

  • 广播类型

广播(Broadcast)类型:当链路层协议是Ethernet时,缺省情况下,OSPF认为网络类型是Broadcast。在该类型的网络中,通常以组播形式(OSPF路由器的预留IP组播地址是224.0.0.5OSPF DR/BDR的预留IP组播地址是224.0.0.6)发送Hello报文、LSU报文和LSAck报文;以单播形式发送DD报文和LSR报文。

l 非广播多路类型

NBMANon-Broadcast Multi-Access,非广播多路访问)类型:当链路层协议是帧中继、ATMX.25时,缺省情况下,OSPF认为网络类型是NBMA。在该类型的网络中,以单播形式发送协议报文。

  • 点到多点类型

P2MPPoint-to-MultiPoint,点到多点)类型:没有一种链路层协议会被缺省的认为是P2MP类型。P2MP必须是由其他的网络类型强制更改的,常用做法是将NBMA网络改为P2MP网络。在该类型的网络中,缺省情况下,以组播形式(224.0.0.5)发送协议报文。可以根据用户需要,以单播形式发送协议报文。

  • 点到点类型

P2PPoint-to-Point,点到点)类型:当链路层协议是PPPHDLC时,缺省情况下,OSPF认为网络类型是P2P在该类型的网络中,以组播形式(224.0.0.5)发送协议报文。

  • NBMAP2MP网络之间的区别如下:

1NBMA网络是全连通的;P2MP网络并不需要一定是全连通的。

2NBMA网络中需要选举DR与BDRP2MP网络中没有DR与BDR。

3NBMA网络采用单播发送报文,需要手工配置邻居;P2MP网络采用组播方式发送报文,通过配置也可以采用单播发送报文

4 路由器类型

OSPF路由器根据在AS中不同位置,可以分为以下四类

  • 区域内路由器

该路由器的所有接口都属于同一个OSPF区域

  • 区域边界路由器ABR

该类路由器可以同时属于两个以上的区域,但其中一个必须是骨干区域。ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接

  • 骨干路由器

该类路由器至少有一个接口属于骨干区域。因此,所有的ABR和位于Area0的内部路由器都是骨干路由器。

  • 自治系统边界路由器ASBR

与其他AS交换路由信息的路由器称为ASBRASBR并不一定位于AS的边界,它有可能是区域内路由器,也有可能是ABR。只要一台OSPF路由器引入了外部路由的信息,它就成为ASBR

 技术图片

 

5 OSPF区域

  • OSPF区域划分

由于大型网络中运行OSPF协议时,LSDB会占用大量的存储空间,使得SPF(最短路径优先)算法复杂度增加,增加CPU负担,大型网络拓扑的每次变化会导致路由器进行路由的重新计算,于是 OSPF协议将自治系统划分成不同的区域来解决以上问题

 区域的边界是路由器而不是链路,一个路由器可以属于不同的区域,但是一个网段(链路)只能属于一个区域,或者说每个运行OSPF的接口必须指明属于哪一个区域。

  • 骨干区域

OSPF划分区域之后,并非所有的区域都是平等的关系。其中有一个区域是与众不同的,它的区域号是0,通常被称为骨干区域。骨干区域负责区域之间的路由,非骨干区域之间的路由信息必须通过骨干区域来转发。对此,OSPF有两个规定:

1所有非骨干区域必须与骨干区域保持连通;

2骨干区域自身也必须保持连通。

  •  虚连接

虚连接是指在两台ABR之间通过一个非骨干区域而建立的一条逻辑上的连接通道。它的两端必须是ABR,而且必须在两端同时配置方可生效。为虚连接两端提供一条非骨干区域内部路由的区域称为传输区(Transit Area),当骨干区域因链路状态不能保持连通时候,通过虚连接仍然可以保证骨干区域在逻辑上的连通性。虚连接相当于在两个ABR之间形成了一个点到点的连接,因此,在这个连接上,和物理接口一样可以配置接口的各参数,如发送Hello报文间隔等。两台ABR之间直接传递OSPF报文信息,它们之间的OSPF路由器只是起到一个转发报文的作用。由于协议报文的目的地址不是中间这些路由器,所以这些报文对于它们而言是透明的,只是当作普通的IP报文来转发。

 技术图片

  • Stub区域和Totally Stub区域
  •  NSSA区域和Totally NSSA区域

6 OSPF报文类型

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

0               7

                15

                                    31

Version

Type

Packet length

Router ID

Area ID

Checksum

Autype

Authentication


Hello报文抓包:

 技术图片

DD报文抓包:

 技术图片

LSR抓包

 技术图片

 LSU报文格式:

 技术图片

LSAck抓包

 技术图片

 

7 DR/BDR

总结如下:

  • 优先级为0的路由器不参与DR/BDR的选举

   通过这个条件可以控制DR/BDR的选举,如果想让一个LAN上某台路由器永远是DR,则可以将其他路由器的DR 优先级设置为0

  • DR/BDR是终身制,不是被抢占的

   只要某台路由器在一个LAN上,已经被选取为DR,则它会一直是DR!只有等它重启或者关机了,才会重新选取,也就是说DR/BDR是终身制的,这样做主要是为了网络的稳定, 在真实网络中,稳定是压倒一切的!即使某种技术最新,某个设备性能最强,但是如果影响到稳定,就不会被优先选择。

  • 先选取BDR,后选取DR

       在一个LAN上,先根据优先级和Router ID 选取一个BDR;如果 LAN上此时没有DR,则BDR会转化为DR,在LAN上重新选取BDR

  • 其他路由器(DR other)需要和BDR建立邻接关系

       BDR首先和DR形成邻接关系;其他路由器(DR other)也要和BDR形成邻接关系

  这样做是有原因的,当DR出现故障后,BDR会成为新的DR。如果DRother不和BDR形成邻接关系,网络的流量就会中断时间很长,因为建立邻居关系需要花很长的时间。在这段时间内,网内流量是不通的。

      DR otherBDR形成邻接关系,当BDR切换为DR时,只需要发送 LSA,向DR other 通知新的DR即可,LSDB的内容基本不变,使得BDR起到真正的备份作用。

  •  网络中DR/BDR已经存在的情况下,接口上的路由器优先级的配置并不会立即生效
  • 当路由器的邻居关系稳定后如果邻居的状态是FULL,这说明他和邻居之间形成了邻接关系
  • 如果邻居的关系是2-way,则说明他们都不是DRBDR,两者之间不需要交换LSA
  • l如果在一个MA网络上只有唯一的一台具有DR选举资格的路由器,那么热这台路由器将成为DR,而且在这个网络上没有BDR,其他所有的路由器都将只和这台DR路由器建立邻接关系
  • 如果没有具有DR选举资格的路由器和一个MA网络相连(例如所有路由器的接口DR优先级都是0)那么这个网络上将没有DR或者BDR路由器,而且也不建立任何邻接关系
  • DRBDRDRDrother,BDR Drother之间都是FULL状态,Drother之间都是2-way状态,所有的Drother都只和DR以及BDR建立邻接关系
  •  DROther感知到网络拓扑的变化时,向组播地址224.0.0.6发送LSU报文,DRBDR会监听这个组播地址
  •  DR使用组播地址224.0.0.5发送LSU报文,而其他的OSPF路由器则监听这个组播地址;

8 LSA

 技术图片

 技术图片

路由器LSARouter LSA

这个最基本的LSA通告列出了路由器所有的链路或接口,并指明了他们的状态和沿每条链路方向出站的代价,以及该链路上所有已知的OSPF邻居。这些LSA通告只会始发他们的区域内部进行泛洪扩散。既包含路由信息,又包含拓扑信息,终止于ABR

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

网络LSA(Network LSA) 

多路访问网络中DR将会产生网络LSA通告,网路LSA也仅仅在产生这条网络LSA区域内部进行泛洪扩散。在MA网络中表示ROUTERRouter ID

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

网络汇总LSANetwork Summary LSA)

ABR路由器始发的。ABR路由器将发送网络汇总LSA到一个区域,描述区域内所有网段的路由,并通告给其他相关区域

 技术图片

 技术图片

 技术图片

 技术图片

ASBR汇总LSA

ABR始发的  不会出现在ASBR所属区域之内,通告ASBR 位置, 描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。Type3Type4LSA有相同的格式,它们都是由ABR产生

 技术图片

 技术图片

自助系统外部LSAExternal LSA

 始发于ASBR路由器通告外部路由信息,由ASBR产生,描述到AS外部的路由,这是五种LSA中,唯一一种通告到所有区域(除了Stub区域和NSSA区域)的LSA

NSSA外部LSA 是指在非纯末梢区域,始发于ASBR路由器的LSA通告,它就是7LSA,在LSA传递时会进行75.

 技术图片

 技术图片

 技术图片

 技术图片

 

以上是关于初识OSPF的主要内容,如果未能解决你的问题,请参考以下文章

ROS+CPP初识

初识UmiJS

初识 HTML5 Video Blob

初识数据库 初识mysql

Dapr初识

初识Kendo