HCIP的学习(16)

BGP的状态机

​ OSPF的状态机是在描述整个协议的完整工作过程,而BGP的状态机仅描述的是对等体关系建立过程中的状态变化。-----因为BGP将邻居建立过程以及BGP路由收发过程完全隔离

​ IGP协议在启动后,需要通过network命令激活接口,从而使接口具备处理IGP协议报文的能力。且network命令另一重含义就是发布路由,所以IGP协议无法将邻居建立过程以及路由收发过程隔离。

​ 但是BGP协议在启动后,每一个接口都具备处理BGP报文的能力,不需要其他任何操作,所以可以将邻居建立过程以及路由收发过程进行分割。

在这里插入图片描述

  • Idle----空闲状态
    • 等待网络管理员手工指定邻居信息,IP地址以及AS号
    • 当指定邻居信息后,会进入一个检查环节,需要检查手工指定的IP地址在本地路由表中是否可达,只有可达,才可以正常建立TCP会话,如果不可达,则邻居关系建立失败,停留在Idle状态。
  • Connect----连接状态
    • 该状态会开启一个连接重传定时器—32秒
      • 当该计时器时间超时,则本端重新发送一次TCP连接请求报文。在该时间段内没有收到任何一个回复报文。
    • 如果此时本地判断TCP状态进入到establish状态,则认为TCP连接建立成功,进入到opensent状态。
    • 如果此时本地收到的是拒绝报文,则认为TCP连接建立失败,进入到Active状态。
    • 如果BGP在连接重传定时器时间内,没有收到对等体的响应,那么BGP会继续尝试与对等体建立TCP会话,并一直处于该状态
  • Active----尝试状态
    • 第一次TCP会话建立失败,则进入该状态。
    • 如果建立成功,则进入opensent状态;如果建立失败,则停留在active状态。
    • 使用在connect状态开启的连接重传定时器来发送链接建立请求报文,当建立成功后,该计时器才会被关闭。
  • opensent状态
    • 本端处于opensent状态,然后对端刚从Idle状态变为Connect状态,对端重新申请建立连接,先发送RST报文(本端opensent状态不会变,除非对面发的是FIN报文),然后和之前一样,最后选择后建立的连接
    • 本地发送出open报文,同时也将收到对端发送的open报文,并予以回复。
    • 如果收到的open报文中的参数本端认可,则回复keepalive报文;否则回复notification报文。
    • 如果回复keepalive报文,则进入openconfirm状态;如果回复notification报文,则进入idle状态。
  • openconfirm状态
    • 等待对等体对于本地发出的open报文参数的回复。
    • 如果收到的是keepalive报文,则认为BGP会话建立成功,进入到establish状态。
    • 如果收到的是notification报文,则认为BGP会话建立失败,断开TCP连接,回到idle状态。
  • Establish状态----建立状态
    • BGP会话建立的标志
    • 在该状态可以发送除了open报文以外的所有BGP数据报文。
    • 一但接收到错误的keepalive报文或TCP的FIN报文,本端会发送notification报文,然后进入idle状态。

在这里插入图片描述

BGP的工作过程

  1. 基于IGP、静态、直连路由协议实现IP可达---->前置要求,不是BGP工作过程
  2. 启动BGP协议,并指定邻居关系。
    1. 邻居之间使用单播进行数据传输,通过三次握手,建立TCP会话通道。
    2. 之后所有的数据通讯均基于TCP会话通道来传输,并由TCP协议来提供传输的可靠性机制。
  3. 使用open报文和keepalive报文进行邻居之间参数的协商,以及对等体关系的建立。
    1. open报文用来携带参数信息
    2. keepalive报文用来进行参数确认
    3. 最终生成BGP邻居表
  4. 使用update报文来传输BGP路由信息。该信息中将携带前缀信息、前缀长度以及路径属性。
    1. 设备会将自己发送的以及收到的所有BGP路由信息记录在BGP路由表中。
    2. 设备会对比不同路由表单,将其中最优的路由信息加载到全局路由表中。
  5. 此时路由收敛完成,BGP对等体之间使用keepalive报文进行周期保活(可选)。默认为180S,可以设置为0关闭周期保活性质。
  6. 如果出现出错误,使用notification报文告警;如果出现结构突变,使用update报文进行增量更新。

