Udostępnij za pośrednictwem


Wdrażanie aplikacji podwójnego stosu IPv6 za pomocą usługi Azure Load Balancer

W tym artykule pokazano, jak wdrożyć aplikację z podwójnym stosem (IPv4 + IPv6) przy użyciu usługi Standard Load Balancer na platformie Azure. Scenariusz obejmuje sieć wirtualną z podwójnym stosem oraz podsiecią podwójnego stosu, standardowy moduł równoważenia obciążenia z dwiema konfiguracjami frontonu (IPv4 + IPv6), maszyny wirtualne z kartami sieciowymi, które mają konfigurację podwójnego adresu IP, podwójne reguły grupy zabezpieczeń sieciowych oraz podwójne publiczne adresy IP.

Wymagania wstępne

Wdrażaj aplikację z podwójnym stosem (IPv4 + IPv6)

Postępuj zgodnie z tymi instrukcjami w Azure CLI, aby wdrożyć aplikację z podwójnym stosem (IPv4 + IPv6) przy użyciu usługi Standard Load Balancer na platformie Azure.

Tworzenie grupy zasobów

Przed utworzeniem sieci wirtualnej z podwójnym stosem należy utworzyć grupę zasobów za pomocą polecenia az group create. Poniższy przykład tworzy grupę zasobów o nazwie DsResourceGroup01 w lokalizacji eastus :

az group create \
--name DsResourceGroup01 \
--location eastus

Tworzenie publicznych adresów IP protokołu IPv4 i IPv6 dla modułu równoważenia obciążenia

Aby uzyskać dostęp do punktów końcowych IPv4 i IPv6 w Internecie, potrzebne są publiczne adresy IP protokołu IPv4 i IPv6 dla modułu równoważenia obciążenia. Utwórz publiczny adres IP za pomocą az network public-ip create. Poniższy przykład tworzy publiczny adres IP IPv4 i IPv6 o nazwie dsPublicIP_v4 i dsPublicIP_v6 w grupie zasobów DsResourceGroup01 :

# Create an IPV4 IP address
az network public-ip create \
--name dsPublicIP_v4  \
--resource-group DsResourceGroup01  \
--location eastus  \
--sku STANDARD  \
--allocation-method static  \
--version IPv4

# Create an IPV6 IP address
az network public-ip create \
--name dsPublicIP_v6  \
--resource-group DsResourceGroup01  \
--location eastus \
--sku STANDARD  \
--allocation-method static  \
--version IPv6

Tworzenie publicznych adresów IP dla maszyn wirtualnych

Aby zdalnie uzyskać dostęp do maszyn wirtualnych w Internecie, potrzebne są publiczne adresy IP protokołu IPv4 dla maszyn wirtualnych. Utwórz publiczny adres IP za pomocą az network public-ip create.

az network public-ip create \
--name dsVM0_remote_access  \
--resource-group DsResourceGroup01 \
--location eastus  \
--sku Standard  \
--allocation-method static  \
--version IPv4

az network public-ip create \
--name dsVM1_remote_access  \
--resource-group DsResourceGroup01  \
--location eastus  \
--sku Standard  \
--allocation-method static  \
--version IPv4

Utwórz standardowy Load Balancer

W tej sekcji skonfigurujesz podwójny adres IP frontendu (IPv4 i IPv6) oraz pulę adresów zaplecza dla równoważnika obciążenia, a następnie utworzysz Standardowy Load Balancer.

Tworzenie modułu równoważenia obciążenia

Utwórz usługę Load Balancer w warstwie Standard za pomocą polecenia az network lb create o nazwie dsLB, która zawiera pulę frontend o nazwie dsLbFrontEnd_v4, pulę backend o nazwie dsLbBackEndPool_v4 skojarzoną z publicznym adresem IPv4 dsPublicIP_v4 utworzonym w poprzednim kroku.

az network lb create \
--name dsLB  \
--resource-group DsResourceGroup01 \
--sku Standard \
--location eastus \
--frontend-ip-name dsLbFrontEnd_v4  \
--public-ip-address dsPublicIP_v4  \
--backend-pool-name dsLbBackEndPool_v4

Tworzenie frontonu IPv6

Utwórz adres IP frontonu IPV6 za pomocą az network lb frontend-ip create. Poniższy przykład tworzy konfigurację adresu IP frontonu o nazwie dsLbFrontEnd_v6 i dołącza adres dsPublicIP_v6 :

az network lb frontend-ip create \
--lb-name dsLB  \
--name dsLbFrontEnd_v6  \
--resource-group DsResourceGroup01  \
--public-ip-address dsPublicIP_v6

