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

OSPF基础

目录

一、路由分类

1.直连路由

2.非直连路由

二、OSPF概述

1.什么是OSPF        

2.OSPF的特点

3.OSPF的区域划分

1.划分区域的意义

2.区域的划分

三、OSPF 消息数据包

1.数据包的类型

2.Hello包

2.DBD包

3.LSR包

 4.LSU

 5.LSACK

 四、OSPF 邻居状态机制

1.邻居关系建立条件

2.DR与BDR的选举

3.主从选举

4.所有的状态

1.Down

2.init

3.two-way

4.exstart

5.exchange

6.loading

7.full

五、基本配置

1.启用ospf

 2.network通告

3.激活DBD中携带的MTU

4.查看


一、路由分类

1.直连路由

2.非直连路由

1.静态路由
2.动态路由

(1):IGP:内部网关路由协议-在同一个AS内部使用(在企业内部或者数据中心内部使用)
             -DV:距离矢量路由协议
                 -RIP(v1/v2)
                 -IGRP-思科私有协议
                 -EIGRP-思科私有协议
             -LS:链路状态路由协议
                  -OSPF:开放式最短路径优先( 企业用:功能多,可以精细化控制) 
                  -ISIS:中间系统到中间系统( 数据中心用,转发能力强,大流量转发 )

(2):EGP:外部网关路由协议:在不同的AS之间使用(AS:自治系统)
              -BGP:边界网关协议

二、OSPF概述

1.什么是OSPF        

        开放式最短路径优先OSPF 是一种动态的高度可靠和高度可扩展的路由协议,用于构建大型网络中的动态路由系统。

使用范围:IGP 

协议算法特点: 链路状态型路由协议,SPF算法

协议是否传递网络掩码:传递网络掩码

协议封装:基于IP协议封装,协议号为 89

2.OSPF的特点

1.OSPF 是一种典型的链路状态型路由协议

2.传递信息称作LSA,LSA 链路状态通告,包含路由信息和拓扑信息。

      路由LSA:描述本路由器上接口的路由信息(通过判断有无掩码确实路由LSA)

      拓扑LSA:描述路由器之间的连接状态

3.更新方式: 触发更新+30分钟的链路状态刷新 

   网络结构发生变化触发更新,否则不触发更新

   凡是触发更新,都会有邻居机制

    30min的链路状态刷新,刷新参数

4.更新地址: 组播和单播更新,

        组播地址: 224.0.0.5(ALL SPF router)      224.0.0.6 (ALL DR router)

         本地链路组播地址224.0.0.X(TTL=1)

5.支持路由认证

6.支持手工汇总

7.支持区域划分

8.OSPF 比较消耗设备资源

3.OSPF的区域划分

1.划分区域的意义

1.减少LSA的数量 

2.减少LSA的传播范围

 ( 同一区域内是链路,不同区域内是距离矢量)

2.区域的划分

区域的划分是基于接口的(链路的)

1.区域的标记:使用了32个二进制    1.十进制   2.类似于IP地址  A.B.C.D

        通过十进制表示,例如区域 0、1、2、3等

        通过点分十进制表示,例如区域 0.0.0.0 、0.0.0.1、0.0.0.2等

2.区域设计原则: 向日葵型网络结构

        OSPF网络中必须存在并唯一的骨干区域(单区域除外)

        若存在非骨干区域,非骨干区域必须与骨干区域直接相连

3.OSPF中路由器的角色:

          骨干路由器:所有接口属于骨干区域

          非骨干路由器:所有接口属于非骨干区域

          ABR:区域边界路由器,能够产生3类LSA的路由器(骨干和非骨干之间)

          ASBR:自治系统边界路由器,能够产生5类或7类LSA的路由器(ospf与非ospf之间的路由器,同时该路由器能够将非ospf的路由信息引入ospf区域中)

        ospf 1 router-id 1.1.1.1 //指定ospf进程号(1-65535)指定router-id(推荐用手工指定router-id)
        area 0.0.0.0   (area 0)             //指定区域id
        network 192.168.1.0  0.0.0.255     //宣告网段
        network 192.168.12.0  0.0.0.255    //宣告网段

三、OSPF 消息数据包

1.数据包的类型

Hello   DBD  LSR  LSU  LSACK

2.Hello包

周期性发送,周期时间10s或30s(根据不同的网络类型默认10s或30s)

