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.

Diagram över lastbalanserarens trafik för flera ip-adresser på klientdelen med flytande IP-adress.

I det här scenariot har varje virtuell dator i serverdelspoolen tre nätverksgränssnitt:

  • Serverdels-IP: ett virtuellt nätverkskort som är associerat med den virtuella datorn (IP-konfiguration av Azures nätverkskortsresurs).
  • Klientdel 1 (FIP1): ett loopback-gränssnitt i gästoperativsystemet som har konfigurerats med IP-adressen FIP1.
  • Klientdel 2 (FIP2): ett loopback-gränssnitt i gästoperativsystemet som har konfigurerats med IP-adressen FÖR FIP2.

Låt oss anta samma klientdelskonfiguration som i föregående scenario:

Klientdel IP-adress protokoll port
grön klientdel 1 65.52.0.1 TCP 80
lila klientdel 2 65.52.0.2 TCP 80

Vi definierar två flytande IP-regler:

Regel Klientdel Mappa till serverdelspool
1 grön regel FIP1:80 grön serverdel FIP1:80 (i VM1 och VM2)
2 lila regel FIP2:80 lila serverdel FIP2:80 (i VM1 och VM2)

I följande tabell visas den fullständiga mappningen i lastbalanseraren:

Regel Klientdelens IP-adress protokoll port Mål port
grön regel 1 65.52.0.1 TCP 80 samma som klientdelen (65.52.0.1) samma som klientdelen (80)
lila regel 2 65.52.0.2 TCP 80 samma som klientdelen (65.52.0.2) samma som klientdelen (80)

Målet för det inkommande flödet är nu klientdelens IP-adress i loopback-gränssnittet på den virtuella datorn. Varje regel måste skapa ett flöde med en unik kombination av målets IP-adress och målport. Portåteranvändning är möjligt på samma virtuella dator genom att variera mål-IP-adressen till flödets IP-adress i klientdelen. Tjänsten exponeras för lastbalanseraren genom att binda den till klientdelens IP-adress och port för respektive loopback-gränssnitt.

Du märker att målporten inte ändras i exemplet. I flytande IP-scenarier har Azure Load Balancer också stöd för att definiera en belastningsutjämningsregel för att ändra målporten för serverdelen och göra den annorlunda än klientdelsmålporten.

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. Mer detaljerad information om de specifika konfigurationer av gästoperativsystem som krävs för att aktivera flytande IP-adress finns i Azure Load Balancer Floating IP-konfiguration i nästa avsnitt.

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 floatingipaddress floatingip floatingipnetmask
netsh interface ipv4 set interface floatingipaddress weakhostreceive=enabled  weakhostsend=enabled 

(ersätt loopbackinterface 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.

Nästa steg