BGP(Border Gateway Protocol,边界网关协议)是互联网的核心路由协议,用于在不同自治系统(AS)之间交换路由信息。以下是BGP的关键特性和工作原理:
1. 基本概念
-
自治系统(AS):由单一组织管理的网络单元(如ISP、大型企业),每个AS有唯一编号(ASN)。
-
路径向量协议:BGP通过路径(AS路径)而非度量值选择最佳路由,避免环路。
-
TCP连接:使用TCP端口179,确保可靠传输。
2. BGP的类型
-
eBGP(外部BGP):不同AS之间的路由交换(如ISP间互联)。
-
iBGP(内部BGP):同一AS内部的路由同步,保持AS内节点路由一致性。
3. 工作流程
-
建立邻居(Peering):通过手动配置建立BGP对等体(Peer),交换路由信息。
-
路由通告(Advertisement):通告可达的IP前缀及路径属性(如AS路径、下一跳等)。
-
路由选择:基于属性(如最短AS路径、本地优先级等)选择最优路由。
-
路由表生成:将最优路由注入全局路由表。
4. 关键属性
-
AS_PATH:记录路由经过的AS序列,用于防环和路径选择。
-
NEXT_HOP:指示数据包的下一跳IP地址。
-
LOCAL_PREF(本地优先级):iBGP中用于偏好某出口路径(值越高越优先)。
-
MED(Multi-Exit Discriminator):向邻居AS建议入口路径优先级。
-
ORIGIN:标记路由来源(IGP/EGP/Incomplete)。
5. 路由决策流程
BGP按顺序比较以下属性(直到选出最优路由):
-
最高权重(Cisco私有属性)。
-
最高LOCAL_PREF。
-
本地发起的路由(如聚合或手动配置)。
-
最短AS_PATH。
-
最低ORIGIN类型(IGP < EGP < Incomplete)。
-
最低MED。
-
优选eBGP而非iBGP路由。
-
最短IGP路径(到NEXT_HOP)。
-
最旧的路由(稳定性优先)。
-
最低路由器ID或对等体IP。
6. 特点
-
增量更新:仅传播变化的路由,减少开销。
-
策略驱动:支持基于策略的路由控制(如过滤、偏好设置)。
-
收敛慢:为防止路由震荡,默认抑制频繁更新的路由。
7. 应用场景
-
多宿主(Multihoming):企业通过多个ISP连接互联网,实现冗余。
-
IXP(互联网交换点):ISP通过BGP在交换点对等互联。
-
流量工程:调整属性(如MED、LOCAL_PREF)引导流量路径。
8. 安全性考虑
-
前缀劫持防护:通过RPKI(资源公钥基础设施)验证路由合法性。
-
邻居认证:MD5或TCP-AO防止未授权对等体接入。
-
前缀过滤:限制可接受的路由范围(如仅允许客户IP空间)。
9. 版本
-
BGP-4(RFC 4271):当前主流版本,支持CIDR和路由聚合。
-
MP-BGP:扩展支持多协议(如IPv6、VPN)。
BGP的灵活性和策略控制能力使其成为互联网的“粘合剂”,但其复杂性也要求谨慎配置(如避免路由泄漏)。实际部署中常结合监控工具(如BGP Looking Glass)确保稳定性。