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:
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.
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 |
---|---|---|---|
1 | 65.52.0.1 | TCP | 80 |
2 | 65.52.0.2 | TCP | 80 |
Vi definierar två flytande IP-regler:
Regel | Klientdel | Mappa till serverdelspool |
---|---|---|
1 | FIP1:80 | FIP1:80 (i VM1 och VM2) |
2 | FIP2:80 | 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 |
---|---|---|---|---|---|
1 | 65.52.0.1 | TCP | 80 | samma som klientdelen (65.52.0.1) | samma som klientdelen (80) |
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
- Lär dig mer om att använda flera klientdelar med Azure Load Balancer.
- Läs mer om utgående anslutningar i Azure Load Balancer.