Ansluta HDInsight till det lokala nätverket

Lär dig hur du ansluter HDInsight till ditt lokala nätverk med hjälp av Azure Virtual Networks och en VPN-gateway. Det här dokumentet innehåller planeringsinformation om:

  • Använda HDInsight i ett virtuellt Azure-nätverk som ansluter till ditt lokala nätverk.
  • Konfigurera DNS-namnmatchning mellan det virtuella nätverket och ditt lokala nätverk.
  • Konfigurera nätverkssäkerhetsgrupper för att begränsa Internetåtkomsten till HDInsight.
  • Portar som tillhandahålls av HDInsight i det virtuella nätverket.

Översikt

Om du vill tillåta att HDInsight och resurser i det anslutna nätverket kommunicerar med namn måste du utföra följande åtgärder:

  1. Skapa ett virtuellt Azure-nätverk.
  2. Skapa en anpassad DNS-server i det virtuella Azure-nätverket.
  3. Konfigurera det virtuella nätverket så att det använder den anpassade DNS-servern i stället för standardlösningslösningen för Azure Recursive.
  4. Konfigurera vidarebefordran mellan den anpassade DNS-servern och din lokala DNS-server.

Dessa konfigurationer aktiverar följande beteende:

  • Begäranden om fullständigt kvalificerade domännamn som har DNS-suffixet för det virtuella nätverket vidarebefordras till den anpassade DNS-servern. Den anpassade DNS-servern vidarebefordrar sedan dessa begäranden till Azure Recursive Resolver, som returnerar IP-adressen.
  • Alla andra begäranden vidarebefordras till den lokala DNS-servern. Även begäranden om offentliga Internetresurser som microsoft.com vidarebefordras till den lokala DNS-servern för namnmatchning.

I följande diagram är gröna rader begäranden för resurser som slutar i DNS-suffixet för det virtuella nätverket. Blå linjer är begäranden om resurser i det lokala nätverket eller på det offentliga Internet.

Diagram of how DNS requests are resolved in the configuration.

Förutsättningar

Skapa konfiguration av virtuellt nätverk

Använd följande dokument för att lära dig hur du skapar ett virtuellt Azure-nätverk som är anslutet till ditt lokala nätverk:

Skapa en anpassad DNS-server

Viktigt!

Du måste skapa och konfigurera DNS-servern innan du installerar HDInsight i det virtuella nätverket.

De här stegen använder Azure-portalen för att skapa en virtuell Azure-dator. Andra sätt att skapa en virtuell dator finns i Skapa virtuell dator – Azure CLI och Skapa virtuell dator – Azure PowerShell. Använd följande steg för att skapa en virtuell Linux-dator som använder bindnings-DNS-programvaran :

  1. Logga in på Azure-portalen.

  2. Välj + Skapa en resurs från menyn högst upp.

    Create an Ubuntu virtual machine.

  3. Välj Beräkna>virtuell dator för att gå till sidan Skapa en virtuell dator.

  4. På fliken Grundläggande anger du följande information:

    Fält Värde
    Prenumeration Välj lämplig prenumeration.
    Resursgrupp Välj den resursgrupp som innehåller det virtuella nätverk som skapades tidigare.
    Virtual machine name Ange ett eget namn som identifierar den här virtuella datorn. I det här exemplet används DNSProxy.
    Region Välj samma region som det virtuella nätverk som skapades tidigare. Alla VM-storlekar är inte tillgängliga i alla regioner.
    Tillgängliga alternativ Välj önskad tillgänglighetsnivå. Azure erbjuder en rad alternativ för att hantera tillgänglighet och återhämtning för dina program. Skapa din lösning för att använda replikerade virtuella datorer i Tillgänglighetszoner eller tillgänglighetsuppsättningar för att skydda dina appar och data från datacenterfel och underhållshändelser. I det här exemplet används Ingen infrastrukturredundans krävs.
    Bild Lämna på Ubuntu Server 18.04 LTS.
    Authentication type Lösenord eller offentlig SSH-nyckel: Autentiseringsmetoden för SSH-kontot. Vi rekommenderar att du använder offentliga nycklar eftersom de är säkrare. I det här exemplet används Lösenord. Mer information finns i dokumentet Skapa och använda SSH-nycklar för virtuella Linux-datorer .
    Användarnamn Ange administratörsanvändarnamnet för den virtuella datorn. I det här exemplet används sshuser.
    Lösenord eller offentlig SSH-nyckel Det tillgängliga fältet bestäms av ditt val för Autentiseringstyp. Ange lämpligt värde.
    Offentliga inkommande portar Välj Tillåt valda portar. Välj sedan SSH (22)i listrutan Välj inkommande portar .

    Virtual machine basic configuration.

    Låt andra poster vara kvar vid standardvärdena och välj sedan fliken Nätverk .

  5. På fliken Nätverk anger du följande information:

    Fält Värde
    Virtuellt nätverk Välj det virtuella nätverk som du skapade tidigare.
    Undernät Välj standardundernätet för det virtuella nätverk som du skapade tidigare. Välj inte det undernät som används av VPN-gatewayen.
    Offentlig IP-adress Använd det automatiskt ifyllda värdet.

    HDInsight Virtual network settings.

    Låt andra poster vara kvar vid standardvärdena och välj sedan Granska + skapa.

  6. På fliken Granska + skapa väljer du Skapa för att skapa den virtuella datorn.

