当前位置: 首页 > news >正文

OSPF协议详解3:网络类型、SPF算法、路由选择与特殊区域

在这里插入图片描述

本文深入探讨OSPF协议核心概念。详细介绍了点到点、广播、NBMA、点到多点及环回等OSPF网络类型,涵盖邻居发现、DR/BDR选举、Hello/Dead间隔及其默认值。阐述了OSPF最短路径优先(SPF)算法,包括基于带宽的度量计算和管理距离。分析了OSPF路由类型(域内、域间、外部)及其优先级偏好与防环机制。最后,重点介绍了Stub、Totally Stubby、NSSA、Totally NSSA等特殊区域,阐明其限制LSA传播、优化网络性能的作用,以及对LSA类型过滤的规则。

1. OSPF网络类型

路由器可以连接到不同类型的WAN链路,有些WAN链路支持全互联,有的支持星形互联,也有的只支持点到点连接。有的支持组播和广播,有的只支持单播。不同类型的WAN链路的特性也不一样,所以这也是为什么要设置OSPF的网络类型。

RFC 2328中定义了四种公认的网络类型:

  • 广播
  • 非广播
  • 点到点
  • 点到多点
    还有两种厂商私有的网络类型:
  • 点到多点非广播(思科私有)
  • 环回(多厂商)

基于不同的网络类型,OSPF会

  • 自动通过组播来发现邻居,或通过单播进行手动指定邻居。
  • 决定是否需要DR/BDR。
  • 使用不同的Hello和Dead间隔。

当在一个接口上配置OSPF时,根据接口的类型会有一些默认值,譬如:

  • 以太网:默认为广播。
  • HDLC/PPP:默认点到点。
  • 帧中继:默认NBMA。

1.1 点到点网络

点到点网络是最简单明了的。在WAN链路为串口,E1/T1的租用线路,以及GRE和IPsec隧道时,链路默认设置为点到点网络。

  • 只能连接到一个远端的路由器,连接为1对1的通信。
  • 允许通过组播来动态发现邻居,组播地址为224.0.0.5。
  • 不需要DR/BDR,因为链路上只有两个路由器。
  • Hello间隔默认10秒,Dead间隔默认40秒。

在这里插入图片描述

在1类LSA中会显示两条:

  • P2P连接到另一台的路由器,包括自己的IP地址和对端路由器的RID。
  • 连接到一个末节网络,包括P2P网络的前缀和掩码。

1.2 广播网络

广播网络是使用最多的网络类型,当在各种速率的以太口上配置OSPF时,默认的网络的类型就是广播。

  • 可以通过此接口连接到无数的路由器。连接是任意到任意的。
  • 允许通过组播来动态发现邻居,组播地址为224.0.0.5。
  • 因为在这个网络里有许多路由器,因为需要选举DR/BDR来优化LSA的泛洪。
  • Hello间隔默认30秒,Dead间隔默认120秒。

在这里插入图片描述

在1类LSA里会显示连接到一个Transit网络,包括DR的IP地址和自己的IP地址。通过DR的IP地址来查看2类的LSA。它包括DR地址,网络的掩码以及所有连接到此网络的路由器的RID。

在这里插入图片描述

1.3 点到多点网络

点到多点网络需要在接口下明确配置为P2MP。它用在帧中继和DMVPN这种的WAN链路上。

  • 可以通过此接口连接到无数的路由器。连接为星形连接,自己是中心。
  • 允许通过组播来动态发现邻居,组播地址为224.0.0.5。
  • 因为我是中心,我可以优化LSA的泛洪,因此不需要选举DR/BDR。
  • 在Spoke站点,配置为点到点网络,因为它只能连接到Hub。
  • Hello间隔默认30秒,Dead间隔默认120秒。

1.4 NBMA

NBMA为非广播多路访问网络,用于原生不支持组播和广播的网络,譬如帧中继和X.25。

  • 可以通过此接口连接到无数的路由器。连接是任意到任意的。
  • 无组播能力,需要手动指定邻居,通过单播来传播控制信息。
  • 因为在这个网络里有许多路由器,因为需要选举DR/BDR来优化LSA的泛洪。
  • Hello间隔默认30秒,Dead间隔默认120秒。

