“路由大当家”OSPF的小秘密
引入
OPSF是应用最广的路由协议,基本上,所有的IGP用到的都是OSPF,下面我们看看它的“小秘密”
优点:
•没有跳数限制
•使用组播更新变化的路由和网络信息
•路由收敛速度较快
•以开销(Cost)作为度量值
•采用的SPF算法可以有效的避免环路
•在互联网上大量使用,是运用最广泛的路由协议
工作原理
邻居表建立、建立LSA树、LSDB表建立、路由表
OSPF个区域之间通信必须经过区域0
1.邻居发现:以224.0.0.5组播的方式发送Hello报文发现邻居
2.生成自己LSA信息,包含接口状态、链路开销、IP地址和掩码
3.同步LSDB,也就是相互交换LSA
4.用SPF算法计算路由,以自己为节点计算最短路径树
环路避免
区域内采用SPF算法,树型拓扑,避免环路;
区域间采用星型拓扑,避免环路;
分区结构
不同区域之间通信必须通过骨干区域通信,就算两个区域直连也无法通过OSPF通信;
边界路由器之间采用路由汇总,减少地址震荡的影响;
减少区域内的LSDB中的链路状态信息,这样就减少了对设备性能的要求;
路由器类型
区域内路由器(Internal Router):路由器全部接口处于一个区域内;
区域边界路由器(ABR,Area Border Router):连接骨干区域和非骨干区域的路由器;
骨干路由器(BR,Backbone Router):有接口在骨干区域的路由器;
自治系统边界路由器(ASBR,Autonomous System Border Router ):连接不同协议的路由器;
Route ID
运行OSPF必须得有,32位无符号比特,可以手工配置也可以,自动生成;
自动生成规则: 1、有Loopback接口,选最大的位Route ID
2、不管IP接口是否UP,选IP地址最大的为Route ID(思科、锐捷选UP接口中IP地址最大的)
网络类型
Broadcast(广播型网络),可以用组播224.0.0.5和224.0.0.6发送协议报文
以太网和FDDI时使用
*NBMA (Non-Broadcast Multi-Access,非广播多点可达网络),帧中继和ATM
*P2MP(Point-to-MultiPoint,点到多点)
P2P(Point-to-Point,点到点),PPP,HDLC链路层协议,组播224.0.0.5

报文类型
报文类型 |
作用 |
Hello |
建立邻居关系 |
Database Description(DD或DBD) |
包含LSDB中的LSA的所有数据 |
Link State Request(LSR) |
收到DBD后跟自己的数据库比较 |
Link State Update (LSU) |
链路状态更新信息,回应Resquest |
Link State Acknowledge(LSAck) |
对LSU报文进行确认 |

