
Eu tenho um Cisco ASA[0] com um par de caixas Linux na DMZ executando Keepalived e HAproxy atuando como um par de failover de balanceamento de carga para outro par de servidores Windows, também na DMZ. Estou convencido de que Keepalived está funcionando corretamente. Posso executar ping com êxito no endereço virtual (10.0.1.8) de outro host na DMZ; quando paro o Keepalived no mestre (10.0.1.6), alguns pings falham antes que o backup (10.0.1.7) assuma o endereço virtual. Algumas falhas semelhantes acontecem quando eu reinicio o Keepalived no master. Este outro host pode ver páginas da web hospedadas nos dois servidores Windows via HAProxy quando o primário ou o secundário estão ativos.
O endereço IP virtual possui um mapeamento NAT estático para um endereço externo (digamos, 1.2.3.8). Quando tento um teste semelhante fora do firewall, os pings para 1.2.3.8 só funcionam quando o primário está ativo - quando paro o serviço Keepalived no primário, os pings de fora do firewall falham enquanto os pings de dentro da DMZ são bem-sucedidos.
Posso ver que a entrada do endereço MAC para o endereço IP virtual muda quando paro e reinicio o Keepalived no primário, de modo que o ASA parece saber quando o primário e o secundário estão ativos. No entanto, parece recusar o NAT do tráfego de entrada quando o sistema operacional secundário está ativo. Meu melhor palpite é que o ASA está tentando impedir que o endereço seja falsificado, mas neste caso eu realmente gostaria que o ASA permitisse isso. Não consigo descobrir como fazer isso (ou por onde começar, na verdade). Alguma sugestão?
[0] - Na verdade, são dois deles em uma configuração de failover, mas não acho que isso seja relevante.