Granska IP-adresser

När den virtuella datorn har skapats får du ett meddelande om att distributionen lyckades med knappen Gå till resurs . Välj Gå till resurs för att gå till den nya virtuella datorn. I standardvyn för den nya virtuella datorn följer du dessa steg för att identifiera de associerade IP-adresserna:

  1. Välj Egenskaper i Inställningar.

  2. Observera värdena för OFFENTLIG IP-ADRESS/DNS-NAMNETIKETT och PRIVAT IP-ADRESS för senare användning.

    Public and private IP addresses.

Installera och konfigurera bindning (DNS-programvara)

  1. Använd SSH för att ansluta till den virtuella datorns offentliga IP-adress . Ersätt sshuser med det SSH-användarkonto som du angav när du skapade den virtuella datorn. Följande exempel ansluter till en virtuell dator på 40.68.254.142:

    ssh sshuser@40.68.254.142
    
  2. Om du vill installera Bind använder du följande kommandon från SSH-sessionen:

    sudo apt-get update -y
    sudo apt-get install bind9 -y
    
  3. Om du vill konfigurera Bind för att vidarebefordra namnmatchningsbegäranden till din lokala DNS-server använder du följande text som innehållet i /etc/bind/named.conf.options filen:

    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; };
    };
    

    Viktigt!

    Ersätt värdena i avsnittet goodclients med IP-adressintervallet för det virtuella nätverket och det lokala nätverket. I det här avsnittet definieras de adresser som DNS-servern accepterar begäranden från.

    Ersätt posten 192.168.0.1 i avsnittet forwarders med IP-adressen för din lokala DNS-server. Den här posten dirigerar DNS-begäranden till din lokala DNS-server för matchning.

    Om du vill redigera den här filen använder du följande kommando:

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

    Om du vill spara filen använder du Ctrl+X, Y och sedan Retur.

  4. Använd följande kommando från SSH-sessionen:

    hostname -f
    

    Det här kommandot returnerar ett värde som liknar följande text:

    dnsproxy.icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net
    

    Texten icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net är DNS-suffixetför det här virtuella nätverket. Spara det här värdet eftersom det används senare.

  5. Om du vill konfigurera Bind för att matcha DNS-namn för resurser i det virtuella nätverket använder du följande text som innehållet i /etc/bind/named.conf.local filen:

    // 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
    };
    

    Viktigt!

    Du måste ersätta icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net med DNS-suffixet som du hämtade tidigare.

    Om du vill redigera den här filen använder du följande kommando:

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

    Om du vill spara filen använder du Ctrl+X, Y och sedan Retur.

  6. Använd följande kommando för att starta Bindning:

    sudo service bind9 restart
    
  7. Kontrollera att bindningen kan matcha namnen på resurser i det lokala nätverket med hjälp av följande kommandon:

    sudo apt install dnsutils
    nslookup dns.mynetwork.net 10.0.0.4
    

    Viktigt!

    Ersätt dns.mynetwork.net med det fullständigt kvalificerade domännamnet (FQDN) för en resurs i ditt lokala nätverk.

    Ersätt 10.0.0.4 med den interna IP-adressen för din anpassade DNS-server i det virtuella nätverket.

    Svaret ser ut ungefär som i följande text:

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

Konfigurera virtuellt nätverk för att använda den anpassade DNS-servern

Använd följande steg från Azure-portalen för att konfigurera det virtuella nätverket att använda den anpassade DNS-servern i stället för den rekursiva Azure-matcharen:

  1. Från den vänstra menyn går du till Alla tjänster>Nätverk Virtuella>nätverk.

  2. Välj ditt virtuella nätverk i listan, som öppnar standardvyn för ditt virtuella nätverk.

  3. I standardvyn under Inställningar väljer du DNS-servrar.

  4. Välj Anpassad och ange DEN PRIVATA IP-ADRESSEN för den anpassade DNS-servern.

  5. Välj Spara.

    Set the custom DNS server for the network.

Konfigurera lokal DNS-server

