Keepalived : Group VRRP instances2025/10/09 |
|
To group multiple VRRP instances, it's possible to make them failover in sync when trouble happens on an interface in the group. This example is based on the environment like follows.
VIP:10.0.0.30
+----------------------+ enp1s0 | enp1s0+----------------------+
| [node01.srv.world] |10.0.0.51 | 10.0.0.52| [node02.srv.world] |
| Keepalived#1 +------------+------------+ Keepalived#2 |
| |192.168.0.51|192.168.0.52| |
+----------------------+enp7s0 | enp7s0+----------------------+
VIP:192.168.0.30
|
| [1] | Configure Keepalived on the Primary Node. |
|
root@node01:~#
vi /etc/keepalived/keepalived.conf
global_defs {
router_id node01
}
# group setting
vrrp_sync_group VG1 {
group {
INTERNAL
EXTERNAL
}
}
# VRRP instance setting
vrrp_instance INTERNAL {
state MASTER
interface enp1s0
virtual_router_id 101
priority 200
advert_int 1
virtual_ipaddress {
10.0.0.30/24
}
}
# VRRP instance setting
vrrp_instance EXTERNAL {
state MASTER
interface enp7s0
virtual_router_id 201
priority 200
advert_int 1
virtual_ipaddress {
192.168.0.30/24
}
}
root@node01:~# systemctl restart keepalived
|
| [2] | Configure Keepalived on the Backup Node. |
|
root@node02:~#
vi /etc/keepalived/keepalived.conf
global_defs {
router_id node02
}
# group setting
vrrp_sync_group VG1 {
group {
INTERNAL
EXTERNAL
}
}
# VRRP instance setting
vrrp_instance INTERNAL {
state BACKUP
interface enp1s0
virtual_router_id 101
priority 100
advert_int 1
virtual_ipaddress {
10.0.0.30/24
}
}
# VRRP instance setting
vrrp_instance EXTERNAL {
state BACKUP
interface enp7s0
virtual_router_id 201
priority 100
advert_int 1
virtual_ipaddress {
192.168.0.30/24
}
}
root@node02:~# systemctl restart keepalived
|
| [3] | That's OK. Verify failover. |
|
root@node01:~# ip address show enp1s0; ip address show enp7s0
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:0a:a7:f3 brd ff:ff:ff:ff:ff:ff
altname enx5254000aa7f3
inet 10.0.0.51/24 brd 10.0.0.255 scope global enp1s0
valid_lft forever preferred_lft forever
inet 10.0.0.30/24 scope global secondary proto keepalived enp1s0
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe0a:a7f3/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:11:e5:5b brd ff:ff:ff:ff:ff:ff
altname enx52540011e55b
inet 192.168.0.51/24 brd 192.168.0.255 scope global enp7s0
valid_lft forever preferred_lft forever
inet 192.168.0.30/24 scope global secondary proto keepalived enp7s0
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe11:e55b/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
root@node01:~#
root@node01:~# ip link set down enp1s0
ip address show enp1s0; ip address show enp7s0
2: enp1s0: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 52:54:00:0a:a7:f3 brd ff:ff:ff:ff:ff:ff
altname enx5254000aa7f3
inet 10.0.0.51/24 brd 10.0.0.255 scope global enp1s0
valid_lft forever preferred_lft forever
3: enp7s0: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:11:e5:5b brd ff:ff:ff:ff:ff:ff
altname enx52540011e55b
inet 192.168.0.51/24 brd 192.168.0.255 scope global enp7s0
valid_lft forever preferred_lft forever
inet6 fe80::5054:ff:fe11:e55b/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
|
| Sponsored Link |
|
|