一、协议概述

1. 定义

BGP(Border Gateway Protocol)是互联网中用于自治系统(Autonomous System, AS)之间交换路由信息的核心协议,负责域间路由选择、环路预防和策略控制。

2. 核心功能

  • 路由传播:在AS间传递可达路由信息。

  • 路径选择:通过属性(如 AS_PATH、MED、LOCAL_PREF)计算最优路径。

  • 环路避免:通过AS路径标记和IBGP水平分割机制实现。

  • 策略控制:支持灵活的路由过滤、权重调整等策略。

二、版本演进

版本

发布时间

主要特性

BGP-1

1989 年

早期版本,支持基本 AS 间路由传递。

BGP-2

1990 年

引入 AS 路径属性,增强环路预防。

BGP-3

1991 年

支持 CIDR(无类别域间路由)。

BGP-4

1995 年

现行标准,支持路由聚合、增量更新,成为互联网核心协议。

三、使用场景

可使用BGP的场景

  1. 多ISP接入

  • 用户需通过BGP属性(如 PREFERRED-VALUE、MED)选择最优出口。

  • 示例:企业同时连接电信和联通,通过BGP优先选择成本更低的链路。

  1. AS 路径透明性需求

  • 不同组织需传递完整 AS 路径信息(如金融机构间的合规性要求)。

无需使用BGP的场景

  1. 单一ISP连接

  • 仅需静态路由或缺省路由(如家庭宽带)。

  1. 简化网络架构

  • AS间使用缺省路由(如小型企业与ISP的直连场景)。

四、协议特性

1. 外部网关协议(EGP)

  • 区别于 OSPF/RIP 等内部网关协议(IGP),专注于 AS 间路由。

2. 基于 TCP 的可靠性

  • 使用 TCP179端口建立连接,确保数据可靠传输。

  • 支持 Keepalive 机制维持连接(默认每60秒发送一次)。

3. 无类别域间路由(CIDR)

  • 支持路由聚合(如将 192.168.0.0/24 和 192.168.1.0/24 合并为 192.168.0.0/23)。

4. 环路预防机制

  • 域间环路:通过 AS_PATH 属性记录途经的 AS,本地 AS 号重复则丢弃路由。

  • 域内环路:IBGP 水平分割(从IBGP邻居学到的路由不转发给其他 IBGP 邻居)。

5. 增量更新机制

  • 仅发送路由变化部分,减少带宽消耗(对比RIP的周期性全量更新)。

6. 路由策略灵活性

  • 通过属性(如 AS_PATH、COMMUNITY、ORIGIN)实现精细控制。

  • 示例:为特定前缀设置高优先级,或过滤来自某AS的路由。

7. 抗路由振荡

  • 抑制机制(如惩罚值)避免不稳定路由频繁更新。

8. 扩展性

  • 通过新增属性支持IPv6(MP-BGP)、VPN(BGP/MPLS VPN)等扩展功能。

五、运行方式

1. IBGP(内部BGP)

  • 作用:AS内部同步路由信息。

  • 特点

  • 邻居必须逻辑全连接(或通过路由反射器/联盟简化配置)。

  • 从IBGP邻居学到的路由不转发给其他IBGP邻居(水平分割)。

2. EBGP(外部BGP)

  • 作用:AS 间传递路由。

  • 特点

  • 直接连接或通过EBGP多跳(EBGP Multi-hop)建立邻居。

  • 路由更新携带完整 AS_PATH 属性。

六、协议分类

分类维度

类型

说明

作用范围

外部网关协议(EGP)

处理 AS 间路由(对比IGP处理AS内路由)。

路由算法

路径矢量协议

通过 AS 路径、属性(如 MED)选择路径(对比距离矢量协议仅依赖跳数)。

七、关键术语与属性

1. 基础术语

  • AS:自治系统,由单一机构管理的网络集合(如 AS1234)。

  • 对等体(Peer):BGP邻居,分为IBGP和EBGP对等体。

  • 路由反射器(RR):减少IBGP全连接复杂度,允许RR向其他邻居反射路由。

2. 核心属性

属性名称

类型

作用

AS_PATH

必选过渡

记录路由经过的 AS 列表,用于环路检测和路径选择。

NEXT_HOP

必选过渡

到达目标前缀的下一跳地址。

LOCAL_PREF

可选非过渡

本地优先级(值越高越优),用于 AS 内路径选择。

MED

可选非过渡

多出口鉴别器(值越低越优),影响相邻 AS 的路径选择。

ORIGIN

必选过渡

路由起源类型(如 IGP、EGP、INCOMPLETE)。

COMMUNITY

可选过渡

自定义标签,用于批量策略控制(如标记特定前缀为 “高优先级”)。