OSPF路由协议解释

news2024/11/23 19:52:29

目录

  • OSPF路由协议
    • OSPF数据包类型
    • OSPF邻区状态
    • OSPF的邻接关系建立过程
  • 路由名词解释
  • OSPF开源项目

OSPF路由协议

OSPF简介

1、(Open Shortest Path First),开放式最短路径优先,它属于链路状态路由协议,大部分路由将由OSPF协议自行计算和生成,无须网络管理员人工配置,当网络拓扑发生变化时,协议可以自动计算、更正路由,极大地方便了网络管理。
2、 OSPF是通过邻居之间交互LSA(链路状态信息通告)来描述路由和拓扑信息的,将这些LSA存放在LSDB(链路状态数据库)中,包含了网络所有的拓扑信息和路由信息。通过SPF算法,以自己为根节点,计算出到达其他节点的最优路径。

OSPF版本

OSPFv1,实验性版本,未能实施。
OSPFv2,支持IPv4协议。
OSPFv3,在OSPFv2基础上进行了改进,是一个独立的路由协议,支持IPv6。

OSPF协议

1、OSPF协议号:89,基于IP协议。
2、OSPF协议发包的目的地址是两个多播地址,224.0.0.5和224.0.0.6。
3、224.0.0.5是所有的OSPF路由器都能够收到,这就意味着DR路由器使用这个地址对所有的路由器进行路由的通告。
4、而224.0.0.6是只有DR路由器才能够收到,这就意味着DRother通过这个地址于DR路由器进行交换路由信息的。
5、wireshark,过滤ospf即可抓包。

OSPF数据包类型

1、hello:这是路由器之间互相发现,建立关系以及保活的数据包。

network mask网络掩码:发送hello报文接口的网络掩码
hellointerval:hello报文的频率,默认10秒
options可选项:可选项字段。
rtr pri:DR的优先级,默认1,范围0-255,0表示不参与选举
routerdeadinterval:邻居dead时间,超过此时长没有收到邻居的hello包,则认为邻居down,默认是4倍的hello时间,即40秒。
designated router:选举成为DR的接口地址
backup designated router:选举成为BDR的接口地址
neighbor:邻居的route id
在这里插入图片描述

2、DD:数据库描述包,这个数据包就像是一份路由条目的清单列表,里面包含着LSA的头部信息,当其他路由器发现有自己缺少的路由条目,就会发送LSR。

interface mtu:本端接口MTU的大小,华为默认为0
options:可选项
I:如果是第一个DD报文则置为1,否则为0
M:如果是最后一个DD报文则置为1,否则为0
M/S:master或者slave,确定主从关系,当认为自己是主路由器是置为1
DD sequence number:DD报文的序列号,用来进行隐形确认。
LSA headers:LSA头部信息
在这里插入图片描述

3、LSR:用于向OSPF邻居请求LSA,来补充自己的路由条目的空缺。

LS type:链路状态类型
LS id:链路状态ID
advrouter:产生此LSA的路由器的route id
在这里插入图片描述

4、LSU:LSU承载着LSA,而LSA正是包含着路由信息的数据媒介

number of LSAs:LSA的数量
LSA:LSA的详细信息,LSA具有多种类型,不同类型的LSA详细描述不相同。
在这里插入图片描述

5、LSAck:当收到对端的LSU,需要回送一个LSAck表示确认,否则路由器会启用重传机制,默认是4秒。关于OSPF相关的timer,可以在发送OSPF相关协议包的接口上进行设置。
在这里插入图片描述

OSPF邻区状态

down:初始化状态,没有收到任何hello包。
attempt:此状态只在NBMA网络种出现,表示本端发送hello包后,在dead时间内仍然没有收到对方的hello包。
init:收到了邻居的hello,但是邻居的hello包中的 neighbor字段不含有自己的route id。
2-way:收到了邻居的hello,邻居的hello包中的 neighbor字段含有自己的route id。
exstart:开始交互DD报文,进行主从关系的选举。
exchange:已经选出主从关系,开始进行LSA摘要信息的交换。
loading:收到邻居发来的LSR报文。
full:收到了邻居的LS ACK,认为邻居已经完成LSDB的同步。

OSPF的邻接关系建立过程

邻居状态一开始都为down状态。
1、A给B发送hello包,邻居为空,B收到以后邻居状态为init。
2、B给A发送hello包,邻居为1.1.1.1,A收到以后邻居状态为2-way。
3、A给B发送hello包,邻居为2.2.2.2,B收到以后邻居状态为2-way。此时邻居关系建立。
4、A和B开始发送空的DD报文进行主从协商,此时邻居状态都为exstart。
5、B成为主路由器,开始发送携带LSA摘要的DD报文,这个过程都是exchange状态。
6、当DD报文交互完成后,即收到对方DD报文M=0时,开始发送LSR请求,这个时候邻居状态为loading状态。
7、当收到邻居的LS ACK时,邻居状态为full,此时邻接关系建立完成。
8、邻居关系是指双方hello报文互相通过,此时还没有进行LSA的交互,这个阶段时选举DR和BDR的阶段。邻接关系代表数据库已经同步,可以开始进行路由的计算。

