Keepalived para mais de 20 endereços virtuais

Keepalived para mais de 20 endereços virtuais

Configurei o keepalived em duas máquinas Debian para alta disponibilidade, mas encontrei o número máximo de IPs virtuais que posso atribuir ao meu arquivo vrrp_instance. Como eu configuraria e falharia em mais de 20 IPs virtuais?

Esta é a configuração muito simples:

LB01: 10.200.85.1
LB02: 10.200.85.2
Virtual IPs: 10.200.85.100 -  10.200.85.200

Cada máquina também está executando a ligação Apache (mais tarde Nginx) nos IPs virtuais para terminação de certificado de cliente SSL e proxy para servidores web de back-end. A razão pela qual preciso de tantos VIPs é a incapacidade de usar o VirtualHost em HTTPS.

Este é o meu keepalived.conf:

vrrp_script chk_apache2 {
        script "killall -0 apache2"
        interval 2
        weight 2
}

vrrp_instance VI_1 {
        interface eth0
        state MASTER
        virtual_router_id 51
        priority 101
        virtual_ipaddress {
            10.200.85.100
            .
            . all the way to
            .
            10.200.85.200
}

Uma configuração idêntica está na máquina BACKUP e está funcionando bem, mas apenas até o 20º IP.

Eu encontrei umCOMOdiscutindo esse problema. Basicamente, eles sugerem ter apenas um VIP e rotear todo o tráfego “através” deste IP, e “tudo ficará bem”. Será esta uma boa abordagem? Estou executando firewalls pfSense na frente das máquinas.

Citação do link acima:

ip route add $VNET/N via $VIP

or

route add $VNET netmask w.x.y.z gw $VIP

Desde já, obrigado.

EDITAR:

@David Schwartz disse que faria sentido adicionar uma rota, então tentei adicionar uma rota estática ao firewall pfSense, mas não funcionou como eu esperava.

Rota pfSense:

Interface:            LAN
Destination network:  10.200.85.200/32 (virtual IP)
Gateway:              10.200.85.100    (floating virtual IP)
Description:          Route to VIP .100

Também me certifiquei de ter o encaminhamento de pacotes habilitado em meus hosts:

$ cat /etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.ip_nonlocal_bind=1

Estou fazendo isso errado? Também removi todos os VIPs do keepalived.conf para que ele falhe apenas em 10.200.85.100.

Responder1

A solução mais simples sem alterar sua arquitetura atual é usarvirtual_ipaddress_excluído. Por exemplo

vrrp_instance VI_1 {
    interface eth0
    state MASTER
    virtual_router_id 51
    priority 101

    virtual_ipaddress {
        10.200.85.100
    }

    virtual_ipaddress_excluded {
        10.200.85.101
        . all the way to
        10.200.85.200
    }
}

virtual_ipaddress_excluídocontém uma lista de endereços IP que o keepalived ativará e desativará no servidor, porém eles não estão incluídos no próprio pacote VRRP, portanto não contam para o limite de 20 endereços IP.

Nas minhas configurações gosto de alocar um IP especificamente paraendereço_ip_virtual. ou seja, aquele que está incluído nos pacotes VRRP e coloca todo o resto emvirtual_ipaddress_excluído. Esta é uma boa ideia porque você não quer ter que alterar o IP principal só porque um cliente saiu.

Responder2

Desculpe por responder a uma pergunta tão antiga, mas acho que esse limite não existe mais - não encontro nada nodocumentação em relação a um número máximo de IPs virtuais. Alguém poderia me apoiar nisso? Obrigado!

informação relacionada