【重识云原生】第四章云网络4.3.4.1-2节——OSPF协议

 《重识云原生系列》专题索引:

  1. 第一章——不谋全局不足以谋一域
  2. 第二章计算第1节——计算虚拟化技术总述
  3. 第二章计算第2节——主流虚拟化技术之VMare ESXi
  4. 第二章计算第3节——主流虚拟化技术之Xen
  5. 第二章计算第4节——主流虚拟化技术之KVM
  6. 第二章计算第5节——商用云主机方案
  7. 第二章计算第6节——裸金属方案
  8. 第三章云存储第1节——分布式云存储总述
  9. 第三章云存储第2节——SPDK方案综述
  10. 第三章云存储第3节——Ceph统一存储方案
  11. 第三章云存储第4节——OpenStack Swift 对象存储方案
  12. 第三章云存储第5节——商用分布式云存储方案
  13. 第四章云网络第一节——云网络技术发展简述
  14. 第四章云网络4.2节——相关基础知识准备
  15. 第四章云网络4.3节——重要网络协议
  16. 第四章云网络4.3.1节——路由技术简述
  17. 第四章云网络4.3.2节——VLAN技术
  18. 第四章云网络4.3.3节——RIP协议
  19. 第四章云网络4.3.4节——OSPF协议
  20. 第四章云网络4.3.4.3节——OSPF协议工作原理
  21. 第四章云网络4.3.4.4节——[转载]OSPF域内路由
  22. 第四章云网络4.3.4.5节——[转载]OSPF外部路由
  23. 第四章云网络4.3.4.6节——[转载]OSPF特殊区域之Stub和Totally Stub区域详解及配置
  24. 第四章云网络4.3.4.7节——[转载]OSPF特殊区域之NSSA和Totally NSSA详解及配置
  25. 第四章云网络4.3.5节——EIGRP协议
  26. 第四章云网络4.3.6节——IS-IS协议
  27. 第四章云网络4.3.7节——BGP协议
  28. 第四章云网络4.3.7.2节——BGP协议概述
  29. 第四章云网络4.3.7.3节——BGP协议实现原理
  30. 第四章云网络4.3.7.4节——高级特性
  31. 第四章云网络4.3.7.5节——实操
  32. 第四章云网络4.3.7.6节——MP-BGP协议
  33. 第四章云网络4.3.8节——策略路由
  34. 第四章云网络4.3.9节——Graceful Restart(平滑重启)技术
  35. 第四章云网络4.3.10节——VXLAN技术
  36. 第四章云网络4.3.10.2节——VXLAN Overlay网络方案设计
  37. 第四章云网络4.3.10.3节——VXLAN隧道机制
  38. 第四章云网络4.3.10.4节——VXLAN报文转发过程
  39. 第四章云网络4.3.10.5节——VXlan组网架构
  40. 第四章云网络4.3.10.6节——VXLAN应用部署方案
  41. 第四章云网络4.4节——Spine-Leaf网络架构
  42. 第四章云网络4.5节——大二层网络
  43. 第四章云网络4.6节——Underlay 和 Overlay概念
  44. 第四章云网络4.7.1节——网络虚拟化与卸载加速技术的演进简述
  45. 第四章云网络4.7.2节——virtio网络半虚拟化简介
  46. 第四章云网络4.7.3节——Vhost-net方案
  47. 第四章云网络4.7.4节vhost-user方案——virtio的DPDK卸载方案
  48. 第四章云网络4.7.5节vDPA方案——virtio的半硬件虚拟化实现
  49. 第四章云网络4.7.6节——virtio-blk存储虚拟化方案
  50. 第四章云网络4.7.8节——SR-IOV方案
  51. 第四章云网络4.7.9节——NFV
  52. 第四章云网络4.8.1节——SDN总述
  53. 第四章云网络4.8.2.1节——OpenFlow概述
  54. 第四章云网络4.8.2.2节——OpenFlow协议详解
  55. 第四章云网络4.8.2.3节——OpenFlow运行机制
  56. 第四章云网络4.8.3.1节——Open vSwitch简介
  57. 第四章云网络4.8.3.2节——Open vSwitch工作原理详解
  58. 第四章云网络4.8.4节——OpenStack与SDN的集成
  59. 第四章云网络4.8.5节——OpenDayLight
  60. 第四章云网络4.8.6节——Dragonflow
  61. 第四章云网络4.9.1节——网络卸载加速技术综述

  62. 第四章云网络4.9.2节——传统网络卸载技术

  63. 第四章云网络4.9.3.1节——DPDK技术综述

  64. 第四章云网络4.9.3.2节——DPDK原理详解

  65. 第四章云网络4.9.4.1节——智能网卡SmartNIC方案综述

  66. 第四章云网络4.9.4.2节——智能网卡实现

  67.  《云原生进阶之容器》专题第六章容器6.1.1节——容器综述

  68. 【云原生进阶之PaaS中间件】第一章Redis-1.1简介

  69. 【云原生进阶之PaaS中间件】第二章Zookeeper-1-综述

  70. 【云原生进阶之PaaS中间件】第三章Kafka-1-综述

  71. 【云原生进阶之PaaS中间件】第四章RabbitMQ-1-简介及工作模式

  72. 【云原生进阶之数据库技术】第一章MySQL-1-基础概述

  73. 【云原生进阶之数据库技术】第二章-Oracle-1-简介

  74. 【云原生进阶之数据库技术】第三章-PostgreSQL-1-综述

  《云原生进阶之容器》专题索引:

  1. 第一章Docker核心技术1.1节——Docker综述

  2. 第一章Docker核心技术1.2节——Linux容器LXC

  3. 第一章Docker核心技术1.3节——命名空间Namespace

  4. 第一章Docker核心技术1.4节——chroot技术

  5. 第一章Docker核心技术1.5.1节——cgroup综述

  6. 第一章Docker核心技术1.5.2节——cgroups原理剖析

  7. 第一章Docker核心技术1.5.3节——cgroups数据结构剖析

  8. 第一章Docker核心技术1.5.4节——cgroups使用

  9. 第一章Docker核心技术1.6节——UnionFS

  10. 第一章Docker核心技术1.7节——Docker镜像技术剖析

  11. 第一章Docker核心技术1.8节——DockerFile解析

  12. 第一章Docker核心技术1.9节——docker-compose容器编排

  13. 第一章Docker核心技术1.10节——Docker网络模型设计

  14. 第二章——Kubernetes概述

  15. 第二章Controller Manager原理剖析--2.1节Controller Manager综述

  16. 第二章Controller Manager原理2.2节--client-go剖析

  17. 第二章Controller Manager原理2.3节--Reflector分析

  18. 第二章Controller Manager原理2.4节--Informer机制剖析

  19. 第二章Controller Manager原理2.5节--DeltaFIFO剖析

  20. 第二章Controller Manager原理2.6节--Informer controller

  21. 第二章Controller Manager原理2.7节--Indexer剖析

  22. 第二章Controller Manager原理2.8节--Resync机制

  23. 第三章List-Watch机制3.1节-- List-Watch机制剖析

