Wdrażanie aplikacji podwójnego stosu IPv6 w sieci wirtualnej platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure

W tym artykule pokazano, jak wdrożyć aplikację z podwójnym stosem (IPv4 + IPv6) przy użyciu usługa Load Balancer w warstwie Standardowa na platformie Azure, która obejmuje sieć wirtualną z podwójnym stosem z podsiecią podwójnego stosu, usługa Load Balancer w warstwie Standardowa z podwójnymi konfiguracjami frontonu (IPv4 + IPv6), maszyny wirtualne z kartami sieciowymi z konfiguracją dwóch adresów IP, regułami podwójnej grupy zabezpieczeń sieci i podwójnymi publicznymi adresami IP.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Wymagania wstępne

  • Ten artykuł wymaga wersji 2.0.49 lub nowszej interfejsu wiersza polecenia platformy Azure. W przypadku korzystania z usługi Azure Cloud Shell najnowsza wersja jest już zainstalowana.

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ą polecenia 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ą polecenia 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

Tworzenie usługi Load Balancer w warstwie Standardowa

W tej sekcji skonfigurujesz podwójny adres IP frontonu (IPv4 i IPv6) oraz pulę adresów zaplecza dla modułu równoważenia obciążenia, a następnie utworzysz usługa Load Balancer w warstwie Standardowa.

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

Utwórz usługa Load Balancer w warstwie Standardowa za pomocą polecenia az network lb create o nazwie dsLB zawierającej pulę frontonu o nazwie dsLbFrontEnd_v4, pulę zaplecza o nazwie dsLbBackEndPool_v4 skojarzoną z publicznym adresem IP 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ą polecenia 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 adresów zaplecza 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

Tworzenie reguły modułu 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 frontonu na potrzeby ruchu przychodzącego oraz pulę adresów IP zaplecza do odbierania ruchu, wraz z wymaganym portem ź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.

Aby utworzyć zestaw dostępności, użyj 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ń

Tworzenie sieciowej grupy zabezpieczeń za pomocą polecenia az network nsg create

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

Tworzenie reguły sieciowej grupy zabezpieczeń dla połączeń przychodzących i wychodzących

Utwórz regułę sieciowej grupy zabezpieczeń, aby zezwolić na połączenia RDP za pośrednictwem portu 3389, połączenia internetowego za pośrednictwem portu 80 i dla połączeń wychodzących za pomocą polecenia 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

Utwórz wirtualne karty sieciowe dla każdej maszyny wirtualnej za pomocą polecenia 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). Konfiguracja protokołu IPV6 jest tworzona za pomocą polecenia 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ą polecenia 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 

Wyświetlanie sieci wirtualnej podwójnego stosu IPv6 w witrynie Azure Portal

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ą. Spowoduje to uruchomienie strony Przegląd sieci wirtualnej z podwójnym stosem o nazwie dsVnet. Sieć wirtualna z podwójnym stosem pokazuje dwie karty sieciowe z konfiguracjami IPv4 i IPv6 znajdującymi się w podsieci podwójnej stosu o nazwie dsSubnet.

IPv6 dual stack virtual network in Azure

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

W tym artykule utworzono usługa Load Balancer w warstwie Standardowa z konfiguracją podwójnego adresu IP frontonu (IPv4 i IPv6). Utworzono również dwie maszyny wirtualne, które zawierały karty sieciowe z dwiema konfiguracjami adresów IP (IPV4 + IPv6), które zostały dodane do puli zaplecza modułu równoważenia obciążenia. Aby dowiedzieć się więcej o obsłudze protokołu IPv6 w sieciach wirtualnych platformy Azure, zobacz Co to jest protokół IPv6 dla usługi Azure Virtual Network?