corosync vinculando a 127.0.0.1 em vez da interface correta

3

Eu tenho o seguinte problema ao tentar implementar um cluster de failover de dois nós, usando o Hetzner como provedor de hospedagem.

meu corosync.conf é o seguinte:

# Please read the corosync.conf.5 manual page
compatibility: whitetank

totem {
version: 2
secauth: off
interface {
    member {
        memberaddr: 144.76.91.XXX
    }
    member {
        memberaddr: 5.9.121.XXX
    }
    ringnumber: 0
    bindnetaddr: 5.9.121.0
    mcastport: 5405
    ttl: 1
}
transport: udpu
}

logging {
fileline: off
to_logfile: yes
to_syslog: yes
debug: on
logfile: /var/log/cluster/corosync.log
debug: off
timestamp: on
logger_subsys {
    subsys: AMF
    debug: off
}
}

o problema é que 5.9.121.XXX se liga corretamente (e aparece sob crm_mon para fazer parte do cluster)

udp 0 0 5.9.121.XXX:5405 0.0.0.0:* 8281 / corosync

mas 144.76.91.XXX falha e se liga ao localhost em seu lugar.

udp 0 0 127.0.0.1:5405 0.0.0.0:* 7889 / corosync

A análise dos logs do tcpdump indica que 144.76.91.XXX responde a 5.9.121.XXX com um tipo 3 de ICMP (destination inacessível), código 3 (porta inacessível).

corosync -f a saída será impressa repetidamente:

Jun 24 12:53:28 corosync [TOTEM] O Totem não pode formar um cluster devido a um sistema operacional ou falha de rede. A causa mais comum dessa mensagem é que o firewall local está configurado incorretamente.

O tráfego UDP é ativado entre os 2 hosts, não há firewalls no lugar e estou usando o Debian (portanto, não há SELinux).

Alguma idéia para um trabalho entre esta questão? É possível criar um cluster com duas máquinas em diferentes sub-redes ou eu preciso solicitar servidores dentro da mesma sub-rede? Agradecemos antecipadamente por qualquer resposta.

    
por thanasisk 24.06.2013 / 13:46

1 resposta

2

Da lista de discussão (que resolveu meu problema), cortesia de Dan Friscu:

"Você não deve usar o mesmo bindnetaddr em ambos os lugares, é relevante somente no nível do nó para UDPU (seu caso de uso). No nó onde você tem o endereço 144. *, use-o como bindnetaddr."

Espero que isso seja útil para alguém.

    
por 26.06.2013 / 09:31