计算机网络-BGP状态机制与对等体表项

前面我们讲了BGP交互后需要建立对等体,BGP存在两种对等体关系类型:EBGP及IBGP,那对等体建立过程的状态是怎样的呢?BGP报文我们也学习过了,现在通过结合起来了解下BGP的状态机以及对等体表。

一、BGP状态机

也就是两台路由器间建立的对等体连接状态,当前处于什么状态,有以下几种:

Peer状态名称用途
Idle开始准备TCP的连接并监视远程对等体,启用BGP时,要准备足够的资源
Connect正在进行TCP连接,等待完成中,认证都是在TCP建立期间完成的。如果TCP连接建立失败则进入Active状态,反复尝试连接
ActiveTCP连接没建立成功,反复尝试TCP连接
OpenSentTCP连接已经建立成功,开始发送Open包,Open包携带参数协商对等体的建立
OpenConfirm参数、能力特性协商成功,自己发送Keepalive包,等待对方的Keepalive包
Established已经收到对方的Keepalive包,双方能力特性经协商发现一致,开始使用Update通告路由信息

二、对等体建立过程

2.1 Idle状态

Idle状态是BGP初始状态。在Idle状态下,BGP拒绝对等体发送的连接请求。只有在收到本设备的Start事件后,BGP才开始尝试和其它BGP对等体进行TCP连接,并转至Connect状态。

Start事件是由一个操作者配置一个BGP过程,或者重置一个已经存在的过程或者路由器软件重置BGP过程引起的。

任何状态中收到Notification报文或TCP拆链通知等Error事件后,BGP都会转至Idle状态。

Idle状态
Idle状态

简单说就是默认状态处于Idle,或者链路故障、协商失败等回退回到初始Idle状态。

2.2 Connect、Active状态

配置完BGP对等体并成功查找到去往对等体地址的路由之后,会发起TCP三次握手,TCP三次握手建立过程中处于Connect状态,如果TCP连接长期无法建立则进入Active状态。

Connect、Active状态
Connect、Active状态

在Connect状态下,BGP启动连接重传定时器(Connect Retry),等待TCP完成连接。

  • 如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态。
  • 如果TCP连接失败,那么BGP转至Active状态。
  • 如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么BGP继续尝试和其它BGP对等体进行TCP连接,停留在Connect状态。

在Active状态下,BGP总是在试图建立TCP连接。

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

Connect状态是建立TCP连接的阶段,如果TCP建立成功则进入OpenSent状态,如果失败会出现尝试进入Active状态。

2.3 OpenSent、OpenConfirm状态

顾名思义这是TCP建立成功,然后发送OPEN报文互相确认的阶段。 OPEN报文发送与确认阶段

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

  • 如果收到的Open报文正确,那么BGP发送Keepalive报文,并转至OpenConfirm状态。
  • 如果发现收到的Open报文有错误,那么BGP发送Notification报文给对等体,并转至Idle状态。

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

Connect状态连接成功后进入OpenSent状态,发送OPEN报文并等待对方OPEN报文无误进入OpenConfirm状态。

2.4 Established状态

进入Open Confirm状态之后,BGP路由器如果收到了对端发送的Keeaplive报文,则进入Established状态,对等体关系建立过程就此完成。

Established状态
Established状态

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

  • 如果收到正确的Update或Keepalive报文,那么BGP就认为对端处于正常运行状态,将保持BGP连接。
  • 如果收到错误的Update或Keepalive报文,那么BGP发送Notification报文通知对端,并转至Idle状态。
  • Route-refresh报文不会改变BGP状态。
  • 如果收到Notification报文,那么BGP转至Idle状态。
  • 如果收到TCP拆链通知,那么BGP断开连接,转至Idle状态。

前面我们学习BGP报文了解了Keepalive报文默认60s周期发送来保持BGP连接。

BGP状态机过程: BGP状态机

如果网络连接正常、OPEN参数、Keepalive协商正常经历的状态为: Idle状态 - Connect状态 - OpenSent状态 - OpenConfirm状态 - Established状态