1 OSPF协议概述

1.1 前言

        OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪克斯彻(Dijkstra)算法被用来计算最短路径树。OSPF支持负载均衡和基于服务类型的选路,也支持多种路由形式,如特定主机路由和子网路由等。

  • OSPF的流量使用IP协议号89。
  • OSPF工作在单个AS,是个绝对的内部网关路由协议(Interior Gateway Protocol,即IGP)。
  • OSPF对网络没有跳数限制,支持 Classless Interdomain Routing (CIDR)和Variable-Length Subnet Masks (VLSMs),没有自动汇总功能,但可以手工在任意比特位汇总,并且手工汇总没有任何条件限制,可以汇总到任意掩码长度。
  • OSPF支持认证,并且支持明文和MD5认证;OSPF不可以通过Offset list来改变路由的metric。
  • OSPF并不会周期性更新路由表,而采用增量更新,即只在路由有变化时,才会发送更新,并且只发送有变化的路由信息;事实上,OSPF是间接设置了周期性更新路由的规则,因为所有路由都是有刷新时间的,当达到刷新时间阀值时,该路由就会产生一次更新,默认时间为1800秒,即30分钟,所以OSPF路由的定期更新周期默认为30分钟。
  • OSPF所有路由的管理距离(Ddministrative Distance)为110,OSPF只支持等价负载均衡。
  • 距离矢量路由协议的根本特征就是自己的 路由表是完全从其它路由器学来的,并且将收到的路由条目一丝不变地放进自己的路由表,运行距离矢量路由协议的路由器之间交换的是路由表,距离矢量路由协议 是没有大脑的,路由表从来不会自己计算,总是把别人的路由表拿来就用;而OSPF完全抛弃了这种不可靠的算法,OSPF是典型的链路状态路由协议,路由器之间交换的并不是路由表,而是链路状态,OSPF通过获得网络中所有的链路状态信息,从而计算出到达每个目标精确的网络路径。

1.2 OSPF协议主要优点

(1)OSPF 适合在大范围的网络:OSPF 协议当中对于路由的跳数,它是没有限制的,所以 OSPF 协议能用在许多场合,同时也支持更加广泛的网络规模。只要是在组播的网络中,OSPF协议能够支持数十台路由器一起运作。

