BGP知识点总结
一、BGP 基本概念
BGP(Border Gateway Protocol,边界网关协议)是一种外部网关协议(EGP),主要用于在不同自治系统(AS)之间交换路由信息。与 OSPF、RIP 等内部网关协议(IGP)不同,BGP 更注重路由的可达性和策略控制,而非快速收敛或最小跳数。
核心特点:
- 路径矢量协议:通过携带 AS 路径(AS Path)等属性判断路由优劣,避免环路。
- 无类别路由协议:支持 CIDR(无类别域间路由),传递路由时携带子网掩码。
- TCP 传输:使用 TCP 端口 179 建立邻居关系,保证数据传输的可靠性。
- 增量更新:仅在路由信息变化时发送更新,减少带宽占用。
二、BGP 工作原理
1. 邻居关系建立
BGP 邻居(Peer)需手动配置,分为两种类型:
- IBGP(内部 BGP):同一 AS 内的 BGP 路由器之间的邻居关系,要求逻辑上直连(通常通过 IGP 保证可达)。
- EBGP(外部 BGP):不同 AS 之间的 BGP 路由器之间的邻居关系,通常为物理直连。
建立过程:
- 发送 TCP 连接请求,建立三次握手。
- 交换 OPEN 消息,协商 BGP 版本、AS 号、保持时间等参数。
- 发送 KEEPALIVE 消息确认邻居关系,进入 Established 状态。
2. 路由传递与选路
BGP 通过 UPDATE 消息传递路由条目,包含网络层可达信息(NLRI) 和路径属性(PA)。选路时按优先级评估路径属性,核心属性包括:
- Weight(权重):Cisco 私有属性,本地有效,值越大越优先。
- Local Preference(本地优先级):IBGP 内传递,值越大越优先,默认 100。
- Origin(起源):标记路由来源,优先级:IGP(i)> EGP(e)> Incomplete(?)。
- AS Path(AS 路径):记录路由经过的 AS 号,长度越短越优先,同时用于防环。
- Next Hop(下一跳):指示到达目标网络的下一跳地址。
- MED(多出口鉴别器):向 EBGP 邻居传递,值越小越优先,默认不传递。
三、BGP 消息类型
BGP 共定义 4 种消息类型,均通过 TCP 传输:
- OPEN:建立邻居关系时交换,包含版本、AS 号、路由器 ID 等关键信息。
- KEEPALIVE:维护邻居关系,周期为保持时间的 1/3(默认 60 秒发送一次,保持时间 180 秒)。
- UPDATE:传递路由信息,可包含可达路由(NLRI)和不可达路由(撤销路由)。
- NOTIFICATION:当检测到错误时发送,如版本不匹配、AS 号错误等,发送后断开邻居关系。
四、BGP 防环机制
BGP 通过多层机制防止路由环路:
- EBGP 防环:接收路由时检查 AS Path,若包含本地 AS 号则丢弃。
- IBGP 防环:默认不将从 IBGP 邻居学到的路由传递给其他 IBGP 邻居(需通过路由反射器或联邦解决)。
五、常见应用场景
- ISP 之间路由交换:互联网骨干网依赖 BGP 连接不同 AS,实现全球路由互通。
- 企业多出口选路:通过 BGP 与多个 ISP 建立连接,利用本地优先级、MED 等属性控制出 / 入站流量。
- 路由过滤与策略:通过路由映射(Route-map)、前缀列表(Prefix-list)等工具过滤路由或修改属性,满足业务需求。
六、实战配置要点
- 基本配置步骤:
- 启用 BGP 进程,指定本地 AS 号。
- 配置邻居 IP 及远程 AS 号(IBGP/EBGP)。
- 宣告本地网络(或通过 redistribution 引入 IGP 路由)。
- 关键命令示例):
router bgp 65001neighbor 10.1.1.2 remote-as 65002 配置EBGP邻居neighbor 192.168.1.1 remote-as 65001 配置IBGP邻居network 10.0.0.0 mask 255.255.255.0 宣告本地网络
总结
BGP 是互联网的 “交通警察”,其设计聚焦于大规模网络的路由控制和策略灵活性。掌握 BGP 的工作原理、属性选路及配置技巧,是构建和维护大型网络的核心能力。实际应用中需结合业务需求合理设计策略,避免路由环路和选路异常。