Bagikan melalui


Mengonfigurasi Application Gateway dengan alamat IPv6 publik frontend menggunakan Azure PowerShell

Azure Application Gateway mendukung koneksi frontend tumpukan ganda (IPv4 dan IPv6) dari klien. Untuk menggunakan konektivitas frontend IPv6, Anda perlu membuat Application Gateway baru. Saat ini Anda tidak dapat memutakhirkan Application Gateway IPv4 yang ada saja ke Application Gateway dual stack (IPv4 dan IPv6). Selain itu, alamat IPv6 backend saat ini tidak didukung.

Untuk mendukung frontend untuk IPv6, Anda harus membuat VNet dual-stack. VNet tumpukan ganda ini memiliki subnet untuk IPv4 dan IPv6. Azure VNets sudah menyediakan kemampuan tumpukan ganda.

Gambaran Umum

Azure PowerShell digunakan untuk membuat Azure Application Gateway IPv6. Pengujian dilakukan untuk memverifikasi bahwa pengujian berfungsi dengan benar.

Anda akan mempelajari cara untuk:

Azure PowerShell digunakan untuk membuat Azure Application Gateway IPv6 dan melakukan pengujian untuk memastikannya berfungsi dengan benar. Gateway aplikasi dapat mengelola dan mengamankan lalu lintas web ke server yang Anda pertahankan. Set skala mesin virtual digunakan untuk server backend dalam mengelola lalu lintas web. Set skala mencakup dua instans mesin virtual yang ditambahkan ke kumpulan backend default dari gateway aplikasi. Untuk informasi selengkapnya tentang komponen gateway aplikasi, lihat Komponen gateway aplikasi.

Anda juga dapat menyelesaikan panduan cepat ini menggunakan portal Azure.

Prasyarat

Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

Jika Anda memilih untuk memasang dan menggunakan PowerShell secara lokal, artikel ini memerlukan modul Azure PowerShell versi 1.0.0 atau yang lebih baru. Jalankan Get-Module -ListAvailable Az untuk mencari tahu versinya. Jika Anda perlu peningkatan, lihat Instal modul Azure PowerShell. Jika Anda menjalankan PowerShell secara lokal, Anda juga harus menjalankan Login-AzAccount untuk membuat koneksi dengan Azure.

Wilayah dan ketersediaan

Application Gateway IPv6 tersedia untuk semua wilayah cloud publik tempat Application Gateway v2 SKU didukung. Ini juga tersedia di Microsoft Azure yang dioperasikan oleh 21Vianet dan Azure Government

Batasan

  • Hanya SKU v2 yang mendukung frontend dengan alamat IPv4 dan IPv6
  • Backend IPv6 saat ini tidak didukung
  • Private Link IPv6 saat ini tidak didukung
  • Application Gateway khusus IPv6 saat ini tidak didukung. Application Gateway harus berupa dual stack (IPv6 dan IPv4)
  • Pengontrol Ingress Application Gateway (AGIC) tidak mendukung konfigurasi IPv6
  • Gateway Aplikasi IPv4 yang ada tidak dapat ditingkatkan menjadi Gateway Aplikasi dua tumpukan.
  • Aturan kustom WAF dengan kondisi kecocokan IPv6 saat ini tidak didukung

Buat grup sumber daya

Grup sumber daya adalah wadah logis tempat sumber daya Azure disebarkan dan dikelola. Buat grup sumber daya Azure menggunakan New-AzResourceGroup.

New-AzResourceGroup -Name myResourceGroupAG -Location eastus

Mengonfigurasi subnet tumpukan ganda dan subnet backend

Konfigurasikan subnet untuk myBackendSubnet dan myAGSubnet menggunakan New-AzVirtualNetworkSubnetConfig.

$AppGwSubnetPrefix = @("10.0.0.0/24", "ace:cab:deca::/64")
$appgwSubnet = New-AzVirtualNetworkSubnetConfig `
-Name myAGSubnet -AddressPrefix $AppGwSubnetPrefix
$backendSubnet = New-AzVirtualNetworkSubnetConfig `
-Name myBackendSubnet -AddressPrefix  10.0.1.0/24

Membuat jaringan virtual dengan tumpukan ganda

$VnetPrefix = @("10.0.0.0/16", "ace:cab:deca::/48")
$vnet = New-AzVirtualNetwork `
-Name myVNet `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-AddressPrefix $VnetPrefix `
-Subnet @($appgwSubnet, $backendSubnet)

Buat alamat IP publik Frontend Application Gateway

$pipv4 = New-AzPublicIpAddress `
-Name myAGPublicIPAddress4 `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Sku 'Standard' `
-AllocationMethod 'Static' `
-IpAddressVersion 'IPv4' `
-Force

