Flytande IP-konfiguration för Azure Load Balancer

Lastbalanseraren har flera funktioner för både UDP- och TCP-program.

Flytande IP-adress

Vissa programscenarier föredrar eller kräver att samma port används av flera programinstanser på en enda virtuell dator i serverdelspoolen. Vanliga exempel på återanvändning av portar är klustring för hög tillgänglighet, virtuella nätverksinstallationer och exponering av flera TLS-slutpunkter utan omkryptering. Om du vill återanvända serverdelsporten över flera regler måste du aktivera flytande IP i regeldefinitionen. Om du aktiverar flytande IP-adress kan du få mer flexibilitet.

Status för flytande IP Resultat
Flytande IP-adress aktiverad Azure ändrar IP-adressmappningen till Klientdelens IP-adress för lastbalanseraren
Flytande IP-adress har inaktiverats Azure exponerar IP-adressen för de virtuella datorinstanserna

I diagrammen ser du hur IP-adressmappning fungerar före och efter aktivering av flytande IP: Det här diagrammet visar nätverkstrafik via en lastbalanserare innan flytande IP aktiveras.

Det här diagrammet visar nätverkstrafik via en lastbalanserare efter aktivering av flytande IP-adress.

Du konfigurerar flytande IP på en load balancer-regel via Azure Portal, REST API, CLI, PowerShell eller annan klient. Förutom regelkonfigurationen måste du även konfigurera den virtuella datorns gästoperativsystem för att kunna använda flytande IP-adress.

Den flytande IP-regeltypen utgör grunden för flera konfigurationsmönster för lastbalanserare. Ett exempel som för närvarande är tillgängligt är konfigurationen Konfigurera en eller flera Lyssnare för AlwaysOn-tillgänglighetsgrupp . Med tiden dokumenterar vi fler av dessa scenarier.

Konfiguration av flytande IP-gästoperativsystem

För att fungera konfigurerar du gästoperativsystemet för den virtuella datorn för att ta emot all trafik som är bunden till klientdelens IP-adress och port för lastbalanseraren. För att konfigurera den virtuella datorn krävs följande:

  • lägga till ett loopback-nätverksgränssnitt
  • konfigurera loopback med klientdelens IP-adress för lastbalanseraren
  • se till att systemet kan skicka/ta emot paket i gränssnitt som inte har den IP-adress som är tilldelad till gränssnittet. Windows-system kräver inställningsgränssnitt för att använda modellen "svag värd". För Linux-system används den här modellen normalt som standard.
  • konfigurera värdbrandväggen för att tillåta trafik på klientdelens IP-port.

Kommentar

Exemplen nedan använder IPv4; om du vill använda IPv6 ersätter du "ipv6" med "ipv4".

Windows Server

Expandera

För varje virtuell dator i backend-poolen lägger du först till en loopback-nätverksadapter med nätverksadapterhanteringen i Windows Server. Kör sedan följande kommandon i en upphöjd Windows-kommandoprompt på servern.

  1. Om du vill hämta listan över gränssnittsnamn som du har på den virtuella datorn anger du följande kommando:

    netsh interface ipv4 show interface 
    
  2. För vm-nätverkskortet (Azure managed) anger du följande kommando när du har ersatt gränssnittsnamnet med namnet på det gränssnitt som du vill använda:

    netsh interface ipv4 set interface <interface-name> weakhostreceive=enabled
    
  3. För varje loopback-gränssnitt som du har lagt till anger du dessa kommandon efter att ha ersatt loopback-interface-name med namnet på loopback-gränssnittet och floating-IP och floating-IPnetmask med lämpliga värden som motsvarar lastbalanserarens klientdels-IP:

    netsh interface ipv4 add addr <loopback-interface-name> <floating-IP> <floating-IPnetmask>
    netsh interface ipv4 set interface <loopback-interface-name> weakhostreceive=enabled  weakhostsend=enabled 
    
  4. Om gästvärden använder en brandvägg, se till att du sätter upp en regel så att trafiken kan nå VM:n på rätt portar. Denna exempelkonfiguration förutsätter en lastbalanserande frontend-IP-konfiguration 1.2.3.4 och en lastbalanseringsregel för port 80:

    netsh int ipv4 set int "Ethernet" weakhostreceive=enabled
    netsh int ipv4 add addr "Loopback Pseudo-Interface 1" 1.2.3.4 255.255.255.0
    netsh int ipv4 set int "Loopback Pseudo-Interface 1" weakhostreceive=enabled weakhostsend=enabled
    netsh advfirewall firewall add rule name="http" protocol=TCP localport=80 dir=in action=allow enable=yes
    
  5. Kontrollera att loopback-gränssnittet har frontend-IP-adressen tilldelad:

    netsh interface ipv4 show addresses name="<loopback-interface-name>"
    

    Bekräfta att utgången inkluderar frontend-IP-adressen. Från en klient som kan nå lastbalanseraren, koppla till frontend-IP-adressen och regelporten för att verifiera att trafiken når VM:n.

Ubuntu

Expandera

För varje VM i backendpoolen, kör följande kommandon genom en SSH-session. Linux har redan loopback-enheten lo; kommandot använder lo:0 som adressetikett, så du behöver inte skapa ett separat loopback-gränssnitt.

  1. Om du vill hämta listan över gränssnittsnamn som du har på den virtuella datorn skriver du det här kommandot:

    ip addr
    
  2. Lägg till frontend-IP-adressen på loopback-enheten. Ersätt floating-IP med load balancer-frontend-IP-adressen och floating-IPnetmask med Linux CIDR-prefixlängden, såsom 24:

    sudo ip addr add <floating-IP>/<floating-IPnetmask> dev lo:0
    
  3. Om gästvärden använder en brandvägg, se till att du sätter upp en regel så att trafiken kan nå VM:n på rätt portar. Denna exempelkonfiguration förutsätter en lastbalanserande frontend-IP-konfiguration 1.2.3.4, en lastbalanseringsregel för port 80 och användning av UFW (Uncomplicated Firewall) i Ubuntu.

    sudo ip addr add 1.2.3.4/24 dev lo:0
    sudo ufw allow 80/tcp
    
  4. Verifiera att loopback-enheten har frontend-IP-adressen tilldelad:

    ip address show dev lo
    

    Bekräfta att utgången inkluderar frontend-IP-adressen. Från en klient som kan nå lastbalanseraren, koppla till frontend-IP-adressen och regelporten för att verifiera att trafiken når VM:n.

Begränsningar

När du aktiverar Floating IP beror utgående anslutning på vilken nätverksgränssnittskonfiguration applikationen använder och hur applikationen binder till loopback-frontend-IP-adressen.

  • Med flytande IP aktiverat på en belastningsutjämningsregel måste programmet använda den primära IP-konfigurationen för nätverksgränssnittet för utgående trafik.
  • Om ditt program binder till frontend-IP-adressen som konfigurerats i loopback-gränssnittet i gästoperativsystemet, skriver inte Azures utgående anslutning om det utgående flödet, och därför misslyckas flödet. Granska utgående scenarier.
  • Du kan inte använda flytande IP på sekundära IP-konfigurationer för belastningsutjämningsscenarier. Den här begränsningen gäller inte för offentliga lastbalanserare där den sekundära IP-konfigurationen är IPv6 och en del av en konfiguration med dubbla staplar, eller för arkitekturer som använder en NAT Gateway för utgående anslutning.

Nästa steg