OSPF路由原理详解与关键点

目录

一.

OSPF简介:

二.

OSPF原理描述:

三.

OSPF的核心内容:

四.

OSPF的邻居关系和邻接

五.

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


一.

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区域

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

OSPF - 华为 (huawei.com)

有小伙伴想考数通的HCIP的和想获取相关内容文件的课件的可以进群讨论,找志同道合的人,一起讨论问题

相关推荐
热爱跑步的恒川2 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程
云飞云共享云桌面3 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
音徽编程5 小时前
Rust异步运行时框架tokio保姆级教程
开发语言·网络·rust
幺零九零零6 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
23zhgjx-NanKon6 小时前
华为eNSP:QinQ
网络·安全·华为
23zhgjx-NanKon6 小时前
华为eNSP:mux-vlan
网络·安全·华为
点点滴滴的记录6 小时前
RPC核心实现原理
网络·网络协议·rpc
Lionhacker7 小时前
网络工程师这个行业可以一直干到退休吗?
网络·数据库·网络安全·黑客·黑客技术
程思扬8 小时前
为什么Uptime+Kuma本地部署与远程使用是网站监控新选择?
linux·服务器·网络·经验分享·后端·网络协议·1024程序员节
ZachOn1y8 小时前
计算机网络:运输层 —— 运输层概述
网络·tcp/ip·计算机网络·运输层