学习HCIP的day.03

news2024/10/6 18:26:58

目录

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 process

Warning: 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 network

  nbma       Specify OSPF NBMA network

  p2mp       Specify OSPF point-to-multipoint network

  p2p        Specify OSPF point-to-point network

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

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

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

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

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

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

相关文章

golang Gin实现websocket

golang使用 Gin实现 websocket&#xff0c;这里笔者重新搭建一个项目 1、创建项目安装依赖 项目名为 go-gin-websocket 在指定文件夹下&#xff0c;新建项目文件夹 go-gin-websocket 进入项目文件夹&#xff0c;打开cmd窗口&#xff0c;在项目&#xff08;go-gin-websocket&a…

【Git 入门教程】第九节、Git的最佳实践

Git是一个强大的版本控制系统&#xff0c;可以帮助开发者管理和协调代码库。然而&#xff0c;正确使用Git并不总是容易。本文将介绍一些Git的最佳实践&#xff0c;以帮助开发者更好地利用Git来管理和协调代码库。 一、编写有意义的提交信息 在使用Git时&#xff0c;编写有意义…

Python编程IDE的选择

Python环境安装之后&#xff0c;接下来就是选择编写Python程序的编辑器了&#xff0c;这里就给大家推荐几种Python编辑器&#xff0c;我们简称这些编辑器为IDE。好的编程IDE可以提高编写代码效率&#xff0c;那咱话不多说&#xff0c;直接开始推荐&#xff01; IDLE 首先&…

有人USR-M100边缘主动上报电流数据到TCP服务器

前两天跟强哥配置了有人的USR-M100模块&#xff0c;实现了采集的电流信号主动上报服务器的功能&#xff0c;昨天去第一污水厂配置了1台、第二污水厂配置了5台、第三污水厂配置了1台&#xff0c;能够将数据上报到甲方的云平台&#xff0c;这里记录一下配置过程&#xff0c;方便以…

推荐4款免费好用的chatGPT平台

1 ShellGPT 这是一款出色的客户端&#xff0c;无需APIkey和科学上网即可访问chatGPT3.5以及绘画AI。项目的github地址如下&#xff1a;https://github.com/akl7777777/free-chatgpt-client-pub/&#xff0c;可在主页下载windows、linux和macOS的安装包&#xff0c;安装后即可使…

力扣刷题2023-04-30-1——题目:剑指 Offer II 007. 数组中和为 0 的三个数

题目&#xff1a; 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复…

React之动态路由创建以及解决刷新白屏问题

动态路由的创建和动态菜单的创建几乎类似&#xff0c;只不过的是&#xff0c;动态路由需要导入组件。这样才能完成跳转。 动态路由与动态菜单一样都需要封装一个转化函数&#xff0c;将后端传来的数据进行转换&#xff0c;转换成我们需要的格式。 需要导入的依赖 导入路由use…

kali: kali工具-Ettercap

kali工具-Ettercap ettercap工具&#xff1a; 用来进行arp欺骗&#xff0c;可以进行ARP poisoning&#xff08;arp投毒&#xff09;&#xff0c;除此之外还可以其他功能&#xff1a; ettercap工具的arp投毒可以截取web服务器、FTP服务器账号密码等信息&#xff0c;简略后打印出…

C++篇--类大小计算、this指针

文章目录 一、类大小计算二、this指针 一、类大小计算 类的大小是只计算它的成员变量或者自定义成员&#xff0c;不会计算它的成员函数大小。 #include<iostream> using namespace std;class A1 { public:void fun(){_a 1;_b 2;}int _a;int _b; };int main() {cout <…

干货 | 赵亚雄:大模型、AI经济和AI基础设施

大家好&#xff0c;我是算想未来的创始人CEO赵亚雄。今天非常高兴到母校来做简短的分享。我们最近会几乎是被ChatGPT、OpenAI等等话题各类的信息轮番轰炸。我希望借助这个机会&#xff0c;把自己这一段时间来思考的有关AI基础设施还有AGI再到大模型等内容&#xff0c;从相对抽象…

