BGP第二篇(bgp邻居状态及影响邻居建立的因素)

news2024/9/21 18:51:07

1、bgp邻居状态

BGP对等体的交互过程中存在6种状态机:
空闲(Idle)
连接(Connect)
活跃 (Active)
Open报文已发送(OpenSent)
Open报文已确认(OpenConfirm)
和连接已建立(Established)

空闲状态(Idle):BGP 初始状态

  • 描述:在空闲状态下,BGP路由器尚未尝试建立连接。
  • 触发条件:只有在收到本设备的 Start 事件后,BGP 才开始尝试和其它 BGP 对等体进行 TCP 连接,并转至Connect 状态。(Start 事件是由一个操作者配置一个 BGP 过程,或者重置一个已经存在的过程或者路由器软件重置 BGP过程引起的)
  • 行为:BGP路由器等待指令以建立到特定邻居的连接。
  • 任何状态中收到 Notification 报文或 TCP 拆链 通知等 Error 事件后,BGP 都会转至 Idle 状态。

 连接状态(Connect):表示等待 TCP 连接完成,等待时间默认 为 32 秒(重传超时时间)

  • 描述:在连接状态下,BGP路由器正在尝试建立与邻居的TCP连接。
  • 触发条件:BGP路由器已经发送了TCP SYN包,尝试与邻居建立连接。
  • 行为:BGP路由器等待TCP连接的确认。
  • 如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态。
    如果TCP连接失败,那么BGP转至Active状态。
    如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在Connect状态。
    卡Connect状态原因:1、对端BGP没开;2、认证;3、TCP179端口被禁

active状态,BGP总是在主动建立TCP连接

  • 如果TCP连接成功,BGP向对端发送Open报文,关闭连接重传定时器,转至OpenSent状态。
    如果TCP连接失败,那么BGP停留在Active状态。
    如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP转至Connect状态。

OpenSent状态:BGP等待对等体的Open报文,并对收到的Open报文中的AS号、版本号、认证等进行检查。

  • 描述:在OpenSent状态下,BGP路由器已经成功建立了TCP连接,并向邻居发送了Open消息。
  • 触发条件:BGP路由器已经发送了Open消息,但尚未收到邻居的Open消息。
  • 行为:BGP路由器等待邻居的Open消息以确认连接
  • 如果收到的Open报文正确,那么BGP发送Keepalive报文,并转至OpenConfirm状态。
    如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态。

OpenConfirm状态下:BGP等待Keepalive或Notification报文。如果收到Keepalive报 文,则转至Established状态,如果收到Notification报文,则转至Idle状态。

  • 描述:在OpenConfirm状态下,BGP路由器已经收到了来自邻居的Open消息,确认连接已建立。
  • 触发条件:BGP路由器已经收到了邻居的Open消息。
  • 行为:BGP路由器等待Keepalive消息以确认连接的稳定性。

Established状态下:BGP可以和对等体交换Update、Keepalive、Route-refresh报文和 Notification报文。

  • 描述:在建立状态下,BGP邻居之间的连接已经建立并且稳定,可以交换路由信息。
  • 触发条件:BGP路由器已经收到了邻居的Keepalive消息,确认连接的稳定性。
  • 行为:BGP路由器可以开始交换路由信息,并保持连接处于活动状态。
  • 如果收到正确的 Update 或 Keepalive 报文,那么 BGP就认为对端处于正常运行状态,将保持 BGP 连接。 
    如果收到错误的 Update 或 Keepalive 报文,那么 B知对端,GP发送 Notification 报文通并转至 Idle 状态。  
    如果收到 Notification 报文,那么 BGP 转至 Idle 状态。 
    如果收到 TCP 拆链通知,那么 BGP 断开连接,转至 Idle状态

2、影响邻居的因素

1、版本:一般都是 V4,不一致不能建立。 
2、Router-ID:Router-ID 不能一样,否则不可以建立邻居。 
3、AS 号:建立邻居的时候会检测 Open 报文中 AS 号是否与本端配置的邻居 AS 号一致,如果不一致,不能正常建立邻居 
4、认证:BGP 只有 MD5 认证和 keychain 认证; 
MD5 认证:只针对 TCP 进行认证,认证信息放在 TCP报文的 option 字段中。 
keychain 认证:针对 TCP 和 BGP 报文进行认证,认证信息放在 TCP 报文的 option 字段中,同时也放在 BGP 报文中。 
5、peer地址不可达,对端bgp地址不可达。
6、指了邻居没指更新源
7、EBGP邻居关系使用loopback口要配置多跳(直连检测)