一般如果有连接问题会在处于Active状态进行重新连接。建议排查网络连接是否能够ping通,OPEN报文协商的Hold time时间和Keepalive时间是否一致等问题。

三、BGP对等体表项

在设备上通过display bgp peer命令查看BGP对等体表,这里会显示自身的ID、AS号、全部对等体数量以及当前建立成功的对等体,具体对等体信息中主要参数含义:

  • Peer:对等体地址
  • V:version,版本号
  • AS:对等体AS号
  • Up/Down:该对等体已经存在up或者down的时间
  • State:对等体状态,这里显示的为BGP状态机的状态
  • PrefRcv:prefix received,从该对等体收到的路由前缀数目
<AR1>display bgp peer 

 BGP local router ID : 1.1.1.1
 Local AS number : 100
 Total number of peers : 1		  Peers in established state : 1

  Peer            V          AS  MsgRcvd  MsgSent  OutQ  Up/Down       State PrefRcv

  10.1.12.2       4         200        6        8     0 00:04:45 Established    0

如果想要查看指定对等体的具体协商参数可以通过display bgp peer 10.1.12.2 verbose命令查看。

[AR1-bgp]display bgp peer 10.1.12.2 verbose

	BGP Peer is 10.1.12.2,  remote AS 200  
	Type: EBGP link         # 对等体类型
	BGP version 4, Remote router ID 2.2.2.2  # 对等体Router-ID
	Update-group ID: 1  
	BGP current state: Established, Up for 00h09m48s 
	BGP current event: RecvKeepalive
	BGP last state: OpenConfirm
	BGP Peer Up count: 1
	Received total routes: 0
	Received active routes total: 0
	Advertised total routes: 1
	Port:  Local - 179	Remote - 51130     # TCP端口连接信息
	Configured: Connect-retry Time: 32 sec # Connect连接重传时间 
	Configured: Active Hold Time: 180 sec	Keepalive Time:60 sec # Hold time和Keepalive时间
	Received  : Active Hold Time: 180 sec
	Negotiated: Active Hold Time: 180 sec	Keepalive Time:60 sec
	Peer optional capabilities:
	Peer supports bgp multi-protocol extension
	Peer supports bgp route refresh capability
	Peer supports bgp 4-byte-as capability
	Address family IPv4 Unicast: advertised and received
 Received: Total 11 messages  # 接收和发送的5种报文数量统计
		 Update messages 		0 
		 Open messages 			1 
		 KeepAlive messages 		10 
		 Notification messages  	0 
		 Refresh messages 		0
 Sent: Total 13 messages
		 Update messages 		1 
		 Open messages 			2 
		 KeepAlive messages 		10 
		 Notification messages  	0 
		 Refresh messages 		0
 Authentication type configured: None  # 报文更新时间
 Last keepalive received: 2024/05/28 11:21:20 UTC-08:00    
 Last keepalive sent    : 2024/05/28 11:21:19 UTC-08:00    
 Last update    sent    : 2024/05/28 11:12:19 UTC-08:00    
 Minimum route advertisement interval is 30 seconds
 Optional capabilities:  # 对等体使能的功能如4字节AS号、接收的路由条目数量等
 Route refresh capability has been enabled
 4-byte-as capability has been enabled
 Peer Preferred Value: 0
 Routing policy configured:
 No routing policy is configured

总结:了解了BGP对等体建立过程的状态变化,BGP状态机制。学习通过display bgp peerdisplay bgp peer x.x.x.x verbose命令查看对等体简要和详细信息。

如果对文章感兴趣欢迎微信搜索公众号:不喜欢热闹的孩子 不喜欢热闹的孩子

本文由 mdnice 多平台发布

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

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

相关文章

什么是网络流量监控系统?

