Menyebarkan aplikasi tumpukan ganda IPv6 di jaringan virtual Azure menggunakan PowerShell

Artikel ini menunjukkan kepada Anda cara menyebarkan aplikasi tumpukan ganda (IPv4 + IPv6) menggunakan Load Balancer Standar di Azure yang mencakup jaringan virtual tumpukan ganda dan subnet, Load Balancer Standar dengan konfigurasi frontend ganda (IPv4 + IPv6), VM dengan NIC yang memiliki konfigurasi IP ganda, grup keamanan jaringan, dan IP publik.

Azure Cloud Shell

Azure meng-hosting Azure Cloud Shell, lingkungan shell interaktif yang dapat Anda gunakan melalui browser. Anda dapat menggunakan Bash atau PowerShell dengan Cloud Shell untuk bekerja dengan layanan Azure. Anda dapat menggunakan perintah Cloud Shell yang telah diinstal sebelumnya untuk menjalankan kode dalam artikel ini tanpa harus menginstal apa-apa di lingkungan lokal Anda.

Untuk memulai Azure Cloud Shell:

Opsi Contoh/Tautan
Pilih Coba di pojok kanan atas blok kode atau perintah. Memilih Coba tidak otomatis menyalin kode atau perintah ke Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Buka https://shell.azure.com, atau pilih tombol Luncurkan Cloud Shell untuk membuka Cloud Shell di browser Anda. Button to launch Azure Cloud Shell.
Pilih tombol Cloud Shell pada bilah menu di kanan atas di portal Microsoft Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Untuk menggunakan Azure Cloud Shell:

  1. Mulai Cloud Shell.

  2. Pilih tombol Salin pada blok kode (atau blok perintah) untuk menyalin kode atau perintah.

  3. Tempel kode atau perintah ke dalam sesi Cloud Shell dengan memilih Ctrl+Shift+V di Windows dan Linux, atau dengan memilih Cmd+Shift+V di macOS.

  4. Pilih Masukkan untuk menjalankan kode atau perintah.

Jika Anda memilih untuk menginstal dan menggunakan PowerShell secara lokal, artikel ini memerlukan modul Azure PowerShell versi 6.9.0 atau yang lebih baru. Jalankan Get-Module -ListAvailable Az untuk menemukan versi terinstal. Jika Anda perlu peningkatan, lihat Instal modul Azure PowerShell. Jika Anda menjalankan PowerShell secara lokal, Anda juga harus menjalankan Connect-AzAccount untuk membuat koneksi dengan Azure.

Buat grup sumber daya

Sebelum dapat membuat jaringan virtual tumpukan ganda, Anda harus membuat grup sumber daya dengan New-AzResourceGroup. Contoh berikut ini menampilkan cara membuat grup sumber daya dengan nama myResourceGroup di lokasi us timur:

   $rg = New-AzResourceGroup `
  -ResourceGroupName "dsRG1"  `
  -Location "east us"

Membuat alamat IP publik IPv4 dan IPv6

Untuk mengakses komputer virtual Anda dari Internet, Anda memerlukan alamat IP publik IPv4 dan IPv6 untuk load balancer. Buat alamat IP publik dengan New-AzPublicIpAddress. Contoh berikut membuat alamat IP publik IPv4 dan IPv6 dengan nama dsPublicIP_v4 dan dsPublicIP_v6 di grup sumber daya dsRG1:

$PublicIP_v4 = New-AzPublicIpAddress `
  -Name "dsPublicIP_v4" `
  -ResourceGroupName $rg.ResourceGroupName `
  -Location $rg.Location  `
  -AllocationMethod Static `
  -IpAddressVersion IPv4 `
  -Sku Standard
  
$PublicIP_v6 = New-AzPublicIpAddress `
  -Name "dsPublicIP_v6" `
  -ResourceGroupName $rg.ResourceGroupName `
  -Location $rg.Location  `
  -AllocationMethod Static `
  -IpAddressVersion IPv6 `
  -Sku Standard

