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

学习HCIP的day.03

目录

OSPF:开放式最短路径优先协议

OSPF的数据包 -- 5种

 OSPF的状态机  

OSPF的工作过程

OSPF的基础配置

关于OSPF协议从邻居建立成为邻接的条件

OSPF的接口网络类型


OSPF:开放式最短路径优先协议

        无类别链路状态型IGP协议;由于其基于拓扑进行更新收敛,故更新量会随着拓扑的变大而成指数上升;故OSPF协议为了能在大、中型网络中运行,需要结构化的部署----合理的区域划分、良好的地址规划   正常等开销负载均衡;它是一种跨层封装协议,协议号为89;

组播更新地址为: 224.0.0.5  224.0.0.6            更新机制:触发更新+周期更新(每30min)

距离矢量 DV链路状态LS
RIP、EIGRPOSPF、ISIS
邻居间共享路由条目邻居间传递的是拓扑信息
传闻性协议本地计算路由

OSPF协议优点分为三方面:

  1. 收敛速度快   2、选择路径佳(前提是防环)  3、占用资源少

OSPF的数据包 -- 5种

1、hello包 -- 组播收发,用于邻居、邻接关系的发现、建立、周期保活  

2、DBD -- 数据库描述包--  本地LSDB(链路状态数据库)目录

3、LSR---链路状态请求 --  用于询问对端本地未知的LSA信息

4、LSU-- 链路状态更新 --  用于共享具体的每一条LSA信息

5、LSack 链路状态确认 -- 确认包

LSA--链路状态通告--具体的一条一条 路由或者拓扑信息,不是一种数据包,所有的LSA是使用LSU这种包来转发的;

OSPF的数据包是跨层封装于3层报头后方 ,协议号89

 OSPF的状态机  

两台OSPF路由器间不同关系的阶段、

 1、Down  一旦接收到对端的hello包进入下一个状态

 2、Init 初始化   若接收到的hello包中存在本地的RID,那么进入下一个状态机

3、2way 双向通讯  邻居关系建立的标志

条件:点到点网络直接进入下一个状态机;MA网络进行DR/BDR选举,非DR/BDR之间不能进入下一个状态机;

 4、Exstart预启动 使用不携带数据库目录信息的DBD包,进行主从关系的选举,RID数值大为主,优先进入下一个状态机

5、exchange准交换  使用携带数据库目录信息的DBD包,进行目录共享,需要ACK确认

 6、loading加载  接收到其他邻接的目录信息后,和本地进行比对,若本地存在未知的LSA信息,将使用LSR询问对端,对端使用LSU来更新这些LSA信息,直至双方数据库一致;

注:LSU需要ACK确认;

7、Full 转发   标志着邻接关系已经建立;

OSPF的工作过程

1、路由器上启动OSPF协议后,直连的邻居间,开始组播收发hello包,hello包中将存储本地已知邻居的RID,在双方RID均已知的情况下,建立邻居关系,生成邻居表

2、邻居关系建立后,邻居间将进行条件匹配,匹配失败将停留为邻居关系,仅hello周期保活即可;匹配成功者间将进行邻接关系的建立;

3、邻接关系间的路由器,将使用DBD/LSR/LSU/LSack来获取本地未知的所有LSA信息;使得同一区域内所有路由器的数据库完全一致;---- 数据库表

4、当本地数据库完成同步后,将数据库-->有向图-->树型结构图-->将本地到达所有未知网段的最短路径加载于本地路由表中;

5、收敛完成后,仅hello包周期保活即可;正常每30min,邻接关系间再进行一次DBD的对比,若一致及正常;若不一致将马上进行同步;

结构突变:触发更新

  1. 断开网段 直连断开网段的设备,直接使用LSU告知邻接,需要确认
  2. 新增网段  直连新增网段的设备,直接使用LSU告知邻接,需要确认
  3. 无法沟通    hello time 对应的 dead time ;dead time 到时时,断开邻居关系,去除基于该邻接共享的LSA计算所得路由;

OSPF的基础配置

1、启动OSPF进程

[r1]ospf 1 router-id 1.1.1.1  

启动时,定义进程号,仅具有本地意义;建议配置RID;

RID格式为ipv4地址,且需要全网唯一;  手工配置--环回接口上取最大数值的ip地址---物理接口上最大ip地址的数值

2、创建区域

[r1-ospf-1]area  0[r1-ospf-1-area-0.0.0.0]

3、宣告网段 --- 自己的路由器上直连什么网段就宣告什么网段

