Virtuális hálózatok létrehozása Azure HDInsight-fürtökhöz
Ez a cikk példákat és kódmintákat tartalmaz az Azure Virtual Networks létrehozásához és konfigurálásához. Azure HDInsight-fürtökkel való használatra. Részletes példákat mutatunk be a hálózati biztonsági csoportok (NSG-k) létrehozására és a DNS konfigurálására.
A virtuális hálózatok Azure HDInsighttal való használatáról további információt az Azure HDInsight virtuális hálózatának megtervezése című témakörben talál.
A kódminták és példák előfeltételei
A jelen cikkben szereplő kódminták végrehajtása előtt ismerje meg a TCP/IP-hálózatkezelést. Ha nem ismeri a TCP/IP-hálózatkezelést, az éles hálózatok módosítása előtt forduljon valakihez.
A cikkben szereplő minták egyéb előfeltételei közé tartoznak a következő elemek:
- Ha PowerShellt használ, telepítenie kell az AZ-modult.
- Ha az Azure CLI-t szeretné használni, de még nem telepítette, olvassa el az Azure CLI telepítését.
Fontos
Ha lépésről lépésre szeretne útmutatást keresni a HDInsight helyszíni hálózathoz azure-beli virtuális hálózattal való csatlakoztatásáról, olvassa el a HDInsight csatlakoztatása a helyszíni hálózathoz című témakört.
Példa: hálózati biztonsági csoportok a HDInsighttal
Az ebben a szakaszban szereplő példák bemutatják, hogyan hozhat létre hálózati biztonsági csoportszabályokat. A szabályok lehetővé teszik, hogy a HDInsight kommunikáljon az Azure felügyeleti szolgáltatásokkal. A példák használata előtt módosítsa az IP-címeket a használt Azure-régió ip-címeinek megfelelően. Ezeket az információkat a HDInsight felügyeleti IP-címeiben találja.
Azure Resource Manager-sablon
A következő Resource Manager-sablon létrehoz egy virtuális hálózatot, amely korlátozza a bejövő forgalmat, de engedélyezi a HDInsight által igényelt IP-címekről érkező forgalmat. Ez a sablon egy HDInsight-fürtöt is létrehoz a virtuális hálózaton.
Azure PowerShell
Az alábbi PowerShell-szkripttel olyan virtuális hálózatot hozhat létre, amely korlátozza a bejövő forgalmat, és engedélyezi az észak-európai régió IP-címeinek forgalmát.
Fontos
Módosítsa a példában és hdirule2
a példában szereplő IP-címeket hdirule1
a használt Azure-régiónak megfelelőre. Ezeket az információkat a HDInsight felügyeleti IP-címei között találja.
$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
Ez a példa bemutatja, hogyan adhat hozzá szabályokat a bejövő forgalom engedélyezéséhez a szükséges IP-címeken. Nem tartalmaz olyan szabályt, amely korlátozná a más forrásokból érkező hozzáférést. Az alábbi kód bemutatja, hogyan engedélyezheti az SSH-hozzáférést az internetről:
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
Az alábbi lépésekkel létrehozhat egy olyan virtuális hálózatot, amely korlátozza a bejövő forgalmat, de engedélyezi a HDInsight által igényelt IP-címekről érkező forgalmat.
Az alábbi paranccsal hozzon létre egy új hálózati biztonsági csoportot.
hdisecure
Cserélje leRESOURCEGROUP
az Azure-beli virtuális hálózatot tartalmazó erőforráscsoportra. Cserélje leLOCATION
azt a helyet (régiót), amelyben a csoport létre lett hozva.az network nsg create -g RESOURCEGROUP -n hdisecure -l LOCATION
A csoport létrehozása után információkat kap az új csoportról.
Az alábbiakban olyan szabályokat adhat hozzá az új hálózati biztonsági csoporthoz, amelyek engedélyezik a bejövő kommunikációt a 443-as porton az Azure HDInsight állapot- és felügyeleti szolgáltatásból. Cserélje le
RESOURCEGROUP
az Azure-beli virtuális hálózatot tartalmazó erőforráscsoport nevére.Fontos
Módosítsa a példában és
hdirule2
a példában szereplő IP-címekethdirule1
a használt Azure-régiónak megfelelőre. Ezeket az információkat a HDInsight felügyeleti IP-címeiben találja.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"
A hálózati biztonsági csoport egyedi azonosítójának lekéréséhez használja a következő parancsot:
az network nsg show -g RESOURCEGROUP -n hdisecure --query "id"
Ez a parancs az alábbi szöveghez hasonló értéket ad vissza:
"/subscriptions/SUBSCRIPTIONID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Network/networkSecurityGroups/hdisecure"
A következő paranccsal alkalmazza a hálózati biztonsági csoportot egy alhálózatra. Cserélje le az és
RESOURCEGROUP
azGUID
értékeket az előző lépésből visszaadott értékekre. Cserélje le ésSUBNETNAME
írja beVNETNAME
a létrehozni kívánt virtuális hálózat nevét és alhálózatát.az network vnet subnet update -g RESOURCEGROUP --vnet-name VNETNAME --name SUBNETNAME --set networkSecurityGroup.id="/subscriptions/GUID/resourceGroups/RESOURCEGROUP/providers/Microsoft.Network/networkSecurityGroups/hdisecure"
A parancs befejeződése után telepítheti a HDInsightot a virtuális hálózatba.
Ezek a lépések csak a HDInsight állapot- és felügyeleti szolgáltatáshoz való hozzáférést nyitják meg az Azure-felhőben. A HDInsight-fürthöz a virtuális hálózaton kívülről érkező bármely más hozzáférés le van tiltva. A virtuális hálózaton kívüli hozzáférés engedélyezéséhez további hálózati biztonsági csoportszabályokat kell hozzáadnia.
Az alábbi kód bemutatja, hogyan engedélyezheti az SSH-hozzáférést az internetről:
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"
Példa: DNS-konfiguráció
Névfeloldás egy virtuális hálózat és egy csatlakoztatott helyszíni hálózat között
Ez a példa a következő feltételezéseket foglalja fel:
Rendelkezik egy Azure-beli virtuális hálózattal, amely VPN-átjáróval csatlakozik egy helyszíni hálózathoz.
A virtuális hálózat egyéni DNS-kiszolgálója operációs rendszerként Linuxot vagy Unixot futtat.
A kötés telepítve van az egyéni DNS-kiszolgálón.
A virtuális hálózat egyéni DNS-kiszolgálóján:
Az Azure PowerShell vagy az Azure CLI használatával keresse meg a virtuális hálózat DNS-utótagját:
Cserélje le
RESOURCEGROUP
a virtuális hálózatot tartalmazó erőforráscsoport nevére, majd írja be a parancsot:$NICs = Get-AzNetworkInterface -ResourceGroupName "RESOURCEGROUP" $NICs[0].DnsSettings.InternalDomainNameSuffix
az network nic list --resource-group RESOURCEGROUP --query "[0].dnsSettings.internalDomainNameSuffix"
A virtuális hálózat egyéni DNS-kiszolgálóján a fájl tartalmaként
/etc/bind/named.conf.local
használja a következő szöveget:// 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 };
Cserélje le az
0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net
értéket a virtuális hálózat DNS-utótagjára.Ez a konfiguráció átirányítja a virtuális hálózat DNS-utótagjára vonatkozó összes DNS-kérést az Azure rekurzív feloldójára.
A virtuális hálózat egyéni DNS-kiszolgálóján a fájl tartalmaként
/etc/bind/named.conf.options
használja a következő szöveget:// 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; }; };
Cserélje le az
10.0.0.0/16
értéket a virtuális hálózat IP-címtartományára. Ez a bejegyzés lehetővé teszi a névfeloldási kérelmek e tartományon belüli címét.Adja hozzá a helyszíni hálózat IP-címtartományát a
acl goodclients { ... }
szakaszhoz. a bejegyzés lehetővé teszi a névfeloldási kéréseket a helyszíni hálózat erőforrásaitól.Cserélje le az értéket
192.168.0.1
a helyszíni DNS-kiszolgáló IP-címére. Ez a bejegyzés az összes többi DNS-kérést a helyszíni DNS-kiszolgálóra irányítja.
A konfiguráció használatához indítsa újra a Kötést. Például:
sudo service bind9 restart
.Adjon hozzá egy feltételes továbbítót a helyszíni DNS-kiszolgálóhoz. Konfigurálja a feltételes továbbítót úgy, hogy az 1. lépéstől a DNS-utótagra vonatkozó kéréseket küldjön az egyéni DNS-kiszolgálónak.
Feljegyzés
A feltételes továbbító hozzáadásával kapcsolatos konkrét tudnivalókért tekintse meg a DNS-szoftver dokumentációját.
A lépések elvégzése után bármelyik hálózat erőforrásaihoz csatlakozhat teljes tartománynevek (FQDN) használatával. Most már telepítheti a HDInsightot a virtuális hálózatba.
Névfeloldás két csatlakoztatott virtuális hálózat között
Ez a példa a következő feltételezéseket foglalja fel:
Két Azure-beli virtuális hálózata van, amelyek VPN-átjáróval vagy társviszony-létesítéssel csatlakoznak.
Az egyéni DNS-kiszolgáló mindkét hálózatban Linuxot vagy Unixot futtat operációs rendszerként.
A kötés telepítve van az egyéni DNS-kiszolgálókon.
Az Azure PowerShell vagy az Azure CLI használatával megkeresheti mindkét virtuális hálózat DNS-utótagját:
Cserélje le
RESOURCEGROUP
a virtuális hálózatot tartalmazó erőforráscsoport nevére, majd írja be a parancsot:$NICs = Get-AzNetworkInterface -ResourceGroupName "RESOURCEGROUP" $NICs[0].DnsSettings.InternalDomainNameSuffix
az network nic list --resource-group RESOURCEGROUP --query "[0].dnsSettings.internalDomainNameSuffix"
Az egyéni DNS-kiszolgálón lévő fájl tartalmaként használja az
/etc/bind/named.config.local
alábbi szöveget. Végezze el ezt a módosítást az egyéni DNS-kiszolgálón mindkét virtuális hálózatban.// 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 };
Cserélje le az
0owcbllr5hze3hxdja3mqlrhhe.ex.internal.cloudapp.net
értéket a másik virtuális hálózat DNS-utótagjára. Ez a bejegyzés átirányítja a távoli hálózat DNS-utótagjára vonatkozó kéréseket az adott hálózat egyéni DNS-éhez.Mindkét virtuális hálózat egyéni DNS-kiszolgálóin a fájl tartalmaként
/etc/bind/named.conf.options
használja a következő szöveget:// 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; }; };
Cserélje le az és
10.1.0.0/16
az10.0.0.0/16
értékeket a virtuális hálózatok IP-címtartományára. Ez a bejegyzés lehetővé teszi, hogy az egyes hálózatok erőforrásai kéréseket intézhessenek a DNS-kiszolgálókhoz.A virtuális hálózatok DNS-utótagjaihoz nem tartozó kéréseket (például microsoft.com) az Azure rekurzív feloldója kezeli.
A konfiguráció használatához indítsa újra a Kötést. Például
sudo service bind9 restart
mindkét DNS-kiszolgálón.
A lépések elvégzése után teljes tartománynevek (FQDN) használatával csatlakozhat a virtuális hálózat erőforrásaihoz. Most már telepítheti a HDInsightot a virtuális hálózatba.
A HDInsight-fürt üzembe helyezése előtt tesztelje a beállításokat
A fürt üzembe helyezése előtt ellenőrizheti, hogy a hálózati konfigurációs beállítások közül sok helyes-e, ha a HDInsight Network Validator eszközt egy Olyan Azure Linux rendszerű virtuális gépen futtatja, amely ugyanazon a virtuális hálózaton és alhálózaton található, mint a tervezett fürt.
Következő lépések
A HDInsight helyszíni hálózathoz való csatlakozásra való konfigurálásának teljes példája: A HDInsight csatlakoztatása helyszíni hálózathoz.
Az Apache HBase-fürtök Azure-beli virtuális hálózatokban való konfigurálásáról lásd : Apache HBase-fürtök létrehozása a HDInsighton az Azure Virtual Networkben.
Az Apache HBase georeplikációs konfigurálásáról az Apache HBase-fürtreplikálás beállítása azure-beli virtuális hálózatokban című témakörben olvashat.
Az Azure-beli virtuális hálózatokkal kapcsolatos további információkért tekintse meg az Azure Virtual Network áttekintését.
A hálózati biztonsági csoportokkal kapcsolatos további információkért lásd: Hálózati biztonsági csoportok.
A felhasználó által megadott útvonalakkal kapcsolatos további információkért lásd a felhasználó által megadott útvonalakat és az IP-továbbítást.