Connettere HDInsight alla rete localeConnect HDInsight to your on-premise network

Informazioni su come connettere HDInsight alla rete locale usando Reti virtuali di Azure e un gateway VPN.Learn how to connect HDInsight to your on-premises network by using Azure Virtual Networks and a VPN gateway. Questo documento fornisce le informazioni di pianificazione su:This document provides planning information on:

  • Uso di HDInsight in una rete virtuale di Azure che si connette alla rete locale.Using HDInsight in an Azure Virtual Network that connects to your on-premises network.

  • Configurazione della risoluzione dei nomi DNS tra la rete virtuale e la rete locale.Configuring DNS name resolution between the virtual network and your on-premises network.

  • Configurazione dei gruppi di sicurezza di rete per limitare l'accesso Internet per HDInsight.Configuring network security groups to restrict internet access to HDInsight.

  • Porte fornite da HDInsight nella rete virtuale.Ports provided by HDInsight on the virtual network.

Creare la configurazione della rete virtualeCreate the Virtual network configuration

Vedere i documenti seguenti per informazioni su come creare una rete virtuale di Azure connessa alla rete locale:Use the following documents to learn how to create an Azure Virtual Network that is connected to your on-premises network:

Configurare la risoluzione dei nomiConfigure name resolution

Per consentire a HDInsight e alle risorse nella rete aggiunta di comunicare in base al nome, è necessario eseguire queste operazioni:To allow HDInsight and resources in the joined network to communicate by name, you must perform the following actions:

  • Creare un server DNS personalizzato in Rete virtuale di Azure.Create a custom DNS server in the Azure Virtual Network.

  • Configurare la rete virtuale per usare il server DNS personalizzato invece del resolver ricorsivo predefinito di Azure.Configure the virtual network to use the custom DNS server instead of the default Azure Recursive Resolver.

  • Configurare l'inoltro tra il server DNS personalizzato e il server DNS locale.Configure forwarding between the custom DNS server and your on-premises DNS server.

Questa configurazione consente il comportamento seguente:This configuration enables the following behavior:

  • Le richieste per i nomi di dominio completi con il suffisso DNS per la rete virtuale vengono inoltrate al server DNS personalizzato.Requests for fully qualified domain names that have the DNS suffix for the virtual network are forwarded to the custom DNS server. Il server DNS personalizzato inoltra quindi le richieste al resolver ricorsivo di Azure, che restituisce l'indirizzo IP.The custom DNS server then forwards these requests to the Azure Recursive Resolver, which returns the IP address.

  • Tutte le altre richieste vengono inoltrate al server DNS locale.All other requests are forwarded to the on-premises DNS server. Anche le richieste di risorse Internet pubbliche, ad esempio microsoft.com, vengono inoltrate al server DNS locale per la risoluzione dei nomi.Even requests for public internet resources such as microsoft.com are forwarded to the on-premises DNS server for name resolution.

Nel diagramma seguente le linee verdi sono richieste di risorse che terminano nel suffisso DNS della rete virtuale.In the following diagram, green lines are requests for resources that end in the DNS suffix of the virtual network. Le linee blu sono richieste di risorse nella rete locale o nella rete Internet pubblica.Blue lines are requests for resources in the on-premises network or on the public internet.

Diagramma della modalità di risoluzione delle richieste DNS nella configurazione usata in questo documento

Creare un server DNS personalizzatoCreate a custom DNS server

Importante

È necessario creare e configurare il server DNS prima di installare HDInsight nella rete virtuale.You must create and configure the DNS server before installing HDInsight into the virtual network.

Per creare una VM Linux che usa il software DNS Bind, eseguire questa procedura:To create a Linux VM that uses the Bind DNS software, use the following steps:

Nota