OSPF被IP协议封装不在TCP层封装怎么保证可靠性
1.Hello:运行OSPF后会在区域不断发送Hello包
2.DDB:设置序列号保证可靠性
3.LSR:发送LSR报文后需要得到LSU回应,如果超时没有收到则继续发送LSR
4.LSU:LSAck确认报文
DR/BDR选举:
只有在广播型网络和NBMA网络采用DR选举
1.首先比较Hello报文中携带的优先级优先级最高的被选举为DR,优先级次高的被选举为BDR-------优先级为0的不参与选举
2.优先级一致的情况下,比较Router IDRouter ID越大越优先
保持稳定原则当DR/BDR已经选举完毕,就算一台具有更高优先级的路由器变为有效,也不会替换该网段中已
经选举的DR/BDR成为新的DR/BDR。
选举DR过于浪费时间,一般采用点到点网络代替以太网把连接改成p2p节省时间
邻接关系建立过程:
1.在邻居失效时间里面没有收到Hello包,为Down(稳定状态)
路由器互相发送Hello包发现自己不在邻居表中,进入Init状态
2.双方相互发送Hello包,收到Hello包后确认对方在邻居表中,进入2-way(稳定状态)
3.接着发送空的DBD包,比较Route ID,进入ExStart(确定主从关系)
4.交换DBD报文,进入Exchange
5.双方比较DBD报文和自己LSDB的信息,进入Loading,发现DBD有自己没有LSA放LSR请求
6.接收方接收到LSR,然后发送LSU
7.发送方接收LSU,同步完发送LSAck,进入Full
LSDB更新:
老化机制,默认1h,若该LSA在1h内没有更新则丢弃
默认情况,0.5h会刷新一次所有LSA,LSA序列号加1,刷新老化时间
补充说明
三种路由实现控制流量配置方法
静态路由 |
RIP |
OSPF |
配置优先级 |
配置掩码 |
设置开销 |
走过路过,点个三连,十分感谢
一起学习,一起进步
技术交流:QQ---1740602259
“路由大当家”OSPF的小秘密的更多相关文章
- 数据路由通信--ospf复习
数据路由通信--ospf 复习 ospf 复习 今天来回顾一下ospf ospf全名叫做开放式最短路径优先协议,它是一种基于链路状态的内部网关路由协议.ospf支持区域的划分,内部的路由器使用spf最 ...
- CISCO 动态路由(OSPF)
OSPF(开放式最短路径优先):是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由.是对链路 ...
- 浅谈-动态路由之OSPF的理解
路由 在网络中,路由相当于就是一张地图,让路由器知道这个对应的IP数据包应该往哪端口.网段走:而这个"地图"我们称之为路由表,不同的目的IP路由表的下一个跳也不同,其生成方式有又有 ...
- 关于ros里ppp拨号隧道比如pptp,l2tp,sstp等等,造成多条路由,ospf的时候需要汇总为一条宣告的解决方案
官方解决方案: https://wiki.mikrotik.com/wiki/OSPF_and_PPPoE_Setup 实际解决步骤: So to get rid of /32 routes * on ...
- RIP、OSPF、BGP、动态路由选路协议、自治域AS
相关学习资料 tcp-ip详解卷1:协议.pdf http://www.rfc-editor.org/rfc/rfc1058.txt http://www.rfc-editor.org/rfc/rfc ...
- CCNP路由实验(2) -- OSPF
OSPF作为一种内部网关协议(IGP),用于在同一个AS中的路由器之间交换路由信息.OSPF的特性如下:1.可适应大规模网络2.收敛速度快3.无路由环路4.支持VLSM和CIDR5.支持等价路由6.支 ...
- OSPF的特征、术语、包类型、邻居关系的建立、RID的选择、DR和BDR的选举、度量值的计算、默认路由、验证
链路状态路由协议OSPF的特征.术语.包类型.邻居关系的建立.RID的选择.DR和BDR的选举.度量值的计算.默认路由.验证等. 文章目录 [*1*].链路状态路由协议概述 工作过程 优缺点 [*2* ...
- 静态路由、RIP、OSPF、BGP
主要内容包含以下四点:(1)静态路由 (2)动态路由 (3)生成树 (4)VLAN 1. 什么是静态路由? 答:静态路由是管理人员手动配置和管理的路由 2. 静态路由由那些优点? 答:配置简单 ...
- 动态路由 - OSPF 一文详解
动态路由 在之前的文章中,介绍了基于距离矢量的路由协议.而在今天这这一部分中会主要讲解链路状态的路由协议,对于动态的路由协议来说,需要具备如下的能力: 发现远端网络 路由器可以直接获得直连路由,这是由 ...
随机推荐
- C++ 第三天 Vector、函数
1.Vector vector是一个动态增长的数组,它会随着我们添加的内容,会逐步的增加空间.实际上它并不是在原来的地方追加空间,而是开辟新的空间,然后把原来的数据都拷贝到新的空间里面去,接着让容器指 ...
- Python Tuple(元组) tuple()方法
描述 Python 元组 tuple() 函数将列表转换为元组.每组词 www.cgewang.com 语法 tuple()方法语法: tuple( iterable ) 参数 iterable -- ...
- PHP array_search() 函数
实例 在数组中搜索键值 "red",并返回它的键名: <?php$a=array("a"=>"red","b" ...
- 错误记录:MIME type may not contain reserved characters
最近遇到个问题,随手记录一下! 新做了一个项目,要通过HTTP请求发送ZIP文件到OSS平台,但上传过程中,总是出现下面错误提示: 初步判定,应该是包冲突原因!于是,分析MIME-TYPE获取源码发现 ...
- day12. 闭包
一.概念 """ 如果内函数使用了外函数的局部变量, 并且外函数把内函数返回出来的过程,叫做闭包 里面的内函数是闭包函数 """ 二.基本语 ...
- 【SDOI2010】猪国杀 题解(模拟)
前言:嗅到了一丝头秃的味道…… ------------------ 题目链接 题目实在太长,变量也很多.建议至少读个三五遍再做题.不要忽略任何细节,不要想当然.(因为真正玩三国杀肯定不像猪一样出牌啊 ...
- Docker-Compose介绍,安装和使用
Docker-Compose 介绍 有时候运行一个镜像需要大量的参数,可以通过Docker-Compose编写这些参数.而且Docker-Compose可以版主我们批量管理容器,这些信息值需要通过一个 ...
- 解决CocoaPods could not find compatible versions for pod "React/Core"
react-native框架中,在ios文件夹下执行pod install命令时出现的问题. 下面时完整的异常信息: [!] CocoaPods could not find compatible v ...
- HTTP PUT/POST/PATCH的区别
幂等 idempotent 幂等操作的特定就是其任意多次执行所产生的影响与一次执行的影响相同 POST POST 用来创建一个新的数据 POST 不是幂等的, 意味着多次操作的结果是不同的, 多次操作 ...
- 年近而立,Java何去何从?
摘要:各种新需求新应用层出不尽,各路新生代编程语言异军突起等等,Java未来会不会继续受欢迎?曾经备受关注的Java是否能紧跟时代步伐?新基建时代破茧重生引领云端未来潮流? 1995年第一个Java版 ...