Testare l’indirizzo IP virtuale di uno cluster mirror SafeKit nella propria rete
Questa guida descrive come verificare che l’indirizzo IP virtuale (VIP) di uno cluster mirror SafeKit (modulo mirror) funzioni correttamente nella rete: l’IP virtuale (VIP) è detenuto dal server primario e viene reindirizzato al nuovo server primario dopo un failover.
1. Principi chiave
Prerequisito: entrambi i nodi del cluster mirror devono trovarsi nella stessa sottorete IP di livello 2: una LAN o una VLAN estesa tra siti remoti.
- L’IP virtuale (VIP) è attivo solo sul server primario (stati PRIM o ALONE): è impostato come alias dell’indirizzo IP fisico, sulla scheda di rete di quell’indirizzo, quando il modulo si avvia come primario sul nodo (configurazione
where="one_side_alias"). - L’indirizzo MAC del server primario è quindi quello associato all’IP virtuale (VIP) nelle tabelle ARP (router, gateway, client nella stessa sottorete). Tutto il traffico verso l’IP virtuale (VIP) viene inviato al server primario.
- Durante un failover (arresto o guasto del primario), l’IP virtuale (VIP) viene rimosso dall’ex primario e impostato come alias sul nuovo primario. Due meccanismi consentono quindi alla rete di associare l’IP virtuale (VIP) all’indirizzo MAC del nuovo primario:
- i messaggi di rete inviati dal sistema operativo quando l’IP virtuale (VIP) viene aggiunto come alias sulla scheda di rete;
- i GARP (ARP gratuiti) inviati da SafeKit, quando l’attributo
arpreroute="on"è configurato nella sezione<vip>.
Cosa devi quindi testare:
- l’IP virtuale (VIP) è gestito dal server primario ed è raggiungibile dai client;
- l’indirizzo MAC associato all’IP virtuale (VIP) viene reindirizzato al nuovo server primario nella rete (router, gateway, virtualizzazione) quando il server primario cambia.
2. Prerequisito: configurazione dell’IP virtuale (VIP)
Nel file
userconfig.xmldel modulo mirror, configurare l’IP virtuale (VIP) nella sezione<vip>. L’attributoarpreroute="on"fa sì che il nuovo primario invii i GARP dopo un failover:<vip> <interface_list> <interface arpreroute="on"> <real_interface> <virtual_addr addr="<VIP>" where="one_side_alias"/> </real_interface> </interface> </interface_list> </vip>Applica la configurazione su entrambi i nodi.
Avviare il modulo: un nodo deve essere PRIM (Ready) e l’altro SECOND (Ready).
3. Test 1 – IP virtuale (VIP) gestito dal server primario
Passaggi
- Sul server primario, eseguire
ipconfig(Windows) oip addr show(Linux). → Risultato atteso: l’IP virtuale (VIP) appare come alias sulla scheda di rete dell’indirizzo IP fisico. - Sul server secondario, eseguire lo stesso comando. → Risultato atteso: l’IP virtuale (VIP) non viene visualizzato.
- Da una workstation client esterna al cluster,
pingdi entrambi gli indirizzi IP fisici e dell’IP virtuale (VIP). → Risultato atteso: tutti e tre i comandipingrispondono (a meno che non vengano filtrati dai firewall). - Controllare l’accesso tramite l’IP virtuale (VIP) con il mosaico SafeKit: da un browser sul client esterno, connettersi a
http://<VIP>:9010/safekit/mosaic.html(o utilizzare la porta 9453 se il server web e la console SafeKit sono stati commutati su HTTPS), quindi inserire il nome del modulo mirror ed eseguire il test. → Risultato atteso: tutte le celle del mosaico visualizzano il nome del server primario, in un unico colore: tutte le connessioni TCP all’IP virtuale (VIP) sono servite dal primario.

