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

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.mzph.cn/bicheng/11014.shtml

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

相关文章

代码-功能-Python-运用bs4技术爬取汽车之家新闻信息

第三方库安装指令: pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple pip install BeautifulSoup4 -i https://pypi.tuna.tsinghua.edu.cn/simple 运行代码: #这个代码并不完整,有很大的问题,但目前不知道怎么…

docker八大架构之单机架构

单机架构 什么是单机架构? 单机架构指的是应用服务和数据库服务公用同一台服务器。如下边两个图所示,当我们进行购物时,所有的物品信息和用户信息都是在同一个服务器下进行运行的,之所以称为单机架构就是因为它所有的操作是在同…

【JavaScript】深入了解 JavaScript 函数

序言 在 JavaScript 中,函数是一种强大的工具,它允许我们封装代码、实现逻辑复用,并且在需要时进行调用。本文将深入探讨 JavaScript 函数的各个方面,包括定义函数、函数调用、返回值、作用域、参数以及 ES6 中的箭头函数等内容。…

Vue3+Element+TS动态菜单+按钮权限控制实现探索

1.动态获取权限并根据获取权限转换成相对应的router 根据请求获取菜单数据,对菜单数据进行转换,分别进行下面几步: /*** 组件地址前加斜杠处理*/ export function addSlashToRouteComponent(routeList: AppRouteRecordRaw[]) {routeList.fo…

如何创建族表

https://jingyan.baidu.com/article/c275f6bafa5714a23c756768.html

五角钱的程序员 | Kafka 是什么?

本文来源公众号“五角钱的程序员”,仅用于学术分享,侵权删,干货满满。 原文链接:Kafka 是什么? 你是一个程序员,假设你维护了两个服务 A 和 B。B 服务每秒只能处理 100 个消息,但 A 服务却每秒…

数据结构·一篇搞定栈!

好久不见,超级想念 废话不多说,直接看 引言 在数据结构的大家族中,栈(Stack)是一种非常重要的线性数据结构,它的特点是后进先出(LIFO,Last In First Out)。栈在程序设…

Echarts旭日图的配置项,强大的层级关系展示图表。

ECharts中的旭日图(Sunburst Chart)是一种数据可视化图表,用于展示层级关系数据。它通常用于呈现树状结构或层级结构的数据,例如组织结构、文件目录结构、地理区域层级等。 旭日图通过圆形的方式展示数据的层级结构,每…

【Qt 学习笔记】Qt常用控件 | 布局管理器 | 水平布局Horizontal Layout

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt常用控件 | 布局管理器 | 水平布局Horizontal Layout 文章编号&…

算法day01

1、[283.移动零](https://leetcode.cn/problems/move-zeroes/) 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。 解题思路: 双指针…

Redis——入门简介

Redis,全称为Remote Dictionary Server,即远程字典服务,是一个开源的、内存中的数据结构存储系统。它可以用作数据库、缓存和消息中间件,具备出色的读写性能和丰富的功能特性。以下是对Redis的入门简介: 一、Redis的主…

LVM逻辑卷管理之快照 —— 筑梦之路

简介 LVM快照是LVM提供的一个强大功能,它允许我们在不中断服务的情况下捕获逻辑卷在某个时间点的状态,从而进行备份、恢复或测试等操作。LVM快照是一个特殊的逻辑卷,它保存了原始逻辑卷在某个时间点的数据镜像。快照使用写时复制&#xff08…

IT项目管理-小题计算【太原理工大学】

1.合同总价问题 问承包商的利润是? 实际利润目标利润(目标成本-实际成本)*卖方分担比例 解:10 000(100 000 - 90 000)* 0.2 12 000(元) 实际成本有时也写作最终成本,问承…

Ubuntu 24.04 LTS 安装 touchegg 开启触控板多指手势

文章目录 〇、概述一、安装 touchegg二、安装 gnome-shell 扩展 X11 Gestures三、安装可视化配置工具 touche 〇、概述 之前为了让笔记本支持多指手势,我安装的是 fusuma,安装教程详见 这篇文章 ,考虑到 fusuma 安装过程繁琐且不支持可视化配…

Qt自定义控件--提升为

为什么要自定义控件 1,有复合小控件需要组合为一个整体控件时; 2,一个复合控件需要重复使用时; 实现 自定义控件文件 新增三个文件 关联不同组的控件 关联之前的准备工作 1,在主控件选择和子控件所有控件所在控件…

linux 设备驱动支持多个设备写法

compatible “aaa,bbb” 当一个驱动支持多个设备的时候,在每个设备的dts中,都会配置各自的compatible,当与driver中的compatible匹配后,会取各自的data。在 __of_match_node中有match。 Example1 static const struct of_devi…

Docker与Consul:构建动态服务发现与更新的微服务体系

Docker和Consul是构建微服务体系中常用的工具之一,它们可以协同工作来实现动态服务发现和更新。下面是一个简单的Java微服务体系的示例,使用Docker容器和Consul进行服务的注册、发现和更新。 1. 创建一个简单的Java微服务 首先,我们创建一个…

1.4. 离散时间鞅-鞅的Lp收敛,鞅与停时 (2)

鞅的L^p收敛p > 1,鞅与停时 鞅的L^p收敛(p > 1),鞅与停时2. 极大值不等式2.1. Doob不等式-时间有界2.2. L p L^{p} L

MySQL主从切换测试

测试主从高可用 确认mha正常运行中ps -ef | grep mha #一般在kde-offline3节点 mysql 166898 1 1 17:54 pts/0 00:00:00 perl /bin/masterha_manager --conf=/data/apps/mha4mysql-manager-0.58/app13306.cnf --ignore_last_failover 如果未启动则需要手动执行mha…

数据结构之----栈与队列

栈是限定仅在表尾进行插入和删除操作的线性表; 队列是只允许在一端进行插入操作,而另一端进行删除操作的线性表; 栈,允许插入和删除的一端称为栈顶,另一端称为栈底,特点后进先出。 插入操作称为进栈&#…