基于华为ENSP的BGP的状态机深入浅出

 本篇技术博文摘要 🌟

  • 本文章主要探讨BGP状态机如何控制BGP连接的建立与维护,以及BGP协议在运行过程中如何交换路由信息并确保网络的稳定性

引言 📘

  • 在这个快速发展的技术时代,与时俱进是每个IT人的必修课。
  • 我是肾透侧视攻城狮,一名什么都会一丢丢的网络安全工程师,也是众多技术社区的活跃成员以及多家大厂官方认可人员,希望能够与各位在此共同成长。

1.BGP的状态机

什么是BGP的状态机?

  • OSPF的状态机是在描述整个协议的完整工作过程,而BGP的状态机仅描述的是对等体关系建立过程中的状态变化。-----因为BGP将邻居建立过程以及BGP路由收发过程完全隔离
  • IGP协议在启动后,需要通过network命令激活接口,从而使接口具备处理IGP协议报文的能力。且network命令另一重含义就是发布路由,所以IGP协议无法将邻居建立过程以及路由收发过程隔离。
  • 但是BGP协议在启动后,每一个接口都具备处理BGP报文的能力,不需要其他任何操作,所以可以将邻居建立过程以及路由收发过程进行分割。

BGP-Peer状态表说明

image-20230323153930483

Idle----空闲状态

  • 等待网络管理员手工指定邻居信息,IP地址以及AS号

  • 当指定邻居信息后,会进入一个检查环节,需要检查手工指定的IP地址在本地路由表中是否可达,只有可达,才可以正常建立TCP会话,如果不可达,则邻居关系建立失败,停留在Idle状态。

image-20230323153930483

Connect----连接状态

  • 该状态会开启一个连接重传定时器---32秒

    • 当该计时器时间超时,则本端重新发送一次TCP连接请求报文。在该时间段内没有收到任何一个回复报文。

  • 如果此时本地判断TCP状态进入到establish状态,则认为TCP连接建立成功,进入到opensent状态。

  • 如果此时本地收到的是拒绝报文,则认为TCP连接建立失败,进入到Active状态。

  • 如果BGP在连接重传定时器时间内,没有收到对等体的响应,那么BGP会继续尝试与对等体建立TCP会话,并一直处于该状态

Active----尝试状态

  • 第一次TCP会话建立失败,则进入该状态。

  • 如果建立成功,则进入opensent状态;如果建立失败,则停留在active状态。

  • 使用在connect状态开启的连接重传定时器来发送链接建立请求报文,当建立成功后,该计时器才会被关闭。

opensent状态

  • 本地发送出open报文,同时也将收到对端发送的open报文,并予以回复。

  • 如果收到的open报文中的参数本端认可,则回复keepalive报文;否则回复notification报文。

  • 如果回复keepalive报文,则进入openconfirm状态;如果回复notification报文,则进入idle状态。

openconfirm状态

  • 等待对等体对于本地发出的open报文参数的回复。

  • 如果收到的是keepalive报文,则认为BGP会话建立成功,进入到establish状态。

  • 如果收到的是notification报文,则认为BGP会话建立失败,断开TCP连接,回到idle状态。

Establish状态----建立状态

  • BGP会话建立的标志

  • 在该状态可以发送除了open报文以外的所有BGP数据报文。

 BGP各个状态表之间的联动关系图

2.BGP的工作过程

前提:不是BGP工作过程

  • 基于IGP、静态、直连路由协议实现IP可达

启动BGP协议,并指定邻居关系。

  1. 邻居之间使用单播进行数据传输,通过三次握手,建立TCP会话通道。

  2. 之后所有的数据通讯均基于TCP会话通道来传输,并由TCP协议来提供传输的可靠性机制

用open和keepalive报文进行邻居之间参数的协商,以及对等体关系的建立

  1. open报文用来携带参数信息

  2. keepalive报文用来进行参数确认

  3. 最终生成BGP邻居表

使用update报文来传输BGP路由信息

  • 信息中将携带前缀信息、前缀长度以及路径属性。
  1. 设备会将自己发送的以及收到的所有BGP路由信息记录在BGP路由表中。

  2. 设备会对比不同路由表单,将其中最优的路由信息加载到全局路由表中。