Konfigurowanie puli adresów zaplecza IPv6

Utwórz pule adresowe backend IPv6 za pomocą polecenia az network lb address-pool create. Poniższy przykład obejmuje tworzenie puli adresów zaplecza o nazwie dsLbBackEndPool_v6 w celu uwzględnienia maszyn wirtualnych z konfiguracjami kart interfejsu sieciowego IPv6:

az network lb address-pool create \
--lb-name dsLB  \
--name dsLbBackEndPool_v6  \
--resource-group DsResourceGroup01

Tworzenie sondy kondycji

Utwórz sondę kondycji za pomocą polecenia az network lb probe create w celu monitorowania kondycji maszyn wirtualnych.

az network lb probe create -g DsResourceGroup01  --lb-name dsLB -n dsProbe --protocol tcp --port 3389

Utwórz regułę równoważenia obciążenia

Reguła modułu równoważenia obciążenia służy do definiowania sposobu dystrybucji ruchu do maszyn wirtualnych. Zdefiniuj konfigurację adresu IP przedniego do obsługi ruchu przychodzącego oraz pulę adresów IP w zapleczu, która odbiera ruch, wraz z wymaganymi portami źródłowym i docelowym.

Utwórz regułę modułu równoważenia obciążenia za pomocą polecenia az network lb rule create. Poniższy przykład tworzy reguły modułu równoważenia obciążenia o nazwie dsLBrule_v4 i dsLBrule_v6 oraz równoważy ruch na porcie TCP 80 do konfiguracji adresów IP frontonu IPv4 i IPv6:

az network lb rule create \
--lb-name dsLB  \
--name dsLBrule_v4  \
--resource-group DsResourceGroup01  \
--frontend-ip-name dsLbFrontEnd_v4  \
--protocol Tcp  \
--frontend-port 80  \
--backend-port 80  \
--probe-name dsProbe \
--backend-pool-name dsLbBackEndPool_v4


az network lb rule create \
--lb-name dsLB  \
--name dsLBrule_v6  \
--resource-group DsResourceGroup01 \
--frontend-ip-name dsLbFrontEnd_v6  \
--protocol Tcp  \
--frontend-port 80 \
--backend-port 80  \
--probe-name dsProbe \
--backend-pool-name dsLbBackEndPool_v6

Tworzenie zasobów sieciowych

Przed wdrożeniem niektórych maszyn wirtualnych należy utworzyć pomocnicze zasoby sieciowe — zestaw dostępności, sieciową grupę zabezpieczeń, sieć wirtualną i wirtualne karty sieciowe.

Tworzenie zestawu dostępności

Aby zwiększyć dostępność aplikacji, umieść maszyny wirtualne w zestawie dostępności.

Utwórz zestaw dostępności za pomocą polecenia `az vm availability-set create`. Poniższy przykład tworzy zestaw dostępności o nazwie dsAVset:

az vm availability-set create \
--name dsAVset  \
--resource-group DsResourceGroup01  \
--location eastus \
--platform-fault-domain-count 2  \
--platform-update-domain-count 2  

Tworzenie sieciowej grupy zabezpieczeń

Utwórz sieciową grupę zabezpieczeń dla reguł, które zarządzają komunikacją przychodzącą i wychodzącą w sieci wirtualnej.

Tworzenie sieciowej grupy zabezpieczeń

Utwórz sieciową grupę zabezpieczeń za pomocą az network nsg create

az network nsg create \
--name dsNSG1  \
--resource-group DsResourceGroup01  \
--location eastus

Utwórz regułę sieciowej grupy zabezpieczeń dla połączeń przychodzących i wychodzących

Utwórz regułę grupy zabezpieczeń sieciowych, aby zezwolić na połączenia RDP przez port 3389, na połączenia dla ruchu internetowego przez port 80 oraz na połączenia wychodzące za pomocą az network nsg rule create.

# Create inbound rule for port 3389
az network nsg rule create \
--name allowRdpIn  \
--nsg-name dsNSG1  \
--resource-group DsResourceGroup01  \
--priority 100  \
--description "Allow Remote Desktop In"  \
--access Allow  \
--protocol "*"  \
--direction Inbound  \
--source-address-prefixes "*"  \
--source-port-ranges "*"  \
--destination-address-prefixes "*"  \
--destination-port-ranges 3389

# Create inbound rule for port 80
az network nsg rule create \
--name allowHTTPIn  \
--nsg-name dsNSG1  \
--resource-group DsResourceGroup01  \
--priority 200  \
--description "Allow HTTP In"  \
--access Allow  \
--protocol "*"  \
--direction Inbound  \
--source-address-prefixes "*"  \
--source-port-ranges 80  \
--destination-address-prefixes "*"  \
--destination-port-ranges 80