Nella procedura seguente viene usato il portale di Azure per creare una macchina virtuale di Azure.The following steps use the Azure portal to create an Azure Virtual Machine. Per altri modi in cui creare una macchina virtuale, vedere i seguenti documenti:For other ways to create a virtual machine, see the following documents:

  1. Dal portale di Azure selezionare +, Calcolo e Ubuntu Server 16.04 LTS.From the Azure portal, select +, Compute, and Ubuntu Server 16.04 LTS.

    Creare una macchina virtuale Ubuntu

  2. Nella sezione Informazioni di base immettere le informazioni seguenti:From the Basics section, enter the following information:

    • Nome: nome descrittivo che identifica questa macchina virtuale.Name: A friendly name that identifies this virtual machine. Ad esempio DNSProxy.For example, DNSProxy.
    • Nome utente: nome dell'account SSH.User name: The name of the SSH account.
    • Chiave pubblica SSH o Password: metodo di autenticazione per l'account SSH.SSH public key or Password: The authentication method for the SSH account. Si consiglia di usare le chiavi pubbliche, che sono più sicure.We recommend using public keys, as they are more secure. Per altre informazioni, vedere il documento Creare e usare chiavi SSH per VM Linux.For more information, see the Create and use SSH keys for Linux VMs document.
    • Gruppo di risorse: selezionare Usa esistente e quindi selezionare il gruppo di risorse contenente la rete virtuale creata in precedenza.Resource group: Select Use existing, and then select the resource group that contains the virtual network created earlier.
    • Località: selezionare la stessa località della rete virtuale.Location: Select the same location as the virtual network.

      Configurazione di base della macchina virtuale

      Lasciare i valori predefiniti per le altre voci e quindi selezionare OK.Leave other entries at the default values and then select OK.

  3. Nella sezione Scegli una dimensione selezionare la dimensione della macchina virtuale.From the Choose a size section, select the VM size. Per questa esercitazione selezionare l'opzione più piccola e a più basso costo.For this tutorial, select the smallest and lowest cost option. Per continuare, usare il pulsante Seleziona.To continue, use the Select button.

  4. Nella sezione Impostazioni immettere le informazioni seguenti:From the Settings section, enter the following information:

    • Rete virtuale: selezionare la rete virtuale creata in precedenza.Virtual network: Select the virtual network that you created earlier.

    • Subnet: selezionare la subnet predefinita per la rete virtuale.Subnet: Select the default subnet for the virtual network. Non selezionare la subnet usata dal gateway VPN.Do not select the subnet used by the VPN gateway.

    • Account di archiviazione di diagnostica: selezionare un account di archiviazione esistente o crearne uno nuovo.Diagnostics storage account: Either select an existing storage account or create a new one.

      Impostazioni della rete virtuale

      Lasciare i valori predefiniti per le altre voci e quindi selezionare OK per continuare.Leave the other entries at the default value, then select OK to continue.

  5. Nella sezione Acquisto fare clic sul pulsante Acquista per creare la macchina virtuale.From the Purchase section, select the Purchase button to create the virtual machine.

  6. Dopo che la macchina virtuale è stata creata, viene visualizzata la relativa sezione Panoramica.Once the virtual machine has been created, its Overview section is displayed. Nell'elenco a sinistra selezionare Proprietà.From the list on the left, select Properties. Salvare i valori di Indirizzo IP pubblico e Indirizzo IP privato.Save the Public IP address and Private IP address values. Verranno usati nella sezione successiva.It will be used in the next section.

    Indirizzi IP pubblico e privato