在这里插入图片描述

路由名词解释

IGP

(内部网关协议)是在一个自治网络内网关(主机和路由器)间交换路由信息的协议。路由信息能用于网间协议(IP)或者其它网络协议来说明路由传送是如何进行的。IGP协议包括RIP、OSPF、IS-IS、IGRP、EIGRP。

OSPF

(Open Shortest Path First),开放式最短路径优先,它属于链路状态路由协议,大部分路由将由OSPF协议自行计算和生成,无须网络管理员人工配置,当网络拓扑发生变化时,协议可以自动计算、更正路由,极大地方便了网络管理。

LSA

(Link-State Advertisement),链路状态通告。包括有关邻居和通道成本的信息。 LSA被路由器接收用于维护它们的路由选择表。

AS

(autonomous system),自治系统,是一个有权自主地决定在本系统中应采用各种路由协议的小型单位。

ASE

自治系统外部的路由。

ABR

区域边界路由器,是位于一个或多个OSPF区域的一个路由器,其连接这个区域到骨干网络。

ASN

一个自治系统将会分配一个全局的唯一的16位号码,有时我们把这个号码叫做自治系统号(ASN)。

STUB

一种典型AS应用,在划分了区域之后,非骨干区域中的路由器对于区域外的路由,一定要通过ABR(区域边界路由器)来转发,对于区域内的路由器来说ABR是一个通往外部世界的必经之路。内部ASE路由无法传递到区域外,也无法引入区域外的ASE路由,包括静态路由。

NSSA

(“not-so-stubby” area),STUB扩展,区域内路由器引入的ASE路由可以在NSSA中传播并发送到区域之外。

RIB

路由信息库(Routing Information Base,RIB)

FIB

转发表,也叫转发信息库(Forwarding Information base,FIB)

OSPF开源项目

1、XORP

项目的目标是建立一个软件路由器平台,是功能齐全的、稳定和足够的生产使用,灵活和可扩展性。支持OSPF, RIP, BGP,OLSR, VRRP, PIM, IGMP (Multicast) 和其它路由协议. 它可实现路由协议为IPv4和IPv6和统一的手段来配置它们。支持各种linux,BSD, Windows(使用mingw编译器编译)。

开源地址:https://github.com/greearb/xorp.ct

2、FRR

FRR是一种实现和管理各种IPv4和IPv6路由协议的自由软件。它几乎运行在所有的Linux和BSD发行版上,并支持所有的现代CPU架构。
FRR目前支持以下协议:
BGP、OSPFv2、OSPFv3、RIPv2、RIPng、IS-IS、PIM-SM/MSDP、LDP、BFD、Babel、PBR、OpenFabric、VRRP、EIGRP (alpha)、NHRP (alpha)

开源地址:https://github.com/FRRouting/frr

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/461581.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT进化的过程简介

Chat GPT可以做什么? 分点列条的回答问题 写代码或SQL 翻译 语法检查 ChatGPT官方还未公开论文,ChatGPT有一个“孪生兄弟”InstructGPT,InstructGPT有论文,可以根据InstructGPT论文推导ChatGPT的训练过程: ChatGPT的…

React函数组件语法(N)

文章目录 react学习的说明新的官网全力投入现代React与Hooks React简介概述官网特点生态 React脚手架create-react-app官网创建和启动项目项目结构sass支持 Vite创建和启动项目项目结构常见配置 虚拟DOM什么是虚拟DOM虚拟DOM优缺点优点:缺点: 虚拟DOM实现…

MySQL死锁的原因和处理方法

MySQL死锁的原因和处理方法 表的死锁产生原因解决方案 行级锁死锁产生原因1解决方案1产生原因2产生原因3解决方案 表的死锁 产生原因 用户A访问表A(锁住了表A),然后又访问表B;另一个用户B访问表B(锁住了表B),然后企图访问表A;这时用户A由于用户B已经锁住表B,它必须…

LeetCode349. 两个数组的交集

题目链接 LeetCode349. 两个数组的交集 题目描述 题解 题解一(Java) 作者:仲景 因为数据范围和长度都限制在1000,所以直接使用数组即可 因为数据范围和长度都在1000内,所以碰到数字可以直接arr[i] i来表示这个数字…

如何有效的开展接口自动化测试,一篇就行

一、简介 接口自动化测试是指使用自动化测试工具和脚本对软件系统中的接口进行测试的过程。其目的是在软件开发过程中,通过对接口的自动化测试来提高测试效率和测试质量,减少人工测试的工作量和测试成本,并且能够快速发现和修复接口错误&…

手写Spring框架---IOC容器实现

目录 框架具备的最基本功能 实现容器前奏 创建注解 提取标记对象 extractPacakgeClass里面需要完成的事情 获取项目类加载器的目的 为什么不让用户传入绝对路径 类加载器ClassLoader 统一资源定位符URL ClassUtil提取标记类 获取包下类集合 装载目标类的集合 获取…

