Konfiguracja pływających adresów IP usługi Azure Load Balancer

Moduł równoważenia obciążenia oferuje kilka możliwości zarówno dla aplikacji UDP, jak i TCP.

Pływający adres IP

Niektóre scenariusze aplikacji wolą lub wymagają użycia tego samego portu przez wiele wystąpień aplikacji na jednej maszynie wirtualnej w puli zaplecza. Typowe przykłady ponownego użycia portów obejmują klastrowanie pod kątem wysokiej dostępności, wirtualnych urządzeń sieciowych i uwidacznianie wielu punktów końcowych PROTOKOŁU TLS bez ponownego szyfrowania.

Stan pływających adresów IP Wynik
Włączony pływający adres IP Platforma Azure zmienia mapowanie adresów IP na adres IP frontonu modułu równoważenia obciążenia
Przestawny adres IP wyłączony Platforma Azure uwidacznia adres IP wystąpień maszyn wirtualnych

Jeśli chcesz ponownie użyć portu zaplecza w wielu regułach, musisz włączyć pływający adres IP w definicji reguły. Włączenie pływających adresów IP zapewnia większą elastyczność.

Na diagramach zobaczysz, jak działa mapowanie adresów IP przed i po włączeniu pływających adresów IP: Ten diagram przedstawia ruch sieciowy przez moduł równoważenia obciążenia przed włączeniem pływających adresów IP.

Ten diagram przedstawia ruch sieciowy przez moduł równoważenia obciążenia po włączeniu pływających adresów IP.

Pływający adres IP można skonfigurować w regule modułu równoważenia obciążenia za pośrednictwem witryny Azure Portal, interfejsu API REST, interfejsu wiersza polecenia, programu PowerShell lub innego klienta. Oprócz konfiguracji reguły należy również skonfigurować system operacyjny gościa maszyny wirtualnej w celu używania pływających adresów IP.

Diagram ruchu modułu równoważenia obciążenia dla wielu adresów IP frontonu z pływającym adresem IP.

W tym scenariuszu każda maszyna wirtualna w puli zaplecza ma trzy interfejsy sieciowe:

  • Adres IP zaplecza: wirtualna karta sieciowa skojarzona z maszyną wirtualną (konfiguracja adresu IP zasobu karty sieciowej platformy Azure).
  • Fronton 1 (FIP1): interfejs sprzężenia zwrotnego w systemie operacyjnym gościa skonfigurowany z adresem IP fiP1.
  • Fronton 2 (FIP2): interfejs sprzężenia zwrotnego w systemie operacyjnym gościa skonfigurowany z adresem IP fiP2.

Załóżmy, że ta sama konfiguracja frontonu co w poprzednim scenariuszu:

Fronton Adres IP Protokół port
zielony fronton 1 65.52.0.1 TCP 80
fioletowy fronton 2 65.52.0.2 TCP 80

Definiujemy dwie zmienne reguły adresów IP:

Reguła Fronton Mapowanie na pulę zaplecza
1 zielona reguła FIP1:80 zielone zaplecze FIP1:80 (w maszynach VM1 i VM2)
2 purpurowa reguła FIP2:80 purpurowe zaplecze FIP2:80 (w maszynach VM1 i VM2)

W poniższej tabeli przedstawiono pełne mapowanie w module równoważenia obciążenia:

Reguła Adres IP frontonu Protokół port Element docelowy port
zielona reguła 1 65.52.0.1 TCP 80 tak samo jak fronton (65.52.0.1) tak samo jak fronton (80)
purpurowa reguła 2 65.52.0.2 TCP 80 tak samo jak fronton (65.52.0.2) tak samo jak fronton (80)

Miejscem docelowym przepływu przychodzącego jest teraz adres IP frontonu w interfejsie sprzężenia zwrotnego na maszynie wirtualnej. Każda reguła musi utworzyć przepływ z unikatową kombinacją docelowego adresu IP i portu docelowego. Ponowne użycie portów jest możliwe na tej samej maszynie wirtualnej przez zmianę docelowego adresu IP na adres IP frontonu przepływu. Usługa jest widoczna dla modułu równoważenia obciążenia przez powiązanie go z adresem IP frontonu i portem odpowiedniego interfejsu sprzężenia zwrotnego.

Zauważysz, że port docelowy nie zmienia się w przykładzie. W scenariuszach pływających adresów IP usługa Azure Load Balancer obsługuje również definiowanie reguły równoważenia obciążenia w celu zmiany portu docelowego zaplecza i różnicowania go od portu docelowego frontonu.

Typ reguły pływających adresów IP jest podstawą kilku wzorców konfiguracji modułu równoważenia obciążenia. Przykładem, który jest obecnie dostępny, jest konfiguracja Konfiguruj co najmniej jedną konfigurację odbiorników zawsze włączonej grupy dostępności. W czasie będziemy dokumentać więcej z tych scenariuszy. Aby uzyskać bardziej szczegółowe informacje na temat określonych konfiguracji systemu operacyjnego gościa wymaganych do włączenia pływających adresów IP, zapoznaj się z konfiguracją pływających adresów IP usługi Azure Load Balancer w następnej sekcji.