Installare e configurare Bind (software DNS)Install and configure Bind (DNS software)

  1. Usare SSH per connettersi all'indirizzo IP pubblico della macchina virtuale.Use SSH to connect to the public IP address of the virtual machine. L'esempio seguente consente la connessione a una macchina virtuale all'indirizzo 40.68.254.142:The following example connects to a virtual machine at 40.68.254.142:

    ssh sshuser@40.68.254.142
    

    Sostituire sshuser con l'account utente SSH specificato durante la creazione del cluster.Replace sshuser with the SSH user account you specified when creating the cluster.

    Nota

    È possibile ottenere l'utilità ssh in diversi modi.There are a variety of ways to obtain the ssh utility. In Linux, Unix e macOS viene fornita come parte del sistema operativo.On Linux, Unix, and macOS, it is provided as part of the operating system. Se si usa Windows, prendere in considerazione una delle opzioni seguenti:If you are using Windows, consider one of the following options:

  2. Per installare Bind, usare i comandi seguenti dalla sessione SSH:To install Bind, use the following commands from the SSH session:

    sudo apt-get update -y
    sudo apt-get install bind9 -y
    
  3. Per configurare Bind per l'inoltro delle richieste di risoluzione dei nomi al server DNS locale, usare il testo seguente come contenuto del file /etc/bind/named.conf.options:To configure Bind to forward name resolution requests to your on-prem DNS server, use the following text as the contents of the /etc/bind/named.conf.options file:

     acl goodclients {
         10.0.0.0/16; # Replace with the IP address range of the virtual network
         10.1.0.0/16; # Replace with the IP address range of the on-premises network
         localhost;
         localnets;
     };
    
     options {
             directory "/var/cache/bind";
    
             recursion yes;
    
             allow-query { goodclients; };
    
             forwarders {
             192.168.0.1; # Replace with the IP address of the on-premises DNS server
             };
    
             dnssec-validation auto;
    
             auth-nxdomain no;    # conform to RFC1035
             listen-on { any; };
     };
    

    Importante

    Sostituire i valori nella sezione goodclients con l'intervallo di indirizzi IP della rete virtuale e della rete locale.Replace the values in the goodclients section with the IP address range of the virtual network and on-premises network. Questa sezione definisce gli indirizzi da cui il server DNS accetta le richieste.This section defines the addresses that this DNS server accepts requests from.

    Sostituire la voce 192.168.0.1 nella sezione forwarders con l'indirizzo IP del server DNS locale.Replace the 192.168.0.1 entry in the forwarders section with the IP address of your on-premises DNS server. Questa voce indirizza le richieste DNS al server DNS locale per la risoluzione.This entry routes DNS requests to your on-premises DNS server for resolution.

    Per modificare questo file, usare il comando seguente:To edit this file, use the following command:

    sudo nano /etc/bind/named.conf.options
    

    Per salvare il file, usare CTRL+X, Y e quindi INVIO.To save the file, use Ctrl+X, Y, and then Enter.

  4. Dalla sessione SSH usare il comando seguente:From the SSH session, use the following command:

    hostname -f
    

    Il comando restituisce un valore simile al testo seguente:This command returns a value similar to the following text:

     dnsproxy.icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net
    

    Il testo icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net è il suffisso DNS per la rete virtuale.The icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net text is the DNS suffix for this virtual network. Salvare questo valore, che verrà usato in un secondo momento.Save this value, as it is used later.

  5. Per configurare Bind per la risoluzione dei nomi DNS per le risorse nella rete virtuale, usare il testo seguente come contenuto del file /etc/bind/named.conf.local:To configure Bind to resolve DNS names for resources within the virtual network, use the following text as the contents of the /etc/bind/named.conf.local file:

     // Replace the following with the DNS suffix for your virtual network
     zone "icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net" {
         type forward;
         forwarders {168.63.129.16;}; # The Azure recursive resolver
     };
    

    Importante

    È necessario sostituire icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net con il suffisso DNS recuperato in precedenza.You must replace the icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net with the DNS suffix you retrieved earlier.

    Per modificare questo file, usare il comando seguente:To edit this file, use the following command:

    sudo nano /etc/bind/named.conf.local
    

    Per salvare il file, usare CTRL+X, Y e quindi INVIO.To save the file, use Ctrl+X, Y, and then Enter.

  6. Per avviare Bind, usare il comando seguente:To start Bind, use the following command:

    sudo service bind9 restart
    
  7. Per verificare che Bind riesca a risolvere i nomi delle risorse nella rete locale, usare i comandi seguenti:To verify that bind can resolve the names of resources in your on-premises network, use the following commands:

    sudo apt install dnsutils
    nslookup dns.mynetwork.net 10.0.0.4
    

    Importante

    Sostituire dns.mynetwork.net con il nome di dominio completo (FQDN) di una risorsa nella rete locale.Replace dns.mynetwork.net with the fully qualified domain name (FQDN) of a resource in your on-premises network.

    Sostituire 10.0.0.4 con l'indirizzo IP interno del server DNS personalizzato nella rete virtuale.Replace 10.0.0.4 with the internal IP address of your custom DNS server in the virtual network.

    La risposta visualizzata sarà simile al testo seguente:The response appears similar to the following text:

     Server:         10.0.0.4
     Address:        10.0.0.4#53
    
     Non-authoritative answer:
     Name:   dns.mynetwork.net
     Address: 192.168.0.4
    

Configurare la rete virtuale per usare il server DNS personalizzatoConfigure the virtual network to use the custom DNS server

Per configurare la rete virtuale per usare il server DNS personalizzato invece del resolver ricorsivo di Azure, seguire questa procedura:To configure the virtual network to use the custom DNS server instead of the Azure recursive resolver, use the following steps:

  1. Nel portale di Azure selezionare la rete virtuale e quindi selezionare Server DNS.In the Azure portal, select the virtual network, and then select DNS Servers.

  2. Selezionare Personalizzato e immettere l'indirizzo IP interno del server DNS personalizzato.Select Custom, and enter the internal IP address of the custom DNS server. Infine, selezionare Salva.Finally, select Save.

    Impostare il server DNS personalizzato per la rete