1.5 点到多点非广播

特性和P2MP差不多,只是不支持组播和广播,需要在接口下明确配置P2MP non-broadcast。

  • 可以通过此接口连接到无数的路由器。连接为星形连接,自己是中心。
  • 无组播能力,需要手动指定邻居,通过单播来传播控制信息。
  • 因为我是中心,我可以优化LSA的泛洪,因此不需要选举DR/BDR。
  • 在Spoke站点,配置为点到点网络,因为它只能连接到Hub。
  • Hello间隔默认30秒,Dead间隔默认120秒。

1.6 环回网络

Loopback接口默认设置为环回网络。OSPF总是将Lookback地址通告成/32的主机地址, 即使真实的IP地址为/24的。

1.7 总结

Network TypeDR/BDR ElectionNeighbor DiscoveryDefault Timers (Hello/Dead)Common Use Case
BroadcastYesAutomatic (Multicast)10 / 40 secondsEthernet LAN
Point-to-PointNoAutomatic (Multicast)10 / 40 secondsSerial Links, Two-Router Ethernet Links
Non-Broadcast (NBMA)YesManual (Unicast)30 / 120 secondsLegacy Frame Relay (Full-Mesh)
Point-to-MultipointNoAutomatic (Multicast)30 / 120 secondsHub-and-Spoke WAN (with multicast)
Point-to-Multipoint Non-BroadcastNoManual (Unicast)30 / 120 secondsHub-and-Spoke WAN (no multicast)
LoopbackN/AN/AN/ARouter ID, Management Interfaces

2. 最短路径优先算法

OSPF路由协议的核心是SPF算法,也叫做Dijkstra算法,它使用链路的带宽作为度量,默认是以100M为参考值,也就是100M的链路的度量值为1。度量值是一个整数值,公式为 10810^8108 / 接口带宽(单位为bps),结果四舍五入到最近的整数,不足的1的为1。

通过LSA的泛洪,区域内的路由器都保持相同的LSDB,因此每台路由器在本地计算从本身到目标网络的度量,并选出度量值最小的作为最优路径。在实际的生产环境,设置的带宽参考值为本网络中最高速率的接口带宽值。在普通企业环境,一般是10G。

参考日常使用到的管理距离,OSPF的管理距离为110。在OSPF选出最优路径后,如果目标网络还从其他路由协议学到了,则需要选择管理距离小的放到全局路由表中。

路由来源管理距离值
直连接口0
静态路由1
EIGRP汇总路由5
EBGP20
EIGRP内部路由90
OSPF110
IS-IS115
RIP120
EIGRP外部路由170
IBGP200

3. 最优路径选择

3.1 路由类型

O : 域内路由

在这里插入图片描述

O IA:域间路由

在这里插入图片描述

O E:外部路由
1类外部路由包括本设备到ASBR的度量值加外部引入时的度量值,而2类路由只包含外部引入时的度量值,因为2类路由在OSPF域内传递时度量值不变。
从普通区域引入的外部路由分为O E1和 O E2类型的路由。而从NSSA区域引入的外部路由则分为 O N1和O N2类型的路由。

3.2 路由类型偏好

如果同一条路由既有域内的又有域间的,而域间的度量值更低一些,OSPF会选择哪个作为最优路由呢?
答案是选择域内的。对于OSPF路由的偏好是O > O IA > N1 > E1 > N2 > E2。只有是同类型的OSPF路由才会比较度量值。而如果路由类型和度量值都一样,则会进行负载均衡。

3.3 OSPF路由的防环

  • 链路状态的路由协议与距离矢量的路由协议不同,因为在区域内每台设备都有整个区域内的拓扑,它会计算出到区域内所有的目标网络的无环最优路径,因此在域内OPSF原生地就防环。

  • 而对于域间路由,都是由普通区域传到骨干区域再传到其他区域。从一个区域学到的路由不会再传回这个区域。

  • 如果是MPLS作为超级骨干区域,PE-CE使用OSPF,则PE将路由从MPBGP导回到OSPF时会将SLA的DN bit置1,CE的OSPF的SPF算法会忽略DN bit置位的SLA。