$pipv6 = New-AzPublicIpAddress `
-Name myAGPublicIPAddress6 `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Sku 'Standard' `
-AllocationMethod 'Static' `
-IpAddressVersion 'IPv6' `
-Force

Membuat konfigurasi IP dan port

Kaitkan myAGSubnet yang sebelumnya Anda buat ke gateway aplikasi menggunakan New-AzApplicationGatewayIPConfiguration. Tetapkan myAGPublicIPAddress ke gateway aplikasi menggunakan New-AzApplicationGatewayFrontendIPConfig.

$vnet   = Get-AzVirtualNetwork `
-ResourceGroupName myResourceGroupAG `
-Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig `
-VirtualNetwork $vnet `
-Name myAGSubnet
$gipconfig = New-AzApplicationGatewayIPConfiguration `
-Name myAGIPConfig `
-Subnet $subnet
$fipconfigv4 = New-AzApplicationGatewayFrontendIPConfig `
-Name myAGFrontendIPv4Config `
-PublicIPAddress $pipv4
$fipconfigv6 = New-AzApplicationGatewayFrontendIPConfig `
-Name myAGFrontendIPv6Config `
-PublicIPAddress $pipv6
$frontendport = New-AzApplicationGatewayFrontendPort `
-Name myAGFrontendIPv6Config `
-Port 80

Membuat kumpulan dan pengaturan backend

Buat kumpulan backend bernama appGatewayBackendPool untuk gateway aplikasi menggunakan New-AzApplicationGatewayBackendAddressPool. Konfigurasikan pengaturan untuk kumpulan alamat backend menggunakan New-AzApplicationGatewayBackendHttpSettings.

$backendPool = New-AzApplicationGatewayBackendAddressPool `
-Name myAGBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSetting `
-Name myPoolSettings `
-Port 80 `
-Protocol Http `
-CookieBasedAffinity Enabled `
-RequestTimeout 30

Membuat pendengar dan aturan default

Pendengar diperlukan untuk mengaktifkan gateway aplikasi untuk merutekan lalu lintas dengan tepat ke kumpulan ujung belakang. Dalam contoh ini, Anda membuat listener dasar yang mendengarkan lalu lintas di URL akar.

Buat listener default bernama mydefaultListener menggunakan New-AzApplicationGatewayHttpListener dengan konfigurasi frontend dan port frontend yang Anda buat sebelumnya. Agar listener mengetahui pool backend mana yang digunakan untuk lalu lintas masuk, diperlukan sebuah aturan. Buat aturan dasar bernama rule1 menggunakan New-AzApplicationGatewayRequestRoutingRule.

$listenerv4 = New-AzApplicationGatewayHttpListener `
-Name myAGListnerv4 `
-Protocol Http `
-FrontendIPConfiguration $fipconfigv4 `
-FrontendPort $frontendport
$listenerv6 = New-AzApplicationGatewayHttpListener `
-Name myAGListnerv6 `
-Protocol Http `
-FrontendIPConfiguration $fipconfigv6 `
-FrontendPort $frontendport
$frontendRulev4 = New-AzApplicationGatewayRequestRoutingRule `
-Name ruleIPv4 `
-RuleType Basic `
-Priority 10 `
-HttpListener $listenerv4 `
-BackendAddressPool $backendPool `
-BackendHttpSettings $poolSettings 
$frontendRulev6 = New-AzApplicationGatewayRequestRoutingRule `
-Name ruleIPv6 `
-RuleType Basic `
-Priority 1 `
-HttpListener $listenerv6 `
-BackendAddressPool $backendPool `
-BackendHttpSettings $poolsettings

Buat gerbang aplikasi

Setelah membuat sumber daya pendukung yang diperlukan, Anda dapat menentukan parameter untuk gateway aplikasi menggunakan New-AzApplicationGatewaySku. Gateway aplikasi baru dibuat menggunakan New-AzApplicationGateway. Membuat gateway aplikasi membutuhkan waktu beberapa menit.

$sku = New-AzApplicationGatewaySku `
  -Name Standard_v2 `
  -Tier Standard_v2 `
  -Capacity 2
New-AzApplicationGateway `
-Name myipv6AppGW `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-BackendAddressPools $backendPool `
-BackendHttpSettingsCollection $poolsettings `
-FrontendIpConfigurations @($fipconfigv4, $fipconfigv6) `
-GatewayIpConfigurations $gipconfig `
-FrontendPorts $frontendport `
-HttpListeners @($listenerv4, $listenerv6) `
-RequestRoutingRules @($frontendRulev4, $frontendRulev6) `
-Sku $sku `
-Force

Server ujung belakang

Setelah membuat gateway aplikasi, Anda dapat membuat komputer virtual backend untuk menghosting situs web. Backend dapat terdiri dari NIC, set skala komputer virtual, alamat IP publik, alamat IP internal, nama domain yang sepenuhnya memenuhi syarat (FQDN), dan backend multipenyewa seperti Azure App Service.

Buat dua komputer virtual

Dalam contoh ini, Anda membuat dua komputer virtual yang digunakan sebagai server backend untuk gateway aplikasi. IIS diinstal pada komputer virtual untuk memverifikasi bahwa Azure berhasil membuat gateway aplikasi. Set skala ditugaskan ke kumpulan backend saat Anda mengonfigurasi pengaturan alamat IP.