[r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0[r1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255

宣告:1、区域划分   2、接口激活协议   3、传递接口信息

区域划分规则:

  1. 星型结构 --- 区域0为骨干 大于0为非骨干,非骨干区域必须直连骨干区域
  2. ABR --- 区域边界路由器,两个区域间必须依靠ABR连接

启动配置完成后,邻居间使用hello包建立邻居关系,生成邻居表

hello包 --- 组播收发,周期发送 ---  hello time 10s 或30s  dead time 为hello time 4倍

 邻居间hello包中有一些参数必须完全一致,否则无法建立邻居关系;

Hello 和dead time  、区域ID、认证参数、末梢区域标记;另外在华为的设备中OSPF要求邻居间接口上配置的ip地址,其掩码长度必须一致;

[r1]display ospf peer
#查看OSPF邻居表
[r1]display ospf peer brief
#查看OSPF邻居关系简表

        当邻居关系建立后,邻居间进行条件匹配,匹配失败,将保持为邻居关系;匹配成功,将建立为邻接关系,邻接关系将使用DBD/LSR/LSU/LSack来获取本地未知的所有LSA信息,同步生成数据库表 --- LSDB (链路状态数据库)

[r1]display ospf lsdb
#查看数据库表
[r1]display ospf lsdb router 2.2.2.2
#查看一条LSA信息

数据库表同步完成后,邻接间的互动完成,仅hello包保活;之后本地基于本地的数据库表转换为有向图,再转换为树形结构,最终将本地到达所有未知网段的最短路径,加载于本地的路由表中:

<r1>display  ip routing-table protocol  ospf
查看OSPF路由协议的优先级

默认ospf协议在华为设备中,优先级为10;度量为cost值

cost值=开销值= 参考带宽/接口带宽   默认参考带宽为100M

ospf协议将cost值之和最小定义为最佳路径,加载于本地路由表中

若接口带宽大于参考带宽,cost值为1,将可能导致选路不佳;可以修改默认的参考带宽

[r1]ospf 1[r1-ospf-1]bandwidth-reference ?INTEGER<1-2147483648>  The reference bandwidth (Mbits/s)[r1-ospf-1]bandwidth-reference 1000

切记:一旦修改,整个网络所有ospf路由器需要一致;

关于ospf的MTU问题

在ospf协议的DBD包中将携带本地接口的MTU值,若两端一致可以正常建立邻居关系;若不一致将无法建立邻接关系;

默认华为设备不携带MTU;

[r1-ospf-1] int g0/0/1  [r1-GigabitEthernet0/0/1]ospf mtu-enable    两端设备均需开启

关于OSPF协议从邻居建立成为邻接的条件

根据网络类型决定:

1、在点到点网络中,所有的邻居关系必然成为邻接关系

2、在MA网络中从邻居到邻接前将利用一个周期的dead time;进行DR/BDR选举;

先比较这些参选接口的优先级,默认1,取值范围0-255;越大越好,0标识不参选;

DR优先级最大,BDR次大;选举非抢占,故若希望干涉选举,需要重启ospf进程,或者将非DR/BDR修改为0;

[r2]interface GigabitEthernet 0/0/1[r2-GigabitEthernet0/0/1]ospf dr-priority  3  修改优先级

重启进程

<r2>reset ospf processWarning: The OSPF process will be reset. Continue? [Y/N]:y

非DR/BDR间为邻居关系;

OSPF的接口网络类型

OSPF协议在不同的网络类型,其工作的方式不同

[r1]display  ospf interface GigabitEthernet 0/0/1

以下为OSPF接口信息

                                 OSPF Process 1 with Router ID 1.1.1.1

                                                         Interfaces

                 Interface: 12.1.1.1 (GigabitEthernet0/0/1)

                 Cost: 1       State: DR        Type: Broadcast    MTU: 1500  

网络类型OSPF接口网络类型
LoopBackP2P(LoopBack)无hello包环回使用32位主机路由
点到点(PPP/HDLC/GRE)P2P10s hello time不选DR/BDR
BMA(以太网)Broadcast10s hello time选DR/BDR
NBMA(MGRE)P2P30s hello time选DR/BDR

在tunnel接口上,ospf的默认工作方式为P2P,这种工作方式,只能建立一个邻居关系,故在MGRE环境中将无法正常工作;

修改接口的默认工作方式:

[r1]interface Tunnel 0/0/0[r1-Tunnel0/0/0]ospf network-type ?broadcast  Specify OSPF broadcast networknbma       Specify OSPF NBMA networkp2mp       Specify OSPF point-to-multipoint networkp2p        Specify OSPF point-to-point network

切记:一个网段中所有接口的ospf工作方式必须一致;否则将无法建立邻居关系,或者因为不同工作方式的hello time一样,错误建邻,无法收敛;

当MGRE环境中,使用OSPF,且所有tunnel接口修改为broadcast工作方式后,必须基于拓扑接口考虑DR位置问题

MGRE可以构建不同的拓扑结构:

  1. 星型--中心到站点--轴辐状  中心站点为DR,取消BDR
  2. 全连网状 ---   不需要再关注DR
  3. 部分网状 --- 基于能够全网段内正常共享LSA来考虑最佳的DR位置

相关文章:

学习HCIP的day.03

目录 OSPF&#xff1a;开放式最短路径优先协议 OSPF的数据包 -- 5种 OSPF的状态机 OSPF的工作过程 OSPF的基础配置 关于OSPF协议从邻居建立成为邻接的条件 OSPF的接口网络类型 OSPF&#xff1a;开放式最短路径优先协议 无类别链路状态型IGP协议&#xff1b;由于其基于拓…...

Maven项目的配置

Maven是什么&#xff1f;它的作用是什么&#xff1f; Maven是一种开源的构建工具&#xff0c;它可以自动化构建、测试、部署和管理Java项目。它提供了一个中心化的构建过程&#xff0c;包括依赖管理、项目结构管理、插件管理等&#xff0c;使得开发人员更方便地维护和协作应用…...

Spring Boot使用(基础)

目录 1.Spring Boot是什么? 2.Spring Boot使用 2.1Spring目录介绍 2.2SpringBoot的使用 1.Spring Boot是什么? Spring Boot就是Spring脚手架,就是为了简化Spring开发而诞生的 Spring Boot的优点: 1.快速集成框架,提供了秒级继承各种框架,提供了启动添加依赖的功能 2.内…...

6WINDGate-overview

6WINDGate Overview Author&#xff1a;Once Day Date&#xff1a;2023年4月29日 本文是对6WIND官网文档的整理和翻译&#xff0c;仅供学习和研究之用&#xff0c;原始文章可参考下面文档&#xff1a; 6WINDGate Documentation - 6WIND6WINDGate Modules — 6WINDGate Modul…...

Java8新特性-流式操作

在Java8中提供了新特性—流式操作&#xff0c;通过流式操作可以帮助我们对数据更快速的进行一些过滤、排序、去重、最大、最小等等操作并且内置了并行流将流划分成多个线程进行并行执行&#xff0c;提供更高效、快速的执行能力。接下来我们一起看看Java8为我们新增了哪些便捷呢…...

Nautilus Chain Layer 3 圆桌会议圆满举办,超4.8K用户观看

在 4 月 21 日&#xff0c;Nautilus Chain 举办了以 “Layer 3 区块链的意义和发展以及Crypto的演变”为主题的线上圆桌会议&#xff0c;我们邀请了众多行业嘉宾包括 GitcoinDAO社区管理者Bob jiang、Whalers Community 发起者崔棉大师、Chatpuppy 联合创始人 古千峰、Whalers …...

本地elasticsearch中文分词器 ik分词器安装及使用

ElasticSearch 内置了分词器&#xff0c;如标准分词器、简单分词器、空白词器等。但这些分词器对我们最常使用的中文并不友好&#xff0c;不能按我们的语言习惯进行分词。 ik分词器就是一个标准的中文分词器。它可以根据定义的字典对域进行分词&#xff0c;并且支持用户配置自…...

Java 中的异常处理机制是什么?如何使用它来处理程序中的异常?(七)

Java 中的异常处理机制是一种重要的编程技术&#xff0c;它能够帮助程序员更好地管理程序中出现的异常情况。本文将详细介绍 Java 中的异常处理机制&#xff0c;并提供示例来说明如何使用异常处理机制来捕获和处理程序中的异常。 什么是异常&#xff1f; 在程序运行过程中&am…...

基于UDQ的并网单相逆变器控制【同步参考系下单相并网全桥正弦PWM逆变器闭环控制】(Simulink)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

JAVA开发——常用的注解

目录 spring spring MVC Spring Boot AOP MyBatis MyBatis-Plus JavaWeb开发 spring Autowired&#xff1a;自动安装&#xff0c;通过类匹配自动注册相应的Bean。 Component&#xff1a;将一个通用的 Java 类标记为 Bean&#xff0c;由 Spring 容器管理。 Controller&…...

【Java笔试强训 24】

&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔&#x1f93a;&#x1f93a;&#x1f93a; 目录 一、选择题 二、编程题 &#x1f525;年终奖 …...

SpringCloud详解

SpringCloud是一个基于SpringBoot的分布式系统开发框架&#xff0c;它能够帮助我们快速、稳定地构建分布式系统。本篇博客将对SpringCloud进行详细解析&#xff0c;介绍SpringCloud的主要组件和相关应用场景&#xff0c;同时提供代码示例以帮助读者更好地掌握SpringCloud的实际…...

如何保障网络安全

网络安全是一个涵盖范围广、深入浅出的话题。随着互联网在现代社会中扮演的重要角色日益突出&#xff0c;网络安全问题成为各个领域所关注的焦点。在此&#xff0c;我们将从以下几个方面来阐述网络安全的重要性&#xff0c;并讨论几种保障网络安全的方式。 一、网络安全的重要性…...

网络基础:socket套接字

文章目录 1. 前导知识1.1 源MAC地址和目的MAC地址1.2 源IP地址和目的IP地址1.3 MAC地址和IP地址的配合1.4 源端口号和目的端口号1.5 Socket1.6 UCP协议和TCP协议1.7 网络字节序高低位高低地址大端和小端网络字节序常用转换函数 2. socket 网络编程2.1 socket 常见接口创建套接字…...

程序员如何学好PHP?做好这五个方面就够了

今天我想和大家分享一下程序员的第一份工作对自己的意义以及影响。首先&#xff0c;我们都知道第一份工作很重要&#xff0c;因为它决定了你以后的职业生涯的方向。你的第一份工作做的什么方向&#xff0c;很可能就是你以后职业生涯中最主要的方向。对我个人而言&#xff0c;我…...

【开源项目】Build your own X 构建自己的项目

【开源项目】Build your own X 构建自己的项目 简介 Build your own X 是一个精心收集了大量资源的项目指南&#xff0c;可以通过从头开始重新创建我们最喜爱的技术来掌握编程。 项目地址&#xff1a; https://github.com/codecrafters-io/build-your-own-x这些项目里的资源…...

在.NET Core中正确使用HttpClient的方式

HttpClient 是 .NET Framework、.NET Core 或 .NET 5以上版本中的一个类&#xff0c;用于向 Web API 发送 HTTP 请求并接收响应。它提供了一些简单易用的方法&#xff0c;如 GET、POST、PUT 和 DELETE&#xff0c;可以很容易地构造和发送 HTTP 请求&#xff0c;并处理响应数据。…...

【C++】位运算类题目总结

文章目录 一. 位运算符脑图二. 相关题目1. 统计二进制数中0的个数2. 数组中只出现一次的数字3. 数组中只出现一次的数字 II4. 不用加减乘除做加法 一. 位运算符脑图 二. 相关题目 1. 统计二进制数中0的个数 解题思路&#xff1a;x & (x-1)&#xff1b;它的作用是每次循环…...

Node服务端开发【NPM】

文章目录 前言NPM使用NPM使用场景NPM的常用命令NPM命令使用介绍使用NPM安装模块下载三方包全局安装VS本地安装本地安装全局安装全局模块路径查看与路径修改 卸载模块更新模块搜索模块NPM服务器发布包 NPM换源nrm全局安装 nrm:nrm ls 列出来现在已经配置好的所有的原地址nrm use…...

Doris(21):Doris的函数—日期函数

1 CONVERT_TZ(DATETIME dt, VARCHAR from_tz, VARCHAR to_tz) 转换datetime值dt,从 from_tz 由给定转到 to_tz 时区给出的时区,并返回的结果值。 如果参数无效该函数返回NULL。 select convert_tz(2019-08-01 13:21:03, Asia/Shanghai, America/Los_Angeles); select co…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

智能仓储的未来:自动化、AI与数据分析如何重塑物流中心

当仓库学会“思考”&#xff0c;物流的终极形态正在诞生 想象这样的场景&#xff1a; 凌晨3点&#xff0c;某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径&#xff1b;AI视觉系统在0.1秒内扫描包裹信息&#xff1b;数字孪生平台正模拟次日峰值流量压力…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

c# 局部函数 定义、功能与示例

C# 局部函数&#xff1a;定义、功能与示例 1. 定义与功能 局部函数&#xff08;Local Function&#xff09;是嵌套在另一个方法内部的私有方法&#xff0c;仅在包含它的方法内可见。 • 作用&#xff1a;封装仅用于当前方法的逻辑&#xff0c;避免污染类作用域&#xff0c;提升…...

Unity中的transform.up

2025年6月8日&#xff0c;周日下午 在Unity中&#xff0c;transform.up是Transform组件的一个属性&#xff0c;表示游戏对象在世界空间中的“上”方向&#xff08;Y轴正方向&#xff09;&#xff0c;且会随对象旋转动态变化。以下是关键点解析&#xff1a; 基本定义 transfor…...

Python 高级应用10:在python 大型项目中 FastAPI 和 Django 的相互配合

无论是python&#xff0c;或者java 的大型项目中&#xff0c;都会涉及到 自身平台微服务之间的相互调用&#xff0c;以及和第三发平台的 接口对接&#xff0c;那在python 中是怎么实现的呢&#xff1f; 在 Python Web 开发中&#xff0c;FastAPI 和 Django 是两个重要但定位不…...