动态路由协议——OSPF

目录

一.OSPF来源

二.OSPF术语

1.area id——区域的划分

2.cost——路径开销值

3.route id

4.LSDB表

5.邻居表

6.OSPF路由表

三.OSPF工作过程

1.交互hello报文建立邻居关系

2.选举主从

3.交互LSDB摘要信息

4.LSR,LSU,LSACK同步LSDB表项

5.各自计算路由

四.OSPF交互过程

1.hello报文

2.DD报文

3.LSR报文

4.LSU报文

5.LASK报文

五.DR/BDR


一.OSPF来源

动态路由协议中,IGP类型的有ospf 和RIP已经ISIS,

RIP的缺点就是有跳数限制,最多15跳,不适合大型网络,且属于距离矢量路由协议,不清楚网络拓扑,通过泛洪路由表学习,可靠性低。

那么就有了ospf动态路由协议,属于链路状态路由协议,每台路由器都清楚网络拓扑,可以自行计算路由

链路状态路由协议工作过程

1.建立邻居关系,在hello报文之后

2.泛洪LSA,同步LSDB(链路状态数据库)

3.通过SPF算法计算出一根以自己为根的,无环的,拥有最短路径的书

4.通过路径信息,生成路由,加载到路由表里(OSPF协议路由表)

网络类型

1.p2p

串行,一点对一点(点就是网络中的一个设备)

2.p2mp

点到多点

3.BMA

广播式多路访问,以太网

4.NBMA

非广播式多路访问

二.OSPF术语

现在我们用以下拓扑来学习这些术语

我们下面都用r2来举例

1.area id——区域的划分

不划分区域,一旦出现泛洪,路由器需维持较大的LSDB,网络出现改变会出现大量广播报文,影响网络正常运行。可以通过划分区域控制广播域在较小的范围,减小LSDB规模,减低设备负担

area 0是骨干区域,area 非零是非骨干区域

路由器r2有骨干区域也有非骨干区域  

非骨干区域不能直接相连,需要骨干区域连接

2.cost——路径开销值

目的地址到源地址之间所有入接口之和的开销值,路径优选的因素:最好是100Mbit

3.route id

唯一标识,可以手动指定也可以自行计算。如果配置了环回地址,则选择环回地址IP大的成为route id。没有环回地址就选择接口ip大的(实验中按照配置ip地址的顺序选择)

4.LSDB表

里面包含所有的LSA

5.邻居表

交互HELLO报文后建立邻居关系,加入邻居表

里面有route id ,区域,和接口开销

6.OSPF路由表

ospf 查看命令

来源:《eNSP - OSPF 查看命令》_enfp查看ospf设置命令-CSDN博客

三.OSPF工作过程

1.交互hello报文建立邻居关系

DOWN——INIT——2WAY——邻居建立成功

INIT:从邻居接收报文,但报文邻居列表中还没有自身的route-id

2WAY:收到hello报文,邻居列表中有了自身的route-id

2.选举主从

通过第一个空的DD报文选择主从路由器,route-id大的是主

3.交互LSDB摘要信息

通过DD报文交互

4.LSR,LSU,LSACK同步LSDB表项

同步完LSDB就是邻接关系了

5.各自计算路由

四.OSPF交互过程

1.hello报文

建立并维护邻居关系,属于周期性发送,10S一次

2.DD报文

第一个DD报文是空的,通过第一个空的DD报文选择主从路由器,交互LSDB摘要

3.LSR报文

请求缺少的LSA,注意是一条一条请求

4.LSU报文

响应发送的LSA请求,发送具体LSA ,LSA放在LSU报文上发送

5.LASK报文

确认接受的LSA,FULL,变邻接关系

五.DR/BDR

为了优化网络中邻接数量,有DR/BDR/DRother三种角色,DR/BDR可以和DRother建立邻接关系(FULL),DRother之间停留在邻居关系(2—WAY)

现网中会将BMA改为P2P,避免选举DR

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-03-24 14:18:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-24 14:18:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-24 14:18:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-24 14:18:04       20 阅读

热门阅读

  1. 如何结合NLP和图像描述技术

    2024-03-24 14:18:04       16 阅读
  2. Python实战:枚举类型enum及应用

    2024-03-24 14:18:04       15 阅读
  3. make | ubuntu源码编译指定版本make

    2024-03-24 14:18:04       17 阅读
  4. 通用型服务器和专用型服务器的区别

    2024-03-24 14:18:04       17 阅读
  5. 【React】React中将 Props 传递给组件

    2024-03-24 14:18:04       18 阅读
  6. 自定义Redis工具类(解决缓存穿透和击穿)

    2024-03-24 14:18:04       19 阅读
  7. qiankun实现基座、子应用样式隔离

    2024-03-24 14:18:04       17 阅读
  8. npm 常用命令详解

    2024-03-24 14:18:04       15 阅读
  9. 好玩的AI生产PPT工具分享

    2024-03-24 14:18:04       18 阅读
  10. Spark面试整理-Spark是什么?

    2024-03-24 14:18:04       18 阅读
  11. lin_20240321_calculating_rG4score.R

    2024-03-24 14:18:04       19 阅读
  12. 0324Caliper测试fabric1.4的TPS与Delay

    2024-03-24 14:18:04       20 阅读
  13. SCI论文发表很容易【8】:参考文献的格式

    2024-03-24 14:18:04       17 阅读
  14. 编译和安装Linux版7zip并替代p7zip

    2024-03-24 14:18:04       23 阅读
  15. C语言:二叉树基础

    2024-03-24 14:18:04       16 阅读