BGP的防环

EBGP的水平分割机制

​ 专门为了解决EBGP对等体之间的环路问题

​ 通过AS_Path属性进行防环,该属性会记录下该路由信息所经过的所有AS的AS号。当设备收到一条路由信息时,会查看该属性内容,如果其中存在有与本地AS号相同的信息,则不接受该路由信息。

IBGP的水平分割机制

在这里插入图片描述

BGP规定:当路由器从一个IBGP对等体学习到某条BGP路由时,它将不能再把这条路由信息通告给任何IBGP对等体------IBGP水平分割机制

R4右边有孤立R5(也处于AS64513)解决思路:

  1. 将原本的IBGP对等体关系替换为EBGP对等体关系----在同一个AS下--------联邦
  2. 手工设定让某台路由器将从IBGP学习到的路由信息传递给某个IBGP对等体-----路由反射器
  3. 构建全互联的IBGP对等体关系。----暂时常用。 弊端:导致资源消耗变大,可扩展性差

BGP的路由黑洞

在这里插入图片描述

BGP同步更新规则----为了避免BGP路由黑洞问题

当一台路由器从自己的IBGP对等体学习到一条IBGP路由时,它将不能使用这条路由或者将这条路由通告给其他设备,除非他又从IGP协议中学习到这条路由信息------要求IBGP路由与IGP路由同步

华为与思科默认禁止使用该规则,华为不允许打开该规则,思科允许打开该规则

解决方法:

  1. 让两台运行BGP设备在物理或逻辑上直连
  2. 所有设备运行BGP协议----暂时最常用
  3. 将BGP路由引入到IGP中。
  4. MPLS----多协议标签交换----现网环境使用的解决方案(AS内部不使用路由转发BGP信息,用所携带的标签)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

企业运维背后的故事:TASKCTL带你了解日常工作与技术演进

今天,作为一名经验丰富、从业多年经常与运维人员打交道的人,我想与大家聊聊运维的日常工作、部门协调以及未来发展,希望能为即将转行或正在从事运维工作的你,提供一些新的视角和启发。 运维的日常工作:挑战与乐趣并存 …

朱啸虎:AI应用明年肯定大爆发;第3款爆火AI游戏出现了;AI应用定价策略「不能说的秘密」;人类数据不够用了怎么办 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 1. 换你来当爹:国内第3款爆火出圈的AI游戏应用,hhh 太搞笑了 周末的时候,社群里伙伴们开始玩一款「换你来当爹」的…