Configurare il server DNS localeConfigure the on-premises DNS server

Nella sezione precedente è stato configurato il server DNS personalizzato per inoltrare le richieste al server DNS locale.In the previous section, you configured the custom DNS server to forward requests to the on-premises DNS server. È quindi necessario configurare il server DNS locale per inoltrare le richieste al server DNS personalizzato.Next, you must configure the on-premises DNS server to forward requests to the custom DNS server.

Per i passaggi specifici su come configurare il server DNS, vedere la documentazione per il prodotto server DNS.For specific steps on how to configure your DNS server, consult the documentation for your DNS server software. Cercare i passaggi su come configurare un server d'inoltro condizionale.Look for the steps on how to configure a conditional forwarder.

L'inoltro condizionale consente di inoltrare solo le richieste per un suffisso DNS specifico.A conditional forward only forwards requests for a specific DNS suffix. In questo caso, è necessario configurare un server d'inoltro per il suffisso DNS della rete virtuale.In this case, you must configure a forwarder for the DNS suffix of the virtual network. Le richieste per questo suffisso devono essere inoltrate all'indirizzo IP del server DNS personalizzato.Requests for this suffix should be forwarded to the IP address of the custom DNS server.

Il testo seguente è un esempio di una configurazione di server d'inoltro condizionale per il software DNS Bind:The following text is an example of a conditional forwarder configuration for the Bind DNS software:

zone "icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net" {
    type forward;
    forwarders {10.0.0.4;}; # The custom DNS server's internal IP address
};

Per informazioni sull'uso di DNS in Windows Server 2016, vedere Add-DnsServerConditionalForwarderZone.For information on using DNS on Windows Server 2016, see the Add-DnsServerConditionalForwarderZone documentation...

Dopo aver configurato il server DNS locale, è possibile usare nslookup dalla rete locale per verificare che sia possibile risolvere i nomi nella rete virtuale.Once you have configured the on-premises DNS server, you can use nslookup from the on-premises network to verify that you can resolve names in the virtual network. Vedere l'esempio seguente:The following example

nslookup dnsproxy.icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net 196.168.0.4

Questo esempio usa il server DNS locale in 196.168.0.4 per risolvere il nome del server DNS personalizzato.This example uses the on-premises DNS server at 196.168.0.4 to resolve the name of the custom DNS server. Sostituire l'indirizzo IP con uno del server DNS locale.Replace the IP address with the one for the on-premises DNS server. Sostituire l'indirizzo dnsproxy con il nome di dominio completo del server DNS personalizzato.Replace the dnsproxy address with the fully qualified domain name of the custom DNS server.

Facoltativo: Controllare il traffico di reteOptional: Control network traffic

È possibile usare gruppi di sicurezza di rete (NSG) o route definite dall'utente (UDR) per controllare il traffico di rete.You can use network security groups (NSG) or user-defined routes (UDR) to control network traffic. Gli NSG permettono di filtrare il traffico in ingresso e in uscita e di consentire o negare il traffico.NSGs allow you to filter inbound and outbound traffic, and allow or deny the traffic. Le route definite dall'utente permettono di controllare il flusso di traffico tra le risorse nella rete virtuale, in Internet e nella rete locale.UDRs allow you to control how traffic flows between resources in the virtual network, the internet, and the on-premises network.

Avviso

HDInsight richiede l'accesso in ingresso da indirizzi IP specifici nel cloud Azure e l'accesso in uscita senza restrizioni.HDInsight requires inbound access from specific IP addresses in the Azure cloud, and unrestricted outbound access. Quando si usano NSG o route definite dall'utente per controllare il traffico, è necessario eseguire questa procedura:When using NSGs or UDRs to control traffic, you must perform the following steps:

  1. Trovare gli indirizzi IP per la località contenente la rete virtuale.Find the IP addresses for the location that contains your virtual network. Per un elenco di indirizzi IP necessari in base alla località, vedere Indirizzi IP richiesti.For a list of required IPs by location, see Required IP addresses.

  2. Consentire il traffico in ingresso dagli indirizzi IP.Allow inbound traffic from the IP addresses.

    • NSG: consentire il traffico in ingresso sulla porta 443 da Internet.NSG: Allow inbound traffic on port 443 from the Internet.
    • Route definita dall'utente: impostare il tipo di Hop successivo della route su Internet.UDR: Set the Next Hop type of the route to Internet.