路由收敛完成 

  • BGP对等体之间使用keepalive报文进行周期保活(可选)。默认为180S,可以设置为0关闭周期保活性质

如果出现报错/结构突变

  • 出现错误,使用notification报文告警
  • 出现结构突变,使用update报文进行增量更新。

欢迎各位彦祖与热巴畅游本人专栏与技术博客

你的三连是我最大的动力

以下图片仅代表专栏特色 [点击➡️指向的专栏名即可闪现]

➡️Cyberspace Security

➡️ 24 Network Security -LJS 

➡️ Ungranted access vulnerability

➡️HCIP;H3C-SE;CCIP—LJS[华为、华三、思科高级网络]

➡️ MYSQL REDIS Advance operation

➡️RHCE-LJS[Linux高端骚操作实战篇]

➡️数据结构与算法[考研+实际工作应用+C程序设计]

➡️RHCSA-LJS[Linux初级及进阶骚技能]

上节回顾

 

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

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

相关文章

Android 15中的16KB大页有何优势?

deepseek回答: Android 15引入的16KB大内存页是系统性能优化的关键变革,其核心优势体现在以下方面: ⚡ 一、性能全面提升 系统整体加速 配置16KB页面的设备整体性能提升5%-10%,通过减少内存管理开销释放更多资源用于应用运行。…

Gis数据的A*算法规划航线

1.1 用到的技术栈geotools JTSJgrapht1.2 实现思路// 定义栅格网格参数private static final double CELL_SIZE_DEGREES 0.005;private static int gridWidth 0;//格子高度 index 1private static int gridHeight 0;//格子宽度// 1. 读取GeoJSON文件File geoJsonFile new …

Spring Boot 默认使用 CGLIB,但CGLIB 无法代理 final 类或 final 方法

那么当这两件事冲突时,Spring Boot 是怎么“解决”的呢?答案是:它不解决,也无法解决。当这种情况发生时,你的应用程序会直接启动失败。这不是 Spring Boot 的疏忽,而是由 CGLIB 的底层原理和 Java 语言的规…

cuda编程笔记(10)--memory access 优化