I föregående avsnitt konfigurerade du den anpassade DNS-servern för att vidarebefordra begäranden till den lokala DNS-servern. Därefter måste du konfigurera den lokala DNS-servern för att vidarebefordra begäranden till den anpassade DNS-servern.

Mer information om hur du konfigurerar DNS-servern finns i dokumentationen för DNS-serverprogramvaran. Leta efter stegen för hur du konfigurerar en villkorlig vidarebefordrare.

En villkorlig vidarebefordran vidarebefordrar endast begäranden för ett specifikt DNS-suffix. I det här fallet måste du konfigurera en vidarebefordrare för DNS-suffixet för det virtuella nätverket. Begäranden om det här suffixet ska vidarebefordras till IP-adressen för den anpassade DNS-servern.

Följande text är ett exempel på en konfiguration av villkorlig vidarebefordrare för bindnings-DNS-programvaran:

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

Information om hur du använder DNS på Windows Server 2016 finns i dokumentationen om Add-DnsServerConditionalForwarderZone ...

När du har konfigurerat den lokala DNS-servern kan du använda nslookup från det lokala nätverket för att kontrollera att du kan matcha namn i det virtuella nätverket. Följande exempel

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

I det här exemplet används den lokala DNS-servern på 196.168.0.4 för att matcha namnet på den anpassade DNS-servern. Ersätt IP-adressen med den för den lokala DNS-servern. dnsproxy Ersätt adressen med det fullständigt kvalificerade domännamnet för den anpassade DNS-servern.

Valfritt: Kontrollera nätverkstrafik

Du kan använda nätverkssäkerhetsgrupper (NSG) eller användardefinierade vägar (UDR) för att styra nätverkstrafiken. Med NSG:er kan du filtrera inkommande och utgående trafik och tillåta eller neka trafiken. Med UDF kan du styra hur trafiken flödar mellan resurser i det virtuella nätverket, Internet och det lokala nätverket.

Varning

HDInsight kräver inkommande åtkomst från specifika IP-adresser i Azure-molnet och obegränsad utgående åtkomst. När du använder NSG:er eller UDR:er för att styra trafiken måste du utföra följande steg:

  1. Hitta IP-adresserna för den plats som innehåller ditt virtuella nätverk. En lista över nödvändiga IP-adresser efter plats finns i Nödvändiga IP-adresser.

  2. Tillåt inkommande trafik från ip-adresserna för de IP-adresser som identifieras i steg 1.

    • Om du använder NSG: Tillåt inkommande trafik på port 443 för IP-adresserna.
    • Om du använder UDR: Ange typen Nästa hopp för vägen till Internet för IP-adresserna.

Ett exempel på hur du använder Azure PowerShell eller Azure CLI för att skapa NSG:er finns i dokumentet Utöka HDInsight med Azure Virtual Networks .

Skapa HDInsight-klustret

Varning

Du måste konfigurera den anpassade DNS-servern innan du installerar HDInsight i det virtuella nätverket.

Använd stegen i dokumentet Skapa ett HDInsight-kluster med hjälp av Azure-portalen för att skapa ett HDInsight-kluster.

Varning

  • När klustret skapas måste du välja den plats som innehåller det virtuella nätverket.
  • I delen Avancerade inställningar i konfigurationen måste du välja det virtuella nätverk och undernät som du skapade tidigare.

Anslut till HDInsight

De flesta dokumentationer i HDInsight förutsätter att du har åtkomst till klustret via Internet. Till exempel att du kan ansluta till klustret i https://CLUSTERNAME.azurehdinsight.net. Den här adressen använder den offentliga gatewayen, som inte är tillgänglig om du har använt NSG:er eller UDR:er för att begränsa åtkomsten från Internet.

Viss dokumentation refererar headnodehost även till när du ansluter till klustret från en SSH-session. Den här adressen är endast tillgänglig från noder i ett kluster och kan inte användas på klienter som är anslutna via det virtuella nätverket.

Använd följande steg för att ansluta direkt till HDInsight via det virtuella nätverket:

  1. Om du vill identifiera de interna fullständigt kvalificerade domännamnen för HDInsight-klusternoderna använder du någon av följande metoder:

    $resourceGroupName = "The resource group that contains the virtual network used with HDInsight"
    
    $clusterNICs = Get-AzNetworkInterface -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. Information om vilken port som en tjänst är tillgänglig på finns i dokumentet Portar som används av Apache Hadoop-tjänster i HDInsight .

    Viktigt!

    Vissa tjänster som finns på huvudnoderna är bara aktiva på en nod i taget. Om du försöker komma åt en tjänst på en huvudnod och den misslyckas växlar du till den andra huvudnoden.

    Apache Ambari är till exempel bara aktivt på en huvudnod i taget. Om du försöker komma åt Ambari på en huvudnod och returnerar ett 404-fel körs det på den andra huvudnoden.

Nästa steg