Konfigurace plovoucí IP adresy služby Azure Load Balancer
Nástroj pro vyrovnávání zatížení poskytuje několik možností pro aplikace UDP i TCP.
Plovoucí IP adresa
Některé scénáře aplikací preferují nebo vyžadují použití stejného portu několika instancemi aplikací na jednom virtuálním počítači v back-endovém fondu. Mezi běžné příklady opětovného použití portů patří clustering pro vysokou dostupnost, síťová virtuální zařízení a zveřejnění několika koncových bodů TLS bez opětovného šifrování. Pokud chcete znovu použít back-endový port napříč několika pravidly, musíte v definici pravidla povolit plovoucí IP adresu. Povolení plovoucí IP adresy umožňuje větší flexibilitu.
Stav plovoucí IP adresy | Výsledek |
---|---|
Povolená plovoucí IP adresa | Azure změní mapování IP adres na front-endovou IP adresu Load Balanceru. |
Plovoucí IP adresa je zakázaná. | Azure zveřejňuje IP adresu instancí virtuálních počítačů. |
V diagramech vidíte, jak funguje mapování IP adres před povolením plovoucí IP adresy a po povolení plovoucí IP adresy:
Plovoucí IP adresu nakonfigurujete pro pravidlo Load Balanceru prostřednictvím webu Azure Portal, rozhraní REST API, rozhraní příkazového řádku, PowerShellu nebo jiného klienta. Kromě konfigurace pravidla musíte také nakonfigurovat hostovaný operační systém virtuálního počítače, aby používal plovoucí IP adresu.
V tomto scénáři má každý virtuální počítač v back-endovém fondu tři síťová rozhraní:
- Back-endová IP adresa: Virtuální síťová karta přidružená k virtuálnímu počítači (konfigurace IP prostředku síťové karty Azure).
- Front-end 1 (FIP1): rozhraní zpětné smyčky v rámci hostovaného operačního systému, které je nakonfigurované s IP adresou FIP1.
- Front-end 2 (FIP2): rozhraní zpětné smyčky v rámci hostovaného operačního systému, které je nakonfigurované s IP adresou FIP2.
Předpokládejme stejnou konfiguraci front-endu jako v předchozím scénáři:
Front-end | IP adresa | protokol | port |
---|---|---|---|
1 | 65.52.0.1 | TCP | 80 |
2 | 65.52.0.2 | TCP | 80 |
Definujeme dvě pravidla plovoucí IP adresy:
Pravidlo | Front-end | Mapování na back-endový fond |
---|---|---|
0 | FIP1:80 | FIP1:80 (ve virtuálním počítači 1 a VM2) |
2 | FIP2:80 | FIP2:80 (ve virtuálním počítači 1 a VM2) |
Následující tabulka ukazuje úplné mapování v nástroji pro vyrovnávání zatížení:
Pravidlo | Front-endová IP adresa | protokol | port | Cíl | port |
---|---|---|---|---|---|
1 | 65.52.0.1 | TCP | 80 | stejné jako front-end (65.52.0.1) | stejné jako front-end (80) |
2 | 65.52.0.2 | TCP | 80 | stejné jako front-end (65.52.0.2) | stejné jako front-end (80) |
Cílem příchozího toku je teď front-endová IP adresa na rozhraní zpětné smyčky ve virtuálním počítači. Každé pravidlo musí vytvořit tok s jedinečnou kombinací cílové IP adresy a cílového portu. Opakované použití portů je možné na stejném virtuálním počítači tak, že se liší cílovou IP adresou na front-endovou IP adresu toku. Vaše služba je vystavená nástroji pro vyrovnávání zatížení tím, že ji provážete s IP adresou front-endu a portem příslušného rozhraní zpětné smyčky.
Všimněte si, že cílový port se v příkladu nezmění. Ve scénářích s plovoucí IP adresou azure Load Balancer také podporuje definování pravidla vyrovnávání zatížení, které změní cílový port back-endu a liší se od front-endového cílového portu.
Typ pravidla plovoucí IP adresy je základem několika vzorů konfigurace nástroje pro vyrovnávání zatížení. Jedním z příkladů, který je aktuálně k dispozici, je Konfigurace jedné nebo více naslouchacích procesů skupiny dostupnosti AlwaysOn. V průběhu času zdokumentujeme další z těchto scénářů. Podrobnější informace o konkrétních konfiguracích hostovaného operačního systému, které jsou potřeba k povolení plovoucí IP adresy, najdete v další části o konfiguraci plovoucí IP adresy azure Load Balanceru.
Konfigurace hostovaného operačního systému s plovoucí IP adresou
Abyste mohli fungovat, nakonfigurujete hostovaný operační systém pro virtuální počítač tak, aby přijímal veškerý provoz vázaný na front-endovou IP adresu a port nástroje pro vyrovnávání zatížení. Konfigurace virtuálního počítače vyžaduje:
- přidání síťového rozhraní zpětné smyčky
- konfigurace zpětné smyčky s front-endovou IP adresou nástroje pro vyrovnávání zatížení
- zajištění, že systém může odesílat a přijímat pakety v rozhraních, která nemají přiřazenou IP adresu k danému rozhraní. Systémy Windows vyžadují rozhraní pro nastavení pro použití modelu "slabý hostitel". Pro systémy Linux se tento model používá standardně.
- konfigurace brány firewall hostitele tak, aby umožňovala provoz na front-endovém portu IP.
Poznámka:
Následující příklady používají protokol IPv4; pokud chcete použít protokol IPv6, nahraďte "ipv6" za "ipv4".
Windows Server
Expandovat
Pro každý virtuální počítač v back-endovém fondu spusťte na příkazovém řádku Windows na serveru následující příkazy.
Pokud chcete získat seznam názvů rozhraní, které máte na virtuálním počítači, zadejte tento příkaz:
netsh interface ipv4 show interface
Jako síťovou kartu virtuálního počítače (spravovanou Azure) zadejte tento příkaz.
netsh interface ipv4 set interface "interfacename" weakhostreceive=enabled
(nahraďte "interfacename" názvem tohoto rozhraní)
Pro každé rozhraní zpětné smyčky, které jste přidali, opakujte tyto příkazy:
netsh interface ipv4 add addr floatingipaddress floatingip floatingipnetmask
netsh interface ipv4 set interface floatingipaddress weakhostreceive=enabled weakhostsend=enabled
(nahraďte loopbackinterface názvem tohoto rozhraní zpětné smyčky a plovoucí desetinnou čárkou a plovoucí maskou s příslušnými hodnotami, které odpovídají front-endové IP adrese nástroje pro vyrovnávání zatížení).
Pokud hostitel hosta používá bránu firewall, ujistěte se, že je nastavené pravidlo, aby se provoz mohl dostat k virtuálnímu počítači na příslušných portech.
Tato ukázková konfigurace předpokládá konfiguraci front-endové IP adresy nástroje pro vyrovnávání zatížení 1.2.3.4 a pravidlo vyrovnávání zatížení pro 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
Expandovat
Pro každý virtuální počítač v back-endovém fondu spusťte následující příkazy prostřednictvím relace SSH.
Pokud chcete získat seznam názvů rozhraní, které máte na virtuálním počítači, zadejte tento příkaz:
ip addr
Pro každé rozhraní zpětné smyčky opakujte tyto příkazy, které přiřazují plovoucí IP adresu aliasu zpětné smyčky:
sudo ip addr add floatingip/floatingipnetmask dev lo:0
(nahraďte plovoucí a plovoucí masku plovoucí sítě příslušnými hodnotami, které odpovídají front-endové IP adrese nástroje pro vyrovnávání zatížení).
Pokud hostitel hosta používá bránu firewall, ujistěte se, že je nastavené pravidlo, aby se provoz mohl dostat k virtuálnímu počítači na příslušných portech.
Tato ukázková konfigurace předpokládá konfiguraci front-endové IP adresy nástroje pro vyrovnávání zatížení 1.2.3.4 a pravidlo vyrovnávání zatížení pro port 80. Tento příklad také předpokládá použití UFW (Uncomplicated Firewall) v Ubuntu.
sudo ip addr add 1.2.3.4/24 dev lo:0
sudo ufw allow 80/tcp
Omezení
- Pokud je u pravidla vyrovnávání zatížení povolená plovoucí IP adresa, musí vaše aplikace pro odchozí komunikaci používat primární konfiguraci IP síťového rozhraní.
- Pokud vaše aplikace vytvoří vazbu na front-endovou IP adresu nakonfigurovanou v rozhraní zpětné smyčky v hostovaném operačním systému, odchozí provoz Azure nepřepíše odchozí tok a tok selže. Projděte si scénáře odchozích přenosů.
- Pro scénáře vyrovnávání zatížení nemůžete použít plovoucí IP adresu v sekundárních konfiguracích IP adres. Toto omezení se nevztahuje na veřejné nástroje pro vyrovnávání zatížení, kde sekundární konfigurace IP adresy je IPv6 součástí konfigurace se dvěma zásobníky nebo na architektury, které využívají službu NAT Gateway pro odchozí připojení.
Další kroky
- Seznamte se s používáním několika front-endů s Azure Load Balancerem.
- Přečtěte si o odchozích připojeních Azure Load Balanceru.