目录 什么是网络流量监控系统&#xff1f; 网络流量监控系统的功能 实时监控 流量分析 故障排除 安全监控 IT运维中的网络流量监控系统应用案例 案例一&#xff1a;优化带宽使用 案例二&#xff1a;快速排除故障 案例三&#xff1a;提升网络安全 网络流量监控系统的…

实战经验分享之移动云快速部署Stable Diffusion SDXL 1.0

本文目录 前言产品优势部署环境准备模型安装测试运行 前言 移动云是中国移动面向政府、企业和公众的新型资源服务。 客户以购买服务的方式&#xff0c;通过网络快速获取虚 拟计算机、存储、网络等基础设施服务&#xff1b;软件开发工具、运行环境、数据库等平台服务&#xff1…

CATIA入门操作案例——压缩弹簧绘制,螺旋线的使用,法则曲线应用

目录 引出画压缩弹簧画等距部分画两端的压缩部分曲线缝合和扫掠封闭曲面得实体 总结异形弹簧新建几何体草图编辑&#xff0c;画一条样条线进行扫掠&#xff0c;圆心和半径画出曲面上的螺旋线再次选择扫掠&#xff0c;圆心和半径 其他自定义信号和槽1.自定义信号2.自定义槽3.建立…

【ETAS CP AUTOSAR基础软件】EcuM模块详解

文章包含了AUTOSAR基础软件&#xff08;BSW&#xff09;中EcuM模块相关的内容详解。本文从AUTOSAR规范解析&#xff0c;ISOLAR-AB配置以及模块相关代码分析三个维度来帮读者清晰的认识和了解EcuM。文中涉及的SOLAR-AB配置以及模块相关代码都是依托于ETAS提供的工具链来配置与生…

迷你主机Esxi 6.7挂载新硬盘

背景 硬件&#xff1a;零刻SER Pro 6 系统&#xff1a;vmware Exsi 6.7.0 Update 3 现有的硬盘槽位占满了&#xff0c;但空间不够用&#xff0c;想要通过USB外接移动硬盘来进行扩容。使用了一块250G的硬盘做测试。 步骤 TL;DR # 停止usbarbitrator服务 /etc/init.d/usbarbi…

django中,出现CSRF verification failed. Request aborted.错误

这是跨站点访问的防范机制&#xff0c;csrf是一个令牌&#xff0c;会验证登录&#xff0c;需要在setting中把 "django.middleware.csrViewMiddleware" 注释掉 并在html文件中的<body>内添加 {% csrf token %} 就可以了

③单细胞学习-pbmc的Seurat 流程

目录 1&#xff0c;数据读取 2&#xff0c;线粒体基因查看 3&#xff0c;数据标准化 4&#xff0c;识别高变基因 5&#xff0c;进行数据归一化 6&#xff0c;进行线性降维 7&#xff0c;确定细胞簇 8&#xff0c;UMAP/tSNE降维&#xff08;保存pbmc_tutorial.rds&#…

路由选路原则

5.2路由选路原则 路由就是报文从源端到目的端的路径。当报文从路由器到目的网段有多条路由可达时&#xff0c;路由器可以根据路由表中最佳路由进行转发。最佳路由的选取与发现此路由的路由协议的优先级、路由的度量有关。当多条路由的协议优先级与路由度量都相同时&#xff0c…

elasticsearch7.15实现用户输入自动补全

Elasticsearch Completion Suggester&#xff08;补全建议&#xff09; Elasticsearch7.15安装 官方文档 补全建议器提供了根据输入自动补全/搜索的功能。这是一个导航功能&#xff0c;引导用户在输入时找到相关结果&#xff0c;提高搜索精度。 理想情况下&#xff0c;自动补…

chap5 CNN

卷积神经网络&#xff08;CNN&#xff09; 问题描述&#xff1a; 利用卷积神经网络&#xff0c;实现对MNIST数据集的分类问题 数据集&#xff1a; MNIST数据集包括60000张训练图片和10000张测试图片。图片样本的数量已经足够训练一个很复杂的模型&#xff08;例如 CNN的深层…

【课程总结】Day4:信息论和决策树算法

