VRRP协议-IP地址冗余配置
有两个服务器172.16.42.1和172.16.42.121,通过VRRP协议使两台设备共用一个虚拟地址172.16.42.100,当 172.16.42.1 可用时,它会作为主路由器使用虚拟 IP 地址;当它不可用时,172.16.42.121 会接管虚拟 IP 地址,确保网络的高可用性。这样,无论主服务器是否可用,虚拟 IP 地址始终保持可访问。
以下是配置 VRRP 的步骤:
假设和前提条件
- Server 1:
172.16.42.1
(主服务器) - Server 2:
172.16.42.121
(备用服务器) - 虚拟 IP 地址:
172.16.42.100
(虚拟地址,用于客户端访问)
配置步骤
1. 配置 Server 1(主服务器)
-
登录到 Server 1。
-
编辑网络接口配置文件,假设使用
eth0
作为接口。对于 Linux 系统(如 CentOS 或 Ubuntu)来说,可以使用以下命令:
sudo ip addr add 172.16.42.100/24 dev eth0
-
启用 VRRP 协议并配置 VRRP 设置。假设你使用的是 Keepalived 来配置 VRRP。安装 Keepalived(如果没有安装):
sudo apt-get install keepalived # Ubuntu/Debian sudo yum install keepalived # CentOS/RedHat
-
配置 Keepalived,编辑
/etc/keepalived/keepalived.conf
文件,进行以下配置:vrrp_instance VI_1 {state MASTERinterface eth0 # 使用的网络接口virtual_router_id 51 # VRRP 虚拟路由器 ID,保持一致priority 101 # 优先级 101,主服务器的优先级较高advert_int 1 # 广播间隔,单位:秒virtual_ipaddress {172.16.42.100 # 虚拟 IP 地址} }
配置说明:
- state MASTER:将此服务器设置为主路由器。
- priority 101:主服务器的优先级设置为 101,确保它是主路由器。
- virtual_ipaddress:指定共享的虚拟 IP 地址
172.16.42.100
。
-
启动并启用 Keepalived 服务:
sudo systemctl start keepalived sudo systemctl enable keepalived
2. 配置 Server 2(备用服务器)
-
登录到 Server 2。
-
同样添加虚拟 IP 地址
172.16.42.100
:sudo ip addr add 172.16.42.100/24 dev eth0
-
配置 Keepalived,编辑
/etc/keepalived/keepalived.conf
文件,进行以下配置:vrrp_instance VI_1 {state BACKUPinterface eth0 # 使用的网络接口virtual_router_id 51 # VRRP 虚拟路由器 ID,必须与主服务器一致priority 100 # 优先级 100,备用服务器的优先级较低advert_int 1 # 广播间隔,单位:秒virtual_ipaddress {172.16.42.100 # 虚拟 IP 地址} }
配置说明:
- state BACKUP:将此服务器设置为备用路由器。
- priority 100:备用服务器的优先级设置为 100,确保它在主服务器故障时接管虚拟 IP 地址。
-
启动并启用 Keepalived 服务:
sudo systemctl start keepalived sudo systemctl enable keepalived
3. 验证配置
-
检查 VRRP 状态:在两台服务器上执行以下命令,检查 VRRP 状态,确保主服务器和备用服务器的角色正确:
sudo systemctl status keepalived
或者使用:
sudo vrrp -s
你应该能看到主服务器(
172.16.42.1
)的状态是 MASTER,备用服务器(172.16.42.121
)的状态是 BACKUP。 -
测试故障转移:
- 如果主服务器 172.16.42.1 失效,备用服务器 172.16.42.121 会自动接管虚拟 IP 地址 172.16.42.100。
- 你可以通过断开 172.16.42.1 服务器的网络连接来模拟故障,看看 172.16.42.121 是否会接管虚拟 IP 地址。
测试步骤:
- 在 Server 1 上断开网络接口:
sudo ifconfig eth0 down
- 在 Server 2 上检查虚拟 IP 地址是否已绑定:
ip addr show eth0
-
恢复主服务器:
- 当主服务器 172.16.42.1 恢复时,虚拟 IP 地址会自动返回到 172.16.42.1(由于
preempt
功能已启用,主服务器会重新接管虚拟 IP)。
- 当主服务器 172.16.42.1 恢复时,虚拟 IP 地址会自动返回到 172.16.42.1(由于