Назад | Перейти на главную страницу

VIP не удаляется из резервной копии keepalived

Возможно, я не понимаю, как это должно работать, но я не могу понять, почему система РЕЗЕРВНОГО КОПИРОВАНИЯ с этим базовым vrrp_instance сразу же переходит в мастерскую и, кажется, никогда не соблюдает приоритет.

Почему бы виртуальному IP-адресу не выпадать из системы резервного копирования, когда и то, и другое исправно и подключено к сети?

Похоже, обе системы транслируют рекламу vrrp. Из tcpdump в системе резервного копирования:

betaproxyslc01.fakecorp.com> vrrp.mcast.net: vrrp betaproxyslc01.fakecorp.com> vrrp.mcast.net: VRRPv2, Реклама, vrid 51, prio 150, authtype simple, intvl 1s, length 20,> addrs: virtual-app.fakecorp.com auth "пароль" 15: 52: 24.541637 IP (tos 0xc0, ttl 255, id 1611, смещение 0, флаги [нет], протокол VRRP (112), длина 40)

betaproxyslc02.fakecorp.com> vrrp.mcast.net: vrrp betaproxyslc02.fakecorp.com> vrrp.mcast.net: VRRPv2, Реклама, vrid 51, prio 100, authtype simple, intvl 1s, length 20,> addrs: virtual-app.fakecorp.com auth "пароль" 15: 52: 25.410073 IP (tos 0xc0, ttl 255, id 1779, смещение 0, флаги [нет], протокол VRRP (112), длина 40)

но виртуальный IP-адрес отображается на обоих хостах с ip addr команда.

Вот конфиг:

global_defs {
   notification_email {
   me@fakecorp.com
   }
   notification_email_from keepalived@betaproxyslc01.fakecorp.com
   smtp_server mysmtpserver.fakecorp.com
   smtp_connect_timeout 30
   router_id BETAPROXYSLC01
}

vrrp_script chk_haproxy{
   script "killall -0 haproxy"
   interval 2 # check every 2 seconds
   weight 2   # add 2 points of prio if OK
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 150
    advert_int 1
    notify /usr/local/bin/notify.sh
    authentication {
        auth_type PASS
        auth_pass keep0ut!
    }
    virtual_ipaddress {
        10.10.0.40
    }
    track_script{
        chk_haproxy
    }
}

На сервере BACKUP другой router_id, состояние BACKUP и приоритет 100. Остальные настройки такие же.

Это при установке CentOS 7 с Keepalived v1.2.10 (06.10.2014), гостевой виртуальной машине Hyper-V с ядром 3.10.0-123.8.1.el7.x86_64.

Для связи VRRP между маршрутизаторами используется групповой IP-адрес 224.0.0.18.[1] и номер протокола IP 112[2].

Таким образом, вам нужно только разрешить входящий и исходящий трафик с этими конкретными параметрами для правильной работы VRRP. Обычно упоминаемые правила брандмауэра избыточны и излишне широко сформулированы.

Я предлагаю вам использовать эти правила брандмауэра:

firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface eth0 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --out-interface eth0 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
firewall-cmd --reload

[1] http://tools.ietf.org/html/rfc5798#section-5.1.1.2
[2] http://tools.ietf.org/html/rfc5798#section-5.1.1.4

Ссылка на информацию брандмауэра в конце эта страница Мне удалось заставить его работать, открыв брандмауэр с помощью:

firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -i eth0 -d 224.0.0.0/8 -j ACCEPT
firewall-cmd --direct --perm --add-rule ipv4 filter INPUT 0 -i eth0 -d 224.0.0.0/8 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p vrrp -i eth0 -j ACCEPT
firewall-cmd --direct --perm --add-rule ipv4 filter INPUT 0 -p vrrp -i eth0 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -p vrrp -o eth0 -j ACCEPT
firewall-cmd --direct --perm --add-rule ipv4 filter OUTPUT 0 -p vrrp -o eth0 -j ACCEPT

Казалось, нужны только первые (два) варианта. Как только я установил правило для приема трафика на многоадресный адрес, система резервного копирования обнаружила трафик vrrp, вернулась в режим резервного копирования и отозвала VIP. Я полагаю, что меня смутило то, что я мог видеть многоадресный трафик из обеих систем на обеих системах с помощью tcpdump.