4. Test 2 – Failover manuale (arresto del primario)
Questo test verifica che l’IP virtuale (VIP) segua il server primario durante un failover, attivato dall’arresto del modulo sul server primario.
Passaggi
- Arrestare il modulo sul primario (nodo 1) dalla console SafeKit (o dalla riga di comando con
safekit stop -m <module>). → Risultato atteso: il nodo 1 passa a STOP (NotReady) e il nodo 2 passa a ALONE (Ready). Nel log del nuovo primario, viene visualizzato il messaggioVirtual IP <VIP> set. - Sulla nuova interfaccia primaria, eseguire
ipconfigoip addr show. → Risultato atteso: l’IP virtuale (VIP) ora appare come alias su questo nodo e non più sul precedente primario. - Dalla workstation client, ripetere i tre comandi
pinged eseguire nuovamente mosaico sull’IP virtuale (VIP). → Risultato atteso: tutto risponde e tutte le celle del mosaico ora visualizzano il nome del nuovo primario, in un unico colore. - Riavviare il modulo sul nodo 1: si risincronizza e passa a SECOND (Ready), mentre il nodo 2 passa a PRIM (Ready).
5. Test 3 – Verifica del reindirizzamento MAC con arp -a
Si annota l’indirizzo MAC associato all’IP virtuale (VIP) prima del failover, quindi si verifica che sia cambiato in seguito.
Questo test è possibile solo se la workstation del client si trova nella stessa sottorete IP del cluster.
Se è presente un router tra il client e il cluster, la tabella ARP del client non contiene l’IP virtuale (VIP), ma l’indirizzo del gateway utilizzato per raggiungere la rete del cluster. In tal caso, controllare la tabella ARP del router o del gateway con il team di rete.
Passaggi
- Il modulo è PRIM (Ready) sul nodo 1 e SECOND (Ready) sul nodo 2.
- Sulla workstation client,
pingdi entrambi gli indirizzi IP fisici e dell’IP virtuale (VIP), quindi eseguirearp -a. → Risultato atteso: l’IP virtuale (VIP) è associato allo stesso indirizzo MAC dell’indirizzo IP fisico del primario. stopil modulo sul primario (nodo 1).- Eseguire nuovamente
pingdell’IP virtuale (VIP), quindi eseguire nuovamentearp -a. → Risultato atteso: l’IP virtuale (VIP) è ora associato allo stesso indirizzo MAC dell’indirizzo IP fisico del nuovo primario.
Eseguire nuovamente
pingdell’IP virtuale (VIP) prima di leggere la tabella ARP: la voce potrebbe essere contrassegnata come obsoleta e aggiornata solo dopo unping.
Esempio della tabella ARP prevista, prima e dopo l’arresto del primario:
| Indirizzo | MAC prima dell’arresto | MAC dopo l’arresto |
|---|---|---|
| IP fisico del nodo 1 | MAC del nodo 1 | MAC del nodo 1 |
| IP fisico del nodo 2 | MAC del nodo 2 | MAC del nodo 2 |
| IP virtuale (VIP) | MAC del nodo 1 | MAC del nodo 2 |
6. Test 4 – Controllo end-to-end con Wireshark (Windows) o tcpdump (Linux)
È possibile seguire una connessione TCP all’IP virtuale (VIP) catturando i pacchetti sul client e su entrambi i nodi: con Wireshark sulle macchine Windows e con tcpdump sulle macchine Linux.
È necessario esaminare le intestazioni MAC (Ethernet) dei pacchetti : l’indirizzo IP di destinazione rimane l’IP virtuale (VIP) ed è l’indirizzo MAC di destinazione che mostra quale nodo riceve il traffico.
Cosa osservare:
| Quando | Dove acquisire i pacchetti | Indirizzi MAC osservati |
|---|---|---|
| Prima del failover | cliente | MAC del client → MAC del nodo 1 (primario) |
| Prima del failover | nodo 1 | I pacchetti destinati all’IP virtuale (VIP) vengono ricevuti; il nodo 2 non riceve nulla. |
| Durante il failover | rete | MAC reindirizza i messaggi inviati dal nodo 2 per l’IP virtuale (VIP): messaggi inviati dal sistema operativo quando è impostato come alias e GARP inviati da SafeKit (arpreroute="on") |
| Dopo il failover | cliente | MAC del client → MAC del nodo 2 (nuovo primario) |
Se la workstation client si trova in una sottorete diversa dal cluster, il “MAC client” visualizzato sui nodi è l’indirizzo MAC del gateway (router) che collega le due sottoreti, non quello della workstation client.
7. Da quali postazioni eseguire i test
Il comportamento dipende dal percorso di rete tra il client e il cluster. Eseguire i test 1 e 2 da ciascun tipo di client pertinente all’architettura:
| Sede del cliente | Cosa controlla il test |
|---|---|
| Client nella stessa subnet del cluster | Aggiornamento delle tabelle ARP dei client (3 test possibili) |
| Client in una sottorete diversa (router, gateway, rete virtuale dell’hypervisor) | Aggiornamento delle tabelle ARP dei client nel router o nel gateway |
| VM client su un hypervisor che ospita anche una VM dello cluster mirror | Comportamento dello switch virtuale dell’hypervisor, che gestisce anche lo switching e il routing interni. |
8. Riepilogo dei risultati attesi
| Test | Azione | Risultato atteso |
|---|---|---|
| 1 | PRIM / SECOND, ipconfig, ping e mosaico | IP virtuale (VIP) come alias solo sul primario; i 3 comandi ping rispondono (a meno che non siano filtrati dai firewall); il mosaico mostra solo il primario |
| 2 | Arresto del primario | IP virtuale (VIP) come alias sul nuovo primario; messaggio Virtual IP <VIP> set ; il mosaico mostra solo il nuovo primario |
| 3 | arp -a prima e dopo l’arresto del primario | L’IP virtuale (VIP) si sposta dall’indirizzo MAC del nodo 1 a quello del nodo 2. |
| 4 | Acquisizione con Wireshark o tcpdump prima e dopo il failover | Il client invia all’indirizzo MAC del nuovo primario |
9. Risoluzione dei problemi
- L’IP virtuale (VIP) non risponde più dopo il failover: i messaggi di reindirizzamento MAC non vengono presi in considerazione da un dispositivo sul percorso (router, gateway, switch virtuale), che continua a inviare il traffico all’indirizzo MAC dell’ex primario. Verificare la gestione dei messaggi di reindirizzamento MAC con il team di rete.
- Invio di GARP: l’attributo
arpreroute="on"della sezione<vip>(conarpintervalearpelapse) invia regolarmente i GARP sull’IP virtuale (VIP) dopo il failover. Vedere la Guida per l’utente, sezione 13.6.4 " Sintassi<vip>“. - Diagnosi della risoluzione IP virtuale (VIP) ↔ MAC: consultare la Guida per l’utente, sezione 7.24 " Risoluzione dei problemi di risoluzione IP virtuale (VIP) ↔ MAC " e sezione 7.16 " Problema con l’IP virtuale dopo il failover “.
Per maggiori informazioni:
- Come funziona un indirizzo IP virtuale in un cluster ad alta disponibilità?
- Per il bilanciamento del carico con un indirizzo IP virtuale, vedere Test dell’indirizzo IP virtuale di bilanciamento del carico in un cluster farm SafeKit.