Testando o endereço IP virtual de um cluster mirror do SafeKit na sua rede
Este guia descreve como verificar se o endereço IP virtual (VIP) de um cluster mirror SafeKit (módulo mirror) funciona corretamente em sua rede: o IP virtual (VIP) é mantido pelo servidor primário e é redirecionado para o novo servidor primário após uma falha.
1. Princípios-chave
Pré-requisito: ambos os nós do cluster mirror devem estar na mesma sub-rede IP de camada 2: uma LAN ou uma VLAN estendida entre locais remotos.
- O IP Virtual (VIP) está ativo apenas no servidor primário (estados PRIM ou ALONE): ele é definido como um alias do endereço IP físico, na placa de rede desse endereço, quando o módulo é iniciado como primário no nó (configuração
where="one_side_alias"). - O endereço MAC do servidor primário é, portanto, o associado ao IP Virtual (VIP) nas tabelas ARP (roteador, gateway, clientes na mesma sub-rede). Todo o tráfego para o IP Virtual (VIP) é enviado para o primário.
- Durante um failover (parada ou falha do primário), o IP Virtual (VIP) é removido do antigo primário e definido como um alias no novo primário. Dois mecanismos permitem então que a rede associe o IP Virtual (VIP) ao endereço MAC do novo primário:
- as mensagens de rede enviadas pelo sistema operacional quando o IP virtual (VIP) é adicionado como um alias na placa de rede;
- os GARPs (ARP gratuito) enviados pelo SafeKit, quando o atributo
arpreroute="on"é configurado na seção<vip>.
O que você precisa testar:
- o IP virtual (VIP) é mantido pelo servidor principal e pode ser acessado pelos clientes;
- o endereço MAC associado ao IP virtual (VIP) é redirecionado para o novo primário na rede (roteador, gateway, virtualização) quando o servidor primário muda.
2. Pré-requisito: configuração de IP virtual (VIP)
No
userconfig.xmldo módulo mirror, configure o IP virtual (VIP) na seção<vip>. O atributoarpreroute="on"faz com que o novo primário envie GARPs após um failover:<vip> <interface_list> <interface arpreroute="on"> <real_interface> <virtual_addr addr="<VIP>" where="one_side_alias"/> </real_interface> </interface> </interface_list> </vip>Aplique a configuração em ambos os nós.
Inicie o módulo: um nó deve estar PRIM (Ready) e o outro SECOND (Ready).
3. Teste 1 – IP virtual (VIP) mantido pelo servidor principal
Passos
- No servidor principal, execute o
ipconfig(Windows) ouip addr show(Linux). → Resultado esperado: o IP virtual (VIP) aparece como um alias na placa de rede do endereço IP físico. - No servidor secundário, execute o mesmo comando. → Resultado esperado: o IP virtual (VIP) não aparece.
- A partir de uma estação de trabalho do cliente fora do cluster,
pingos dois endereços IP físicos e para o IP virtual (VIP). → Resultado esperado: todos os três comandospingrespondem (a menos que sejam filtrados por firewalls). - Verifique o acesso através do IP Virtual (VIP) com o mosaico do SafeKit: a partir de um navegador no cliente externo, conecte-se a
http://<VIP>:9010/safekit/mosaic.html(ou use a porta 9453 se o servidor web e o console do SafeKit tiverem sido alterados para HTTPS), em seguida, insira o nome do módulo mirror e execute o teste. → Resultado esperado: todas as células do mosaico exibem o nome do servidor primário, em uma única cor: todas as conexões TCP para o IP virtual (VIP) são atendidas pelo primário.

