Zoeken in SafeKit

Het virtuele IP-adres voor taakverdeling testen in een SafeKit farm-cluster

Deze handleiding beschrijft hoe u kunt controleren of een SafeKit Farm (Farm module, taakverdeling op een virtueel IP-adres) correct werkt in uw netwerk: distributie van verbindingen over de knooppunten en omleiding van het virtuele IP (VIP) wanneer het dispatching-knooppunt stopt.

1. Kernprincipes

Vereiste: alle knooppunten van de Farm moeten zich in hetzelfde laag 2 IP-subnet bevinden: een LAN of een VLAN dat is uitgebreid tussen externe sites.

  • Het virtuele IP-adres (VIP) wordt lokaal geconfigureerd op elke node van de Farm: het wordt ingesteld als een alias van het fysieke IP-adres, op de netwerkkaart van dat adres, wanneer de Farm op de node wordt gestart.
  • Eén node, de dispatching server, ontvangt het netwerkverkeer voor het virtuele IP (VIP) (vmac_directed configuratie, de SafeKit-standaard): het MAC-adres is het adres dat is gekoppeld aan het virtuele IP (VIP) in de ARP-tabellen (router, gateway, clients in hetzelfde subnet).
  • Het kernelfilter van dit knooppunt verdeelt vervolgens de TCP-verbindingen over de knooppunten van de Farm, door het MAC-adres van de pakketten te herschrijven naar dat van het verwerkingsknooppunt (het IP-adres van de bestemming blijft het virtuele IP (VIP)). Reacties worden rechtstreeks vanaf het knooppunt dat de verbinding verwerkt naar de client verzonden.
  • De distributie die door het filter wordt uitgevoerd, is deterministisch: de verwerkingsnode wordt berekend op basis van de identiteit van de client, volgens de geconfigureerde load balancing-regel:
    • op het IP-adres van de client (filter="on_addr"): een bepaalde client wordt altijd bediend door hetzelfde knooppunt, wat sessieaffiniteit garandeert;
    • op de TCP-poort van de client (filter="on_port"): elke TCP-verbinding van dezelfde client kan door een andere node worden bediend. Dit is de regel die wordt gebruikt voor de mozaïek (sectie 2), die daarom alle nodes van één werkstation toont.
  • Als de dispatching-server stopt, neemt een andere node deze rol over en stuurt GARP’s (gratuitous ARP) zodat het netwerk het virtuele IP (VIP) associeert met zijn eigen MAC-adres.

Wat u dus moet testen:

  1. dat de verbindingen correct over alle knooppunten zijn verdeeld;
  2. dat het netwerk (router, gateway, virtualisatie) rekening houdt met de GARP wanneer de dispatchingserver verandert.

2. Vereiste: het SafeKit-mozaïek

De mozaïek is een testpagina van SafeKit. Deze opent vele TCP-verbindingen met het virtuele IP-adres (VIP) en toont voor elke verbinding de naam van de node die heeft gereageerd. Dit geeft een overzicht van de distributie.

  1. Voeg in de userconfig.xml van de Farm module, in de sectie <vip>, de load balancing-regel toe op de poort van de SafeKit-webserver. Voorbeeld met de SafeKit-webserver in HTTP op poort 9010:

    <loadbalancing_list>
      <group name="FarmProto">
        <rule port="9010" proto="tcp" filter="on_port"/>
      </group>
    </loadbalancing_list>
    

    Als de SafeKit-webserver en -console zijn overgeschakeld naar HTTPS, vervangt u 9010 door 9453.

  2. Pas de configuratie toe op alle knooppunten.

  3. Maak vanuit een browser op een clientwerkstation buiten de Farm verbinding met:

    http://<VIP>:9010/safekit/mosaic.html
    

    Voer vervolgens de naam van de Farm module in en voer de test uit. Elke cel van het mozaïek toont de naam van het knooppunt dat reageerde op de TCP-verbinding, en aan elk knooppunt is een kleur gekoppeld om de blokken van het mozaïek die door hetzelfde knooppunt worden geleverd, duidelijk weer te geven.

    Gebruik in HTTPS https://<VIP>:9453/safekit/mosaic.html, met de load balancing-regel op poort 9453.

