У мене була точно така ж проблема, проте моя проблема була не в брандмауері, ані в адаптері Ethernet, а в налаштуваннях "ваги" контрольного сценарію.
Це була моя конфігурація:
МАЙСТЕР:
vrrp_instance haproxy {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
НАЗАД:
vrrp_instance haproxy {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
Контрольний сценарій:
vrrp_script chk_haproxy {
script "python /root/ha_check.py"
interval 2 # check every 2 seconds
weight 2
rise 2
fall 2
}
Причина, від якої майстер відмовлявся випускати VIP, полягав у тому, що, незважаючи на те, що сценарій не вдався, він все ще мав більш високий пріоритет від сервера BACKUP. Це сталося тому, що налаштування "ваги" для check_script було недостатньо, щоб покрити "GAP" між номером пріоритету, тобто збільшив номер пріоритету на сервері BACKUP, більший за один з MASTER Server. Я поясню далі:
Згідно з посібником із збереженої ваги, позитивне число у налаштуваннях "вага" додасть це число до пріоритету, якщо перевірка буде успішною.
Відмовне число відніме це число від пріоритетного, якщо перевірка не вдасться.
Отже, відповідно до моєї конфігурації:
Пріоритети сервера Попередній збій сценарію:
MASTER: 152
BACKUP: 100
Failover_IP: MASTER
Ip відключення правильно "схопили" головним сервером, оскільки Master має більш високий пріоритет порівняно з резервним сервером (152> 100)
Пріоритети сервера ПІСЛЯ відмови сценарію:
MASTER-сервер: 148
BACKUP-сервер: 102
Failover_IP: ВІДПОВІДЬ НА MASTER
Ip відключення все ще знаходиться на головному сервері, оскільки Master знову має більший пріоритет порівняно з BACKUP (148> 102). Сервер MASTER відмовився випускати IP-адресу, і це він зробив, оскільки його пріоритет був вищим, ніж у іншого сервера.
Вирішенням моєї ситуації було:
Рішення -1: Змініть номер пріоритету обох серверів, щоб у них не було багато "GAP".
Наприклад:
Основний пріоритет: 150
Пріоритет резервного копіювання: 149
Вага контрольної скрипту: Як є (2).
При наведеній вище конфігурації, коли сценарій успішний (мається на увазі все нормально), пріоритетами були б:
Master: 152
Резервне копіювання: 149
IP_Location: On Master (152> 149)
Якщо сценарій не працює:
Master: 150
Резервне копіювання: 151
IP_Location: У режимі резервного копіювання (151> 150)
Рішення - 2: Змініть кількість ваги сценарію з 2, на -60