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

一、定义

主要用于交换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消息用来请求对等体重新发送所有的可达路由信息。

该报文不会影响邻居关系

相关推荐
&向上1 小时前
RK3588配置成为路由器
网络·智能路由器·rk3588
枫叶落雨2221 小时前
08-Elasticsearch
运维·jenkins
猫猫的小茶馆1 小时前
【网络编程】UDP协议
linux·服务器·网络·网络协议·ubuntu·udp
十月ooOO1 小时前
小米AX3000T 路由器如何开启 SSH 安装 OpenWRT 系统,不需要降级 v1.0.91 (2025)
网络·ssh·路由器·openwrt
SKYDROID云卓小助手2 小时前
无人设备遥控器之如何分享数传篇
网络·人工智能·算法·计算机视觉·电脑
爆更小小刘2 小时前
Linux下基本指令(4)
linux·运维·服务器
我码玄黄2 小时前
解决本地模拟IP的DHCP冲突问题
linux·运维
若云止水3 小时前
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_os_init 函数
运维·nginx
Self-Discipline3 小时前
Linux arm64 IOMMU总结
linux·运维·服务器
我言秋日胜春朝★3 小时前
【Linux】命名管道------Linux进程间通信的桥梁
linux·运维·服务器