Ubuntu 20.04.1 Server, объединенные сетевые интерфейсы, keepalived не работает

Ubuntu 20.04.1 Server, объединенные сетевые интерфейсы, keepalived не работает

Я настроил связанные сетевые интерфейсы, чтобы обеспечить большую HA для настройки HaProxy (HaProxy — это балансировщик нагрузки Linux) keepalivedна двух серверах Ubuntu 20.04.1 LTS. Связанные сетевые интерфейсы, настроенные с помощью netplan, работают правильно, а настройка с помощью keepalived. Однако keepalivedне обрабатывает главный и резервный узлы кластера keepalivedдолжным образом, и оба отображаются как главные.

# This file is generated from information provided by the datasource.  Changes
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
   version: 2
   ethernets:
     eth0:
      dhcp4: true
     eth1: 
      dhcp4: false
     eth2: 
      dhcp4: false
   bonds:
    bond0:
     dhcp4: false
     interfaces:
        - eth1
        - eth2
     parameters:
       mode: active-backup
       primary: eth1
     addresses: 
         - 192.168.0.6/24
     nameservers: 
       addresses: 
         - 192.168.0.1

vrrp_instance VI_01 {
    state MASTER
    interface bond0
    virtual_router_id 51
    priority 101
    advert_int 1
    virtual_ipaddress {
        192.168.0.10/24
    }

vrrp_instance VI_01 {
    state BACKUP
    interface bond0
    virtual_router_id 51
    priority 100
    advert_int 1
    virtual_ipaddress {
        192.168.0.10/24
    }
}

Кто-нибудь знает, как это исправить?

Спасибо,

Лео

решение1

Попробовав решение, которое включало добавление mac-адресов в конфигурацию netplan, я обнаружил, что та же проблема с keepalived возникала, а именно, что обе машины отображались как master. Дальнейшее расследование показало, что mac-адрес, используемый для связанного интерфейса на обоих серверах, был идентичен, что и оказалось проблемой.

Изменение имени связанного интерфейса в netplan на втором сервере на bond1 (а не bond0), а затем использование этого имени в файле конфигурации keepalived решило проблему, так как оба связанных интерфейса имели уникальные mac-адреса. Keepalived может правильно определить, какой сервер является главным, а какой — резервным.

Спасибо за помощь,

Лео

Связанный контент