Konfiguracja systemu operacyjnego gościa pływających adresów IP

Aby można było działać, należy skonfigurować system operacyjny gościa dla maszyny wirtualnej, aby odbierał cały ruch związany z adresem IP frontonu i portem modułu równoważenia obciążenia. Konfigurowanie maszyny wirtualnej wymaga:

  • dodawanie interfejsu sieciowego sprzężenia zwrotnego
  • Konfigurowanie sprzężenia zwrotnego przy użyciu adresu IP frontonu modułu równoważenia obciążenia
  • zapewnienie, że system może wysyłać/odbierać pakiety na interfejsach, które nie mają adresu IP przypisanego do tego interfejsu. Systemy Windows wymagają ustawienia interfejsów do używania modelu "słabego hosta". W przypadku systemów Linux ten model jest zwykle używany domyślnie.
  • Skonfigurowanie zapory hosta w celu zezwolenia na ruch na porcie IP frontonu.

Uwaga

Poniższe przykłady używają protokołu IPv4; aby użyć protokołu IPv6, zastąp ciąg "ipv6" ciągiem "ipv4". Należy również zauważyć, że pływający adres IP dla protokołu IPv6 nie działa w przypadku wewnętrznych modułów równoważenia obciążenia.

Windows Server

Rozwiń

Dla każdej maszyny wirtualnej w puli zaplecza uruchom następujące polecenia w wierszu polecenia systemu Windows na serwerze.

Aby uzyskać listę nazw interfejsów na maszynie wirtualnej, wpisz następujące polecenie:

netsh interface ipv4 show interface 

W przypadku karty sieciowej maszyny wirtualnej (zarządzanej przez platformę Azure) wpisz to polecenie.

netsh interface ipv4 set interface "interfacename" weakhostreceive=enabled

(zastąp ciąg "interfacename" nazwą tego interfejsu)

Dla każdego dodanego interfejsu sprzężenia zwrotnego powtórz następujące polecenia:

netsh interface ipv4 add addr floatingipaddress floatingip floatingipnetmask
netsh interface ipv4 set interface floatingipaddress weakhostreceive=enabled  weakhostsend=enabled 

(zastąp element loopbackinterface nazwą tego interfejsu sprzężenia zwrotnego oraz zmiennoprzecinkowe i zmiennoprzecinkowe maski odpowiednimi wartościami odpowiadającymi adresowi IP frontonu modułu równoważenia obciążenia)

Na koniec, jeśli host gościa używa zapory, upewnij się, że skonfigurowana reguła, aby ruch mógł dotrzeć do maszyny wirtualnej na odpowiednich portach.

W tej przykładowej konfiguracji przyjęto założenie, że konfiguracja adresu IP frontonu modułu równoważenia obciążenia 1.2.3.4 i reguła równoważenia obciążenia dla portu 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

Rozwiń

Dla każdej maszyny wirtualnej w puli zaplecza uruchom następujące polecenia za pośrednictwem sesji SSH.

Aby uzyskać listę nazw interfejsów na maszynie wirtualnej, wpisz następujące polecenie:

ip addr

Dla każdego interfejsu sprzężenia zwrotnego powtórz następujące polecenia, które przypisują pływający adres IP do aliasu sprzężenia zwrotnego:

sudo ip addr add floatingip/floatingipnetmask dev lo:0

(zastąp zmiennoprzecinkowe i zmiennoprzecinkowe maski odpowiednimi wartościami odpowiadającymi adresowi IP frontonu modułu równoważenia obciążenia)

Na koniec, jeśli host gościa używa zapory, upewnij się, że skonfigurowana reguła, aby ruch mógł dotrzeć do maszyny wirtualnej na odpowiednich portach.

W tej przykładowej konfiguracji przyjęto założenie, że konfiguracja adresu IP frontonu modułu równoważenia obciążenia to 1.2.3.4 i reguła równoważenia obciążenia dla portu 80. W tym przykładzie przyjęto również założenie, że w systemie Ubuntu jest używana zapora UFW (nieskomplikowana zapora ).

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

Ograniczenia

  • W przypadku włączenia pływających adresów IP w regule równoważenia obciążenia aplikacja musi używać podstawowej konfiguracji adresu IP interfejsu sieciowego dla ruchu wychodzącego.
  • W scenariuszach równoważenia obciążenia nie można używać pływających adresów IP w dodatkowych konfiguracjach protokołu IPv4. To ograniczenie nie ma zastosowania do publicznych modułów równoważenia obciążenia z konfiguracjami podwójnych stosów (IPv4 i IPv6) ani do architektur korzystających z bramy translatora adresów sieciowych na potrzeby łączności wychodzącej.
  • Jeśli aplikacja jest powiązana z adresem IP frontonu skonfigurowanym w interfejsie sprzężenia zwrotnego w systemie operacyjnym gościa, ruch wychodzący platformy Azure nie zostanie ponownie napisany, a przepływ zakończy się niepowodzeniem. Przejrzyj scenariusze ruchu wychodzącego.

Następne kroki