Keepalived sobre o túnel GRE para o failover no ambiente VPS

3

Estou executando um aplicativo no Linode. Sua rede não suporta multicast. Muitas ferramentas usadas para failover (keepalived, spread / wackamole, hearbeat) exigem que o multicast funcione (até onde eu sei). Eu li a documentação para todos eles, e até mesmo no modo "unicast" (se eles tiverem) ainda envia multicast.

Eu sei que com um túnel GRE, eu posso efetivamente enviar multicast sem o conhecimento do roteador, o que me daria a habilidade de usar uma dessas ferramentas (por enquanto eu gostaria de usar keepalived).

Eu configurei meu túnel no dispositivo "gretun" da seguinte forma:
10.0.0.1 é o ponto de interface do túnel para www1 10.0.0.2 é o ponto de interface do túnel para www2
Eu posso nc 10.0.0.2 80 de www1 e nc 10.0.0.1 80 de www2, então parece estar funcionando. Finja que o IP público que estou tentando compartilhar é 69.164.69.69.

Eu tenho duas perguntas:
Depois de configurar keepalived para monitorar o túnel (gretun), as duas máquinas ainda não podem ver uma a outra. Aqui está minha configuração:

global_defs {
    notification_email {
             [email protected]
    }

    notification_email_from [email protected]
    smtp_server localhost
    smtp_connect_timeout 30
    router_id www1.app.com
}

vrrp_script chk_haproxy {
    script "killall -0 haproxy"
    interval 2
    weight 2
}

vrrp_instance VI_1 {
    state MASTER
    interface gretun
    virtual_router_id 51
    priority 100

    advert_int 1
    garp_master_delay 2

    smtp_alert

    authentication {
            auth_type PASS
            auth_pass password
    }

    virtual_ipaddress {
            69.164.69.69/24 dev eth0
    }

    track_script {
            chk_haproxy
    }
}

Tanto o www1 quanto o www2 estão pegando o IP compartilhado ao mesmo tempo, eu acho que eles não podem falar um com o outro. Alguma idéia de por que usar "gretun" não permitirá que eles falem um com o outro?

Segunda pergunta: É possível configurar um túnel para que eu possa ter mais de 3 máquinas conectadas umas às outras e usando multicast? Em outras palavras, em vez de configurar diferentes túneis entre cada combinação diferente de nós, basta ter nós "unidos" a um túnel, por assim dizer, para que eles possam se auto-descobrir?

As perguntas podem ser estúpidas, mas eu não sou um guru de rede, esta é minha primeira experiência usando túneis em todos os fora do ssh. Também estou aberto a conselhos que resolverão meu problema fora do que estou fazendo.

Obrigado!

    
por andrew 03.10.2010 / 03:02

2 respostas

9

Se você estiver interessado, eu tenho um patch para keepalived que permite usar unicast entre um VIP local e um remoto. Eu tenho usado com sucesso no vps.net entre máquinas virtuais. É muito mais simples do que tentar montar um túnel! Eu fiz o upload lá:

link

Você só precisa especificar "vrrp_unicast_bind" e "vrrp_unicast_peer". Ele ainda usará o protocolo VRRP, mas apenas entre esses IPs.

Esperando que isso ajude!

    
por 03.10.2010 / 08:28
0

No AWS, ele pode funcionar no ambiente VPS, mas falhará no ambiente EC2 normal, pois você não pode abrir uma regra de protocolo não processada (112 para VRRP) no grupo de segurança.

    
por 21.01.2013 / 04:52