Buat jaringan virtual untuk kluster Microsoft Azure HDInsight
Artikel ini menyediakan contoh dan sampel kode untuk membuat dan mengonfigurasi Azure Virtual Networks. Untuk digunakan dengan kluster Azure HDInsight. Contoh terperinci dalam membuat grup keamanan jaringan (NSGs) dan mengonfigurasi DNS disajikan.
Untuk informasi latar belakang tentang menggunakan jaringan virtual dengan Azure HDInsight, lihat Merencanakan jaringan virtual untuk Azure HDInsight.
Prasyarat untuk sampel dan contoh kode
Sebelum mengeksekusi salah satu sampel kode dalam artikel ini, miliki pemahaman tentang jaringan TCP/IP. Jika Anda tidak terbiasa dengan jaringan TCP/IP, konsultasikan dengan seseorang sebelum melakukan modifikasi pada jaringan produksi.
Prasyarat lain untuk sampel dalam artikel ini mencakup item berikut:
- Jika Anda menggunakan PowerShell, Anda perlu menginstal Modul AZ.
- Jika ingin menggunakan Azure CLI dan Anda belum memasangnya, lihat Memasang Azure CLI.
Penting
Jika Anda mencari panduan langkah demi langkah tentang menyambungkan HDInsight ke jaringan lokal Anda menggunakan Azure Virtual Network, lihat Cara menyambungkan HDInsight ke jaringan lokal Anda.
Contoh: grup keamanan jaringan dengan HDInsight
Contoh dalam bagian ini menunjukkan cara membuat aturan grup keamanan jaringan. Aturan memungkinkan HDInsight berkomunikasi dengan layanan manajemen Azure. Sebelum menggunakan contoh, sesuaikan alamat IP agar sesuai dengan alamat untuk wilayah Azure yang Anda gunakan. Anda dapat menemukan informasi ini di alamat IP manajemen HDInsight.
Templat Azure Resource Manager
Templat Resource Manager berikut membuat jaringan virtual yang membatasi lalu lintas masuk, tetapi mengizinkan lalu lintas dari alamat IP yang diperlukan oleh HDInsight. Templat ini juga membuat kluster HDInsight di jaringan virtual.
Azure PowerShell
Gunakan skrip PowerShell berikut untuk membuat jaringan virtual yang membatasi lalu lintas masuk dan memungkinkan lalu lintas dari alamat IP untuk wilayah Eropa Utara.
Penting
Ubah alamat IP untuk hdirule1
dan hdirule2
dalam contoh ini agar sesuai dengan wilayah Azure yang Anda gunakan. Anda dapat menemukan informasi ini alamat IP manajemen HDInsight.
$vnetName = "Replace with your virtual network name"
$resourceGroupName = "Replace with the resource group the virtual network is in"
$subnetName = "Replace with the name of the subnet that you plan to use for HDInsight"
# Get the Virtual Network object
$vnet = Get-AzVirtualNetwork `
-Name $vnetName `
-ResourceGroupName $resourceGroupName
# Get the region the Virtual network is in.
$location = $vnet.Location
# Get the subnet object
$subnet = $vnet.Subnets | Where-Object Name -eq $subnetName
# Create a Network Security Group.
# And add exemptions for the HDInsight health and management services.
$nsg = New-AzNetworkSecurityGroup `
-Name "hdisecure" `
-ResourceGroupName $resourceGroupName `
-Location $location `
| Add-AzNetworkSecurityRuleConfig `
-name "hdirule1" `
-Description "HDI health and management address 52.164.210.96" `
-Protocol "*" `
-SourcePortRange "*" `
-DestinationPortRange "443" `
-SourceAddressPrefix "52.164.210.96" `
-DestinationAddressPrefix "VirtualNetwork" `
-Access Allow `
-Priority 300 `
-Direction Inbound `
| Add-AzNetworkSecurityRuleConfig `
-Name "hdirule2" `
-Description "HDI health and management 13.74.153.132" `
-Protocol "*" `
-SourcePortRange "*" `
-DestinationPortRange "443" `
-SourceAddressPrefix "13.74.153.132" `
-DestinationAddressPrefix "VirtualNetwork" `
-Access Allow `
-Priority 301 `
-Direction Inbound `
| Add-AzNetworkSecurityRuleConfig `
-Name "hdirule3" `
-Description "HDI health and management 168.61.49.99" `
-Protocol "*" `
-SourcePortRange "*" `
-DestinationPortRange "443" `
-SourceAddressPrefix "168.61.49.99" `
-DestinationAddressPrefix "VirtualNetwork" `
-Access Allow `
-Priority 302 `
-Direction Inbound `
| Add-AzNetworkSecurityRuleConfig `
-Name "hdirule4" `
-Description "HDI health and management 23.99.5.239" `
-Protocol "*" `
-SourcePortRange "*" `
-DestinationPortRange "443" `
-SourceAddressPrefix "23.99.5.239" `
-DestinationAddressPrefix "VirtualNetwork" `
-Access Allow `
-Priority 303 `
-Direction Inbound `
| Add-AzNetworkSecurityRuleConfig `
-Name "hdirule5" `
-Description "HDI health and management 168.61.48.131" `
-Protocol "*" `
-SourcePortRange "*" `
-DestinationPortRange "443" `
-SourceAddressPrefix "168.61.48.131" `
-DestinationAddressPrefix "VirtualNetwork" `
-Access Allow `
-Priority 304 `
-Direction Inbound `
| Add-AzNetworkSecurityRuleConfig `
-Name "hdirule6" `
-Description "HDI health and management 138.91.141.162" `
-Protocol "*" `
-SourcePortRange "*" `
-DestinationPortRange "443" `
-SourceAddressPrefix "138.91.141.162" `
-DestinationAddressPrefix "VirtualNetwork" `
-Access Allow `
-Priority 305 `
-Direction Inbound `
# Set the changes to the security group
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $nsg
# Apply the NSG to the subnet
Set-AzVirtualNetworkSubnetConfig `
-VirtualNetwork $vnet `
-Name $subnetName `
-AddressPrefix $subnet.AddressPrefix `
-NetworkSecurityGroup $nsg
$vnet | Set-AzVirtualNetwork
Contoh ini menunjukkan cara menambahkan aturan untuk memungkinkan lalu lintas masuk pada alamat IP yang diperlukan. Ini tidak berisi aturan untuk membatasi akses masuk dari sumber lain. Kode berikut menunjukkan cara mengaktifkan akses SSH dari Internet:
Get-AzNetworkSecurityGroup -Name hdisecure -ResourceGroupName RESOURCEGROUP |
Add-AzNetworkSecurityRuleConfig -Name "SSH" -Description "SSH" -Protocol "*" -SourcePortRange "*" -DestinationPortRange "22" -SourceAddressPrefix "*" -DestinationAddressPrefix "VirtualNetwork" -Access Allow -Priority 306 -Direction Inbound
Azure CLI
Gunakan langkah-langkah berikut untuk membuat jaringan virtual yang membatasi lalu lintas masuk, tetapi memungkinkan lalu lintas dari alamat IP yang diperlukan oleh HDInsight.
Gunakan perintah berikut ini untuk membuat grup keamanan jaringan baru bernama
hdisecure
. GantiRESOURCEGROUP
dengan grup sumber daya yang berisi Azure Virtual Network. GantiLOCATION
dengan lokasi (wilayah) tempat grup dibuat.az network nsg create -g RESOURCEGROUP -n hdisecure -l LOCATION
Setelah grup dibuat, Anda menerima informasi tentang grup baru.
Gunakan yang berikut ini untuk menambahkan aturan ke grup keamanan jaringan baru yang memungkinkan komunikasi masuk pada port 443 dari layanan kesehatan dan manajemen Azure HDInsight. Ganti
RESOURCEGROUP
dengan nama grup sumber daya yang berisi Azure Virtual Network.Penting
Ubah alamat IP untuk
hdirule1
danhdirule2
dalam contoh ini agar sesuai dengan wilayah Azure yang Anda gunakan. Anda dapat menemukan informasi ini di alamat IP manajemen HDInsight.az network nsg rule create -g RESOURCEGROUP --nsg-name hdisecure -n hdirule1 --protocol "*" --source-port-range "*" --destination-port-range "443" --source-address-prefix "52.164.210.96" --destination-address-prefix "VirtualNetwork" --access "Allow" --priority 300 --direction "Inbound" az network nsg rule create -g RESOURCEGROUP --nsg-name hdisecure -n hdirule2 --protocol "*" --source-port-range "*" --destination-port-range "443" --source-address-prefix "13.74.153.132" --destination-address-prefix "VirtualNetwork" --access "Allow" --priority 301 --direction "Inbound" az network nsg rule create -g RESOURCEGROUP --nsg-name hdisecure -n hdirule3 --protocol "*" --source-port-range "*" --destination-port-range "443" --source-address-prefix "168.61.49.99" --destination-address-prefix "VirtualNetwork" --access "Allow" --priority 302 --direction "Inbound" az network nsg rule create -g RESOURCEGROUP --nsg-name hdisecure -n hdirule4 --protocol "*" --source-port-range "*" --destination-port-range "443" --source-address-prefix "23.99.5.239" --destination-address-prefix "VirtualNetwork" --access "Allow" --priority 303 --direction "Inbound" az network nsg rule create -g RESOURCEGROUP --nsg-name hdisecure -n hdirule5 --protocol "*" --source-port-range "*" --destination-port-range "443" --source-address-prefix "168.61.48.131" --destination-address-prefix "VirtualNetwork" --access "Allow" --priority 304 --direction "Inbound" az network nsg rule create -g RESOURCEGROUP --nsg-name hdisecure -n hdirule6 --protocol "*" --source-port-range "*" --destination-port-range "443" --source-address-prefix "138.91.141.162" --destination-address-prefix "VirtualNetwork" --access "Allow" --priority 305 --direction "Inbound"
Untuk mengambil pengidentifikasi unik untuk grup keamanan jaringan ini, gunakan perintah berikut:
az network nsg show -g RESOURCEGROUP -n hdisecure --query "id"
Perintah ini mengembalikan nilai yang mirip dengan URI berikut:
"/subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Network/networkSecurityGroups/hdisecure"
Gunakan perintah berikut ini untuk menerapkan grup keamanan jaringan ke subnet. Ganti nilai
GUID
danRESOURCEGROUP
dengan nilai yang dikembalikan dari langkah sebelumnya. GantiVNETNAME
danSUBNETNAME
dengan nama jaringan virtual dan nama subnet yang ingin Anda buat.az network vnet subnet update -g RESOURCEGROUP --vnet-name VNETNAME --name SUBNETNAME --set networkSecurityGroup.id="/subscriptions/GUID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Network/networkSecurityGroups/hdisecure"
Setelah perintah ini selesai, Anda dapat memasang HDInsight ke dalam Microsoft Azure Virtual Network.
Langkah-langkah ini hanya membuka akses ke layanan kesehatan dan manajemen HDInsight di cloud Azure. Akses lain ke kluster HDInsight dari luar Microsoft Azure Virtual Network diblokir. Untuk mengaktifkan akses dari luar jaringan virtual, Anda harus menambahkan lebih banyak aturan Kelompok Keamanan Jaringan.
Kode berikut menunjukkan cara mengaktifkan akses SSH dari Internet:
az network nsg rule create -g RESOURCEGROUP --nsg-name hdisecure -n ssh --protocol "*" --source-port-range "*" --destination-port-range "22" --source-address-prefix "*" --destination-address-prefix "VirtualNetwork" --access "Allow" --priority 306 --direction "Inbound"
Contoh: Konfigurasi DNS
Resolusi nama antara jaringan virtual dan jaringan lokal yang tersambung
Artikel ini membuat asumsi berikut:
Anda memiliki Azure Virtual Network yang tersambung ke jaringan lokal menggunakan gateway VPN.
Server DNS kustom di jaringan virtual menjalankan Linux atau Unix sebagai sistem operasi.
Bind dipasang pada server DNS kustom.
Membuat server DNS di jaringan virtual:
Gunakan Azure PowerShell atau Azure CLI untuk menemukan akhiran DNS jaringan virtual:
Ganti
RESOURCEGROUP
dengan nama grup sumber daya yang berisi jaringan virtual, lalu masukkan perintah:$NICs = Get-AzNetworkInterface -ResourceGroupName "RESOURCEGROUP" $NICs[0].DnsSettings.InternalDomainNameSuffix
az network nic list --resource-group RESOURCEGROUP --query "[0].dnsSettings.internalDomainNameSuffix"
Di server DNS kustom untuk jaringan virtual, gunakan teks berikut sebagai konten file
/etc/bind/named.conf.local
:// Forward requests for the virtual network suffix to Azure recursive resolver zone "0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net" { type forward; forwarders {168.63.129.16;}; # Azure recursive resolver };
Ganti nilai
0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net
dengan akhiran DNS jaringan virtual Anda.Konfigurasi ini merutekan semua permintaan DNS untuk akhiran DNS jaringan virtual ke pemecah masalah rekursif Azure.
Di server DNS kustom untuk jaringan virtual, gunakan teks berikut sebagai konten file
/etc/bind/named.conf.options
:// Clients to accept requests from // TODO: Add the IP range of the joined network to this list acl goodclients { 10.0.0.0/16; # IP address range of the virtual network localhost; localnets; }; options { directory "/var/cache/bind"; recursion yes; allow-query { goodclients; }; # All other requests are sent to the following forwarders { 192.168.0.1; # Replace with the IP address of your on-premises DNS server }; dnssec-validation auto; auth-nxdomain no; # conform to RFC1035 listen-on { any; }; };
Ganti nilai
10.0.0.0/16
dengan rentang alamat IP jaringan virtual Anda. Entri ini memungkinkan alamat permintaan resolusi nama dalam rentang ini.Tambahkan rentang alamat IP jaringan lokal ke bagian
acl goodclients { ... }
tersebut. entri memungkinkan permintaan resolusi nama dari sumber daya di jaringan lokal.Ganti nilai
192.168.0.1
dengan alamat IP server DNS lokal Anda. Entri ini merutekan semua permintaan DNS lainnya ke server DNS lokal.
Untuk menggunakan konfigurasi, hidupkan ulang Bind. Contohnya,
sudo service bind9 restart
.Tambahkan penerus bersyarat ke server DNS lokal. Konfigurasikan penerus bersyarat untuk mengirim permintaan akhiran DNS dari langkah 1 ke server DNS kustom.
Catatan
Lihat dokumentasi untuk perangkat lunak DNS Anda secara spesifik tentang cara menambahkan penerus bersyarat.
Setelah menyelesaikan langkah-langkah ini, Anda dapat terhubung ke sumber daya di salah satu jaringan menggunakan nama domain yang sepenuhnya memenuhi syarat (FQDN). Anda sekarang dapat memasang HDInsight ke jaringan virtual.
Resolusi nama antara dua jaringan virtual yang terhubung
Artikel ini membuat asumsi berikut:
Anda memiliki dua Azure Virtual Networks yang tersambung menggunakan gateway VPN atau peering.
Server DNS kustom di kedua jaringan menjalankan Linux atau Unix sebagai sistem operasi.
Bind dipasang pada server DNS kustom.
Gunakan Azure PowerShell atau Azure CLI untuk menemukan akhiran DNS dari kedua jaringan virtual:
Ganti
RESOURCEGROUP
dengan nama grup sumber daya yang berisi jaringan virtual, lalu masukkan perintah:$NICs = Get-AzNetworkInterface -ResourceGroupName "RESOURCEGROUP" $NICs[0].DnsSettings.InternalDomainNameSuffix
az network nic list --resource-group RESOURCEGROUP --query "[0].dnsSettings.internalDomainNameSuffix"
Gunakan teks berikut sebagai konten file
/etc/bind/named.config.local
di server DNS kustom. Buat perubahan ini pada server DNS kustom di kedua jaringan virtual.// Forward requests for the virtual network suffix to Azure recursive resolver zone "0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net" { type forward; forwarders {10.0.0.4;}; # The IP address of the DNS server in the other virtual network };
Ganti nilai
0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net
dengan akhiran DNS dari jaringan virtual lainnya. Entri ini merutekan permintaan akhiran DNS dari jaringan jarak jauh ke DNS kustom di jaringan tersebut.Pada server DNS kustom di kedua jaringan virtual, gunakan teks berikut sebagai konten file
/etc/bind/named.conf.options
:// Clients to accept requests from acl goodclients { 10.1.0.0/16; # The IP address range of one virtual network 10.0.0.0/16; # The IP address range of the other virtual network localhost; localnets; }; options { directory "/var/cache/bind"; recursion yes; allow-query { goodclients; }; forwarders { 168.63.129.16; # Azure recursive resolver }; dnssec-validation auto; auth-nxdomain no; # conform to RFC1035 listen-on { any; }; };
Ganti nilai
10.0.0.0/16
dan nilai10.1.0.0/16
dengan rentang alamat IP jaringan virtual Anda. Entri ini memungkinkan sumber daya di setiap jaringan untuk membuat permintaan server DNS.Setiap permintaan yang bukan untuk akhiran DNS jaringan virtual (misalnya, microsoft.com) ditangani oleh resolver rekursif Azure.
Untuk menggunakan konfigurasi, hidupkan ulang Bind. Misalnya,
sudo service bind9 restart
di kedua server DNS.
Setelah menyelesaikan langkah-langkah ini, Anda dapat terhubung ke sumber daya di jaringan virtual menggunakan nama domain yang sepenuhnya memenuhi syarat (FQDN). Anda sekarang dapat memasang HDInsight ke jaringan virtual.
Uji pengaturan Anda sebelum menyebarkan kluster HDInsight
Sebelum menyebarkan kluster, Anda dapat memeriksa bahwa banyak pengaturan konfigurasi jaringan Anda sudah benar dengan menjalankan alat HdInsight Network Validator pada komputer virtual Azure Linux di jaringan virtual dan subnet yang sama dengan kluster yang direncanakan.
Langkah berikutnya
Untuk contoh lengkap mengonfigurasi HDInsight untuk terhubung ke jaringan lokal, lihat Menghubungkan HDInsight ke jaringan lokal.
Untuk mengonfigurasi kluster Apache HBase di jaringan virtual Azure, lihat Membuat kluster HBase Apache di HDInsight di Azure Virtual Network.
Untuk mengonfigurasi geo-replikasi Apache HBase, lihat Mengatur replikasi kluster Apache HBase di jaringan virtual Azure.
Untuk informasi selengkapnya tentang Azure Virtual Network, lihat Gambaran umum Azure Virtual Network.
Untuk informasi selengkapnya tentang kelompok keamanan jaringan, lihat Kelompok keamanan jaringan.
Untuk informasi selengkapnya tentang rute yang ditentukan pengguna, lihat Rute yang ditentukan pengguna dan penerusan IP.