BGP简介

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 内
路由度量 多种属性 开销等 跳数
收敛速度 较慢 较慢
网络规模 大型网络 中大型网络 小型网络
路由信息复杂度 复杂 较复杂 简单
相关推荐
运维&陈同学17 分钟前
【zookeeper01】消息队列与微服务之zookeeper工作原理
运维·分布式·微服务·zookeeper·云原生·架构·消息队列
是阿建吖!18 分钟前
【Linux】进程状态
linux·运维
hzyyyyyyyu32 分钟前
内网安全隧道搭建-ngrok-frp-nps-sapp
服务器·网络·安全
明明跟你说过1 小时前
Linux中的【tcpdump】:深入介绍与实战使用
linux·运维·测试工具·tcpdump
刽子手发艺1 小时前
WebSocket详解、WebSocket入门案例
网络·websocket·网络协议
Mr_Xuhhh2 小时前
重生之我在学环境变量
linux·运维·服务器·前端·chrome·算法
速盾cdn5 小时前
速盾:CDN是否支持屏蔽IP?
网络·网络协议·tcp/ip
yaoxin5211235 小时前
第二十七章 TCP 客户端 服务器通信 - 连接管理
服务器·网络·tcp/ip
内核程序员kevin5 小时前
TCP Listen 队列详解与优化指南
linux·网络·tcp/ip