BGP边界网关协议(Border Gateway Protocol)概念、邻居建立

server/2025/1/18 8:44:54/

一、定义

        主要用于交换AS之间的可达路由信息,构建AS域间的传播路径,防止路由环路的产生,并在AS级别应用一些路由策略。当前使用的版本是BGP-4。

二、环境

        底层以OSPF进行igp互联互通,上层使用BGP协议。

三、基本原理

1、BGP是一种外部网关协议,主要作用于AS之间的路由传递及控制路由传播,BGP本身不产生路由,发现和计算的路由的工作由底层的IBGP承载。

2、BGP是可靠的,基于TCP179端口建立安全可靠的TCP连接,保证了BGP的稳定性,源端口人地,目的端口为179。

3、BGP的路由更新为增量更新,UPdata报文之包含需要更新的路由信息,不是全量更新,更加节省资源,适用于互联网之间的大量路由信息传递(全球大概齐九十多万条路由信息)

4、BGP是一种距离矢量协议

5、BGP本身具备防环功能,IGP之间通过水平分割来防环,EGP之间通过携带的as-path号来防环。

6、BGP具有丰富的选路(十二条属性)可以主观的进行路由的选路涉及

7、BGP本身提供了防止路由震荡的机制(Connect计时器),一定程度上提高了互联网的稳定性

8、BGP易于扩展,能够适应网络的扩展需求(路由反射器)

9、BGP的运行方式

        IBGP:运行于AS内部的联系

        EBGP:运行于AS之间的域间关系

四、EBGP邻居建立

1、配置

2、直连路由建立邻居

参考上图的AR1和AR2的配置

1)通过直连接口建立EBGP邻居关系

        优点:简单、便捷

        缺点:单点故障、无冗余备份链路

2)前文提过bgp建立依托于tcp179的连接,peer的意义在于向peer地址发起tcp连接,只允许peer地址之间建立tcp连接。(后文附报文分析)

3)route-id要唯一

3、逻辑接口建立邻居

参考上图的AR1和AR3的配置,该方式依托于底层的igp路由可达(以loopback口为例)

1)通过逻辑接口建立EBGP邻居关系

        优点:消除了单点故障

        缺点:配置较复杂

2)前文提过bgp建立依托于tcp179的连接,peer的意义在于向peer地址发起tcp连接,只允许peer地址之间建立tcp连接。(后文附报文分析)

3)配置时需指定出接口,否则无法建立tcp连接

4)因为ebg的ttl值为1,非直连建立邻居时,需配置ttl多跳来达到需求

5)route-id要唯一

4、源检测

        在构建EBGP邻居是,不仅存在直连检测(ttl=1),还存在一个源检测(可取消)

5、直连检测解决方式

        1)ebgp-max-hop:EBGP连接最大跳数(默认255)

        2)valid-ttl-hops:GTSM功能”指定需要检测的TTL跳数值。如果配置为hops,则被检测的报文的TTL值有效范围为[255–hops+1,255]。

五、IBGP邻居建立

具体内容基本同EBGP一致,不详细解读,看配置按需理解

六、邻居关系

常见的邻居状态为idel、active、Established

1、空闲(Idle)

        空闲状态、初始状态、报错回退

2、连接(Connect)

        BGP对等体之间建立tcp连接,转到该状态,启动重传定时器

        1)TCP建立成功,进入下一状态

        2)TCP建立失败,进入active状态

        3)重传定时器超时,仍然没有收到对等体相应,继续等待维持当前状态

3、活跃(Active)

        1)TCP连接成功,进入下一状态,并发送open报文

        2)TCP建立失败,停留该状态

        3)定时器超时,回到上一状态

4、Open报文已发送(OpenSent)

        1)open报文字段正确,进入下一状态,并发送keeplive报文

        2)open报文字段错误,发送Notification报文给对等体,并转至Idle状态。

5、Open报文已确认(OpenConfirm)

        1)收到keeplive报文进入下一状态

        2)收到Notification报文回到idle状态

6、建立(Established)

        1)收到正确的update、keeplive报文保持邻居关系

        2)收到错误的update、keeplive报文回到idle状态

        3)Route-refresh报文,路由重刷,不会影响邻居关系

        4)TCP连接断开,回到idle状态