ElasticSearch创建文档以及索引文档的详细流程

当我们发起一个查询请求之后&#xff0c;ES是怎么处理这个请求然后返回数据的呢&#xff1f;今天就来详细说一下。 首先看一下整体结构&#xff1a; 在集群模式下一个索引有多个分片&#xff0c;在上图中有三个节点(一个主节点两个从节点)&#xff0c;一个索引被分为两个分片(…

基于协同过滤的旅游推荐系统设计与实现(论文+源码)_kaic

1 绪论 1.1 研究背景及意义 1.2 国内外研究现状 1.3 研究目标与意义 1.4 主要研究工作 2 相关理论介绍 2.1HTML与JavaScript 2.2 MySQL数据库 2.3 协同过滤算法简介 3 系统分析与设计 3.1 系统需求分析 3.1.1 功能性需求 3.1.2 安全性需求 3.2 系统总体架构 3.3 功能模块设计 3…

vue3的props和defineProps

文章目录 1. Props 声明1.1 props用字符串数组来声明Blog.vueBlogPost.vue 1.2 props使用对象来声明Blog.vueBlogPost.vue 2. 传递 prop 的细节2.1 Prop 名字格式2.1 静态Prop & 动态 Prop静态prop动态prop示例Blog.vueBlogPost.vue 2.3 传递不同的值类型NumberBooleanArra…

【Java笔试强训 11】

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

算法记录 | Day46 动态规划

139.单词拆分 思路&#xff1a; 1.确定dp数组以及下标的含义 dp[i] : 字符串长度为i的话&#xff0c;dp[i]为true&#xff0c;表示可以拆分为一个或多个在字典中出现的单词。 2.确定递推公式 如果 s[0: j] 可以拆分为单词&#xff08;即 dp[j] True&#xff09;&#xff…

Linux RHCE解题方法

目录 安装和配置Ansible 创建和运行Ansible临时命令 安装软件包 使用RHEL系统角色 使用 Ansible Galaxy 安装角色 创建和使用角色 从 Ansible Galaxy 使用角色 创建和使用逻辑卷 生成主机文件 修改文件内容 创建 Web 内容目录 生成硬件报告 创建密码库 创建用户帐…

C++中stringstream类详解

本文主要介绍 C 编程语言中 stringstream 类的相关知识&#xff0c;同时通过示例代码介绍 stringstream 类的使用方法。 1 概述 <sstream> 定义了三个类&#xff1a;istringstream、ostringstream 和 stringstream&#xff0c;分别用来进行流的输入、输出和输入输出操作…

快速傅里叶变换FFT学习笔记

点值表示法 我们正常表示一个多项式的方式&#xff0c;形如 A ( x ) a 0 a 1 x a 2 x 2 . . . a n x n A(x)a_0a_1xa_2x^2...a_nx^n A(x)a0​a1​xa2​x2...an​xn&#xff0c;这是正常人容易看懂的&#xff0c;但是&#xff0c;我们还有一种表示法。 我们知道&#xf…

java结束当前循环

在 Java中&#xff0c;当我们要结束一个循环时&#xff0c;通常会使用循环变量的实现类来结束&#xff0c;但在实际开发中&#xff0c;我们经常会遇到某个循环结束后需要进行其他的操作的情况。此时&#xff0c;就需要使用循环变量来结束当前循环。 1、创建一个新的类&#xff…

数据结构_双链表、循环链表、静态链表

目录 1. 双链表 1.1 双链表的初始化 1.2 双链表的插入操作 1.3 双链表的删除操作 1.4 双链表的遍历 2. 循环链表 2.1 循环单链表 2.2 循环双链表 3. 静态链表 4. 顺序表和链表的比较 5. 相关练习 1. 双链表 单链表结点中只有一个指向其后继的指针&#xff0c;使得单…