🚀 BGP 双上联脑图:服务器网络架构的四种“打开方式”

在建设高可用架构时,服务器“双上联”是标配。即使硬件基础(两块网卡、两台交换机)相同,由于软件层面的配置逻辑不同,其稳定性和灵活度也大相径庭。


🏗️ 核心概念扫盲:服务器组件 vs. 水管比喻

为了方便理解,我们将复杂的网络概念比作**“给家里接自来水”**:

  1. 物理层(双上联)
    • 比喻:你家门口并排铺设了两根独立的水管。
    • 实际:服务器后面插了两块物理网卡 (NIC),连了两根网线,分别接入两台 Leaf 交换机
  2. 本地逻辑层(Bond)
    • 比喻:进屋后,你是把两根管子并成一个接口(总阀门),还是分别接两个水龙头。
    • 实际:Linux 系统层面的 Bond 接口 (bond0, bond4)
  3. 交换机逻辑层(Stacking/MLAG)
    • 比喻:水务 A 公司和 B 公司是合并成了一家(共用大脑),还是签了合作协议(大脑独立但信息共享)。
    • 实际:交换机侧的堆叠 (Stacking)跨设备链路聚合 (MLAG)
  4. 路由发布层(BGP)
    • 比喻:你跟水务公司签合同、拨号的方式。
    • 实际BGP 会话 (Session)。单发就是 1 个会话,双发就是 2 个会话。

🎨 四种方案的深度博弈

方案 1:【简单合伙制】堆叠 + BGP 单发

  • 物理连接:双网卡 (Bond0/4) ➔ 逻辑上的“单台”交换机。
  • BGP 邻居1 个
  • 逻辑:两台交换机“合并大脑”,对外表现为一个 IP。服务器只需建 1 个 BGP 会话。
  • 评价:配置极简。但如果堆叠产生的“共用大脑”出故障,两台交换机会同步宕机。

方案 2:【炸弹模式】独立 Leaf + Bond (无 MLAG)

  • 后果💥 100% 产生三层路由环路!
  • 环路原理
    1. 当服务器 eth1 断开,上层交换机仍认为该链路有效(收敛延迟)。
    2. 流量打到交换机 B。B 发现直连路断了,但上层路由告诉它:“我还有路(通过交换机 A)”。
    3. B 将流量吐回给上层,上层根据哈希又发给 B。流量开始在交换机间疯狂旋转!
  • 结结论绝对不要在生产环境使用!

方案 3:【精密合意制】MLAG + BGP 双发

  • 物理连接:双网卡 (Bond4) ➔ MLAG 交换机。
  • BGP 邻居2 个
  • 逻辑:交换机大脑独立,通过协议互相备份。服务器分别给 A、B 发 BGP 报文实现冗余。
  • 评价:目前主流 IDC 的高可用标准。

方案 4:【完全独立制】完全解耦 + BGP 双发

  • 物理连接非 Bond 网口 ➔ 物理对立的交换机。
  • BGP 邻居2 个(通过 localAddress 指定对应的物理网口)。
  • 评价稳定性上限最高。不依赖交换机任何私有协议,是顶级互联网大厂实现“去堆叠化”的首选。

🛡️ 深度补充:堆叠既然“同生共死”,那它还有高可用吗?

这是一个常见的疑问:如果堆叠的“大脑”出问题会导致同步宕机,那它凭什么算高可用?

其实,堆叠的高可用逻辑是**“内部消化”**,主要体现在以下两点:

  1. 链路冗余(左手断了用右手)
    • 两台交换机虽然是一个大脑,但它们拥有两套物理网口。如果其中一根网线断了,大脑会瞬间感知并在 微秒级 内将流量切换到另一根线。因为不需要重新协商 BGP,这种切换几乎是零感知的。
  2. 主控冗余(大脑的双核驱动)
    • 虽然看起来是一个大脑,但内部其实分“主控”和“备控”。如果主交换机的 CPU 挂了,备份交换机会立刻接管。这保证了单个硬件损坏不会导致系统崩溃。

总结:堆叠保护的是**“硬件损坏”“链路故障”;而 MLAG 和方案 4 进一步保护了“软件 Bug”“误操作”**。


🧠 核心逻辑:为啥“堆叠配单发,MLAG 配双发”?

  1. 堆叠 = 一个大脑

    • 既然两台机器共用一个大脑,你建 2 个会话其实也是在跟同一个大脑说话。大脑挂了,两个会话一起挂。
    • 结论:没必要费劲,单发最省心。
  2. MLAG = 两个大脑

    • Leaf-1 和 Leaf-2 是独立的聪明人。如果你只连 Leaf-1,万一它系统崩溃了,你连备份的机会都没有。
    • 结论:必须双发(分别连两个邻居)。这样即使一台机器修系统,另一台依然能承载你的业务订单。

💡 快速决策卡

如果你的优先级是…推荐方案BGP 会话数核心配置映射
我最怕麻烦方案 11Stacking 强行合体
我是主流企业,追求稳健方案 32MLAG + Bond4 联动
极致排雷,架构洁癖方案 42指定 localAddress 绑定物理网卡
我想试试不配 MLAG 做 Bond方案 2炸了环路警告!