BGP 的概念定义
BGP 的概念:
边界网关协议(Border Gateway Protocol,BGP)
- 一种用于在不同自治系统(AS)之间交换路由信息的动态路由协议。
- 互联网的核心路由协议之一,确保了全球网络的互联性和可达性。
- 与内部网关协议(IGP)不同,BGP 主要处理 AS 间的路由。
- 跨越多个 AS:负责在不同的网络域之间传递路由。
- 路由信息交换:包括网络前缀和相关的路径属性。
- 决策机制:根据各种因素决定最佳路由路径。
- 策略控制:允许网络管理员定义路由策略,以满足特定需求。
- 大规模网络适应:能够应对庞大而复杂的互联网拓扑。
- 高可靠性要求:保障网络的稳定运行和路由的准确性。
- 动态更新:实时适应网络的变化和拓扑调整。
BGP 的工作原理
- 邻居建立 :
- BGP 路由器会与其他 BGP 路由器建立邻居关系,分为 EBGP(外部邻居,位于不同 AS)和 IBGP(内部邻居,位于同一 AS 内)。
- 路由通告 :
- 路由器向邻居通告本地 AS 所知道的网络路由信息,包括网络前缀和相关属性。
- 路径属性 :
- 如 AS_PATH(记录经过的 AS 序列)、NEXT_HOP(下一跳地址)、LOCAL_PREF(本地优先级)等,这些属性用于路由决策。
- 路由选择 :
- 根据路径属性和策略,比较多条到达同一目的地的路由,选择最优路由。
- 可能基于最短 AS_PATH、最高 LOCAL_PREF 等规则。
- 更新机制 :
- 当网络状态发生变化(如链路故障、路由新增等)时,及时发送更新消息以调整路由。
- 路由反射 :
- 在大型 AS 中,通过路由反射器来减少 IBGP 邻居关系的数量,提高扩展性。
- 策略应用 :
- 网络管理员可以通过配置来应用各种路由策略,如限制某些路由的传播、引导流量走向等。
- 收敛过程 :
- 确保整个网络的路由信息逐渐同步和稳定,以实现高效的数据传输。
BGP 的关键特点
BGP 的邻居关系
- EBGP 邻居关系 :
- 指位于不同自治系统的 BGP 路由器之间建立的邻居关系。
- 通常通过直接连接的物理链路建立。
- 消息传递跨越 AS 边界。
- IBGP 邻居关系 :
- 存在于同一自治系统内的 BGP 路由器之间。
- 可以通过多种方式建立,如直接连接或通过内部网络。
- 与 EBGP 相比,有一些特殊的规则和考虑因素,比如需要全互联或使用路由反射器等技术来避免路由环路问题。
- IBGP 邻居之间传递的路由信息不会更改其 AS_PATH 属性。
- 邻居建立过程 :
- 包括交换 Open 消息以协商参数,如 BGP 版本、AS 号等。
- 互相验证身份和能力。
- 成功建立后,进入稳定的邻居状态,开始交换路由信息。
- 邻居状态转换 :
- 如从Idle 状态到 Connect 状态,再到 OpenSent、OpenConfirm 等状态,最终到达 Established 状态。
- 不同状态表示邻居关系的不同阶段和进展情况。
- 邻居维护 :
- 通过定期发送 Keepalive 消息来维持邻居的活性。
- 若长时间未收到对方消息,则可能认为邻居失效。
BGP 的路由属性
- Weight(权重):Cisco 私有属性,是选路属性,可选非传递。当路由器有多个到达目标路径时(无视邻居关系),选择 weight 值大的一方到达(默认为空,越大越好)。weight 值只影响本路由器,其他路由器不识别该属性会丢弃该属性,默认本路由产生的路由条目的 weight 值为32768,学习到的路由条目权重值为0。
- Origin(起源):选路属性,公认必尊,可以识别路由的起源,network 宣告的路由起源标志 i(0),重发布的路由起源标识为(3),EBGP 给的路由起源为 e(2),i>e>? ,i 和?可以修改,e 不能修改,默认传递过程中不修改。
- AS-Path(AS 路径):记录路由经过的 AS 路径(不包括自己),顺序是最近进过的 AS 排在后面,一个 AS 拒绝接收携带自己 AS 号的路由,可以用来防环,选路,越短越好。
- Next-hop(下一跳):用于提供可达性。IBGP 传递的 next-hop 不会被修改,为0时候会修改自己为更新源地址;EBGP 传递的 next-hop 会被修改,修改为自己的更新源地址。
- Local-pref(本地优先级):选路属性,越大越好,用于在两个或者两个以上 AS 出口的选择,只能在 IBGP 之间传递,不能再 EBGP 之间传递。
- MED(metric 度量值):可选非传递,选路属性,用于选路,一般用于 AS 有两个或者两个以上入口时,其他 AS 选择哪个入口进入本 AS。MED 只能用于两个 AS 之间的选路,可以在两个 AS 之间传递,超过两个 AS 该参数无效,可以打开多 AS 的 MED 比较。
- Atomic-aggregate(汇总):可选非传递属性,用于通告路由接受者该路由是经过聚合的。
- Aggregator(聚合者):可选传递属性,是 ATOMIC_AGGREGATE 属性的补充,包含了发起路由聚合的 AS 号码和形成聚合路由的 BGP 发布者的 IP 地址。
- Community(团体):可选传递属性,用于标识具有相同特征的 BGP 路由,使路由策略的应用更加灵活,同时降低了维护管理的难度。
- Originator_ID(发起者 ID):可选非传递属性,用于标识路由反射器,是可选非过渡属性。为了防止引入路由反射器之后出现环路,增加 ORIGINATOR_ID 这个属性来标识,反射器在发布路由时加入 ORIGINATOR_ID,当反射器收到的路由信息中的 ORIGINATOR_ID 就是自己的 ROUTER_ID 时,就可以发现路由环路的出现,将该路由丢弃,不再转发。
- Cluster_List(簇列表):可选非传递属性,用于标识路由反射器组,是可选非过渡属性。CLUSTER_LIST 属性也是用来防止环路,在路由经过路由反射器时路由反射器会将自己的 CLUSTER_ID 添加到路由携带的 CLUSTER_LIST 中,当路由反射器发现接收的路由的 CLUSTER_LIST 中包含有自己的 CLUSTER_ID,则将该路由丢弃,不再转发。
BGP、OSPF 和 RIP 区别
BGP(Border Gateway Protocol):
- 主要用于不同自治系统(AS)之间的路由交换,是一种域间路由协议。
- 着重于控制路由策略和大规模网络的互联。
- 路由信息相对复杂,包含大量的路径属性。
OSPF(Open Shortest Path First):
- 是一种内部网关协议(IGP),用于单个 AS 内。
- 基于链路状态,能快速收敛。
- 对网络拓扑有清晰的认识,能进行更精确的路由计算。
RIP(Routing Information Protocol):
- 也是 IGP。
- 相对简单,使用跳数作为度量。
- 收敛速度较慢,不太适用于大型复杂网络。
比较项目 | BGP | OSPF | RIP |
---|---|---|---|
应用范围 | AS 间 | AS 内 | AS 内 |
路由度量 | 多种属性 | 开销等 | 跳数 |
收敛速度 | 较慢 | 快 | 较慢 |
网络规模 | 大型网络 | 中大型网络 | 小型网络 |
路由信息复杂度 | 复杂 | 较复杂 | 简单 |