前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >OSPF路由原理详解与关键点

OSPF路由原理详解与关键点

作者头像
可惜已不在
发布2024-10-17 16:08:33
发布2024-10-17 16:08:33
3500
举报
文章被收录于专栏:网络网络

一. OSPF简介:

开放式最短路径优先OSPF(Open Shortest Path First)是IETF组织开发的一个基于链路状态的内部网关协议(Interior Gateway Protocol)。

目前针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version 3(RFC2740)。

OSPF协议是因为 Internet 社区中需要为TCP/IP协议族引入具备强大功能的非专有内部网关协议 (IGP)。关于创建Internet通用互操作IGP的讨论从1988年就开始了,但直到 1991年才正式成形。当时OSPF 工作组请求为了 Internet 草案标准的发展而考虑OSPF

OSPF 协议基于链路状态技术,不同于传统Internet 路由协议(如 RIP)中使用的基于距离矢量的算法。OSPF引入了一些新概念,如可变长度子网掩码(VLSM) 、路由汇总等。

二.OSPF原理描述:

Router ID

如果要运行OSPF协议,必须存在Router ID。Router ID是一个32比特无符号整数,是一台路由器在自治系统中的唯一标识。

Router ID的设定有两种方式:

  • 通过命令行手动配置,在实际网络部署中,建议手工配置OSPF的Router ID,因为这关系到协议的稳定。
  • 通过协议自动选取。 如果没有手动配置Router ID,设备会从当前接口的IP地址中自动选取一个作为Router ID。其选取顺序是:
    1. 优先从Loopback地址中选择最大的IP地址作为Router ID。
    2. 如果没有配置Loopback接口,则在接口地址中选取最大的IP地址作为Router ID。

在路由器运行了OSPF并确定了Router ID后,如果该Router ID对应的接口Down或者接口消失(例如执行了undo interface loopback loopback-number)或者出现更大的IP地址,OSPF将仍然保持原Router ID。只有重新配置系统的Router ID或者OSPF的Router ID,并且重新启动OSPF进程后,才会进行Router ID的重新选取。

链路状态

OSPF是一种链路状态协议。可以将链路视为路由器的接口。链路状态是对接口及接口与相邻路由器的关系的描述。例如接口的信息包括接口的IP地址、掩码、所连接的网络的类型、连接的邻居等。所有这些链路状态的集合形成链路状态数据库。

COST
  • OSPF使用cost“开销”作为路由度量值。
  • 每一个激活OSPF的接口都有一个cost值。OSPF接口cost=100M/接口带宽,其中100M为OSPF的参考带宽(reference-bandwidth)。
  • 一条OSPF路由的cost由该路由从路由的起源一路到达本地的所有入接口cost值的总和。

三. OSPF的核心内容:

二种认证方式: 视图 作用 OSPF区域整个区域的在加入此区域时都需要进行认证接口仅仅相邻的需要进行认证 三张表: 路由表 含义 OSPF路由表记录OSPF可达路由OSPF邻居表记录OSPF的邻居关系等OSPF LSDB表记录了OSPF相关的各类LSA 四种网络类型 网络类型 含义 广播类型(Broadcast) 当链路层协议是Ethernet、FDDI时,缺省情况下,OSPF认为网络类型是Broadcast。 在该类型的网络中:

  • 通常以组播形式发送Hello报文、LSU报文和LSAck报文。其中,224.0.0.5的组播地址为OSPF设备的预留IP组播地址;224.0.0.6的组播地址为OSPF DR/BDR( Backup Designated Router)的预留IP组播地址。
  • 以单播形式发送DD报文和LSR报文。

NBMA类型(Non-Broadcast Multi-Access) 当链路层协议是帧中继、X.25时,缺省情况下,OSPF认为网络类型是NBMA。 在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。 点到多点P2MP类型(Point-to-Multipoint) 没有一种链路层协议会被缺省的认为是Point-to-Multipoint类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将非全连通的NBMA改为点到多点的网络。 在该类型的网络中:

  • 以组播形式(224.0.0.5)发送Hello报文。
  • 以单播形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)。

点到点P2P类型(point-to-point) 当链路层协议是PPP、HDLC和LAPB时,缺省情况下,OSPF认为网络类型是P2P。 在该类型的网络中,以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。 五种报文 报文类型 报文作用 Hello报文 周期性发送,用来发现和维持OSPF邻居关系。 DD报文(Database Description packet) 描述本地LSDB(Link State Database)的摘要信息,用于两台设备进行数据库同步。 LSR报文(Link State Request packet) 用于向对方请求所需的LSA。 设备只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文。 LSU报文(Link State Update packet) 用于向对方发送其所需要的LSA。 LSAck报文(Link State Acknowledgment packet) 用来对收到的LSA进行确认。 六个区域: 区域类型 作用 普通区域 缺省情况下,OSPF区域被定义为普通区域。普通区域包括标准区域和骨干区域。

  • 标准区域是最通用的区域,它传输区域内路由,区域间路由和外部路由。
  • 骨干区域是连接所有其他OSPF区域的中央区域。骨干区域通常用Area 0表示。