目的:建立并维持OSPF 邻居关系(邻居关系建立之后充当保活包功能

OSPF Header  头部报文解析: 
 【 OSPF Version 】 
     这个字段,指的是OSPF的版本
     版本2——针对的是IPv4的网络
     版本3——针对的是IPv6的网络
 【 Message Type 】 
     消息类型
     OSPF中,一共有五种报文:Hello、DD、LSR、LSU、LSAck
     分别对应了1、2、3、4、5
 【 Packet Length 】 
     报文的长度,不可修改
 【 Source OSPF Router 】 
     发送这个Hello报文的路由器的Router ID
     而在一个OSPF网络中,Router ID就是用来唯一标识一台路由器的
     所以,不同路由器的Router ID不能相同
  【 Area ID 】 
     发送这个Hello报文的接口,所在的区域
     两台路由器,想要建立邻居,它们的互联接口,必须在同一个区域中
 【 Packet Checksum 】 
     报文的校验和,用来校验报文是否完整
 【 Auth Type/Data 】 
     这里指的是OSPF的认证
     认证的类型必须相同,认证的密码必须一致OSPF Header  头部报文解析:

【 Network Mask 】 
    子网掩码
    默认情况下:两个建立OSPF邻居的路由器,互联接口的掩码必须相同
 【 Hello Interval 】 
    Hello时间间隔/Hello计时器/Hello时间
    就是发送这个Hello报文的路由器,多长时间发一个Hello包
    默认情况下:Hello时间为10秒
    两台路由器,想要建立OSPF邻居,它们的Hello时间必须相同
  【 Option 】 
     特殊标记位
     不同的区域类型的标记位也不同
     想要建立OSPF邻居,Option位必须相同
  【 Router Priority 】 
     DR优先级,用于DR选举
     如果两台想要建立OSPF邻居的路由器,在互联接口上都配置了自己的DR优先级为0,那么,两台路由器都不会参加DR选举
     而在需要DR的网络中,选举不出DR,邻居就无法继续建立
     所以,两台设备DR优先级为0,在需要DR的网络中,邻居状态会卡在2-way
  【 Router Dead Interval 】 
      Dead时间/死亡时间
      默认情况下:是Hello时间的4倍=40秒
      Dead时间会随着Hello时间的改变而改变,但还是4倍关系
      所以,我们如果更改Dead时间,一定要注意是否受Hello时间影响,
      即:我们需要单独更改Dead时间(手动配置的Dead时间优先于默认情况——4倍Hello时间)
  【Designated  router 】  :  DR :指定路由器

  【backup  Designated  router】   :BDR  :备份指定路由器

  【Active  Neighbor 】 :  活跃的邻居,我认可的邻居

2.DBD包

 数据库描述数据包(用于描述数据库摘要信息)

主从选举DBD: 比较双方的router-id ,router-id大的一方为主(master ),小的一方为从(slave);主用于控制LSA的交互

3.LSR包

链路状态请求,按照DBD中报文的未知LSA头部进行请求(不包含的路由信息)

( 请求数据库中没有的LSA信息)

 4.LSU

链路状态更新,携带LSA信息。(据对方的请求信息,更新LSA给对方)

 5.LSACK

链路状态确认(收到对方的更新LSA信息后,进行确认)

 四、OSPF 邻居状态机制

1.邻居关系建立条件

1.router-id 必须不同

2.area ID 相同

3.认证: 认证类型 (不认证=0  明文认证=1  MD5=2)  认证数据

4.hello时间,dead时间必须一致

5.特殊区域标识一致(E(外部路由位)=1  ; N(NSSA外部路由位)=0    P=0)

6.MA网络中,网络掩码必须一致

7.必须同时使用单播或组播更新

8.更新源检测(双方的IP地址必须在同一网段)

2.DR与BDR的选举

邻居状态下(two-way): MA的网络中会选举DR(指定路由器)  BDR(备份指定路由器)

DR选举:  

       1.比较优先级 (范围:0-255,默认优先级为1 ,越大越优) 若优先级为0 代表弃选

        2.比较各自的router-id,越大越优

注意:

    1.DR抢占是关闭的 (先选举的DR不会因为后来的BDR或DRother的优先级和router-id而影响)

    2.DR是一个接口概念 

    3.优先级范围0-255,数字为0代表不参与选举 

    4.先选举BDR ,再升级为DR

3.主从选举

发生在exstart状态, 通过双方的router-id进行比较,router-id大的一方为主。  发送的主从选举DBD,DBD中包含了MTU值(默认思科直接启用,华为中默认不包含MTU,可以使用命令激活传递MTU值的功能,若双方的MTU值不匹配则卡在exstart 状态)。

4.所有的状态

Down、 init 、 attempt(尝试 过渡) 、 two-way 、  exstart  、 exchange  、loading  、full

1.Down

邻居关系没有建立就处于down(down状态下可能还会每隔120s发送一次hello包)。

2.init

初始化状态,一旦开始发送hello报文,就进入初始化状态。

3.two-way

双向通信状态(邻居状态),接收到包含自己router-id 的对方的hello报文。

4.exstart

预启动状态,一旦开始发送主从DBD,则进入预启动状态。

5.exchange

预交换,主从选举完成,则发送携带LSA头部信息的DBD,进入预交换状态,会发送LSR数据包。(但是没有LSU)

6.loading

加载状态,一旦发送LSU数据包,进入了加载状态,进行大量LSA的学习。

当请求列表,重传链表空时就会处于full,不空时处于loading

7.full

邻接状态。双方LSA同步(双方LSA全部学习)

五、基本配置

1.启用ospf

OSPF router-id 选举规则:(主从选举)

       1.手工指定最优先

       2.选举所有逻辑中IP地址最大的

       3.选举所有物理接口IP地址最大的

华为中: 若以上三点都不满足,则可以创建router-id 为0.0.0.0 ;在使用逻辑或物理接口IP地址时,接口可以是关闭状态;若一台路由器启用了多个OSPF进程,不同进程可以使用相同的router-id(不推荐);

思科中:若以上三点都不满足,则无法启用OSPF;在使用逻辑或物理接口时,接口必须双 up ,该接口可以不通告进入OSPF中;同一路由器上多个OSPF进程必须router-id必须不同;

全局模式下可以选择针对所有的OSPF进程修改router-id ;(若同时在接口部署时,接口优先生效)

 2.network通告

3.激活DBD中携带的MTU

激活DBD中携带MTU(最大传输单元)值功能:

修改接口MTU值: (同时修改3层和2层的MTU值)

查看二层接口信息:

查看三层信息:

4.查看

OSPF邻居表 

LSBD的摘要信息

OSPF 路由表 

相关文章:

OSPF基础

目录 一、路由分类 1.直连路由 2.非直连路由 二、OSPF概述 1.什么是OSPF 2.OSPF的特点 3.OSPF的区域划分 1.划分区域的意义 2.区域的划分 三、OSPF 消息数据包 1.数据包的类型 2.Hello包 2.DBD包 3.LSR包 4.LSU 5.LSACK 四、OSPF 邻居状态机制 1.邻居关…...

leetcode 958.二叉树的完全性检验

1.题目要求: 给你一棵二叉树的根节点 root ,请你判断这棵树是否是一棵 完全二叉树 。在一棵 完全二叉树 中,除了最后一层外,所有层都被完全填满,并且最后一层中的所有节点都尽可能靠左。最后一层(第 h 层)…...

Spring 中请求作用域的数据存储在 ThreadLocal 中还是 Spring 容器中?

微信中阅读,欢迎👏👏👏关注公众号:CodeFit 。 创作不易,如果你觉得这篇文章对您有帮助,请不要忘了 点赞、分享 和 关注,为我的 持续创作 提供 动力! 最近看到一个有趣的问题,Request Scope(请求作用域) 的数据是存储在 ThreadLocal 中,还是 Spring 容器中? 事…...

基础岛 - 8G显存验证书生·浦语大模型的Demo

因为以前用过LMDeploy,所以本章的内容相对熟悉。 另外,因为教程写的很详细保姆级,所以大多数情况直接复制执行命令即可。开发机的创建略过。 总体验证结论: LMDeploy的模型加载有点慢,但推理速度快,符合预…...

Jangow靶机攻略

搭建jangow靶机环境https://download.vulnhub.com/jangow/jangow-01-1.0.1.ova 虚拟机载入镜像文件 1.扫描目标主机地址 2.打开靶机环境 3.输入id查看回显位置 4.编辑一句话木马注入echo <?php eval($_POST[cmd]);?> > test.php 5.接下来查看文件输入ls 6.使用工具…...

Vue项目通过宝塔部署之后,页面刷新后浏览器404页面

目录 报错 解决方法 报错 将vue项目在宝塔上部署&#xff0c; 当项目挂载到服务器上去&#xff0c;进行浏览器的访问&#xff0c;是能正常访问的&#xff0c;可是当我们在浏览器上进行刷新之后&#xff0c;浏览器会给我们返回一个404的页面。 解决方法 &#xff08;1&#…...

Java一一一简易图书管理系统

Java一一一简易图书管理系统 1. 需求分析 功能需求&#xff1a; 添加图书删除图书更新图书信息查询图书列出所有图书 2. 设计 实体类&#xff1a;Book业务逻辑类&#xff1a;LibraryManager 3. 实现 3.1 Book类 public class Book {private String id;private String t…...

Ubuntu配置carla docker环境

前言: 本文只在以下设备成功运行, 其他设备不保证能成功, 可以参考在自己设备进行配置 环境 ubuntu 20.04carla 0.9.15gpu 3060(notebook) 安装显卡驱动&nvidia-container-toolkit 显卡驱动 安装完成系统后直接在’软件和更新->附加驱动’直接选择470(proprietary…...

超越sd3!比肩Midjourney-v6?AI绘画大模型FLUX1.0详细评测与本地部署方法(附安装文件)

​ FLUX.1模型是什么&#xff1f; FLUX模型是一个开源的AI图像生成模型&#xff0c;由黑森林工作室研发。 堪比sd3以及Midjourney-v6 背景/backdrop 黑森林工作室&#xff08;Black Forest Labs&#xff09;由前Stability AI核心成员团队成立&#xff0c;专注于开发高级生成式…...

帆软填报报表单元格根据其它单元格内容决定另外的单元格可筛选什么值

效果图&#xff1a; 方法有三种&#xff1a; 方法一&#xff1a; 添加链接描述...

一键浪漫的回忆:微软开源的修复工具!!【送源码】

项目介绍 “Bringing-Old-Photos-Back-to-Life”是一款由微软开发的创新软件解决方案&#xff0c;它利用人工智能技术来修复和增强老旧照片的质量。这款工具可以解决老旧照片中常见的问题&#xff0c;如褪色、低分辨率以及物理损坏&#xff08;如划痕和撕裂&#xff09;。通过采…...

力扣-240.搜索二维矩阵(2)

刷力扣热题–第二十七天:240.搜索二维矩阵(2) 新手第二十七天 奋战敲代码&#xff0c;持之以恒&#xff0c;见证成长 1.题目简介 2.题目解答 这道题的想法就是,整体遍历,在遇到比target还大的,就停止这行的遍历,然后转过去继续遍历下一行,如果有一行的开头大于target,直接返回…...

Python推导式和生成器表达式

Python推导式 Python推导式是一种可以从一个数据序列构建另一个新的数据序列的结构体。 除了列表推导式 (list comprehension) 以外&#xff0c;还有字典(dict)、集合(set)推导式。它们的语法格式如下&#xff1a; # 列表&#xff1a;使用方括号 [expression for item in it…...

比较支持向量机、AdaBoost、逻辑斯谛回归模型的学习策略与算法

(1)支持向量机&#xff1a;SVM 是一种监督学习算法&#xff0c;用于分类和回归任务。 学习策略&#xff1a;间隔最大化 算法&#xff1a;最大间隔法、软间隔算法。 参数学习&#xff1a;参数学习过程是要最小化目标函数&#xff0c;通常通过优化算法&#xff08;如SMO&#x…...

Android顶部标题栏自定义,添加按钮

1. 先写一个标题栏的layout, 放在工程的res/layout下&#xff0c;如下: <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_par…...

Spring Boot 整合 Dubbo3 + Nacos 2.4.0【进阶】+ 踩坑记录

上一篇文章中&#xff0c;Spring Boot 整合 Dubbo3 Nacos 2.4.0 进行了简单的集成使用&#xff0c;此文简单进阶并记录踩坑日常&#xff1b; Nacos 2.4.0 增加鉴权的配置Nacos 2.4.0 配置 MySQLNacos2.4.0 的热更新Dubbo3 自动负载Dubbo3 的重试和超时机制踩坑记录 一、Nacos…...

浙江省食品安全管理员题库及答案

1、《中华人民国食品安全法》从&#xff08;C&#xff09;起施行。 A.2009年1月1日 B.2009年5月1日 C.2009年6月1日 D.2009年10月1日 2、《中华人民国食品安全法》包括 &#xff08;D&#xff09;. A.九章共一百零一条 B.十章共一百零一条 C.九章共一百零四条 D.十章共一百零…...

C++ 几何算法 - 求两条直线交点

一:算法介绍 1. 首先定义两条直线方程: 2. 解方程,求出x, y坐标 3. 如果x分母的行列式等于0, 说明两条直线平行或方向相反 4. 如果x,y分母的行列式都等于0,说明两条线重叠 二:代码实现: #include <cmath> #include <iostream>class Point2D { public:doubl…...

Linux操作系统简介

今天给伙伴们分享一下Linux 操作系统简介&#xff0c;希望看了有所收获。 我是公众号「想吃西红柿」「云原生运维实战派」作者&#xff0c;对云原生运维感兴趣&#xff0c;也保持时刻学习&#xff0c;后续会分享工作中用到的运维技术&#xff0c;在运维的路上得到支持和共同进步…...

【Python机器学习】回归——缩减系数来“理解”数据

如果数据特征比样本点还多&#xff0c;是不可以使用线性回归的&#xff0c;因为在计算的时候会出错。 如果特征比样本点还多&#xff08;n>m&#xff09;&#xff0c;也就是说输入数据的矩阵x不是满秩矩阵。非满秩矩阵在求逆时会出问题。 为了解决上述问题&#xff0c;可以…...

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战&#xff1a;腾讯云IM群组成员管理&#xff08;增删改查&#xff09; 一、前言 在社交类App开发中&#xff0c;群组成员管理是核心功能之一。本文将基于UniApp框架&#xff0c;结合腾讯云IM SDK&#xff0c;详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...