# Create outbound rule

az network nsg rule create \
--name allowAllOut  \
--nsg-name dsNSG1  \
--resource-group DsResourceGroup01  \
--priority 300  \
--description "Allow All Out"  \
--access Allow  \
--protocol "*"  \
--direction Outbound  \
--source-address-prefixes "*"  \
--source-port-ranges "*"  \
--destination-address-prefixes "*"  \
--destination-port-ranges "*"

Tworzenie sieci wirtualnej

Utwórz sieć wirtualną za pomocą polecenia az network vnet create. Poniższy przykład tworzy sieć wirtualną o nazwie dsVNET z podsieciami dsSubNET_v4 i dsSubNET_v6:

# Create the virtual network
az network vnet create \
--name dsVNET \
--resource-group DsResourceGroup01 \
--location eastus  \
--address-prefixes "10.0.0.0/16" "fd00:db8:deca::/48"

# Create a single dual stack subnet

az network vnet subnet create \
--name dsSubNET \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--address-prefixes "10.0.0.0/24" "fd00:db8:deca:deed::/64" \
--network-security-group dsNSG1

Tworzenie kart sieciowych

Twórz wirtualne karty sieciowe dla każdej maszyny wirtualnej za pomocą az network nic create. Poniższy przykład tworzy wirtualną kartę sieciową dla każdej maszyny wirtualnej. Każda karta sieciowa ma dwie konfiguracje adresów IP (1 konfiguracja IPv4, 1 konfiguracja IPv6). Utwórz konfigurację IPV6 za pomocą az network nic ip-config create.

# Create NICs
az network nic create \
--name dsNIC0  \
--resource-group DsResourceGroup01 \
--network-security-group dsNSG1  \
--vnet-name dsVNET  \
--subnet dsSubNet  \
--private-ip-address-version IPv4 \
--lb-address-pools dsLbBackEndPool_v4  \
--lb-name dsLB  \
--public-ip-address dsVM0_remote_access

az network nic create \
--name dsNIC1 \
--resource-group DsResourceGroup01 \
--network-security-group dsNSG1 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv4 \
--lb-address-pools dsLbBackEndPool_v4 \
--lb-name dsLB \
--public-ip-address dsVM1_remote_access

# Create IPV6 configurations for each NIC

az network nic ip-config create \
--name dsIp6Config_NIC0  \
--nic-name dsNIC0  \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv6 \
--lb-address-pools dsLbBackEndPool_v6 \
--lb-name dsLB

az network nic ip-config create \
--name dsIp6Config_NIC1 \
--nic-name dsNIC1 \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv6 \
--lb-address-pools dsLbBackEndPool_v6 \
--lb-name dsLB

Tworzenie maszyn wirtualnych

Utwórz maszyny wirtualne za pomocą az vm create. Poniższy przykład tworzy dwie maszyny wirtualne i wymagane składniki sieci wirtualnej, jeśli jeszcze nie istnieją.

Utwórz maszynę wirtualną dsVM0 w następujący sposób:

 az vm create \
--name dsVM0 \
--resource-group DsResourceGroup01 \
--nics dsNIC0 \
--size Standard_A2 \
--availability-set dsAVset \
--image MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest  

Utwórz maszynę wirtualną dsVM1 w następujący sposób:

az vm create \
--name dsVM1 \
--resource-group DsResourceGroup01 \
--nics dsNIC1 \
--size Standard_A2 \
--availability-set dsAVset \
--image MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest 

Zobacz sieć wirtualną o podwójnym stosie IPv6 w portalu Azure

Sieć wirtualną podwójnego stosu IPv6 można wyświetlić w witrynie Azure Portal w następujący sposób:

  1. Na pasku wyszukiwania portalu wprowadź ciąg dsVnet.
  2. Gdy pozycja myVirtualNetwork pojawi się w wynikach wyszukiwania, wybierz ją. Uruchamia to stronę Przegląd dla dwustackowej sieci wirtualnej o nazwie dsVnet. Sieć wirtualna z podwójnym stosem pokazuje dwie karty sieciowe z konfiguracjami IPv4 i IPv6, które znajdują się w podsieci podwójnego stosu o nazwie dsSubnet.

Czyszczenie zasobów

Gdy grupa zasobów, maszyna wirtualna i wszystkie pokrewne zasoby nie będą już potrzebne, można je usunąć za pomocą polecenia az group delete.

 az group delete --name DsResourceGroup01

Następne kroki