STUB区域 不允许发布自治系统外部路由,只允许发布区域内路由和区域间的路由。 在STUB区域中,路由器的路由表规模和路由信息传递的数量都会大大减少。 为了保证到自治系统外的路由可达,由该区域的ABR发布Type3缺省路由传播到区域内,所有到自治系统外部的路由都必须通过ABR才能发布。 Totally STUB区域 不允许发布自治系统外部路由和区域间的路由,只允许发布区域内路由。 在Totally STUB区域中,路由器的路由表规模和路由信息传递的数量都会大大减少。 为了保证到自治系统外和其他区域的路由可达,由该区域的ABR发布Type3缺省路由传播到区域内,所有到自治系统外部和其他区域的路由都必须通过ABR才能发布。 NSSA区域 NSSA区域允许引入自治系统外部路由,由ASBR发布Type7 LSA通告给本区域,这些Type7 LSA在ABR上转换成Type5 LSA,并且泛洪到整个OSPF域中。 NSSA区域同时保留自治系统内的STUB区域的特征。 该区域的ABR发布Type7缺省路由传播到区域内,所有域间路由都必须通过ABR才能发布。 Totally NSSA区域 Totally NSSA区域允许引入自治系统外部路由,由ASBR发布Type7 LSA通告给本区域,这些Type7 LSA在ABR上转换成Type5 LSA,并且泛洪到整个OSPF域中。 Totally NSSA区域同时保留自治系统内的Totally STUB Area区域的特征。 该区域的ABR发布Type3和Type7缺省路由传播到区域内,所有域间路由都必须通过ABR才能发布。 七类LSA(OSPFV2) LSA类型 LSA作用 Router-LSA(Type1) 每个设备都会产生,描述了设备的链路状态和开销,在所属的区域内传播。 Network-LSA(Type2) 由DR(Designated Router)产生,描述本网段的链路状态,在所属的区域内传播。 Network-summary-LSA(Type3) 由ABR产生,描述区域内某个网段的路由,并通告给发布或接收此LSA的非Totally STUB或NSSA区域。例如:ABR同时属于Area0和Area1,Area0内存在网段10.1.1.0,Area1内存在网段11.1.1.0,ABR为Area0生成到网段11.1.1.0的Type3 LSA;ABR为Area1生成到网段10.1.1.0的Type3 LSA,并通告给发布或接收此LSA的非Totally Stub或NSSA区域。 ASBR-summary-LSA(Type4) 由ABR产生,描述到ASBR的路由,通告给除ASBR所在区域的其他相关区域。 AS-external-LSA(Type5) 由ASBR产生,描述到AS外部的路由,通告到所有的区域(除了STUB区域和NSSA区域)。 NSSA LSA(Type7) 由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。

四. OSPF的邻居关系和邻接

在广播网和NBMA网络中,任意两台路由器之间都要传递路由信息。网络中有n台路由器,则需要建立n*(n-1)/2个邻接关系。这使得任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源。为解决这一问题,OSPF定义了指定路由器DR和备份指定路由器BDR。通过选举产生DR(Designated Router)后,所有路由器都只将信息发送给DR,由DR将网络链路状态LSA广播出去。除DR和BDR之外的路由器(称为DR Other)之间将不再建立邻接关系,也不再交换任何路由信息,这样就减少了广播网和NBMA网络上各路由器之间邻接关系的数量。

简单来说就是OSPF中邻居关系是运行OSPF的路由器与被选出的DR和BDR建立邻接关系最后状态变为FULL,而非DR和BDR的邻居是只能停止在2-way关系

七种邻居关系的状态 当前状态 作用 Down 邻居会话的初始阶段,表明没有在邻居失效时间间隔内收到来自邻居路由器的Hello数据包 Init 从邻居收到了hello报文,但自己的router-id不在所收到的hello报文中。 2-way 从邻居收到的Hello报文中包含有自己的Router ID,则状态为2-way;如果不 需要形成邻接关系则邻居状态机就停留在此状态,否则进入Exstart状态。 Exstart 开始协商主从关系,并确定DD的序列 号,此时状态为Exstart。 Exchange 主从关系协商完毕后开始发送包含摘要消息的DD报文,此时状态为Exchange Loading 相互发送LSR、LSU、LSAck报文 Full 路由器已经完成了邻居的LSDB的同步

五.LSA在各区域中传播的支持情况

区域类型

Router-LSA(Type1)

Network-LSA(Type2)

Network-summary-LSA(Type3)

ASBR-summary-LSA(Type4)

AS-external-LSA(Type5)

NSSA LSA(Type7)

普通区域(包括标准区域和骨干区域)

Stub区域

Totally Stub区域

NSSA区域

Totally NSSA区域


有想更深入了解的小伙伴可以在华为官网上进行学习

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一. OSPF简介:
  • 二.OSPF原理描述:
  • 三. OSPF的核心内容:
  • 四. OSPF的邻居关系和邻接
  • 五.LSA在各区域中传播的支持情况
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档