Test het virtuele IP-adres van een SafeKit farm met de mozaïek

Bekijk de mozaïek -testvideo in de sectie " Demonstratie van de SafeKit farm “.

3. Test 1 – Verdeling van verbindingen

Stappen

  1. Start de Farm op alle knooppunten (UP status).
  2. Open de mozaïek vanaf een clientwerkstation.

Verwacht resultaat: de mozaïek toont de namen van alle knooppunten van de Farm, met een andere kleur voor elk verwerkingsknooppunt.

Dit bewijst dat de upstream-router of -gateway een van de knooppunten bereikt via het MAC-adres, en dat dit knooppunt de verbindingen correct distribueert.

4. Test 2 – Wijziging van de verzendserver

Deze test controleert of de Farm blijft reageren wanneer de dispatching-server stopt.

Stappen

  1. Stop de Farm, d.w.z. alle knooppunten in SafeKit.
  2. Start een enkele node. Deze node wordt de dispatching-server. → Verwacht resultaat: de mozaïek toont alleen dit knooppunt.
  3. Start de andere knooppunten. → Verwacht resultaat: de mozaïek toont alle knooppunten.
  4. Stop het eerste knooppunt, het knooppunt dat als dispatchingserver fungeert. → Verwacht resultaat: de mozaïek toont de resterende knooppunten.

Beperking van deze test: een correct resultaat bij stap 4 bewijst niet dat GARP werkt. Wanneer de Farm module op de andere nodes wordt gestart (stap 3), wordt het virtuele IP-adres op deze nodes geconfigureerd, wat berichten op het netwerk genereert die de associatie tussen het virtuele IP-adres en het MAC-adres mogelijk al omleiden. Alleen tests 3 en 4 testen GARP echt.

Het stoppen van een ander knooppunt van de Farm (een knooppunt dat niet de dispatchingserver is) test alleen de herconfiguratie van de distributie.

5. Test 3 – GARP omleiding controleren met arp -a

Samen met test 4 controleert deze test echt GARP: u noteert het MAC-adres van de dispatching-server voordat u deze stopt en controleert vervolgens of de Virtual IP (VIP)/MAC-associatie daarna is gewijzigd.

Deze test is alleen mogelijk als de clientwerkstation die de mozaïek weergeeft zich in hetzelfde IP-subnet bevindt als de Farm.

Als er een router tussen de client en de Farm staat, bevat de ARP-tabel van de client niet het virtuele IP-adres (VIP), maar het adres van de gateway die wordt gebruikt om het netwerk van de Farm te bereiken. Controleer in dat geval de ARP-tabel van de router of gateway met het netwerkteam.

Stappen

  1. Start de Farm op alle knooppunten.
  2. Voer op de clientwerkstation arp -a en noteer het MAC-adres dat is gekoppeld aan het virtuele IP-adres (VIP). Dit identificeert de dispatchingserver.
  3. Stop de Farm node met dit MAC-adres.
  4. Controleer of het mozaïek nog werkt met de resterende knooppunten.
  5. Voer arp -a opnieuw uit om de nieuwe koppeling tussen het virtuele IP-adres (VIP) en het MAC-adres te lezen en de nieuwe dispatchingserver te identificeren.

6. Test 4 – End-to-end-controle met Wireshark (Windows) of tcpdump (Linux)

U kunt een TCP-verbinding met het virtuele IP-adres (VIP) volgen door pakketten vast te leggen op de client en op de Farm knooppunten: met Wireshark op Windows-machines en met tcpdump op Linux-machines.

