ip addr show
或ifconfig -a
命令检查网络接口,重点观察虚拟接口(如eth0:1)或VIP,同时需检查高可用集群管理工具(如Pacemaker、Corosync)的状态确认IP归属节点。什么是浮动 IP?
浮动 IP(Floating IP)是一种高可用网络技术,通常用于集群或负载均衡场景,当主服务器故障时,IP 地址会自动漂移到备用节点,确保服务不间断,在 Linux 中,它可能通过 Keepalived、Pacemaker 或云平台(如 OpenStack)实现。
查看浮动 IP 的 4 种方法
以下命令需 root 权限执行(sudo -i
或 sudo <命令>
):
方法 1:使用 ip
命令(推荐)
ip addr show | grep -E "inet.*(secondary|dynamic)"
- 关键点:
- 浮动 IP 通常标记为
secondary
或dynamic
。 - 示例输出:
inet 192.168.1.100/24 brd 192.168.1.255 scope global secondary eth0
- 浮动 IP 通常标记为
方法 2:通过 ifconfig
(传统工具)
ifconfig | grep -A 1 "flags=.*<UP,BROADCAST>" | grep "inet"
- 注意:
- 浮动 IP 可能显示在备用网卡(如
eth0:1
)。 - 较新系统需安装
net-tools
包(apt install net-tools
/yum install net-tools
)。
- 浮动 IP 可能显示在备用网卡(如
方法 3:检查高可用软件配置
-
Keepalived:
grep "virtual_ipaddress" /etc/keepalived/keepalived.conf
输出示例:
virtual_ipaddress { 192.168.1.100/24 dev eth0 }
-
Pacemaker:
pcs resource show | grep -i "ip"
输出示例:
ClusterIP (ocf::heartbeat:IPaddr2) ip=192.168.1.100
方法 4:查看系统日志
journalctl -u keepalived --since "5 min ago" | grep "IP assigned"
- 适用于动态漂移后实时追踪。
常见问题排查
-
看不到浮动 IP?
- 检查高可用服务状态:
systemctl status keepalived # 或 pacemaker
- 确认网卡启用:
ip link set eth0 up
。
- 检查高可用服务状态:
-
IP 未漂移?
- 检测脑裂问题:
ping
主备节点,验证网络连通性。
- 检测脑裂问题:
-
云平台(如 AWS、OpenStack):
- 通过控制台查看浮动 IP 绑定状态(如 OpenStack
openstack floating ip list
)。
- 通过控制台查看浮动 IP 绑定状态(如 OpenStack
方法 | 适用场景 | 优势 |
---|---|---|
ip addr show |
实时查看 IP 状态 | 无需额外工具,精准高效 |
检查 Keepalived | 配置验证 | 明确管理 IP 地址 |
系统日志 | 故障诊断 | 追踪漂移事件 |
安全提示:浮动 IP 暴露在公网时,需配置防火墙(如
ufw
或firewalld
)限制访问。
引用说明:
本文方法基于 Linux 内核网络栈及 Keepalived 官方文档,适用于 CentOS/RHEL 7+、Ubuntu 18.04+ 等主流发行版,云平台操作请参考对应服务商文档。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/20217.html