七、报文分析

1、TCP179

        tcp三次握手建立连接,对等体之间都会发送tcp连接,谁先建立用谁的,也就是对等体之间只维护一条tcp连接。部分设备不会主动发送tcp连接,现网使用时应明确特性。

2、Open报文

        该报文检测my as、peer的number等信息是否一致(当前是EGP的报文,不一致是正常现象)

3、Keepalive报文

        周期性的向对等体发出Keepalive消息,用来保持连接的有效性。又叫保活报文

4、Update报文

        用于对等体之间的路由交互,可以发布路由,也可以撤销路由

        报文内部可以携带需要更新的增量路由信息,也可以同时携带不可达或老化的路由

5、Notification报文

        BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP连接会立即中断

6、Route-refresh报文

        Route-refresh消息用来请求对等体重新发送所有的可达路由信息。

        该报文不会影响邻居关系


http://www.ppmy.cn/server/159309.html

相关文章

unity学习16:unity里向量的计算,一些方法等

目录 1 unity里的向量: 2 向量加法 2.1 向量加法的几何意义 2.2向量加法的标量算法 3 向量减法 3.1 向量减法的几何意义 3.2 向量减法的标量算法 4 向量的标量乘法 5 向量之间的乘法要注意是左乘 还是右乘 5.1 注意区别 5.2 向量,矩阵&#x…

Unity3D BEPUphysicsint定点数3D物理引擎使用详解

前言 Unity3D作为一款强大的游戏开发引擎,提供了丰富的功能和工具,助力开发者轻松创建多样化的游戏。而在游戏开发中,物理引擎的作用不可忽视。BEPUphysicsint是一个基于Unity3D的开源3D物理引擎项目,它通过采用定点数计算来实现…

Oracle报错ORA-01078、LRM-00109

虚拟机异常关机后,rac数据库备机无法启动数据库,报错如下 解决方法: 找到如下路径文件 执行: cp init.ora.016202516818 /u01/app/oracle/product/19.3.0/db/dbs/ mv init.ora.016202516818 initplm2.ora 再次进入命令行sqlpl…

【深度学习】用RML2018训练好模型去识别RML2016的数据会遇到输入维度不匹配的问题,如何解决?

文章目录 问题解决办法1. 调整输入数据长度2. 修改模型结构(我个人比较推崇的方法)3. 迁移学习4. 重新训练模型5. 数据增强6. 其他差异问题 经常会有人问的一个问题: 我用RML2018跑的调制识别模型,用RML2016数据集能直接识别吗?(2018数据集信号样本的长度是1024,2016数据集…

常用的UI自动化测试框架是哪些?有什么优缺点?如何选择?

以下是对几种常用UI自动化测试框架(Selenium、Appium、Cypress)的优缺点分析及选择建议: 测试框架优点缺点示例语言Selenium跨浏览器兼容,多语言支持,社区资源丰富,成熟度高速度慢,需外部驱动&…

HarmonyOS Next 实现登录注册页面(ARKTS) 并使用Springboot作为后端提供接口

1. HarmonyOS next ArkTS ArkTS围绕应用开发在 TypeScript (简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集 ArkTS在TS的基础上扩展了struct和很多的装饰器以达到描述UI和状态管理的目的 以下代码是一个基于…

Windows 下 Postgres 安装与卸载 TimescaleDB 插件

Windows 下 Postgres 安装与卸载 TimescaleDB 插件 一、准备工作 安装 PostgreSQL:首先确保你已经在 Windows 系统中成功安装了 PostgreSQL 数据库。可以从 PostgreSQL 官方网站下载适合你系统的安装包,并按照安装向导进行安装。安装过程中&#xff0c…

phpstudy靶场搭建问题

前言: 靶场搭建遇到的问题,记录一下,可能是基础不牢吧,老是遇到奇奇怪怪的问题 思路: 跟着网上的搭建走一遍 内容: 目录 搭建pikachu遇到的问题 搭建pikachu遇到的问题 其实并不是第一次搭建&#x…