U moet naar de MAC-headers (Ethernet) van de pakketten kijken, niet alleen naar de IP-adressen: het kernelfilter van de dispatching-server verdeelt de verbindingen door het MAC-adres van de bestemming van de pakketten te herschrijven naar dat van het verwerkingsknooppunt. Het IP-adres van de bestemming blijft het virtuele IP-adres (VIP) langs het hele pad.

Wat u moet observeren voor hetzelfde SYN-pakket:

StapWaar pakketten vastleggenWaargenomen MAC-adressen
1. De client stuurt naar het virtuele IP-adres (VIP)klantMAC van de client → MAC van de dispatchingserver
2. De dispatchingserver stuurt de verbinding doorverzendserverVerzendende server MAC → MAC van het verwerkingsknooppunt
3. Het verwerkingsknooppunt ontvangtverwerkingsknooppuntVerzenden van server-MAC naar node-MAC
4. Het knooppunt reageert rechtstreeks op de client.verwerkingsknooppuntMAC-adres van knooppunt → MAC-adres van client
5. De cliënt ontvangt het antwoord.klantMAC-adres van knooppunt → MAC-adres van client

Als de clientwerkstation zich in een ander subnet bevindt dan de Farm, is de “client MAC” die op de Farm knooppunten wordt gezien het MAC-adres van de gateway (router) die de twee subnets verbindt, niet dat van de clientwerkstation.

Herhaal de opname nadat u de dispatching-server hebt gestopt (test 2, stap 4): stap 1 moet nu het MAC-adres van de nieuwe dispatching-server tonen.

7. Vanaf welke werkstations testen?

Het gedrag is afhankelijk van het netwerkpad tussen de client en de Farm. Voer tests 1 en 2 uit vanaf elk type client dat relevant is voor uw architectuur:

Locatie van de klantWat de test controleert
Client in hetzelfde subnet als de FarmBijwerken van de ARP-tabellen van de clients via GARP (test 3 mogelijk)
Client in een ander subnet (router, gateway, virtueel netwerk van de hypervisor)GARP -verwerking door de router of gateway
Client-VM op een hypervisor die ook een Farm VM hostGedrag van de virtuele switch van de hypervisor, die ook interne switching en routering afhandelt

8. Samenvatting van de verwachte resultaten

TestActieVerwacht resultaat
1Alle knooppunten UP, mozaïekAlle knooppunten verschijnen
2.2Eén knooppunt gestartAlleen dit knooppunt wordt weergegeven
2.3Alle knooppunten gestartAlle knooppunten verschijnen
2.4Verzendserver gestoptDe resterende knooppunten verschijnen zonder blijvende onderbreking.
3arp -a voor en na de stopHet MAC-adres dat is gekoppeld aan het virtuele IP-adres (VIP) verandert.
4Wireshark- of tcpdump-opname voor en na de stopDe client stuurt naar het MAC-adres van de nieuwe dispatchingserver.

9. Probleemoplossing

Demonstratie van de SafeKit farm

SafeKit-video: Netwerktaakverdeling en virtueel IP-beheer (5:03)

In deze video leert u hoe u een virtueel IP-adres implementeert om een enkel toegangspunt te bieden voor een cluster met 2 knooppunten. SafeKit vereenvoudigt netwerktaakverdeling door het virtuele IP-adres automatisch te beheren, zodat cliëntverkeer over de knooppunten wordt verdeeld en onmiddellijk wordt omgeleid tijdens een failover. Hoewel deze demonstratie Apache op Windows gebruikt, werkt de oplossing identiek met andere toepassingen.

Hoofdstukken

  1. 🎬 Architectuur: 2 knooppunten voorbereiden voor een gedeeld virtueel IP-adres (0:13)
  2. 🎬 Configuratie: De farm.safe module en het virtuele IP-adres instellen (2:20)
  3. 🎬 Validatie: Failovertesten en omleiding van virtueel IP-adres bij servercrash (2:30)

Stapsgewijze implementatie

Voor meer informatie:

SafeKit AI Chat SafeKit AI