Azure HDInsight kümeleri için sanal ağlar oluşturma
Bu makalede Azure Sanal Ağ oluşturma ve yapılandırma örnekleri ve kod örnekleri sağlanır. Azure HDInsight kümeleriyle kullanmak için. Ağ güvenlik grupları (NSG) oluşturma ve DNS yapılandırma hakkında ayrıntılı örnekler sunulur.
Azure HDInsight ile sanal ağları kullanma hakkında arka plan bilgileri için bkz . Azure HDInsight için sanal ağ planlama.
Kod örnekleri ve örnekleri için önkoşullar
Bu makaledeki kod örneklerinden herhangi birini yürütmeden önce TCP/IP ağı hakkında bilgi sahibi olun. TCP/IP ağına aşina değilseniz üretim ağlarında değişiklik yapmadan önce birine danışın.
Bu makaledeki örnekler için diğer önkoşullar aşağıdaki öğeleri içerir:
- PowerShell kullanıyorsanız AZ Modülünü yüklemeniz gerekir.
- Azure CLI'yı kullanmak istiyorsanız ve henüz yüklemediyseniz bkz . Azure CLI'yi yükleme.
Önemli
HDInsight'ı Azure Sanal Ağ kullanarak şirket içi ağınıza bağlama konusunda adım adım yönergeler arıyorsanız bkz. HDInsight'ı şirket içi ağınıza bağlama.
Örnek: HDInsight ile ağ güvenlik grupları
Bu bölümdeki örneklerde ağ güvenlik grubu kurallarının nasıl oluşturulacağı gösterilmektedir. Kurallar HDInsight'ın Azure yönetim hizmetleriyle iletişim kurmasına olanak sağlar. Örnekleri kullanmadan önce, IP adreslerini kullandığınız Azure bölgesiyle eşleşecek şekilde ayarlayın. Bu bilgileri HDInsight yönetim IP adreslerinde bulabilirsiniz.
Azure Resource Manager şablonu
Aşağıdaki Resource Manager şablonu, gelen trafiği kısıtlayan ancak HDInsight tarafından gereken IP adreslerinden gelen trafiğe izin veren bir sanal ağ oluşturur. Bu şablon ayrıca sanal ağda bir HDInsight kümesi oluşturur.
Azure PowerShell
Gelen trafiği kısıtlayan ve Kuzey Avrupa bölgesinin IP adreslerinden gelen trafiğe izin veren bir sanal ağ oluşturmak için aşağıdaki PowerShell betiğini kullanın.
Önemli
Bu örnekte ve hdirule2
için hdirule1
IP adreslerini, kullandığınız Azure bölgesiyle eşleşecek şekilde değiştirin. Bu bilgileri HDInsight yönetim IP adresleri bulabilirsiniz.
$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
Bu örnekte, gerekli IP adreslerinde gelen trafiğe izin vermek için kuralların nasıl ekleneceği gösterilmektedir. Diğer kaynaklardan gelen erişimi kısıtlamak için bir kural içermez. Aşağıdaki kod, İnternet'ten SSH erişiminin nasıl etkinleştirileceği gösterilmektedir:
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
Gelen trafiği kısıtlayan ancak HDInsight'ın gerektirdiği IP adreslerinden gelen trafiğe izin veren bir sanal ağ oluşturmak için aşağıdaki adımları kullanın.
adlı
hdisecure
yeni bir ağ güvenlik grubu oluşturmak için aşağıdaki komutu kullanın. değerini Azure Sanal Ağ içeren kaynak grubuyla değiştirinRESOURCEGROUP
. öğesini, grubun oluşturulduğu konum (bölge) ile değiştirinLOCATION
.az network nsg create -g RESOURCEGROUP -n hdisecure -l LOCATION
Grup oluşturulduktan sonra yeni grup hakkında bilgi alırsınız.
Azure HDInsight sistem durumu ve yönetim hizmetinden 443 numaralı bağlantı noktasında gelen iletişime izin veren yeni ağ güvenlik grubuna kurallar eklemek için aşağıdakileri kullanın. değerini Azure Sanal Ağ içeren kaynak grubunun adıyla değiştirin
RESOURCEGROUP
.Önemli
Bu örnekte ve
hdirule2
içinhdirule1
IP adreslerini, kullandığınız Azure bölgesiyle eşleşecek şekilde değiştirin. Bu bilgileri HDInsight yönetim IP adreslerinde bulabilirsiniz.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"
Bu ağ güvenlik grubunun benzersiz tanımlayıcısını almak için aşağıdaki komutu kullanın:
az network nsg show -g RESOURCEGROUP -n hdisecure --query "id"
Bu komut aşağıdaki metne benzer bir değer döndürür:
"/subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Network/networkSecurityGroups/hdisecure"
Ağ güvenlik grubunu bir alt ağa uygulamak için aşağıdaki komutu kullanın.
GUID
veRESOURCEGROUP
değerlerini önceki adımdan döndürülenlerle değiştirin. veSUBNETNAME
değerini, oluşturmak istediğiniz sanal ağ adı ve alt ağ adıyla değiştirinVNETNAME
.az network vnet subnet update -g RESOURCEGROUP --vnet-name VNETNAME --name SUBNETNAME --set networkSecurityGroup.id="/subscriptions/GUID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Network/networkSecurityGroups/hdisecure"
Bu komut tamamlandıktan sonra HDInsight'ı Sanal Ağ yükleyebilirsiniz.
Bu adımlar yalnızca Azure bulutundaki HDInsight sistem durumu ve yönetim hizmetine açık erişim sağlar. HDInsight kümesine Sanal Ağ dışından diğer tüm erişimler engellenir. Sanal ağın dışından erişimi etkinleştirmek için daha fazla Ağ Güvenlik Grubu kuralı eklemeniz gerekir.
Aşağıdaki kod, İnternet'ten SSH erişiminin nasıl etkinleştirileceği gösterilmektedir:
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"
Örnek: DNS yapılandırması
Sanal ağ ile bağlı şirket içi ağ arasındaki ad çözümlemesi
Bu örnek aşağıdaki varsayımları yapar:
VPN ağ geçidi kullanarak şirket içi ağa bağlı bir Azure Sanal Ağ var.
Sanal ağdaki özel DNS sunucusu, işletim sistemi olarak Linux veya Unix çalıştırıyor.
Bağlama , özel DNS sunucusuna yüklenir.
Sanal ağdaki özel DNS sunucusunda:
Sanal ağın DNS son ekini bulmak için Azure PowerShell veya Azure CLI kullanın:
değerini sanal ağı içeren kaynak grubunun adıyla değiştirin
RESOURCEGROUP
ve komutunu girin:$NICs = Get-AzNetworkInterface -ResourceGroupName "RESOURCEGROUP" $NICs[0].DnsSettings.InternalDomainNameSuffix
az network nic list --resource-group RESOURCEGROUP --query "[0].dnsSettings.internalDomainNameSuffix"
Sanal ağ için özel DNS sunucusunda, dosyanın içeriği
/etc/bind/named.conf.local
olarak aşağıdaki metni kullanın:// 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 };
0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net
değerini sanal ağınızın DNS soneki ile değiştirin.Bu yapılandırma, sanal ağın DNS soneki için tüm DNS isteklerini Azure özyinelemeli çözümleyiciye yönlendirir.
Sanal ağ için özel DNS sunucusunda, dosyanın içeriği
/etc/bind/named.conf.options
olarak aşağıdaki metni kullanın:// 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; }; };
10.0.0.0/16
değerini sanal ağınızın IP adresi aralığıyla değiştirin. Bu giriş, bu aralıktaki ad çözümleme isteklerinin adreslerine izin verir.Şirket içi ağın
acl goodclients { ... }
IP adresi aralığını bölümüne ekleyin. girdisi, şirket içi ağdaki kaynaklardan gelen ad çözümleme isteklerine izin verir.değerini
192.168.0.1
şirket içi DNS sunucunuzun IP adresiyle değiştirin. Bu giriş, diğer tüm DNS isteklerini şirket içi DNS sunucusuna yönlendirir.
Yapılandırmayı kullanmak için Bağlama'yı yeniden başlatın. Örneğin,
sudo service bind9 restart
.Şirket içi DNS sunucusuna koşullu iletici ekleyin. Koşullu ileticiyi, 1. adımdaki DNS soneki için özel DNS sunucusuna istek gönderecek şekilde yapılandırın.
Not
Koşullu iletici eklemeyle ilgili ayrıntılar için DNS yazılımınızın belgelerine bakın.
Bu adımları tamamladıktan sonra, tam etki alanı adlarını (FQDN) kullanarak her iki ağdaki kaynaklara bağlanabilirsiniz. Artık HDInsight'ı sanal ağa yükleyebilirsiniz.
İki bağlı sanal ağ arasındaki ad çözümlemesi
Bu örnek aşağıdaki varsayımları yapar:
VPN ağ geçidi veya eşleme kullanılarak bağlanan iki Azure Sanal Ağ var.
Her iki ağdaki özel DNS sunucusu işletim sistemi olarak Linux veya Unix çalıştırıyor.
Bağlama , özel DNS sunucularına yüklenir.
Her iki sanal ağın DNS sonekini bulmak için Azure PowerShell veya Azure CLI kullanın:
değerini sanal ağı içeren kaynak grubunun adıyla değiştirin
RESOURCEGROUP
ve komutunu girin:$NICs = Get-AzNetworkInterface -ResourceGroupName "RESOURCEGROUP" $NICs[0].DnsSettings.InternalDomainNameSuffix
az network nic list --resource-group RESOURCEGROUP --query "[0].dnsSettings.internalDomainNameSuffix"
Özel DNS sunucusunda dosyanın içeriği
/etc/bind/named.config.local
olarak aşağıdaki metni kullanın. Bu değişikliği her iki sanal ağda da özel DNS sunucusunda yapın.// 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 };
0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net
değerini diğer sanal ağın DNS soneki ile değiştirin. Bu giriş, uzak ağın DNS soneki isteklerini bu ağdaki özel DNS'ye yönlendirir.Her iki sanal ağdaki özel DNS sunucularında dosyanın içeriği
/etc/bind/named.conf.options
olarak aşağıdaki metni kullanın:// 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; }; };
10.0.0.0/16
ve10.1.0.0/16
değerlerini sanal ağlarınızın IP adresi aralıklarıyla değiştirin. Bu giriş, her ağdaki kaynakların DNS sunucularından istekte bulunmalarına olanak tanır.Sanal ağların DNS sonekleri için olmayan tüm istekler (örneğin, microsoft.com) Azure özyinelemeli çözümleyicisi tarafından işlenir.
Yapılandırmayı kullanmak için Bağlama'yı yeniden başlatın. Örneğin,
sudo service bind9 restart
her iki DNS sunucusunda da.
Bu adımları tamamladıktan sonra, tam etki alanı adlarını (FQDN) kullanarak sanal ağdaki kaynaklara bağlanabilirsiniz. Artık HDInsight'ı sanal ağa yükleyebilirsiniz.
HDInsight kümesi dağıtmadan önce ayarlarınızı test edin
Kümenizi dağıtmadan önce, hdInsight Ağ Doğrulayıcı aracını planlanan kümeyle aynı sanal ağda ve alt ağda bir Azure Linux sanal makinesinde çalıştırarak ağ yapılandırma ayarlarınızın çoğunun doğru olup olmadığını denetleyebilirsiniz.
Sonraki adımlar
HDInsight'ı şirket içi ağa bağlanacak şekilde yapılandırmaya ilişkin eksiksiz bir örnek için bkz . HDInsight'ı şirket içi ağa bağlama.
Azure sanal ağlarında Apache HBase kümelerini yapılandırmak için bkz. Azure Sanal Ağ'de HDInsight üzerinde Apache HBase kümeleri oluşturma.
Apache HBase coğrafi çoğaltmasını yapılandırmak için bkz . Azure sanal ağlarında Apache HBase küme çoğaltmasını ayarlama.
Azure sanal ağları hakkında daha fazla bilgi için bkz. Azure Sanal Ağ genel bakış.
Ağ güvenlik grupları hakkında daha fazla bilgi için bkz . Ağ güvenlik grupları.
Kullanıcı tanımlı yollar hakkında daha fazla bilgi için bkz . Kullanıcı tanımlı yollar ve IP iletme.