4. Teste 2 – Failover manual (parada do primário)
Este teste verifica se o IP virtual (VIP) segue o servidor principal durante um failover, acionado pela interrupção do módulo no servidor principal.
Passos
- Pare o módulo no primário (nó 1) a partir do console SafeKit (ou da linha de comando com
safekit stop -m <module>). → Resultado esperado: o nó 1 vai para STOP (NotReady) e o nó 2 vai para ALONE (Ready). No log do novo primário, aparece a mensagemVirtual IP <VIP> set. - Na nova interface primária, execute o
ipconfigouip addr show. → Resultado esperado: o IP virtual (VIP) agora aparece como um alias neste nó e não mais no nó principal anterior. - A partir da estação de trabalho do cliente, repita os três comandos
pinge execute o mosaico novamente no IP virtual (VIP). → Resultado esperado: tudo responde e todas as células do mosaico agora exibem o nome do novo primário, em uma única cor. - Reinicie o módulo no nó 1: ele resincroniza e vai para SECOND (Ready), enquanto o nó 2 vai para PRIM (Ready).
5. Teste 3 – Verificando o redirecionamento de MAC com arp -a
Você anota o endereço MAC associado ao IP Virtual (VIP) antes do failover e, em seguida, verifica se ele foi alterado.
Este teste só é possível se a estação de trabalho do cliente estiver na mesma sub-rede IP do cluster.
Se houver um roteador entre o cliente e o cluster, a tabela ARP do cliente não conterá o IP virtual (VIP), mas o endereço do gateway usado para acessar a rede do cluster. Nesse caso, verifique a tabela ARP do roteador ou gateway com a equipe de rede.
Passos
- O módulo está PRIM (Ready) no nó 1 e SECOND (Ready) no nó 2.
- Na estação de trabalho do cliente,
pingnos dois endereços IP físicos e no IP virtual (VIP) e, em seguida, executearp -a. → Resultado esperado: o IP virtual (VIP) está associado ao mesmo endereço MAC que o endereço IP físico do primário. stopo módulo no primário (nó 1).pingno IP virtual (VIP) novamente e, em seguida, executearp -anovamente. → Resultado esperado: o IP virtual (VIP) agora está associado ao mesmo endereço MAC que o endereço IP físico do novo primário.
pingno IP virtual (VIP) novamente antes de ler a tabela ARP: a entrada pode estar marcada como obsoleta e só será atualizada após umping.
Exemplo da tabela ARP esperada, antes e depois de o primário ser parado:
| Endereço | MAC antes da parada | MAC após a parada |
|---|---|---|
| IP físico do nó 1 | MAC do Nó 1 | MAC do Nó 1 |
| IP físico do nó 2 | MAC do Nó 2 | MAC do Nó 2 |
| IP Virtual (VIP) | MAC do Nó 1 | MAC do Nó 2 |
6. Teste 4 – Verificação de ponta a ponta com Wireshark (Windows) ou tcpdump (Linux)
Você pode seguir uma conexão TCP para o IP virtual (VIP) capturando pacotes no cliente e em ambos os nós: com o Wireshark em máquinas Windows e com o tcpdump em máquinas Linux.
Você deve observar os cabeçalhos MAC (Ethernet) dos pacotes : o endereço IP de destino permanece o IP virtual (VIP), e é o endereço MAC de destino que mostra qual nó recebe o tráfego.
O que você deve observar:
| Quando | Onde capturar pacotes | Endereços MAC observados |
|---|---|---|
| Antes da falha | cliente | MAC do cliente → MAC do nó 1 (primário) |
| Antes da falha | nó 1 | Os pacotes para o IP virtual (VIP) são recebidos; o nó 2 não recebe nada |
| Durante a falha | rede | MAC redirecionando mensagens enviadas pelo nó 2 para o IP virtual (VIP): mensagens enviadas pelo SO quando ele é definido como um alias e GARPs enviados pelo SafeKit (arpreroute="on") |
| Após a falha | cliente | MAC do cliente → MAC do nó 2 (novo primário) |
Se a estação de trabalho do cliente estiver em uma sub-rede diferente do cluster, o “MAC do cliente” visto nos nós é o endereço MAC do gateway (roteador) que conecta as duas sub-redes, e não o da estação de trabalho do cliente.
7. De quais estações de trabalho testar
O comportamento depende do caminho da rede entre o cliente e o cluster. Execute os testes 1 e 2 de cada tipo de cliente relevante para sua arquitetura:
| Localização do cliente | O que o teste verifica |
|---|---|
| O cliente está na mesma sub-rede do cluster | Atualização das tabelas ARP dos clientes (3 testes possíveis) |
| Cliente em uma sub-rede diferente (roteador, gateway, rede virtual do hipervisor) | Atualização das tabelas ARP dos clientes no roteador ou gateway |
| Máquina virtual cliente em um hipervisor que também hospeda uma máquina virtual do cluster mirror | Comportamento do switch virtual do hipervisor, que também lida com a comutação e o roteamento internos |
8. Resumo dos resultados esperados
| Teste | Ação | Resultado esperado |
|---|---|---|
| 1 | PRIM / SECOND, ipconfig, ping e mosaico | IP virtual (VIP) como um alias apenas no primário; os 3 comandos ping respondem (a menos que sejam filtrados por firewalls); o mosaico exibe apenas o primário |
| 2 | Parada do primário | IP virtual (VIP) como um alias no novo primário; mensagem Virtual IP <VIP> set ; o mosaico exibe apenas o novo primário |
| 3 | arp -a antes e depois de o primário ser parado | O IP virtual (VIP) é movido do endereço MAC do nó 1 para o do nó 2 |
| 4 | Captura do Wireshark ou tcpdump antes e depois do failover | O cliente envia para o endereço MAC do novo primário |
9. Resolução de problemas
- O IP virtual (VIP) não responde mais após o failover: as mensagens de redirecionamento de MAC não são levadas em consideração por um dispositivo no caminho (roteador, gateway, switch virtual), que continua enviando tráfego para o endereço MAC do antigo primário. Verifique o tratamento das mensagens de redirecionamento de MAC com sua equipe de rede.
- Envio de GARPs: o atributo
arpreroute="on"da seção<vip>(comarpintervalearpelapse) envia GARPs regularmente no IP Virtual (VIP) após o failover. Consulte o Guia do Usuário, seção 13.6.4 " Sintaxe<vip>“. - Diagnóstico da resolução de IP virtual (VIP) ↔ MAC: consulte o Guia do Usuário, seção 7.24 " Solução de problemas de resolução de IP virtual (VIP) ↔ MAC " e seção 7.16 " Problema com o IP virtual após o failover “.
Para mais informações:
- Como funciona um endereço IP virtual em um cluster de alta disponibilidade?
- Para balanceamento de carga com um endereço IP virtual, consulte Testando o endereço IP virtual de balanceamento de carga em um cluster farm SafeKit.