全局内存访问优化(Coalesced Access) 什么是 Coalesced Access? 定义:一个 warp(32 个线程)在同一指令中访问全局内存时,如果这些访问请求可以合并成尽可能少的内存事务(通常是 32…

闲庭信步使用图像验证平台加速FPGA的开发:第三十一课——车牌识别的FPGA实现(3)车牌字符分割预处理

(本系列只需要modelsim即可完成数字图像的处理,每个工程都搭建了全自动化的仿真环境,只需要双击top_tb.bat文件就可以完成整个的仿真,大大降低了初学者的门槛!!!!如需要该系列的工程…

电子电气架构 --- 汽车软件全生命周期

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…

力扣面试150(41/150)

7.25 56. 合并区间 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 我的思路: 左端点升序…

【隧道篇 / IPsec】(7.6) ❀ 01. 利用向导快速建立IPsec安全隧道 (点对点) ❀ FortiGate 防火墙

【简介】相信很多人已经习惯利用导向快速创建VPN了,而且已经有部分尝鲜者已经用上了FortiOS 7.6,但是会发现FortiOS 7.6下的VPN向导改变了很多,一时无法下手,下面我们来看看最常见的点对点是如何配置的。环境介绍在配置IPsec VPN之…

PLLIP核

。1 号红色框内的速度等级代表着设备的速度 等级,保存默认就好;2 号红色框内设置输入频率;3 号红色框选择 PLL 的工作模式。我们 开发板用的晶振是 50MHz 的,故在 2 号红色框内我们填写 50MHz;我们在 3 号红色框内选正…

1.1 Deep learning?pytorch ?深度学习训练出来的模型通常有效但无法解释合理性? 如何 解释?

DL 是什么,你如何理解DL模型? DL 对于我而言,就是人类试图想通过数学语言描述人类学习过程的一门技术,或者说学科。 因此 DL 模型 相当于 数学 的 一个 funciton ,有输入,通过function处理,得…

java实现在工具类中注入其他对象方式

方案1: Slf4j Component public class ChatdocApiClient {Value("${chatdoc.app-id}")private String appId;Value("${chatdoc.secret}")private String secret;Value("${chatdoc.domain}")private String domain;private final Rest…

electron中IPC 渲染进程与主进程通信方法解析

electron中ipcRenderer.invoke、ipcRenderer.on、ipcRenderer.send、ipcRenderer.sendSync作用与区别 IPC 渲染进程与主进程通信方法解析 ipcRenderer 的这几个方法作用不完全相同,它们适用于不同的通信场景,核心区别在于通信方向、是否需要响应以及同步…

epoll_event 事件类型详解

epoll_event 事件类型详解 epoll_event 是 Linux epoll I/O 多路复用机制的核心结构体&#xff0c;其中的事件类型决定了 epoll 监控的行为和触发条件。以下是各种事件类型的详细解析&#xff1a; epoll_event 结构体 #include <sys/epoll.h>typedef union epoll_data {v…

设计自己的小传输协议 导论与概念

设计自己的小传输协议 导论与概念 1&#xff1a;聊一聊协议头设计 ​ 早在《TCP/IP详解》中的第一句话中&#xff0c;我们就知道协议的含义是这样的&#xff1a;协议是通信双方共同遵守的一套规则&#xff0c;提供格式定义、语义解释等&#xff0c;使不同设备或软件能够正确交…

iOS —— 天气预报仿写总结

在iOS中&#xff0c;最常见的网络请求方式是NSURLSession&#xff0c;它是苹果推荐的现代API&#xff0c;简单安全且易于拓展。一次完整的网络请求流程&#xff1a;构造 NSURL 对象创建 NSURLSessionDataTask发起请求&#xff08;resume&#xff09;在回调中解析数据回到主线程…

MySQL 8.4 Windows 版安装记录与步骤参考

导语&#xff1a; MySQL 作为广泛使用的开源数据库管理系统&#xff0c;是许多开发者和学习者的必备工具。最近有朋友询问安装过程&#xff0c;正好整理了 MySQL 8.4 在 Windows 系统下的安装步骤和一些注意事项&#xff0c;分享给有需要的朋友做个参考。关于 MySQL&#xff1a…

七、搭建springCloudAlibaba2021.1版本分布式微服务-skywalking9.0链路追踪

前言链路追踪介绍 对于一个大型的几十个&#xff0c;几百个微服务构成的微服务架构系统&#xff0c;通常会遇到下面的一系列问题。 如何串联整个调用链路&#xff0c;快速定位问题&#xff1f;如何澄清各个微服务之间的依赖关系&#xff1f;如何进行各个微服务接口的性能分析&a…

深入理解大语言模型生成参数:temperature、top\_k、top\_p 等全解析

在使用大语言模型&#xff08;如 GPT-4、LLaMA、ChatGLM 等&#xff09;进行文本生成任务时&#xff0c;很多开发者会面对各种“生成参数”&#xff0c;如 temperature、top_k、top_p、repetition_penalty 等。这些参数虽然看起来抽象&#xff0c;但掌握它们的意义和配置技巧&a…

vulhub Web Machine(N7)靶场攻略

下载地址&#xff1a; https://download.vulnhub.com/webmachine/Web-Machine-N7.ova 使用方法&#xff1a; 靶场下载好以后不用解压&#xff0c;需要使用Oracle VirtualBox虚拟机打开&#xff0c;用VMware会报错。安装Oracle VirtualBox虚拟机时安装地址不能随便选择&#…

【机器学习深度学习】模型微调:多久才算微调完成?——如何判断微调收敛,何时终止训练

目录 前言 一、微调过程的目标&#xff1a;优化模型表现 二、微调需要多久&#xff1f; 微调时间无法确定 三、如何判断微调何时收敛&#xff1f; 3.1 观察Loss的下降趋势 3.2 损失值趋于平稳&#xff0c;意味着收敛 如何识别收敛&#xff1f; 3.3 验证Loss的波动&…