Keepalived Virtual IP не отвечает на запросы ARP Ubuntu 20.04 Server

Я не могу пропинговать виртуальный IP-адрес keepalived. Я проверил и обнаружил, что keepalived не отправляет запросы или ответы ARP.

В моей конфигурации у меня есть 2 сервера, работающих на Ubuntu 20.04 с keepalived(2.0.19):

контроллер1: 192.168.2.14/24 и контроллер2: 192.168.2.15/24. IP настроен на обоих серверах на интерфейсе eno2. Цель — настроить виртуальный IP-адрес 192.168.2.100/24 ​​на том же физическом интерфейсе.

Это моя конфигурация поддержки активности на контроллере1 (мастер)

      vrrp_script chk_haproxy {      
  script "killall -0 haproxy"  # check if haproxy service is running
  interval 2                   # check every 2 seconds
  weight 15                    # add 15 points of priority if OK
}

vrrp_instance OS {
  interface eno2
  state MASTER
  virtual_router_id 1
  priority 100 # 100 on master, 90 on slave
  advert_int 1

  # minimum time interval for refreshing gratuitous ARPs while MASTER
  vrrp_garp_master_refresh 2
  vrrp_garp_master_refresh_repeat 2
  strict_mode off
  vrrp_garp_interval 0
  vrrp_gna_interval 0   
  vrrp_skip_check_adv_addr

#  use_vmac
#        vmac_xmit_base # Transmit VRRP adverts over physical interface

  unicast_src_ip 192.168.2.14 # ip of the instance
  unicast_peer {
   192.168.2.15 # ip of other instances, add more ip as necessary
  }

  authentication {
    auth_type PASS
    auth_pass keepaliveOS
  } 
    
  virtual_ipaddress {
    198.168.2.100/24 dev eno2
  }

  track_script {
    chk_haproxy
  }
}

Это моя конфигурация на контроллере2

      vrrp_script chk_haproxy {      
  script "killall -0 haproxy"  # check if haproxy service is running
  interval 2                   # check every 2 seconds
  weight 15                     # add 15 points of priority if OK
}

vrrp_instance OS {
  interface eno2
  state BACKUP
  virtual_router_id 1
  priority 90 # 100 on master, 90 on slave
  advert_int 1
  
  # minimum time interval for refreshing gratuitous ARPs while MASTER
  vrrp_garp_master_refresh 2
  vrrp_garp_master_refresh_repeat 2
  strict_mode off
  vrrp_garp_interval 0
  vrrp_gna_interval 0
  vrrp_skip_check_adv_addr
  
  unicast_src_ip 192.168.2.15 # ip of the instance
  unicast_peer {
   192.168.2.14 # ip of other instances, add more ip as necessary
  } 

  authentication {
    auth_type PASS
    auth_pass keepaliveOS
  }
    
  virtual_ipaddress {
    198.168.2.100/24
  }

  track_script {
    chk_haproxy
  }
}
  1. Оба сервера могут обмениваться рекламными пакетами VRRP и становиться главным и подчиненным.
  2. Если VIP-адрес настроен вручную на eno2, мы можем пропинговать его.
  3. sysctl net.ipv4.ip_nonlocal_bind=1а также sysctl net.ipv4.ip_forward=1настройки сделаны.
  4. Но когда виртуальный IP-адрес настроен с помощью проверки активности, его нельзя пропинговать ни с одного сервера в сети, включая ГЛАВНЫЙ. Бег tcpdump -i eno2 arpне показывает никаких ответов ARP от узлов MASTER или SLAVE.

В чем может быть проблема

1 ответ

Вы разрешили трафик специально для протокола VRRP?

Физические маршрутизаторы внутри виртуального маршрутизатора должны обмениваться данными внутри себя, используя пакеты с многоадресным IP-адресом 224.0.0.18 и номером IP-протокола 112.

(Из Википедии: https://en.wikipedia.org/wiki/Virtual_Router_Redundancy_Protocol)

У нас была аналогичная проблема, которая была решена, когда мы разрешили трафик VRRP (протокол номер 112) между узлами со службами KeepaLiveD.

Другие вопросы по тегам