Untuk mengakses komputer virtual Anda menggunakan koneksi RDP, buat alamat IP publik IPV4 untuk komputer virtual dengan New-AzPublicIpAddress.

  $RdpPublicIP_1 = New-AzPublicIpAddress `
  -Name "RdpPublicIP_1" `
  -ResourceGroupName $rg.ResourceGroupName `
  -Location $rg.Location  `
  -AllocationMethod Static `
  -Sku Standard `
  -IpAddressVersion IPv4
  
  $RdpPublicIP_2 = New-AzPublicIpAddress `
   -Name "RdpPublicIP_2" `
   -ResourceGroupName $rg.ResourceGroupName `
   -Location $rg.Location  `
   -AllocationMethod Static `
   -Sku Standard `
   -IpAddressVersion IPv4

Membuat Load Balancer Standar

Di bagian ini, Anda mengonfigurasi IP frontend ganda (IPv4 dan IPv6) dan kumpulan alamat backend untuk load balancer lalu membuat Load Balancer Standar.

Membuat IP frontend

Buat IP frontend dengan New-AzLoadBalancerFrontendIpConfig. Contoh berikut membuat konfigurasi IP frontend IPv4 dan IPv6 dengan nama dsLbFrontEnd_v4 dan dsLbFrontEnd_v6:

$frontendIPv4 = New-AzLoadBalancerFrontendIpConfig `
  -Name "dsLbFrontEnd_v4" `
  -PublicIpAddress $PublicIP_v4

$frontendIPv6 = New-AzLoadBalancerFrontendIpConfig `
  -Name "dsLbFrontEnd_v6" `
  -PublicIpAddress $PublicIP_v6

Mengonfigurasi kumpulan alamat backend

Buat kumpulan alamat backend dengan New-AzLoadBalancerBackendAddressPoolConfig. Komputer virtual menempel pada kumpulan backend ini di langkah-langkah yang tersisa. Contoh berikut membuat kumpulan alamat backend bernama dsLbBackEndPool_v4 dan dsLbBackEndPool_v6 untuk menyertakan VM dengan konfigurasi IPV4 dan IPv6 NIC:

$backendPoolv4 = New-AzLoadBalancerBackendAddressPoolConfig `
-Name "dsLbBackEndPool_v4"

$backendPoolv6 = New-AzLoadBalancerBackendAddressPoolConfig `
-Name "dsLbBackEndPool_v6"

Membuat pemeriksaan kesehatan

Gunakan Add-AzLoadBalancerProbeConfig untuk membuat pemeriksaan kesehatan guna memantau kesehatan VM.

$probe = New-AzLoadBalancerProbeConfig -Name MyProbe -Protocol tcp -Port 3389 -IntervalInSeconds 15 -ProbeCount 2

Membuat aturan load balancer

Aturan load balancer digunakan untuk menentukan cara lalu lintas didistribusikan ke VM. Anda menentukan konfigurasi IP frontend untuk lalu lintas masuk, dan kumpulan IP backend untuk menerima lalu lintas, serta sumber dan port tujuan yang diperlukan. Untuk memastikan hanya VM yang sehat yang menerima lalu lintas, Anda dapat secara opsional menentukan pemeriksaan kesehatan. Load balancer dasar menggunakan probe IPv4 untuk menilai kesehatan bagi titik akhir IPv4 dan IPv6 pada VM. Load balancer standar mencakup dukungan untuk pemeriksaan kesehatan IPv6 secara eksplisit.

Buat aturan load balancer dengan Add-AzLoadBalancerRuleConfig. Contoh berikut membuat aturan load balancer dengan nama dsLBrule_v4 dan dsLBrule_v6 dan menyeimbangkan lalu lintas di TCP port 80 ke konfigurasi IP frontend IPv4 dan IPv6:

$lbrule_v4 = New-AzLoadBalancerRuleConfig `
  -Name "dsLBrule_v4" `
  -FrontendIpConfiguration $frontendIPv4 `
  -BackendAddressPool $backendPoolv4 `
  -Protocol Tcp `
  -FrontendPort 80 `
  -BackendPort 80 `
   -probe $probe

$lbrule_v6 = New-AzLoadBalancerRuleConfig `
  -Name "dsLBrule_v6" `
  -FrontendIpConfiguration $frontendIPv6 `
  -BackendAddressPool $backendPoolv6 `
  -Protocol Tcp `
  -FrontendPort 80 `
  -BackendPort 80 `
   -probe $probe

Membuat load balancer

Buat Load Balancer Standar dengan New-AzLoadBalancer. Contoh berikut membuat Load Balancer Dasar publik dengan nama myLoadBalancer menggunakan konfigurasi IP frontend IPv4 dan IPv6, kumpulan backend, dan aturan load balancing yang Anda buat di langkah-langkah sebelumnya:

$lb = New-AzLoadBalancer `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location  `
-Name "MyLoadBalancer" `
-Sku "Standard" `
-FrontendIpConfiguration $frontendIPv4,$frontendIPv6 `
-BackendAddressPool $backendPoolv4,$backendPoolv6 `
-LoadBalancingRule $lbrule_v4,$lbrule_v6 `
-Probe $probe

Membuat sumber daya jaringan

Sebelum menerapkan beberapa VM dan dapat menguji balancer, Anda harus membuat sumber daya jaringan pendukung - set ketersediaan, kelompok keamanan jaringan, jaringan virtual, dan NIC virtual.

Membuat set ketersediaan

Guna meningkatkan ketersediaan tinggi aplikasi Anda, tempatkan VM Anda dalam set ketersediaan.

Buat set ketersediaan dengan New-AzAvailabilitySet. Contoh berikut membuat set ketersediaan dengan nama myAvailabilitySet:

$avset = New-AzAvailabilitySet `
  -ResourceGroupName $rg.ResourceGroupName `
  -Location $rg.Location  `
  -Name "dsAVset" `
  -PlatformFaultDomainCount 2 `
  -PlatformUpdateDomainCount 2 `
  -Sku aligned

Membuat kelompok keamanan jaringan

Buat grup keamanan jaringan untuk aturan yang mengatur komunikasi masuk dan keluar di VNET Anda.

Membuat aturan kelompok keamanan jaringan untuk port 3389

Buat aturan kelompok keamanan jaringan untuk mengizinkan koneksi RDP melalui port 3389 dengan New-AzNetworkSecurityRuleConfig.

$rule1 = New-AzNetworkSecurityRuleConfig `
-Name 'myNetworkSecurityGroupRuleRDP' `
-Description 'Allow RDP' `
-Access Allow `
-Protocol Tcp `
-Direction Inbound `
-Priority 100 `
-SourceAddressPrefix * `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 3389

Buat aturan kelompok keamanan jaringan untuk port 80

Buat aturan kelompok keamanan jaringan untuk mengizinkan koneksi internet melalui port 80 dengan New-AzNetworkSecurityRuleConfig.

$rule2 = New-AzNetworkSecurityRuleConfig `
  -Name 'myNetworkSecurityGroupRuleHTTP' `
  -Description 'Allow HTTP' `
  -Access Allow `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 200 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 80

Membuat grup keamanan jaringan

Buat grup keamanan jaringan dengan New-AzNetworkSecurityGroup.

$nsg = New-AzNetworkSecurityGroup `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location  `
-Name "dsNSG1"  `
-SecurityRules $rule1,$rule2

Membuat jaringan virtual

Buat jaringan virtual dengan New-AzVirtualNetwork. Contoh berikut membuat jaringan virtual dengan nama dsVnet dengan mySubnet:

