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

news/2025/1/19 10:31:10/

一、定义

        主要用于交换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/news/1564383.html

相关文章

MySql操作指南5--事务与并发控制

数据库事务是保障数据一致性和可靠性的重要手段,并发控制则在多用户环境下确保数据的正确性。风云今天详细探讨数据库事务的管理、并发访问的最佳实践,乐观锁与悲观锁的应用,以及Golang 中的事务实现、并发访问的最佳实践,通过合理…

学英语学技术:Elasticsearch 线程池

单词 汉语意思 音标 allocate 分配 /ˈləˌkeɪt/ coordination 协调 /koʊˌɔːrdɪˈneɪʃn/ deprecated 废弃的 /ˈdɛprəˌkeɪtɪd/ elasticsearch 弹性搜索(专有名词) /ˌɛlɪkˈsɜːrtʃ/ execute 执行 /ˈɛksɪˌkjuːt…

C 语言的void*到底是什么?

一、void* 的类型任意性 void* 是一种通用指针类型。它可以指向任意类型的数据。例如,它可以指向一个整数(int)、一个浮点数(float)、一个字符(char)或者一个结构体等。在C语言中,当…

电脑换固态硬盘

参考: https://baijiahao.baidu.com/s?id1724377623311611247 一、根据尺寸和缺口可以分为以下几种: 1、M.2 NVME协议的固态 大部分笔记本是22x42MM和22x80MM nvme固态。 在京东直接搜: M.2 2242 M.2 2280 2、msata接口固态 3、NGFF M.…

Word中如何格式化与网页和 HTML 内容相关的元素

在 Microsoft Word 中,HTML变量、HTML打字机、HTML地址、HTML定义、HTML键盘、HTML缩写、HTML样本、HTML引文 等样式是针对在文档中处理与 HTML 相关内容时,方便格式化特定类型的文本元素。以下是每个样式的详细说明及其使用场景: 1. HTML 变…

“提升大语言模型推理与规划能力的策略:思维链提示与由少至多提示”

思维链提示(Chain-of-Thought Prompting)和由少至多提示(Least-to-Most Prompting)是两种提升大语言模型在推理和规划任务上表现的有效方法。下面详细介绍这两种方法的原理和应用: 思维链提示(Chain-of-Th…

模板 进阶

博客ID:LanFuRen C系列专栏:C语言重点部分 C语言注意点 C基础 Linux 数据结构 C注意点 今日好题 声明等级:黑色->蓝色->红色 欢迎新粉加入,会一直努力提供更优质的编程博客,希望大家三连支持一下啦 目录 1…

MES设备日志采集工具

永久免费: <下载> <使用说明> 用途 定时全量或增量采集工控机,电脑文件或日志. 优势 开箱即用: 解压直接运行.不需额外下载.管理设备: 后台统一管理客户端.无人值守: 客户端自启动,自更新.稳定安全: 架构简单,兼容性好,通过授权控制访问. 架构 技术架构: Asp…