如何利用 Keepalived 结合 BGP 协议实现大规模数据中心的双机热备

千辰姑娘_7476

千辰姑娘_7476

2026-05-12

261人浏览

原创

Keepalived本身不支持BGP,仅基于VRRP实现同子网VIP漂移;BGP用于跨网络路由调度,二者应分层协同:Keepalived负责本地高可用,FRR/BIRD等负责BGP宣告与收敛。

如何利用 keepalived 结合 bgp 协议实现大规模数据中心的双机热备

Keepalived 本身不原生支持 BGP 协议,它基于 VRRP(Virtual Router Redundancy Protocol)实现 IP 层的故障切换,仅负责在局域网内漂移 VIP(虚拟 IP),适用于同一二层广播域(如同网段、同 VLAN)的双机热备场景。而 BGP(Border Gateway Protocol)是运行于三层、用于自治系统(AS)之间或大型数据中心内部(如 eBGP/iBGP)的动态路由协议,强调路由通告、路径选择与策略控制,与 Keepalived 的设计目标和工作层级不同。

因此,“Keepalived 结合 BGP 实现双机热备”这一说法存在概念混淆。实际生产中大规模数据中心的高可用方案,通常是 分层解耦、各司其职:


✅ 正确的技术分工逻辑

  • Keepalived 负责:
    同一机房/同一 POD 内、同子网下的服务入口高可用(如 LVS/Nginx 前端 VIP 漂移),毫秒级切换,轻量可靠。

  • BGP 负责:
    跨机架、跨机房、跨区域的流量调度与故障隔离——例如通过 Quagga/FRR + BIRD 等路由守护进程,将 VIP 或服务网段(如 192.168.100.0/24)以 BGP 路由形式宣告给上游交换机(ToR / Spine),结合 ECMP、Anycast、BFD 快速收敛等机制实现跨网络的自动重路由。

⚠️ 注意:Keepalived 无法直接宣告 BGP 路由,也不能替代 BGP 守护进程;强行用 Keepalived 管理 BGP 会破坏路由稳定性,且无标准实践支撑。


✅ 大规模数据中心推荐架构(Keepalived + BGP 协同模式)

层级 组件 角色 关键配置要点
接入层(Service Edge) Keepalived + Nginx/LVS 提供同子网 VIP(如 10.10.1.100/32),健康检查后端节点 vrrp_instance VI_EDGE { state MASTER; interface eth0; virtual_ipaddress { 10.10.1.100; }; }
网络层(Underlay/Overlay) FRR/BIRD + BGP 将该 VIP 作为 host route(10.10.1.100/32)通过 iBGP 宣告至核心网络,绑定下一跳为本机 Loopback 或物理接口 router bgp 65001; neighbor 10.0.0.1 remote-as 65001; network 10.10.1.100/32;
硬件协同 支持 BFD 的 ToR 交换机 监控 BGP 邻居状态,BFD 故障检测 bfd interval 100 min_rx 100 multiplier 3

✅ 这样做的效果是:

  • 当主节点宕机 → Keepalived 停止发送 VRRP 报文 → 备节点接管 VIP → 同时 FRR 检测到本地路由失效(如通过 ip rule 或 bird 的 kernel 协议感知接口变化)→ 自动撤销该 /32 路由 → 上游交换机立即删除该路径 → 流量切至另一台已宣告该路由的节点(或回退至其他 Anycast 站点)。

❌ 常见误区与风险提示

  • 不要在 Keepalived 中启用 vrrp_strict 并试图跑跨子网 VRRP
    VRRP 是链路层协议,跨三层转发需特殊配置(如 Proxy ARP + 静态路由),不可靠且违反标准,BGP 才是跨网段的正解。

  • 不要用 Keepalived 的 track_script 直接调用 bgpctl 或 vtysh
    缺乏事务一致性,易导致 VIP 已漂移但 BGP 路由未更新(脑裂隐患),应使用 FRR/BIRD 的 vrf 或 protocol kernel 与内核路由表联动。

  • 避免单点 BGP Speaker
    推荐每台服务节点独立运行 BGP 守护进程(FRR),采用 route-reflector 或 full-mesh iBGP,确保路由控制面本身高可用。


✅ 快速验证步骤(以 FRR + Keepalived 为例)

  1. 在两台服务器安装并启用:

    yum install -y frr keepalived nginx
    systemctl enable frr keepalived
  2. Keepalived 配置 VIP(主节点 priority 100,备节点 99),不启用 vrrp_strict。

  3. FRR 配置 daemons 启用 bgpd 和 zebra,bgpd.conf 中宣告 VIP:

    router bgp 65001
      bgp router-id 10.10.1.10
      network 10.10.1.100/32
      neighbor 10.0.0.1 remote-as 65001
  4. 检查路由是否被学习:

    vtysh -c "show ip bgp"
    ip route show | grep 10.10.1.100
  5. 模拟主节点宕机:systemctl stop keepalived → 观察备节点是否获得 VIP,并确认 FRR 是否继续宣告该路由(或按策略撤销)。


不复杂但容易忽略:Keepalived 和 BGP 不是“组合技”,而是“上下游协作”。前者管最后一跳的确定性,后者管全网路径的智能调度。用对位置,才能撑起真正的大规模高可用。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

457

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

980

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

3432

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

1116

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

1009

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

534

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

3176

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

5992

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

907

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习