前言 本章内容主要是学习机器学习中的一个重要模型&#xff1a;决策树&#xff0c;围绕决策树的应用&#xff0c;我们展开了解到&#xff1a;熵的定义、熵的计算、决策树的构建过程(基于快速降熵)、基尼系数等&#xff0c;从而使得我们对决策树有了直观认识。 熵的介绍 因为…

U盘损坏打不开?数据恢复攻略全解析

随着信息技术的飞速发展&#xff0c;U盘已成为我们日常工作和生活中不可或缺的数据存储工具。然而&#xff0c;当U盘突然损坏&#xff0c;无法打开时&#xff0c;我们往往会陷入焦虑和无助之中。本文将为大家详细解析U盘损坏打不开的原因&#xff0c;并提供两种有效的数据恢复方…

【stm32】stm32f407 ch340下载

一、接线 1、ch340 Vcc短接3v3 5v---------5v GND-----GND TX ------RX RX --------TX 2、stm32F407 如上图&#xff0c;我们需要进入isp下载模式&#xff0c;接线图如下 二、下载 使用FlyMcu选择你要下载的程序文件中的.hex文件&#xff0c; 然后配置图如下&#xff1…

5月安全月报 | 钓鱼事件频发,OKLink带你开启“防钓”模式

本月全网安全事件所造成的损失环比上升 27.27%&#xff0c;钓鱼与诈骗事件占比 60% 以上。 安全意识是您保护数字资产的第一道防线&#xff0c;OKLink 提供 40 头部区块链浏览器与一站式查询入口以及地址监控、代币授权查询和地址健康度等工具&#xff0c;为您的资产安全保驾护…

使用CS抓取WIN2012明文密码

目录 实验概述&#xff1a; 开始实验&#xff1a; 实验准备&#xff1a; 打开CS&#xff1a; 生成木马控制wind2012&#xff1a; 抓取明文密码&#xff1a; 实验概述&#xff1a; win2012及win10版本是不允许将明文密码储存在内存中的&#xff0c;此时我们…

大量path计算优化方案

1.影响path基础属性数据做key缓存&#xff0c;缓存的path应去除坐标变换&#xff0c;归一化。基础属性应满足CAB, BC-A 2.高频path操作以&#xff08;keykey操作&#xff09;做新key缓存。 3.高频修改高级属性&#xff0c;以新key属性变更做新key缓存。 4.key与id做中转映射&am…

【每日刷题】Day52

【每日刷题】Day52 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 2965. 找出缺失和重复的数字 - 力扣&#xff08;LeetCode&#xff09; 2. 350. 两个数组的交集 II …

C# FTP/SFTP 详解及连接 FTP/SFTP 方式示例汇总

文章目录 1、FTP/SFTP基础知识FTPSFTP 2、FTP连接示例3、SFTP连接示例4、总结 在软件开发中&#xff0c;文件传输是一个常见的需求。尤其是在不同的服务器之间传输文件时&#xff0c;FTP&#xff08;文件传输协议&#xff09;和SFTP&#xff08;安全文件传输协议&#xff09;成…

dolphinscheduler docker部署海豚mysql版本,docker重新封装正在运行服务为镜像

1.官方文档&#xff1a; https://dolphinscheduler.apache.org/zh-cn/docs/3.2.1/guide/installation/standalone#%E9%85%8D%E7%BD%AE%E6%95%B0%E6%8D%AE%E5%BA%93 2.github: dolphinscheduler/docs/docs/zh/guide/howto/datasource-setting.md at 3.2.1-release apache/do…

【R基础】如何开始学习R-从下载R及Rstudio开始

文章目录 概要下载R流程下载Rstudio流程下载完成-打开 概要 提示&#xff1a;如何开始学习R-从下载R及Rstudio开始&#xff0c;此处我只是想下载指定版本R4.3.3 下载R流程 链接: R官网 文件下载到本地 下载文件展示 按照向导指示安装 下载Rstudio流程 链接: Rstudio官网…