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.

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

netsh interface ipv4 show interface 

För vm-nätverkskortet (Azure managed) skriver du det här kommandot.

netsh interface ipv4 set interface <interfacename> weakhostreceive=enabled

(ersätt "interfacename" med namnet på det här gränssnittet)

Upprepa följande kommandon för varje loopback-gränssnitt som du har lagt till:

netsh interface ipv4 add addr <loopbackinterfacename> floatingip floatingipnetmask
netsh interface ipv4 set interface <loopbackinterfacename> weakhostreceive=enabled  weakhostsend=enabled 

(ersätt loopbackinterfacename med namnet på det här loopback-gränssnittet och floatingip och floatingipnetmask med lämpliga värden som motsvarar lastbalanserarens klientdels-IP)

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.

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

ip addr

Upprepa dessa kommandon för varje loopback-gränssnitt, som tilldelar den flytande IP-adressen till loopback-aliaset:

sudo ip addr add <floatingip>/<floatingipnetmask> dev lo:0

(ersätt floatingip och floatingipnetmask med lämpliga värden som motsvarar lastbalanserarens klientdels-IP)

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. Det här exemplet förutsätter också användning 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 klientdels-IP-adressen som konfigurerats i loopback-gränssnittet i gästoperativsystemet skriver Inte Azures utgående utgående flöde om och flödet misslyckas. 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 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