(2)组播触发式更新:OSPF 协议在收敛完成后,会以触发方式发送拓扑变化的信息给其他路由器,这样就可以减少网络宽带的利用率;同时,可以减小干扰,特别是在使用组播网络结构,对外发出信息时,它对其他设备不构成其他影响

(3)收敛速度快:如果网络结构出现改变,OSPF 协议的系统会以最快的速度发出新的报文,从而使新的拓扑情况很快扩散到整个网络;而且,OSPF 采用周期较短的 HELLO 报文来维护邻居状态。

(4)以开销作为度量值:OSPF 协议在设计时,就考虑到了链路带宽对路由度量值的影响。OSPF 协议是以开销值作为标准,而链路开销和链路带宽,正好形成了反比的关系,带宽越是高,开销就会越小,这样一来,OSPF 选路主要基于带宽因素。

(5)OSPF 协议的设计是为了避免路由环路:在使用最短路径的算法下,收到路由中的链路状态,然后生成路径,这样不会产生环路。

(6)应用广泛:广泛的应用在互联网上,其他会有大量的应用实例。证明这是使用最广泛的IGP 之一。

2 OSPF协议基础概念

2.1 工作原理简述

        OSPF简单地说就是两个相邻的路由器通过发报文的形式成为邻居关系,邻居再相互发送链路状态信息形成邻接关系,之后各自根据最短路径算法算出路由,放在OSPF路由表,OSPF路由与其他路由比较后优的加入全局路由表。整个过程使用了五种报文、三个阶段、四张表。

2.1.1 五种报文

  1. Hello报文:建立并维护邻居关系。
  2.  DBD报文:发送链路状态头部信息。
  3. LSR报文:把从DBD中找出需要的链路状态头部信息传给邻居,请求完整信息。
  4.  LSU报文:将LSR请求的头部信息对应的完整信息发给邻居。
  5.  LSACK:收到LSU报文后确认该报文。

2.1.2 三个阶段

  1. 邻居发现:通过发送Hello报文形成邻居关系。
  2. 路由通告:邻居间发送链路状态信息形成邻接关系。
  3. 路由计算:根据最短路径算法算出路由表。

2.1.3 四张表

  1. 邻居表:主要记录形成邻居关系路由器。
  2. 链路状态数据库:记录链路状态信息。
  3. OSPF路由表:通过链路状态数据库得出。
  4. 全局路由表:OSPF路由与其他比较得出。

2.2 OSPF报文格式

        OSPF报文封装在IP报文头部,协议号为89。

更新方式:

  • 单播:单播更新为特殊情况,要手工配置
  • 组播:默认更新方式

2.3 报文类型

        OSPF报文类型有5种,每种报文都使用相同的OSPF报文头部。分别是:

        注意:DD、LSU、LSR、LSACK。只有LSU携带LSA的详细信息,其他都只是头部信息。

2.4 OSPF支持的网络类型

  • 缺省情况下,OSPF认为以太网的网络类型是广播类型,PPP、HDLC的网络类型是点到点类型。
  • 缺省情况下,OSPF认为帧中继、 ATM的网络类型是NBMA。
  • OSPF可以在不支持广播的多路访问网络上运行,此类网络包括在hub-spoke拓扑上运行的帧中继(FR)和异步传输模式(ATM)网络,这些网络的通信依赖于虚电路。OSPF定义了两种支持多路访问的网络类型:非广播多路访问网络(NBMA)和点到多点网络(Point To Multi-Points)。
  • NBMA:在NBMA网络上,OSPF模拟在广播型网络上的操作,但是每个路由器的邻居需要手动配置。NBMA方式要求网络中的路由器组成全连接。
  • P2MP:将整个网络看成是一组点到点网络。对于不能组成全连接的网络应当使用点到多点方式,例如只使用PVC的不完全连接的帧中继网络。

扩展

  • MA网络是指multiple access多路访问网络。(MA=NBMA+广播式网络),多路访问是指在一条链路上有多个访问点,区别于点到点(P2P)或点到多点(P2MP)的网络。

2.5 邻居状态机

        总结:八种状态,除了Attempt有点特殊,我们作为了解。其他的我们来看一下。首先路由器开启了OSPF之后,最开始处于down状态,然后到2-Way状态这段过程种,路由器都处于邻居的关系中,这个阶段只发送Hello报文。之后三个状态,路由器都处于形成邻接状态的路上。然后到最后Full状态的时候,完成邻接状态。(具体邻居、邻接关系后面还会详细讲到)

2.6 Router ID、邻居与邻接

2.6.1 Router ID

概念:OSPF路由器在本AS(自治系统)内的唯一标识(不能重复,重复则一直报错,不能建立邻居关系)。

