BGP协议深度解析:从背景到术语的全面梳理
BGP协议深度解析:从背景到术语的全面梳理
在复杂的网络架构中,不同自治系统(AS)之间的路由交互至关重要。BGP(边界网关协议)作为自治系统间的动态路由协议,承担着跨 AS 路由传递的关键任务。本文将深入探讨 BGP 的产生背景、协议特性以及基本术语,帮助读者全面理解这一重要的网络协议。
1、BGP 产生背景
BGP 是一种用于自治系统间的动态路由协议,属于外部网关协议。
1.1、自治系统 AS
1.1.1、定义
一组由同一个管理机构进行管理,对外呈现统一选路策略的路由器的集合。
1.1.2、自治系统编号:
2 字节 AS 编号:取值范围为 0 - 65535,其中 0 和 65535 保留。
公有 AS:1 - 64511。
私有 AS:64512 - 65535。
4 字节 AS 编号:拥有 2 的 32 次方的编号数量,满足更多的编号需求。
2、路由协议的分类
IGP(内部网关协议):包括 RIP、OSPF、IS - IS 等,主要用于自治系统内部的路由计算与传递。
EGP(外部网关协议):BGP 是目前广泛使用的外部网关协议,专注于自治系统间的路由处理。
3、BGP 协议特性
3.1、跨 AS 路由传递
BGP 只负责把路由从一个 AS 传到另一个 AS,从其他 AS 传递过来的路由在本 AS 内部的扩散依靠 IGP。
3.2、路径矢量协议特性
一跳代表一个自治系统。
当一条路由传入某个 AS,该路由的下一跳会变为上个 AS 的出接口的 IP 地址;
当一条路由在某个 AS 内部的路由器之间传递时,下一跳不变。
3.3、AS 防环机制
作为路径矢量路由协议,从设计上避免了环路的发生。
当一条路由每从一个 AS 传出,会把该 AS 的编号按照从右至左的顺序依次记录在AS_PATH属性中。
一个路由器从其他 AS 收到一条路由通告,会检查本路由器的 AS 标号是否出现在该路由条目的 AS_PATH 属性中,如果出现了则该条目不学习。
例如:一条路由从 AS 200 中的 R3 传出,其 AS_PATH = (300, 400, 500, 100, 200),当这条路由回传给 AS200 时,R4 会检查 AS_PATH,发现重复路径则不接收。
3.4、基于 TCP 传输
BGP 基于 TCP 协议传输,端口号为179,必须手动配置邻居。
3.5、路由更新机制
BGP 第一次发送完整的路由表,后续只发送增量更新,减少网络传输负担。
3.6、丰富的路由控制属性
BGP 有多种属性可以控制路由选择,这也是 BGP 的难点所在。
3.7、对 CIDR 和路由聚合的支持
支持 CIDR(无类别域间路由)和路由聚合,有效优化路由表。
3.8、路由过滤和策略
具备路由过滤和路由策略功能,实现更精细的路由控制。
4、BGP 基本术语
4.1、BGP Speaker 与 BGP Peer:
BGP Speaker:
运行 BGP 协议的路由器称为 BGP 发言者。
BGP Peer:
相互之间存在 TCP 连接、相互交换路由信息的 BGP 发言者之间互称为 BGP 对等体。
4.2、BGP 对等体类型:
4.2.1、EBGP 对等体
跨 AS 之间的邻居,一般情况下 EBGP 对等体是物理上直连的。
BGP 发言者从 EBGP 对等体获得的路由会向它所有 BGP 对等体通告(包括 EBGP 和 IBGP)。
4.2.2、IBGP 对等体
同一个 AS 内部的邻居。
4.2.3、BGP 邻居非直连的情况
在实际网络中,可能存在 BGP 邻居非直连的场景。
此时需要思考三个问题:
(1)哪些路由器需要跑 BGP( R2、R3、R5、R6 )?
(2)以及这些路由器之间邻居关系如何建立( R2、R3、R5、R6 )?
(3)还有像 R3 - R4 之间,R6 - R7 之间路由如何传递等问题?
本文原文来自CSDN