Debian 13 trixie

Keepalived : VRRP インスタンスをグループ化する2025/10/09

 

複数のネットワークインターフェースに複数の VRRP インスタンスを設定する場合、グループ化すると、いずれか一方がダウンした場合に、まとめてフェイルオーバーすることができます。

当例では以下のような環境を例にします。

                              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] プライマリーとするノードでの設定です。
root@node01:~#
vi /etc/keepalived/keepalived.conf
global_defs {
    router_id node01
}

# グループ化の設定
vrrp_sync_group VG1 {
    group {
        INTERNAL
        EXTERNAL
    }
}

# VRRP インスタンスの設定
vrrp_instance INTERNAL {
    state MASTER
    interface enp1s0
    virtual_router_id 101
    priority 200
    advert_int 1
    virtual_ipaddress {
        10.0.0.30/24
    }
}

# VRRP インスタンスの設定
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] バックアップとするノードでの設定です。
root@node02:~#
vi /etc/keepalived/keepalived.conf
global_defs {
    router_id node02
}

# グループ化の設定
vrrp_sync_group VG1 {
    group {
        INTERNAL
        EXTERNAL
    }
}

# VRRP インスタンスの設定
vrrp_instance INTERNAL {
    state BACKUP
    interface enp1s0
    virtual_router_id 101
    priority 100
    advert_int 1
    virtual_ipaddress {
        10.0.0.30/24
    }
}

# VRRP インスタンスの設定
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] 以上で設定完了です。プライマリーノードでリンクを落とす等して、仮想 IP アドレス全てがバックアップノードに切り替わるか確認しておきます。
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:~#
ip link set down enp1s0
root@node01:~#
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
関連コンテンツ