组成:32个比特,写法与IP地址相同(点分十进制),但是Router ID可以是路由器没有的ID

配置:可手动配置;若不手动配置则自动配置。(通常建议手动配置,以防因为地址改变发生的id改变)

自动配置规则:

  1. Router id会自动获取你配置的第一个IP地址
  2. 如果设备存在多个逻辑接口地址,则路由器使用逻辑接口中最大的IP地址作为Router ID;
  3. 如果没有配置逻辑接口,则路由器使用物理接口的最大IP地址作为Router ID
  4. 在为一台运行OSPF的路由器配置新的Router ID后,可以在路由器上通过重置OSPF进程来更新Router ID

        在实际情况中,Router ID的变化采取稳定大于一些的原则:在设置好了Router ID之后,再去修改,不生效。

2.6.2 邻居与邻接

邻居(Neighbor)

        概念:相连的路由器,互相知道对方的存在

        状态2-Way的时候建立成邻居关系

邻接(Adjacency)

        概念:相连的路由器,LSDB进行了同步

        只有当双方成功交换DD报文,并同步LSDB后,才形成真正意义上的邻接关系。

2.7 LSA(链路状态广播)

        LSA(链路状态广播,Link State Advertisement)是链接状态协议使用的一个分组,它包括有关邻居和通道成本的信息,是路由器之间链路状态信息的载体,被路由器接收用于维护它们的路由选择表,也就是说LSDB由一条条LSA构成的。

2.7.1 LSA报文头结构

        所有的LSA都有相同的头部,关键字段的含义如下:

2.7.2 常见LSA分类

2.8 OSPF区域

        OSPF 中划分区域的目的就是在于控制链路状态信息LSA 泛洪的范围、减小链路状态数据库LSDB的大小、改善网络的可扩展性、达到快速地收敛。

        当网络中包含多个区域时,OSPF 协议有特殊的规定,即其中必须有一个 Area 0,通常也叫做骨干区域(Backbone Area),当设计 OSPF 网络时,一个很好的方法就是从骨干区域开始,然后再扩展到其他区域。骨干区域在所有其他区域的中心,即所有区域都必须与骨干区域物理或逻辑上相连,这种设计思想的原因是 OSPF 协议要把所有区域的路由信息引入骨干区,然后再依次将路由信息从骨干区域分发到其它区域中。

        OSPF 将区域划分为几种类型:

  • 骨干区域 :作为中央实体,其他区域与之相连,骨干区域编号为 0,在该区域中,各种类型的 LSA 均允许发布。
  • 标准区域 :除骨干区域外的默认的区域类型,在该类型区域中,各种类型的 LSA 均允许发布。
  • 末梢区域 :即 STUB 区域,该类型区域中不接受关于 AS外部的路由信息,即不接受类型 5 的 AS 外部LSA,需要路由到自治系统外部的网络时,路由器使用缺省路由(0.0.0.0),末梢区域中不能包含有自治系统边界路由器 ASBR。[2] 

  • 完全末梢区域 :该类型区域中不接受关于 AS 外部的路由信息,同时也不接受来自 AS 中其他区域的汇总路由,即不接受类型 3、类型 4、类型 5 的 LSA,完全末梢区域也不能包含有自治系统边界路由器 ASBR。

参考链接

OSPF协议介绍_zzjieee的博客-CSDN博客_ospf协议

组播扩展OSPF_百度百科

OSPF路由协议_百度百科

OSPF协议详解 - stardsd - 博客园

万字15图详解OSPF路由协议

OSPF(一)OSPF协议简介_Skye_Zheng的博客-CSDN博客_ospf协议

OSPF(二)DR与BDR选举_Skye_Zheng的博客-CSDN博客_ospf中dr和bdr的选举

OSPF(三)OSPF域内路由_Skye_Zheng的博客-CSDN博客_ospf域内路由

OSPF(四)OSPF域间路由_Skye_Zheng的博客-CSDN博客_ospf域间路由

OSPF(五)OSPF外部路由_Skye_Zheng的博客-CSDN博客_ospf外部路由优先级

OSPF(六)OSPF特殊区域之Stub和Totally Stub区域详解及配置_Skye_Zheng的博客-CSDN博客_stub区域

OSPF(七)OSPF特殊区域之NSSA和Totally NSSA详解及配置_Skye_Zheng的博客-CSDN博客_nssa totally

OSPF(八)OSPF的LSA总结_Skye_Zheng的博客-CSDN博客

OSPF(九)OSPF的其他特性:区域间路由汇总、外部路由汇总、OSPF更新、认证机制_Skye_Zheng的博客-CSDN博客_ospf区域间路由汇总

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江中散人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值