Per un esempio di utilizzo di Azure PowerShell o dell'interfaccia della riga di comando di Azure per creare gruppi NSG, vedere il documento Estendere le funzionalità di HDInsight usando Rete virtuale di Azure.For an example of using Azure PowerShell or the Azure CLI to create NSGs, see the Extend HDInsight with Azure Virtual Networks document.

Creare il cluster HDInsightCreate the HDInsight cluster

Avviso

È necessario configurare il server DNS personalizzato prima di installare HDInsight nella rete virtuale.You must configure the custom DNS server before installing HDInsight in the virtual network.

Seguire i passaggi riportati in Creare un cluster HDInsight tramite il portale di Azure per creare un cluster HDInsight.Use the steps in the Create an HDInsight cluster using the Azure portal document to create an HDInsight cluster.

Avviso

  • Durante la creazione del cluster, è necessario scegliere la posizione per la rete virtuale.During cluster creation, you must choose the location that contains your virtual network.

  • Nella sezione Impostazioni avanzate della configurazione, è necessario selezionare la rete virtuale e la subnet create in precedenza.In the Advanced settings part of configuration, you must select the virtual network and subnet that you created earlier.

Connessione a HDInsightConnecting to HDInsight

La maggior parte delle documentazione in HDInsight presuppone che sia disponibile l'accesso al cluster tramite internet.Most documentation on HDInsight assumes that you have access to the cluster over the internet. Verificare ad esempio che sia possibile connettersi al cluster all'indirizzo https://CLUSTERNAME.azurehdinsight.net.For example, that you can connect to the cluster at https://CLUSTERNAME.azurehdinsight.net. Questo indirizzo usa il gateway pubblico, che non è disponibile se sono stati usati gruppi di sicurezza di rete o route definite dall'utente per limitare l'accesso da Internet.This address uses the public gateway, which is not available if you have used NSGs or UDRs to restrict access from the internet.

Parte della documentazione fa riferimento a headnodehost anche per la connessione al cluster da una sessione SSH.Some documentation also references headnodehost when connecting to the cluster from an SSH session. Questo indirizzo è disponibile solo dai nodi all'interno di un cluster e non è utilizzabile nei client connessi tramite la rete virtuale.This address is only available from nodes within a cluster, and is not usable on clients connected over the virtual network.

Per connettersi direttamente a HDInsight attraverso la rete virtuale, seguire questa procedura:To directly connect to HDInsight through the virtual network, use the following steps:

  1. Per individuare i nomi di dominio completi interni dei nodi del cluster HDInsight, usare uno dei metodi seguenti:To discover the internal fully qualified domain names of the HDInsight cluster nodes, use one of the following methods:

    $resourceGroupName = "The resource group that contains the virtual network used with HDInsight"
    
    $clusterNICs = Get-AzureRmNetworkInterface -ResourceGroupName $resourceGroupName | where-object {$_.Name -like "*node*"}
    
    $nodes = @()
    foreach($nic in $clusterNICs) {
        $node = new-object System.Object
        $node | add-member -MemberType NoteProperty -name "Type" -value $nic.Name.Split('-')[1]
        $node | add-member -MemberType NoteProperty -name "InternalIP" -value $nic.IpConfigurations.PrivateIpAddress
        $node | add-member -MemberType NoteProperty -name "InternalFQDN" -value $nic.DnsSettings.InternalFqdn
        $nodes += $node
    }
    $nodes | sort-object Type
    
    az network nic list --resource-group <resourcegroupname> --output table --query "[?contains(name,'node')].{NICname:name,InternalIP:ipConfigurations[0].privateIpAddress,InternalFQDN:dnsSettings.internalFqdn}"
    
  2. Per determinare la porta su cui un servizio è disponibile, vedere il documento Porte usate dai servizi Hadoop su HDInsight.To determine the port that a service is available on, see the Ports used by Hadoop services on HDInsight document.

    Importante

    Alcuni servizi ospitati nei nodi head sono attivi solo in un nodo per volta.Some services hosted on the head nodes are only active on one node at a time. Se si prova ad accedere a un servizio in un nodo head e si verifica un errore, passare all'altro nodo head.If you try accessing a service on one head node and it fails, switch to the other head node.

    Ambari, ad esempio, è attivo solo in un nodo head per volta.For example, Ambari is only active on one head node at a time. Se si prova ad accedere ad Ambari in un nodo head e viene restituito un errore 404, significa che è in esecuzione nell'altro nodo head.If you try accessing Ambari on one head node and it returns a 404 error, then it is running on the other head node.

Passaggi successiviNext steps