Eu tenho um Cisco ASA [0] com um par de caixas Linux na DMZ executando Keepalived e HAproxy agindo como um par de failover de balanceamento de carga para outro par de servidores Windows, também na DMZ. Estou convencido que o Keepalived está funcionando corretamente. Eu posso ping com sucesso o endereço virtual (10.0.1.8) de outro host no DMZ; quando eu paro Keepalived no mestre (10.0.1.6) alguns pings falham antes do backup (10.0.1.7) assumir o endereço virtual. Algumas falhas semelhantes acontecem quando eu reinicio o Keepalived no mestre. Esse outro host pode ver páginas da Web hospedadas nos dois servidores Windows via HAProxy quando o primário ou o secundário estiver ativo.
O endereço IP virtual tem um mapeamento NAT estático para um endereço externo (digamos, 1.2.3.8). Quando eu tento um teste semelhante fora do firewall, pings para 1.2.3.8 só funcionam quando o primário está ativo - quando eu paro o serviço Keepalived no primário, pings de fora do firewall falham enquanto pings de dentro do DMZ são bem-sucedidos.
Eu posso ver que a entrada do endereço MAC para o endereço IP virtual muda quando eu paro e reinicio o Keepalived no primário, então o ASA parece saber quando o primário e o secundário estão ativos. Parece recusar ao NAT o tráfego de entrada quando o sistema operacional secundário estiver 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 o permitisse. Eu não consigo descobrir como fazer isso (ou por onde começar, na verdade). Alguma sugestão?
[0] - Na verdade, é um par deles em uma configuração de failover, mas não acho que seja relevante.
Tags nat arp failover mac-address cisco-asa