# Create dual stack subnet
$subnet = New-AzVirtualNetworkSubnetConfig `
-Name "dsSubnet" `
-AddressPrefix "10.0.0.0/24","fd00:db8:deca:deed::/64"

# Create the virtual network
$vnet = New-AzVirtualNetwork `
  -ResourceGroupName $rg.ResourceGroupName `
  -Location $rg.Location  `
  -Name "dsVnet" `
  -AddressPrefix "10.0.0.0/16","fd00:db8:deca::/48"  `
  -Subnet $subnet

Membuat NIC

Buat NIC virtual dengan New-AzNetworkInterface. Contoh berikut membuat dua NIC virtual dengan konfigurasi IPv4 dan IPv6. (Satu NIC virtual untuk setiap VM yang Anda buat untuk aplikasi Anda dalam langkah-langkah berikut).

  $Ip4Config=New-AzNetworkInterfaceIpConfig `
    -Name dsIp4Config `
    -Subnet $vnet.subnets[0] `
    -PrivateIpAddressVersion IPv4 `
    -LoadBalancerBackendAddressPool $backendPoolv4 `
    -PublicIpAddress  $RdpPublicIP_1
      
  $Ip6Config=New-AzNetworkInterfaceIpConfig `
    -Name dsIp6Config `
    -Subnet $vnet.subnets[0] `
    -PrivateIpAddressVersion IPv6 `
    -LoadBalancerBackendAddressPool $backendPoolv6
    
  $NIC_1 = New-AzNetworkInterface `
    -Name "dsNIC1" `
    -ResourceGroupName $rg.ResourceGroupName `
    -Location $rg.Location  `
    -NetworkSecurityGroupId $nsg.Id `
    -IpConfiguration $Ip4Config,$Ip6Config 
    
  $Ip4Config=New-AzNetworkInterfaceIpConfig `
    -Name dsIp4Config `
    -Subnet $vnet.subnets[0] `
    -PrivateIpAddressVersion IPv4 `
    -LoadBalancerBackendAddressPool $backendPoolv4 `
    -PublicIpAddress  $RdpPublicIP_2  

  $NIC_2 = New-AzNetworkInterface `
    -Name "dsNIC2" `
    -ResourceGroupName $rg.ResourceGroupName `
    -Location $rg.Location  `
    -NetworkSecurityGroupId $nsg.Id `
    -IpConfiguration $Ip4Config,$Ip6Config 

Membuat komputer virtual

Atur nama pengguna dan kata sandi administrator untuk komputer virtual dengan Get-Credential:

$cred = get-credential -Message "DUAL STACK VNET SAMPLE:  Please enter the Administrator credential to log into the VMs."

Sekarang Anda dapat membuat VM dengan New-AzVM. Contoh berikut membuat dua VM dan komponen jaringan virtual yang diperlukan jika belum ada.

$vmsize = "Standard_A2"
$ImagePublisher = "MicrosoftWindowsServer"
$imageOffer = "WindowsServer"
$imageSKU = "2019-Datacenter"

$vmName= "dsVM1"
$VMconfig1 = New-AzVMConfig -VMName $vmName -VMSize $vmsize -AvailabilitySetId $avset.Id 3> $null | Set-AzVMOperatingSystem -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent 3> $null | Set-AzVMSourceImage -PublisherName $ImagePublisher -Offer $imageOffer -Skus $imageSKU -Version "latest" 3> $null | Set-AzVMOSDisk -Name "$vmName.vhd" -CreateOption fromImage  3> $null | Add-AzVMNetworkInterface -Id $NIC_1.Id  3> $null 
$VM1 = New-AzVM -ResourceGroupName $rg.ResourceGroupName  -Location $rg.Location  -VM $VMconfig1 

$vmName= "dsVM2"
$VMconfig2 = New-AzVMConfig -VMName $vmName -VMSize $vmsize -AvailabilitySetId $avset.Id 3> $null | Set-AzVMOperatingSystem -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent 3> $null | Set-AzVMSourceImage -PublisherName $ImagePublisher -Offer $imageOffer -Skus $imageSKU -Version "latest" 3> $null | Set-AzVMOSDisk -Name "$vmName.vhd" -CreateOption fromImage  3> $null | Add-AzVMNetworkInterface -Id $NIC_2.Id  3> $null 
$VM2 = New-AzVM -ResourceGroupName $rg.ResourceGroupName  -Location $rg.Location  -VM $VMconfig2

Menentukan alamat IP titik akhir IPv4 dan IPv6

Dapatkan semua Objek Antarmuka Jaringan dalam grup sumber daya untuk meringkas IP yang digunakan dalam penyebaran ini dengan get-AzNetworkInterface. Selain itu, dapatkan alamat frontend Load Balancer dari titik akhir IPv4 dan IPv6 dengan get-AzpublicIpAddress.

$rgName= "dsRG1"
$NICsInRG= get-AzNetworkInterface -resourceGroupName $rgName 
write-host `nSummary of IPs in this Deployment: 
write-host ******************************************
foreach ($NIC in $NICsInRG) {
 
    $VMid= $NIC.virtualmachine.id 
    $VMnamebits= $VMid.split("/") 
    $VMname= $VMnamebits[($VMnamebits.count-1)] 
    write-host `nPrivate IP addresses for $VMname 
    $IPconfigsInNIC= $NIC.IPconfigurations 
    foreach ($IPconfig in $IPconfigsInNIC) {
 
        $IPaddress= $IPconfig.privateipaddress 
        write-host "    "$IPaddress 
        IF ($IPconfig.PublicIpAddress.ID) {
 
            $IDbits= ($IPconfig.PublicIpAddress.ID).split("/")
            $PipName= $IDbits[($IDbits.count-1)]
            $PipObject= get-azPublicIpAddress -name $PipName -resourceGroup $rgName
            write-host "    "RDP address:  $PipObject.IpAddress
                 }
         }
 }
 
 
 
  write-host `nPublic IP addresses on Load Balancer:
 
  (get-AzpublicIpAddress -resourcegroupname $rgName | where { $_.name -notlike "RdpPublicIP*" }).IpAddress

Gambar berikut menunjukkan contoh output yang mencantumkan alamat IPv4 dan IPv6 privat dari dua VM, dan alamat IP IPv4 dan IPv6 frontend dari Load Balancer.

IP summary of dual stack (IPv4/IPv6) application deployment in Azure

Lihat jaringan virtual tumpukan ganda IPv6 di portal Microsoft Azure

Anda dapat melihat jaringan virtual dual stack IPv6 di portal Microsoft Azure sebagai berikut:

  1. Di bilah pencarian portal, masukkan dsVnet.
  2. Jika dsVnet muncul dalam hasil pencarian, pilihlah. Ini akan membuka halaman Ikhtisar jaringan virtual tumpukan ganda dengan nama dsVnet. Jaringan virtual tumpukan ganda menunjukkan dua NIC dengan konfigurasi IPv4 dan IPv6 yang berada di subnet tumpukan ganda bernama dsSubnet.

IPv6 dual stack virtual network in Azure

Membersihkan sumber daya

Jika tidak diperlukan lagi, Anda dapat menggunakan perintah Remove-AzResourceGroup untuk menghapus grup sumber daya, VM, dan semua sumber daya terkait.

Remove-AzResourceGroup -Name dsRG1

Langkah berikutnya

Dalam artikel ini, Anda membuat Load Balancer Standar dengan konfigurasi IP frontend ganda (IPv4 dan IPv6). Anda juga membuat dua komputer virtual yang menyertakan NIC dengan konfigurasi IP ganda (IPV4 + IPv6) yang ditambahkan ke kumpulan backend load balancer. Untuk mempelajari selengkapnya tentang dukungan IPv6 di jaringan virtual Azure, baca Apa itu IPv6 untuk Azure Virtual Network?