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
}
}
- Оба сервера могут обмениваться рекламными пакетами VRRP и становиться главным и подчиненным.
- Если VIP-адрес настроен вручную на eno2, мы можем пропинговать его.
-
sysctl net.ipv4.ip_nonlocal_bind=1а такжеsysctl net.ipv4.ip_forward=1настройки сделаны. - Но когда виртуальный 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.