[Java EE] 多线程(九):JUC剩余部分与线程安全的集合类(多线程完结)

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (91平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀Java …

群晖 Synology DSM7 过热关机解决方法

最近已经提示我过热关机过两次了,这两次一次是用虚拟机,一次是批量使用Synology Photos批量上传照片: 但是我没有对主机进行任何的位置移动以及硬件修改操作,散热环境没有发生变化。以前使用从来没有出现过这个问题,同…

MySQL Workbench创建数据库和景点评价表

创建一个数据库和一张用于存储景点评价的表。 一 创建数据库 1.双击选择 local instance MySQL80 2. 输入密码 连接成功 3. 创建 mydatabase数据库 4.确认创建 mydatabase数据库 5.选择finish 6.选择 Schemas查看刚才创建的mydatabast数据库 二、创建表 1.创建表 2.设置表信…

视觉SLAM十四讲:从理论到实践(Chapter3:三维空间刚体运动)

前言 学习笔记,仅供学习,不做商用,如有侵权,联系我删除即可 目标 理解三维空间的刚体运动描述方式:旋转矩阵、变换矩阵、四元数和欧拉角。掌握Eigen库的矩阵、几何模块的使用方法。 3.1 旋转矩阵 3.1.1 点、向量和…

建立一物一码数字化营销体系,纳宝科技助力五丰黎红在调味品行业再创佳绩!

五丰黎红隶属于华润五丰集团,公司历史可溯源至1979年,前身是汉源花椒油厂,是一家拥有悠久历史的调味品品牌。一直以来,五丰黎红坚持调味品原料、研发、生产、加工一体化的全产业链经营模式,以“质量”为核心&#xff0…

快捷自由定时重启、注销、关机

首先,需要用到的这个工具: 度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 1、打开工具,进入定时器编辑版块 2、左侧目录新建一个定时器 3、选择需要的周期,这里是每天0点,一次执行一条 4、添加具…

iOS copy的正确姿势

参考文章 知识准备(理解堆栈) 堆区: 程序员管理 若程序员不释放,由os释放不同于数据结构中的堆,堆区的结构类似于数据结构中的链表栈区: 由编译器来管理 存放函数参数值,局部变量的值等结构类似…

Visual Studio下载安装+详细使用学习

一、下载 官网:Visual Studio: 面向软件开发人员和 Teams 的 IDE 和代码编辑器 (microsoft.com) 点击下载,一般用社区版免费的开发既可以。 百度网盘分享: 链接:https://pan.baidu.com/s/1W6-NY4ORsFzKTB3r77XFtw 提取码&…

Xmind Pro 2024 24安装教程

Xmind 应该是目前最好用的一款思维导图软件了。拥有优秀的用户体验,凭借简单易用,功能强大的特点,XMind在2013年被著名互联网媒体Lifehacker评选为全球最受欢迎的思维导图软件。 Xmind 具有如下优点 ①、用心打磨16年的思维导图软件 ②、评…

如何加密保护U盘?U盘加密方法盘点

U盘是目前最常用的移动存储设备,可以帮助我们存储大量数据。而为了保护数据安全,我们需要加密保护U盘。下面我们就来盘点一下U盘加密的方法。 BitLocker加密 BitLocker是Windows的一种磁盘保护工具,通过加密整个磁盘来保护数据,同…

均线金叉死叉及应用案例

5日均线和10日均线交叉 5日均线和10日均线交叉指的是5日和10日均线的相互交汇,根据5日均线运行方向的不同可以分为两种交叉。一是5日均线向上运行并交叉10日均线,二是5日均线向下运行并交叉10日均线,前面的交叉被称为金叉,后面的交叉被称为死叉。 技能解析: 5日均线和10日均…

数据可视化的艺术:使用Matplotlib和Seaborn揭示数据故事

引言 数据可视化是数据分析中的关键一环,它帮助我们理解数据模式、趋势和异常。在Python中,Matplotlib和Seaborn是两个流行的数据可视化库,它们提供了丰富的图表和图形选项,使数据的可视化变得简单而强大。 Matplotlib&#xff…

RS485和RS232区别

RS485和RS232接口在物理外观上的区别主要在于连接器的类型和接线方式上。这两种串行通讯接口虽然在功能上有所不同,但外观上也有一些显著的特点。 连接器类型: RS232 接口通常使用DB9或DB25类型的连接器。DB9是较为常见的,拥有9个针脚&#x…

Python笔记-Alchemy中改变表的模式(库schema)

现在是2024-01-10,发到互联网上应该是2024-05-13。查了下chatgpt,麻了,乱七八糟的。 最后还是靠stackoverflow解决的,目前,从解决问题的角度来看,这个还是牛逼点。 原文如下: python - How d…

用户登录认证和权限授权(SpringSecurity、JWT、session)

文章目录 前言一、登录认证1. 问题引入2. Session2.1 实现原理2.2 过滤器Filter2.3 上下文对象 3. JWT3.2 实现步骤3.3 拦截器 HandlerInterceptorAdapter3.4 上下文对象 4. Session VS JWT 二、权限授权1. 权限类型1.1 页面权限(菜单项权限)1.2 ACL模型…

axios传参方式

params参数通常用于GET请求添加查询参数,POST一般使用data参数传递参数 1、data传参 1-1、表单传参 // 方法定义 export function save(data) {return request({url: /url,headers: { Content-Type: multipart/form-data },method: post,data: data,}) }// 调用函…

Cisco Firepower FTD通过FMC修改syslog发送级别

默认FTD是将informational级别log发到 syslog server 但数量太多,所在调整为只发Warning级别以上的log 1 Devices -->platform settings 进入相应的 policy 2 左侧syslog–>Logging Destination—> syslog server 3 修改为warning (默认为information)…

Windows---CMD常用指令大全

CMD是什么? Windows操作系统中的命令行界面程序,全称为命令提示符 CMD可以干什么? 允许用户在文本界面下输入命令来执行各种操作,如文件管理、系统设置、软件安装等 帮助用户更好地控制和管理Windows系统 windows系统CMD指…