在这里插入图片描述

  • 在双点双向重分布的时候,也可以通过打标签来过略掉重分布的路由。

在这里插入图片描述

4. 特殊区域

末节区域的作用是限制外部路由的传播,优化网络性能。它一共有四种变种形式。

  • Stub
  • Totally Stub
  • NSSA
  • Totally NSSA

它们的特点如下:

  • 这4种区域允许域内的1类和2类路由外,禁止5类外部路由的传播。
  • 带Totally字样的则会禁止域间的3类路由的传播。
  • NSSA系列的可以引入外部路由,但是ASBR会生成7类路由,到ABR时会重新生成5类传到骨干区域。
OSPF Area TypeOSPF LSA Types Allowed
BackboneType 1, Type 2, Type 3, Type 4, Type 5
NormalType 1, Type 2, Type 3, Type 4, Type 5
StubType 1, Type 2, Type 3, OSPF summary default route
Totally-Stubby (Cisco)Type 1, Type 2, OSPF summary default route
Not-So-Stubby (NSSA)Type 1, Type 2, Type 3, Type 7, default static route
Totally NSSAType 1, Type 2, Type 7, OSPF summary default route

注意事项:

  • 末节区域内的路由器配置Area时要带stub选项,不然邻居起不来。这个属性也是由Hello包来携带的。
  • Area 0无法配置末节区域。
  • 根据RFC 2328,虚电路无法穿越末节区域。

📚 延伸阅读

更多内容持续更新于我的博客:https://www.zenseek.site

http://www.dtcms.com/a/438186.html

相关文章:

  • 10.3总结
  • 算法比赛中的浮点数精度陷阱:从一个货币分解问题说起
  • 昆明手机网站开发不到网站是为什么
  • 反爬虫机制深度解析:从基础防御到高级对抗的完整技术实战
  • 爬坑 10 年!京东店铺全量商品接口实战开发:从分页优化、SKU 关联到数据完整性闭环
  • LeetCode每日一题——判断能否形成等差数列
  • springboot整合sa-token报未能获取有效的上下文处理器
  • 和别人做网站接单赚钱企业网站开发技术期末试题
  • AI-调查研究-93-具身智能 机器人仿真工具大全:从Gazebo到Isaac Sim的全面对比 六大仿真平台
  • 【计算机视觉】霍夫变换检测
  • 【Java核心技术/基础】25道Java核心技术基础面试题及答案
  • AI伦理困局:算法时代的公平与治理之道
  • 网站及app开发招聘榆中县城乡建设局网站
  • MySQL的MHA高可用集群解决方案应用实战(上)
  • 廊坊专业网站网站网站的制作建站人
  • list 实现链表封装节点的底层逻辑:如何克服不连续无法正常访问挑战
  • flash网站模板福州网络推广专员
  • tcpxtract安装教程
  • 1.3 前端框架:加速 LLM 应用开发
  • 从0死磕全栈之Next.js Server Actions 入门实战:在服务端安全执行逻辑,告别 API 路由!
  • 从传输层协议到 UDP:轻量高效的传输选择
  • C++ 11和20中的位域使用说明-2
  • 【数据结构】二叉树的高频热门面试题大全
  • 营口房产建设信息网站网站开发类合同范本
  • 石家庄哪里做网站没有网站怎么做seo
  • Akamai CDN 和 CloudFlare CDN 有什么具体区别?
  • Bash 中的 shopt -s globstar:递归 Glob 模式详解
  • LED驱动芯片FP7208选型指南:参数、应用场景与设计要点(宽压2.5-24V,恒流0.2V)
  • K8s学习----StorageClass:实现存储资源的动态管理
  • JUC 并发编程之无锁模型详解:CAS 原理、原子类应用与 Unsafe 底层实现