Untuk membuat mesin virtual, kami mendapatkan konfigurasi kumpulan backend Application Gateway yang baru dibuat dengan Get-AzApplicationGatewayBackendAddressPool. Informasi ini digunakan untuk:

  • Buat antarmuka jaringan dengan New-AzNetworkInterface.
  • Buat konfigurasi komputer virtual dengan New-AzVMConfig.
  • Buat komputer virtual dengan New-AzVM.

Catatan

Saat Anda menjalankan sampel kode berikut untuk membuat komputer virtual, Azure meminta kredensial kepada Anda. Masukkan nama pengguna dan kata sandi Anda. Pembuatan VM membutuhkan waktu beberapa menit.

$appgw = Get-AzApplicationGateway -ResourceGroupName myResourceGroupAG -Name myipv6AppGW
$backendPool = Get-AzApplicationGatewayBackendAddressPool -Name myAGBackendPool -ApplicationGateway $appgw
$vnet   = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myBackendSubnet
$cred = Get-Credential
for ($i=1; $i -le 2; $i++)
{
  $nic = New-AzNetworkInterface `
    -Name myNic$i `
    -ResourceGroupName myResourceGroupAG `
    -Location EastUS `
    -Subnet $subnet `
    -ApplicationGatewayBackendAddressPool $backendpool
  $vm = New-AzVMConfig `
    -VMName myVM$i `
    -VMSize Standard_DS2_v2
  Set-AzVMOperatingSystem `
    -VM $vm `
    -Windows `
    -ComputerName myVM$i `
    -Credential $cred
  Set-AzVMSourceImage `
    -VM $vm `
    -PublisherName MicrosoftWindowsServer `
    -Offer WindowsServer `
    -Skus 2016-Datacenter `
    -Version latest
  Add-AzVMNetworkInterface `
    -VM $vm `
    -Id $nic.Id
  Set-AzVMBootDiagnostic `
    -VM $vm `
    -Disable
  New-AzVM -ResourceGroupName myResourceGroupAG -Location EastUS -VM $vm
  Set-AzVMExtension `
    -ResourceGroupName myResourceGroupAG `
    -ExtensionName IIS `
    -VMName myVM$i `
    -Publisher Microsoft.Compute `
    -ExtensionType CustomScriptExtension `
    -TypeHandlerVersion 1.4 `
    -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' `
    -Location EastUS
}

Menemukan alamat IP publik Application Gateway

Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress6

Menetapkan nama DNS ke alamat IPv6 frontend

Nama DNS mempermudah pengujian untuk gateway aplikasi IPv6. Anda bisa menetapkan nama DNS publik menggunakan domain dan pencatat Anda sendiri atau Anda bisa membuat nama di azure.com.

Gunakan perintah berikut untuk menetapkan nama di azure.com. Nama diatur ke label yang Anda tentukan + wilayah + cloudapp.azure.com. Dalam contoh ini, rekaman AAAA myipv6appgw dibuat di namespace eastus.cloudapp.azure.com:

$publicIp = Get-AzPublicIpAddress -Name myAGPublicIPAddress6 -ResourceGroupName myResourceGroupAG
$publicIp.DnsSettings = @{"DomainNameLabel" = "myipv6appgw"}
Set-AzPublicIpAddress -PublicIpAddress $publicIp

Uji gateway aplikasi

Sebelumnya, kami menetapkan nama DNS myipv6appgw.eastus.cloudapp.azure.com ke alamat IPv6 publik gateway aplikasi. Untuk menguji koneksi ini:

  1. Menggunakan cmdlet Invoke-WebRequest, terbitkan permintaan ke frontend IPv6.
  2. Periksa responsnya. Respons myVM1 atau myVM2 yang valid memverifikasi bahwa gateway aplikasi berhasil dibuat dan berhasil terhubung dengan backend. Jika Anda mengeluarkan perintah beberapa kali, gateway melakukan penyeimbangan beban untuk merespons permintaan berikutnya dari server backend yang berbeda.
PS C:\> (Invoke-WebRequest -Uri myipv6appgw.eastus.cloudapp.azure.com).Content
myVM2

Penting

Jika koneksi ke nama DNS atau alamat IPv6 gagal, mungkin karena Anda tidak dapat menelusuri alamat IPv6 dari perangkat Anda. Untuk memeriksa apakah ini masalah Anda, uji juga alamat IPv4 gateway aplikasi. Jika alamat IPv4 berhasil tersambung, kemungkinan Anda tidak memiliki alamat IPv6 publik yang ditetapkan ke perangkat Anda. Jika demikian, Anda dapat mencoba menguji koneksi dengan dual-stack VM.

Membersihkan sumber daya

Jika tidak lagi diperlukan, hapus grup sumber daya, gateway aplikasi, dan semua sumber daya terkait menggunakan Remove-AzResourceGroup.

Remove-AzResourceGroup -Name myResourceGroupAG

Langkah berikutnya