keepalived 配置trace 监控两个网口,保证VIP可同时转移
时间: 2024-09-26 12:12:53 浏览: 46
Keepalived 是一款开源的高可用软件包,主要用于在 Linux 系统上提供网络服务的高可用解决方案,通过 VRRP(Virtual Router Redundancy Protocol)协议监控多个网络接口。如果你想配置 Keepalived 来使用 trace 监控两个网口,并在检测到其中一个故障时自动将 VIP 转移,你可以按照以下步骤进行:
1. **安装 Keepalived**:
如果还没有安装,可以使用 apt-get 或 yum 安装:`sudo apt-get install keepalived` (Debian/Ubuntu) 或 `sudo yum install keepalived` (CentOS/RHEL)。
2. **配置虚拟路由器(VIP)**:
编辑 `/etc/keepalived/keepalived.conf` 文件,添加至少两个虚拟路由器实例,每个代表一个网口。例如:
```
vrrp_instance VI_1 {
interface <interface_1>;
virtual_router_id <id>;
priority <priority>;
advert_int <advertise_interval>;
track_script {
path /usr/local/bin/trace_script;
weight <weight>;
}
}
vrrp_instance VI_2 {
interface <interface_2>;
// ...类似配置
}
```
其中 `<interface_1>` 和 `<interface_2>` 替换为实际的网络接口名,`<id>`, `<priority>` 和 `<advertise_interval>` 分别是虚拟路由器ID、优先级和通告间隔,`<weight>` 表示跟踪脚本的权重,通常选择较大的值以便更快地切换。
3. **创建跟踪脚本(trace_script)**:
编写一个追踪脚本来检查网络接口的状态,如检测 ping 或 IP可达性。例如:
```bash
#!/bin/bash
# trace_script.sh
if ! command -v ip &>/dev/null; then
echo "ip command not found, using ifconfig"
command -v ifconfig || exit 1
ip=ifconfig
else
ip=ip
fi
if $ip addr show dev $1 | grep -q -w "$2"; then
return 0
else
return 1
fi
```
这里假设 `$1` 是网卡名称,`$2` 是需要检测的IP地址。将此脚本保存到指定路径,并赋予执行权限 (`chmod +x /usr/local/bin/trace_script`)
4. **启用和启动 Keepalived**:
保存配置文件后,重启 Keepalived 使更改生效,并启动它:`sudo service keepalived restart`。
5. **测试和监视**:
确保在两个网口都正常工作时,跟踪脚本会返回 0,表示成功;当其中一个网口不可达时,跟踪脚本返回非零值,Keepalived 将会切换 VIP 到另一个健康的网口。
阅读全文