网络学习(五):从零理解 VIP 虚拟 IP

目录

    • 写在前面
      • 选型说明
        • [基础设施侧:如何「造」出一个 VIP](#基础设施侧:如何「造」出一个 VIP)
        • [接入侧:域名怎么接到 VIP](#接入侧:域名怎么接到 VIP)
    • [一、原理:VIP 到底是什么](#一、原理:VIP 到底是什么)
      • [1.1 先分清两种「IP」](#1.1 先分清两种「IP」)
      • [1.2 VIP 不是「神秘协议」,而是一种用法](#1.2 VIP 不是「神秘协议」,而是一种用法)
      • [1.3 和「浮动 IP / EIP」别混](#1.3 和「浮动 IP / EIP」别混)
    • [二、VIP 有什么用](#二、VIP 有什么用)
      • [2.1 用处一:高可用入口(机器挂了,地址别换)](#2.1 用处一:高可用入口(机器挂了,地址别换))
      • [2.2 用处二:负载均衡入口(一台入口,多台干活)](#2.2 用处二:负载均衡入口(一台入口,多台干活))
      • [2.3 用处三:运维与发布更省事](#2.3 用处三:运维与发布更省事)
      • [2.4 VIP 解决不了什么](#2.4 VIP 解决不了什么)
    • [三、VIP 和域名是什么关系](#三、VIP 和域名是什么关系)
      • [3.1 分层看:名字层 vs 地址层 vs 机器层](#3.1 分层看:名字层 vs 地址层 vs 机器层)
      • [3.2 两种常见挂法](#3.2 两种常见挂法)
      • [3.3 为什么生产更爱「域名 → VIP」,而不是「域名 → 某台物理 IP」](#3.3 为什么生产更爱「域名 → VIP」,而不是「域名 → 某台物理 IP」)
      • [3.4 一个生活化类比(方便对业务同学解释)](#3.4 一个生活化类比(方便对业务同学解释))
    • 四、串起来:一次真实访问长什么样
    • 五、对照实验(可选,加深印象)
      • [5.1 看一个公网域名最终落到什么 IP](#5.1 看一个公网域名最终落到什么 IP)
      • [5.2 区分「入口」和「后端」](#5.2 区分「入口」和「后端」)
      • [5.3 自建双机时 VIP 长什么样(概念配置,勿直接当生产)](#5.3 自建双机时 VIP 长什么样(概念配置,勿直接当生产))
    • 六、生产建议与扩展方向
    • 七、一句话总结

比基尼海滩开课啦!🌻

RFC 5798(VRRP 说明):https://datatracker.ietf.org/doc/html/rfc5798

Keepalived 官网:https://www.keepalived.org/

Keepalived GitHub:https://github.com/acassen/keepalived

Linux Virtual Server(LVS):http://www.linuxvirtualserver.org/

阿里云「什么是负载均衡」:https://help.aliyun.com/zh/slb/product-overview/what-is-slb

腾讯云「负载均衡 CLB」:https://cloud.tencent.com/document/product/214

MDN:DNS 概述:https://developer.mozilla.org/zh-CN/docs/Glossary/DNS

写在前面

日常运维、上云、做高可用时,同事常说:「流量打到 VIP」「域名解析到 VIP」「主备切换后 VIP 漂过去了」。

听多了容易把几件事搅在一起:

容易混淆的说法 它实际更接近什么
VIP 一组机器对外共用的「虚拟」入口 IP
物理 IP / 真实 IP 网卡上真正配死在某台机器上的地址
域名 给人记的名字,本身不是 IP
DNS 把域名翻译成某个 IP(常常就是 VIP)的系统

一句话记:域名是门牌上的店名,VIP 是店门口统一的街道号;后面真正干活的可能是多台机器,街道号可以在机器之间「挪」

本文只做概念讲解,不绑定某一家云、某一份源码;读完你应能回答三个问题:

  1. VIP 和普通 IP 差在哪?
  2. VIP 主要解决什么问题?
  3. 域名、DNS、VIP、后端机器各自站在哪一层?
组件 角色 读者需要记住什么
域名 人类可读入口 www.example.com
DNS 名字 → 地址 常把域名指到 VIP
VIP 稳定的服务入口 IP 可漂移 / 可挂在负载均衡上
后端机器真实 IP 真正处理请求 一般不直接给用户记

选型说明

基础设施侧:如何「造」出一个 VIP

自建机房和上云,实现 VIP 的常见路径不同,不必混用同一套话术。

方案 特点 上手难度 典型场景 本文是否展开
Keepalived + VRRP 主备争抢同一个 VIP,故障时漂移 自建双机高可用 原理重点:是
LVS / IPVS 内核级四层转发,常与 Keepalived 搭配 中高 高并发四层入口 概念提及:是
云负载均衡(SLB/CLB/ALB) 厂商提供入口 VIP,后端挂 ECS 上云业务主路径 对照说明:是
仅用单机公网 IP 简单,无漂移能力 很低 演示环境 对比用:否(不推荐当生产入口)
接入侧:域名怎么接到 VIP

域名本身不负责高可用;它只负责「名字指向哪里」。

方案 特点 上手难度 典型场景 本文是否展开
DNS A 记录 → VIP 域名直接解析到入口 IP 自建 VIP / 部分云产品
DNS CNAME → 厂商域名 再由厂商解析到 VIP 集群 云 SLB / CDN 常见
客户端写死 IP 跳过 DNS 极低 临时联调 仅提醒风险

一、原理:VIP 到底是什么

图 1:物理 IP 绑在某台机器上;VIP 是对外共用的虚拟入口,可在主备之间漂移。

1.1 先分清两种「IP」

类型 绑在谁身上 用户是否直接感知 机器挂了会怎样
物理 IP(真实 IP) 某台服务器的某块网卡 通常不希望用户长期依赖它 这个 IP 跟着机器一起「没了」
VIP(虚拟 IP) 由软件/云产品声明的逻辑地址 常作为对外服务入口 可漂移到另一台,或由负载均衡继续承接

可以把物理 IP 想成「工位座机号」:人(机器)不在,这个号就打不通。

VIP 更像「总机号」:总机号不变,后面接听的人可以换。

1.2 VIP 不是「神秘协议」,而是一种用法

严格说,VIP 仍然是一个普通的 IPv4/IPv6 地址。特别之处在于谁持有、如何持有

  • 不永久独占某一台物理机的身份;
  • 常由 Keepalived、云负载均衡等组件动态声明「现在我拥有这个地址」;
  • 对客户端来说,只需要一直访问这个稳定入口。

自建场景里,常见实现是 VRRP(Virtual Router Redundancy Protocol):多台设备竞争「谁当 Master」,Master 对外宣布自己持有 VIP。Keepalived 是把这类能力工程化落地的典型软件。

云场景里,你在控制台创建负载均衡实例后,厂商会给你一个服务地址(对外常也叫 VIP / 入口 IP)。你不必自己配 VRRP,漂移与健康检查由云产品完成。

1.3 和「浮动 IP / EIP」别混

口头上大家有时都叫「浮动」,但产品语义不同:

名称 常见含义
VIP 高可用 / 负载均衡场景下的服务入口虚拟地址
云厂商弹性公网 IP(EIP) 可绑定到实例或负载均衡上的公网地址资源
Anycast 多地宣告同一地址,路由把流量送到「相对近」的节点(CDN/DNS 常见)

本文说的 VIP,默认指:给业务当稳定入口的那个虚拟服务 IP


二、VIP 有什么用

图 2:主节点故障时,VIP 漂移到备节点,客户端仍访问同一入口地址。

2.1 用处一:高可用入口(机器挂了,地址别换)

没有 VIP 时:

text 复制代码
用户 → 服务器 A 的物理 IP
服务器 A 宕机 → 用户必须改 IP,或等人工切流量

有 VIP 时:

text 复制代码
用户 → VIP(始终这个地址)
主挂 → VIP 漂到备 → 用户无感(或短暂闪断后恢复)

这就是运维口中常说的「VIP 漂移」。对数据库双机、网关双机、自建 LB 主备都很常见。

2.2 用处二:负载均衡入口(一台入口,多台干活)

图 3:云负载均衡对外暴露 VIP,对内把流量分到多台后端。

生产上更常见的是:

text 复制代码
用户 → VIP(负载均衡入口)
     → 后端机 1 / 2 / 3(真实 IP)

这时 VIP 的价值不只是「能漂移」,还包括:

能力 说明
统一入口 扩缩容后端时,对外地址尽量不变
健康检查 坏节点摘除,流量只打健康机
四层/七层转发 TCP/UDP 或 HTTP/HTTPS 策略由 LB 统一做
证书与策略收敛 TLS、限流、访问控制可集中在入口

一句话:VIP 把「对外承诺的地址」和「对内可变的机器集合」解耦开了。

2.3 用处三:运维与发布更省事

有了稳定入口后,下面这些事会轻松很多:

  • 换机器、滚动升级:先换后端,VIP 不动;
  • 灰度:在 LB 上调权重,而不是让所有人改域名配置;
  • 排障:先看 VIP 是否可达、健康检查是否绿,再下钻某台真实机;
  • 安全组 / 防火墙:优先围绕入口地址收敛规则。

2.4 VIP 解决不了什么

VIP 很有用,但不是万能药:

误区 实际情况
「有了 VIP 就永不宕机」 入口层也会故障;还要看多可用区、跨地域
「VIP = 自动扩容」 扩容靠后端池与编排,VIP 只是入口
「配了 VIP 就不需要域名」 人仍然更适合记域名;证书、多环境也常绑域名
「DNS TTL 一改就等于 VIP 漂移」 DNS 变更受缓存影响;VIP 漂移通常更快、更局部

三、VIP 和域名是什么关系

图 4:用户输入域名 → DNS 解析到 VIP → 再到达负载均衡或高可用入口 → 后端真实机器。

3.1 分层看:名字层 vs 地址层 vs 机器层

层次 例子 负责什么
名字层 api.example.com 给人(和证书、配置)用的稳定名字
地址层 VIP 203.0.113.10 给网络转发用的稳定入口地址
机器层 10.0.1.1110.0.1.12 真正跑进程的节点

关系可以写成:

text 复制代码
域名  --(DNS)-->  VIP  --(LB / Keepalived)-->  后端真实 IP

所以:

  • 域名不替代 VIP:域名解析的结果,往往就是 VIP(或再经 CNAME 落到厂商入口)。
  • VIP 不替代域名:用户、浏览器、证书 SAN、配置中心,通常仍写域名。
  • 两者配合:域名提供「好记且可换解析」的名字;VIP 提供「对内可漂移/可分发」的入口。

3.2 两种常见挂法

挂法 A:A 记录直接指向 VIP

text 复制代码
api.example.com.   A    203.0.113.10   ← 这就是 VIP

适合:自建 VIP、或云产品直接给你固定入口 IP 时。

挂法 B:CNAME 到厂商域名,再落到 VIP 集群

text 复制代码
www.example.com.   CNAME   xxx.lb.aliyuncs.com.
xxx.lb.aliyuncs.com.  →  厂商侧多个 VIP / Anycast 入口

适合:云负载均衡、CDN 等。你维护的是「名字指到厂商」,厂商维护「名字背后的 VIP」。

3.3 为什么生产更爱「域名 → VIP」,而不是「域名 → 某台物理 IP」

做法 优点 风险
域名 → 单机物理 IP 简单 换机就要改 DNS;TTL 缓存导致切换慢
域名 → VIP 换后端时常不用改 DNS 仍要保证 VIP 本身高可用
客户端写死 IP 联调快 证书、迁移、多环境都难受

经验法则:

  1. 给用户和业务配置写域名
  2. 让 DNS 指向 VIP(或厂商入口)
  3. 让 VIP 后面再谈主备 / 负载 / 扩缩容

3.4 一个生活化类比(方便对业务同学解释)

现实世界 网络世界
店名「星航咖啡馆」 域名
查号台 / 地图 App DNS
商场统一门牌「A 座 1 层 1001」 VIP
今天是张三值班、明天李四 后端真实机器
店员换了,门牌不变 VIP 漂移 / 后端替换

客户记住的是店名;地图把店名指到门牌;门牌背后谁服务,客户通常不关心。


四、串起来:一次真实访问长什么样

以访问 https://api.example.com/health 为例:

text 复制代码
1. 浏览器拿到域名 api.example.com
2. DNS 查询:A/CNAME 最终得到 VIP(或厂商入口 IP)
3. 客户端与该 VIP 建连(TLS 证书通常仍校验域名)
4. 负载均衡 / Keepalived 入口接收连接
5. 请求被转到某台健康后端的真实 IP
6. 应用返回结果;对外仍表现为「打到了 api.example.com」

排障时也可按同一顺序想:

步骤 先看什么 常见问题
① 域名 解析结果是否符合预期 指错环境、TTL 未生效
② VIP 入口是否通、监听是否在 安全组、VIP 未绑定、主备异常
③ 负载/健康检查 后端是否被摘除 探活路径错、端口错
④ 后端真实机 进程、日志、本机网络 应用挂了但 VIP 还在

五、对照实验(可选,加深印象)

不搭整套集群,也可以用「观察」建立直觉。

5.1 看一个公网域名最终落到什么 IP

bash 复制代码
# 看解析链
dig +trace www.example.com

# 或更简单
nslookup www.example.com

你看到的最终 A 记录,业务上经常就是「入口 VIP / Anycast 地址」,而不是某台应用机的私网 IP。

5.2 区分「入口」和「后端」

在云控制台打开负载均衡详情,一般能同时看到:

  • 服务地址(VIP);
  • 后端服务器组(多台 ECS 私网 IP)。

把这两个列表并排看一遍:对外只有一个入口,对内可以有很多台------这就是 VIP 存在的直观证据。

5.3 自建双机时 VIP 长什么样(概念配置,勿直接当生产)

Keepalived 思路通常是:两台机器配同一 virtual_ipaddress,通过优先级选举 Master。Master 持有 VIP;Backup 在 Master 失联后接管。具体参数因网卡、网段、云厂商 ARP 限制而异,上云前请对照厂商文档(部分云环境对「自建 VIP 漂移」有限制,更推荐用云 LB)。


六、生产建议与扩展方向

建议 原因
对外暴露域名,DNS 指 VIP/厂商入口 名字稳定,证书与配置好维护
能用云 LB 就优先用云 LB 少维护 VRRP,多可用区更省心
自建 VIP 要验证 ARP / 安全组 / 抢占 漂移失败往往出在二层与云网络策略
DNS TTL 与 VIP 漂移分工清晰 秒级切换靠 VIP;全局改入口才动 DNS
监控同时盯 VIP 存活与后端健康 只盯单机 IP 会漏掉入口层故障
文档里写清「域名 / VIP / 真实 IP」三列 减少沟通时互相指错对象

可继续延伸阅读的方向:

  • VRRP 选举与脑裂(split-brain);
  • LVS 的 NAT / DR / TUN 模式;
  • 七层负载与四层 VIP 的差异;
  • CDN CNAME 与源站 VIP 的回源关系;
  • 双活多 VIP、全局负载(GSLB)与就近接入。

七、一句话总结

VIP 是对外稳定的虚拟服务入口地址;它的用处是把「用户打到哪里」和「哪台机器真正干活」解耦,从而支撑高可用与负载均衡。域名通过 DNS 指向 VIP(或厂商入口),二者是「名字」与「入口地址」的配合关系,不是互相替代。

内容仅供参考:不同云厂商产品名、是否允许自建 VIP、公网/私网形态会有差异,落地时以当前环境官方文档为准。

目录:20260804_VIP虚拟IP通俗讲解 · 海绵宝宝配图:images_spongebob/ · 2026-08-04

相关推荐
FungLeo1 小时前
Flutter 接入 Alice 调试浮窗:一个顶层 final 抢跑,把 release 网络整没了
网络·flutter
咸鱼翻身小阿橙2 小时前
现在这个四通道出现的问题
学习
abbgogo3 小时前
堆叠、DHCP 与链路聚合总结
网络·网络协议
云贝教育-郑老师4 小时前
OceanBase 是如何搞定海量数据分片(Sharding)的?
学习·oceanbase·dba
编程圈子4 小时前
电机驱动开发学习23. 保护体系与故障状态机
驱动开发·学习
xiaoxiangsiyan5 小时前
GitLab CI/CD 自托管(EE 企业版)+ Kubernetes Runner 集群 + ArgoCD(GitOps 部署)
运维·网络·ci/cd·容器·kubernetes·gitlab·argocd
别动我齐刘海6 小时前
Day6 unitree_G1人形机器人GMR—— MotionInput
c语言·c++·人工智能·学习·机器学习·机器人·github
XR1234567886 小时前
政府办公楼网络搭建方案对比:信锐、华为、华三选型指南
网络·华为
星恒讯工业路由器6 小时前
网络安全访问控制规则详解
网络·安全·智能路由器·访问控制·防火墙规则·工业网络安全
2601_949499946 小时前
芯瑞科技400G VR4 QSFP-DD光模块:低功耗高密短距互联方案,赋能AI智算中心算力网络升级
大数据·运维·网络·人工智能·科技·光模块