Git相关使用

私人博客 许小墨のBlog —— 菜鸡博客直通车 系列文章完整版,配图更多,CSDN博文图片需要手动上传,因此文章配图较少,看不懂的可以去菜鸡博客参考一下配图! 系列文章目录 前端系列文章——传送门 后端系列文章——传送…

APP UI自动化测试思路总结 ,教你彻底学会APP自动化测试

目录 一,开发语言选择 二,UI测试框架选择 1,Appium 2,Airtest 3,选择框架 三,单元测试框架选择 四,测试环境搭建 1,测试电脑选择 2,测试手机选择 3,…

【Redis】Redis管道

面试题 如何优化频繁命令往返造成的性能瓶颈? Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。一个请求会遵循以下步骤: 客户端向服务端发送命令分四步(发送命令→命令排队→命令执行→返回结果),并监听Socket返回&#xf…

基于matlab仿真相控天线阵列在波束成形MIMO-OFDM系统中的使用

一、前言 本例显示了相控阵在采用波束成形的MIMO-OFDM通信系统中的使用。它使用通信工具箱和相控阵系统工具箱中的组件,对组成发射器和前端接收器组件的辐射元件进行建模,用于MIMO-OFDM通信系统。使用用户指定的参数,您可以根据不同空间位置和…

Django自动化测试平台搭建落地全过程(附视频教程+源码)

目录 前言 一、平台基础架构设计 二、自动化测试工具选择与集成 三、平台功能开发 四、总结 前言 自动化测试在现代软件开发中扮演着至关重要的角色,它可以显著提高测试效率和准确性,并帮助开发团队更快地发布高质量的软件产品。Django作为一种流行…

Hudi数据湖技术之集成Spark

目录 1 环境准备1.1 安装MySQL 5.7.311.2 安装Hive 2.11.3 安装Zookeeper 3.4.61.4 安装Kafka 2.4.1 2 滴滴运营分析2.1 需求说明2.2 环境准备2.2.1 工具类SparkUtils2.2.2 日期转换星期 2.3 数据ETL保存2.3.1 开发步骤2.3.2 加载CSV数据2.3.3 数据ETL转换2.3.4 保存数据至Hudi…

Flink的DataStreamApi

1.源算子 SourceFunction 并行度只能为1 ParallelSourceFunction 并行度 2.转换算子 (1)基本类型 所有 Java 基本类型及其包装类,再加上 Void、String、Date、BigDecimal 和 BigInteger。 (2)数组类型 包括基…

【算法】【算法杂谈】判断点是否在三角形内部(面积法和向量法)

目录 前言问题介绍解决方案代码编写java语言版本c语言版本c语言版本 思考感悟写在最后 前言 当前所有算法都使用测试用例运行过,但是不保证100%的测试用例,如果存在问题务必联系批评指正~ 在此感谢左大神让我对算法有了新的感悟认识! 问题介…

netcore工程在linux下调用linux动态库

文章的内容可能看着枯燥,排版也存在一些问题,但是如果你遇到相关问题,真的无法解决的时候,不妨沉下心来好好阅读一下这篇文章,你会有所收获,也可以先跳到文章最后,看看是不是对你的问题有价值。…

Day955.到底是重构,还是重写? -遗留系统现代化实战

到底是重构,还是重写? Hi,我是阿昌,今天学习记录的是关于到底是重构,还是重写?的内容。 到底是重构,还是重写?这是一个困扰着很多团队的问题。 重构吧,遗留系统积重难…

神经网络模型入门及蠓虫分类问题简单实战

学习知识要实时简单回顾,我把学习的神经网络模型简单梳理一下,方便入门与复习。 神经网络模型 神经网络简介 人工神经网络是在现代神经科学的基础上提出和发展起来的,旨在反映人脑结构及功能的一种抽象数学模型。自 1943 年美国心理学家W.M…

【分段DP】ABC275 F

一万年没写DP了 这么简单的DP我居然没写出来 F - Erase Subarrays (atcoder.jp) 题意: 思路: 原本的思路是这样的: 看到3000的数据范围就是n^2的DP了 看到删子串,那么留下来的就是子序列,要使得剩下来的子序列的…

剑指Offer--05替换空格58左旋字符串

文章目录 一、剑指Offer--05.替换空格二、剑指Offer--58.左旋字符串 一、剑指Offer–05.替换空格 题目是这样的 意思是将字符串s中的空格替换为字符串"%20",如果只是替换一个字符还好,可以在原数组直接替换,但是是将空格替换为字符串&#xf…

Vue+Echarts 项目演练(下)收尾工作图表绘制

设置销售总量图表 中心容器地图设置 产品库存统计图 产品类别图表 项目可视化完结-整体展示 设置销售总量图表 在第一个容器中进行图表设置 <template><div><h2>A</h2><div class"chart" id"oneChart">容纳后期的图表…