3、BGP对等体之间路由的交互原则

  • 从IBGP对等体获得的BGP路由,BGP设备只发布给它的EBGP对等体。(IBGP到IBGP不传)
  • 从EBGP对等体获得的BGP路由,BGP设备发布给它所有EBGP和IBGP对等体。
  • 当存在多条到达同一目的地址的有效路由时,BGP设备只将最优路由发布给对等体。
  • 路由更新时,BGP设备只发送更新的BGP路由。

 

 

 

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

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

相关文章

Redis 源码安装和入门介绍

Linux下的redis源码安装 redis介绍 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如 字符串(strings),…

医疗图像处理2023年CVPR:Label-Free Liver Tumor Segmentation-无标签肝肿瘤分割

目录 一、摘要 二、介绍 三、相关工作 四、网络框架 1.位置选择 2.纹理处理 3.形状生成 4.后处理 5.参数设计 五、实验 1.数据集: 2.评价指标: 3.实现: 4.结果: 六、结论 一、摘要 通过在CT扫描中使用合成肿瘤&am…

秋招算法刷题10(栈和队列)

0509 232.用栈实现队列 class MyQueue {Deque<Integer> inStack;Deque<Integer> outStack;public MyQueue() {inStack new ArrayDeque<Integer>();outStack new ArrayDeque<Integer>();}public void push(int x) {inStack.push(x);}public int pop…

【计算机网络】计算机网络概述、计算机网络性能指标 习题1

0 1. 计算机网络可被理解为( )。 A.执行计算机数据处理的软件模块 B. 由自治的计算机互连起来的集合体 C.多个处理器通过共享内存实现的紧耦合系统 D. 用于共同完成一项任务的分布式系统 0 2.计算机网络最基本的功能是( )。 A.数据通信 B. 资源共享 C. 分布式处理 D. 信息综合…

关于一致性,你该知道的事儿(上)

关于一致性&#xff0c;你该知道的事儿&#xff08;上&#xff09; 前言一、缓存一致性二、内存模型一致性三、事务一致性四、分布式事务一致性4.1 分布式系统的一些挑战4.2 关于副本的一些概念4.3 分布式事务之共识问题4. 3.1 PC(two-phase commit, 2PC)4.3.2 Raft 三、后记参…

[240512] x-cmd 发布 v0.3.6: (se,wkp,ddgo...)x( kimi,gemini,gpt...)

目录 x-cmd 发布 v0.3.6新增了 jina 模块新增了 ddgo 模块新增了 se 模块wkp 模块新增了 writer 模块cosmo 模块 x-cmd 发布 v0.3.6 本次版本的最新引入的功能都是目的为了进一步探索 LLM 的使用。 本版本的改进分为两类&#xff1a;资讯类模块&#xff08;Wikipedia&#xf…

现代制造之Solidworks三维建模篇

现代制造 有现代技术支撑的制造业&#xff0c;即无论是制造还是服务行业&#xff0c;添了现代两个字不过是因为有了现代科学技术的支撑&#xff0c;如发达的通信方式&#xff0c;不断发展的互联网&#xff0c;信息化程度加强了&#xff0c;因此可以为这两个行业增加了不少优势…

【matlab基础知识代码】(十八)无约束最优化问题

min下面的x称为优化向量或者是决策变量 匿名函数法 >> f(x)(x(1)^2-2*x(1))*exp(-x(1)^2-x(2)^2-x(1)*x(2)); x0[0; 0]; [x,b,c,d]fminsearch(f,x0), x 0.6111 -0.3056 b -0.6414 c 1 d 包含以下字段的 struct: iterations: 72 funcCount: 137 algor…

【JavaEE 初阶(五)】文件操作和IO

❣博主主页: 33的博客❣ ▶️文章专栏分类:JavaEE◀️ &#x1f69a;我的代码仓库: 33的代码仓库&#x1f69a; &#x1faf5;&#x1faf5;&#x1faf5;关注我带你了解更多文件操作 目录 1.前言2.认识文件3.文件操作3.1File 属性3.2构造方法3.3File类方法 4.文件内容操作4.1R…

python内置类memoryview()详解

memoryview() Python 的一个内置class&#xff0c;可直接使用。它返回给定参数的“内存视图”对象。内存视图对象是一个对支持缓冲区协议&#xff08;如 bytes 或 bytearray&#xff09;的数据的“窗口”或“视图”&#xff0c;它允许你在不复制数据的情况下操作内存中的数据。…

【机器学习】 技术栈和开发环境搭建

各位大佬好 &#xff0c;这里是阿川的博客 &#xff0c; 祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 博客目录 技术栈编程语言库框架编辑器项目IDE …

数据分析需要注意哪些法律法规

数据分析 前言一、数据处理过程二、数据收集阶段的法律规则数据收集应具备合法、正当、透明原则数据收集应坚持最小必要原则数据收集应遵守知情-同意规则数据收集应遵守目的明确性要求 三、数据储存的法律规则四、数据使用与处理的阶段的法律规则数据安全保护义务按照数据分级分…

Linux:文件IO

Linux&#xff1a;文件IO C语言 文件IOfopen Linux 文件IOopen接口close接口write接口read接口 内存文件管理struct filestruct files_struct文件描述符 fd 缓冲区 C语言 文件IO 在正式讲解Linux中是如何对文件进行IO前&#xff0c;我们先简单回顾以下C语言中&#xff0c;是如…

【牛客】SQL206 获取每个部门中当前员工薪水最高的相关信息

1、描述 有一个员工表dept_emp简况如下&#xff1a; 有一个薪水表salaries简况如下&#xff1a; 获取每个部门中当前员工薪水最高的相关信息&#xff0c;给出dept_no, emp_no以及其对应的salary&#xff0c;按照部门编号dept_no升序排列&#xff0c;以上例子输出如下: 2、题目…

项目1:STM32+DHT11+FreeRTOS+emwin+LCD

第一部分&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;************ 【屏幕显示DHT11数据】 面向对象的思想编写硬件驱动程序&#xff0c;DHT11采集环境中的温湿度数据。使用FreeRTOS提供的任务间通信、同步、互斥&#xff0c;将DHT…

【Linux】AlmaLinux 9.4版本发布

AlmaLinux 9.4 正式版发布&#xff0c;该版本基于 Redhat Enterprise 9.4&#xff0c;内核版本号&#xff1a; 5.14.0-427.13.1.el9_4.x86_64 相对于Rocky Linux&#xff0c; AlmaLinux更加的稳定&#xff0c;生产环境建议使用AlmaLinux来替代CentOS 7.x AlmaLinux 9.4版本系统…

MIPI DPHY HS传输模式SoT和EoT的传输值

目录 1. 高速传输模式的传输序列 2. SoT传输序列 3. EoT传输序列 1. 高速传输模式的传输序列 Mipi DPHY的高速数据传输&#xff08;HST&#xff1a;High Speed Transmission&#xff09;以突发&#xff08;Burst&#xff09;方式发生。 为了帮助接收机同步&#xff1a; (1) …

Python-VBA函数之旅-str函数

目录 一、str函数的常见应用场景 二、str函数使用注意事项 三、如何用好str函数&#xff1f; 1、str函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a; https://myelsa1024.blog.csdn.net/ 一、str函数的常…

Redis-配置文件详解

Redis配置文件详解 units单位 配置大小单位&#xff0c;开头定义基本度量单位&#xff0c;只支持bytes&#xff0c;大小写不敏感。 INCLUDES Redis只有一个配置文件&#xff0c;如果多个人进行开发维护&#xff0c;那么就需要多个这样的配置文件&#xff0c;这时候多个配置 文…

指针(5)加油吧

指针&#xff08;5&#xff09; 拿冒泡排序来举例&#xff1a; 1 .qsort void qsort (void* base,//base指向待排序数组的首元素的指针size_t num,//base指向数组中元素的个数size_t size,//base指向的数组中的一个元素的大小&#xff0c;单位是字节int(*cmp)(const void*,co…