Dela via


Flytande IP-konfiguration för Azure Load Balancer

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

Flytande IP

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.

Flytande IP-status 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

Kör följande kommandon i en Windows-kommandotolk på servern för varje virtuell dator i serverdelspoolen.

  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 slutligen använder en brandvägg kontrollerar du att en regel har konfigurerats så att trafiken kan nå den virtuella datorn på lämpliga portar. Den här exempelkonfigurationen förutsätter en IP-konfiguration för lastbalanserarens klientdel på 1.2.3.4 och en belastningsutjämningsregel 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
    

Ubuntu

Expandera

Kör följande kommandon via en SSH-session för varje virtuell dator i serverdelspoolen.

  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. 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:

    sudo ip addr add <floating-IP>/<floating-IPnetmask> dev lo:0
    
  3. Om gästvärden slutligen använder en brandvägg kontrollerar du att en regel har konfigurerats så att trafiken kan nå den virtuella datorn på lämpliga portar. Den här exempelkonfigurationen förutsätter en IP-konfiguration för lastbalanserarens klientdel på 1.2.3.4, en belastningsutjämningsregel för port 80 och användningen av UFW (okomplicerad brandvägg) i Ubuntu.

    sudo ip addr add 1.2.3.4/24 dev lo:0
    sudo ufw allow 80/tcp
    

Begränsningar

  • 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