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水平分割机制

解决思路:

  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----多协议标签交换----现网环境使用的解决方案

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

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

相关文章

Python模块之Numpy(三)-- 数组的访问

Numpy对数组的操作十分高效,这主要源于其对索引的使用。数组索引的使用和列表(list)类似,索引都是从0开始,在访问或者批量引用时,遵循左闭右开的原则。 对于一维数组 import numpy as np arr np.arange(…

SD-WAN供应商选择指南

企业网络日益演变,尤其是跨国企业、出海电商和外贸企业,其网络需求变得愈发复杂多样。SD-WAN技术因此备受瞩目,成为连接分支机构和数据中心的关键解决方案。然而,市面上的SD-WAN供应商众多,如何选择适合的服务商成为了…

gitignore配置不生效记录

第一种可能性: 在你所有的文件都通过了git add . 命令的情况下,使用指令git rm -r --cached .进行缓存清除,完成之后,再次通过git add . 然后通过git status去看提交的文件都有哪些。 第二种可能性 如果上面的不行就是你添加的…

混合使用MFC与QT的深度技术分析

混合使用MFC与QT的深度技术分析 目录 混合使用MFC与QT的深度技术分析 一、引言 二、MFC与QT概述 三、混合使用场景分析 四、技术挑战与解决方案 五、实操:集成QT模块至MFC应用 六、性能考量与优化策略 七、安全性分析 八、案例研究 九、总结与未来展望 一、…

【机器学习】Scikit-Learn:Python机器学习的瑞士军刀

Scikit-Learn:Python机器学习的瑞士军刀 一、Scikit-Learn简介二、Scikit-Learn的核心功能数据预处理模型选择模型评估模型部署 三、Scikit-Learn的中文社区与API四、代码实例:使用Scikit-Learn进行鸢尾花数据集分类 在当今这个数据驱动的时代&#xff0…

C++ Primer 中文版(第 5 版)- 第四单元

第四单元 练习 4.1 编写一段程序&#xff0c;使用条件运算符从vector中找到哪些元素的值是奇数&#xff0c;然后将这些奇数值翻倍。 #include <iostream> #include <vector>using std::cout; using std::endl; using std::vector;int main() {vector<int>…

论文《Deep graph tensor learning for temporal link prediction》阅读

论文《Deep graph tensor learning for temporal link prediction》阅读 论文概况IntroductionRelated work动态图表示学习图张量表示 Preliminary张量生成建模 深度图张量学习模型A.基于图紧凑的空间表示B.时间模式表示C.时空特征聚合D.损失函数 实验数据集对比实验消融实验参…

美易官方:美国房地产贷款逾期率飙升,银行业危机仍可控?现货黄金暂守2360

美国房地产贷款逾期率飙升&#xff0c;银行业危机仍可控&#xff1f;现货黄金暂守2360 近年来&#xff0c;美国房地产市场一直处于波动之中&#xff0c;尤其是商业房地产领域。近期&#xff0c;美联储发出警告&#xff0c;称商业房地产贷款逾期率持续攀升&#xff0c;银行正在为…

鸿蒙ArkUI开发:常用布局【交叉轴】

交叉轴 垂直于主轴方向的轴线。Row容器交叉轴为纵向&#xff0c;Column容器交叉轴为横向。通过alignItems属性设置子元素在交叉轴&#xff08;排列方向的垂直方向&#xff09;上的对齐方式alignSelf属性用于控制单个子元素在容器交叉轴上的对齐方式&#xff0c;其优先级高于al…

M 有效算法

M 有效算法 本题考验二分知识&#xff0c;思路是二分k的取值&#xff0c;就按第一组样例来说当我们k取值为1的时候我们遍历数组想让|8-x|<k1的话x的取值范围是7-9&#xff0c;想让|3-x|<k2的话x的取值范围是1-5&#xff0c;两者x的区间不重合&#xff0c;说明肯定没有x能…

【力扣】164. 最大间距

164. 最大间距 题目描述 给定一个无序的数组 nums&#xff0c;返回 数组在排序之后&#xff0c;相邻元素之间最大的差值 。如果数组元素个数小于 2&#xff0c;则返回 0。 您必须编写一个在「线性时间」内运行并使用「线性额外空间」的算法。 示例 1: 输入: nums [3,6,9,…

几种ssh自动登录服务器的方法

一、Windows环境 1. 配置公钥和私钥 https://developer.aliyun.com/article/1132156 2. 使用putty.exe 官网见&#xff1a;https://www.putty.org/ 下载地址&#xff1a;https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html 使用示例如下&#xff1a; echo of…

BGP—边界网关协议

BGP 动态路由协议可以按照工作范围分为IGP以及EGP。IGP工作在同一个AS内&#xff0c;主要用来发现和计算路由&#xff0c;为AS内提供路由信息的交换&#xff1b;而EGP工作在AS与AS之间&#xff0c;在AS间提供无环路的路由信息交换&#xff0c;BGP则是EGP的一种。 BGP是一…

打开深度学习的锁:(0)什么是神经网络?有哪些必备的知识点准备?

PS&#xff1a;每每温故必而知新 什么是神经网络&#xff1f; 一、一个单神经元的神经网络二、多个单神经元的神经网络三、到底什么是机器学习&#xff1f;&#xff08;重点&#xff09;1&#xff1a;什么是机器学习的训练&#xff1f;2&#xff1a;什么是模型&#xff1f;权重…

接口测试全流程扫盲..

一.为什么要做接口测试&#xff1f; ①.越底层发现bug&#xff0c;它的修复成本是越低的。 ②.前端随便变&#xff0c;接口测好了&#xff0c;后端不用变&#xff0c;前后端是两拨人开发的。 ③.检查系统的安全性、稳定性&#xff0c;前端传参不可信&#xff0c;比如京东购物…

拉链表实现过程+案例

第一种 1.从ODS层获取增量数据(上一天新增和更新的数据) 2.拿着DWD原始拉链表数据 left join 增量数据 ,修改原始拉链中历史数据的结束时间 3.拿着left join 的结果集 union all 增量数据 4.把最新的拉链数据优先保存到DWD对应的临时表中 5.使用insertselect 方式把临时表中…

数据结构入门 时间 空间复杂度解析

一. 算法效率 算法效率分析分为两种&#xff1a;第一种是时间效率&#xff0c;第二种是空间效率。 时间效率被称为时间复杂度&#xff0c;而空间效率被称作空间复杂度。 时间复杂度主要衡量的是一个算法的运行速度&#xff0c;而空间复杂度主要衡量一个算法所需要的额外空间&am…

哈希重要思想——位图详解

一&#xff0c;概念 所谓位图&#xff0c;就是用每一位来存放某种状态&#xff0c;适用于海量数据&#xff0c;数据无重复的场景。通常是用来判断某个数据存不存在的。 为了方便理解我们引入一道面试题&#xff0c; 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无…

redis试题按知识点归类(二)

六、性能优化 1.如何对 Redis 进行性能监控&#xff1f; (1)Redis 自带监控命令 使用 INFO 命令获取服务器的详细信息&#xff0c;包括角色、角色具体信息、服务器不同部分的统计数据等。使用 SLOWLOG 命令来管理和监控慢查询。 (2)第三方监控工具&#xff1a; Redis Desk…

Python3 笔记:二进制的转换

十进制是逢十进一&#xff0c;二进制就是逢二进一。 十进制里最大的数字是9&#xff0c;二进制里最大的数字是1。 11010010001000010000010000001000000010^0110^11010^210010^3100010^41000010^510000010^6100000010^7100000002^012^122^242^382^4162^5322^6642^7128 1、十进…