Udostępnij za pośrednictwem


Connect HDInsight to your on-premises network (Łączenie usługi HDInsight z siecią lokalną)

Dowiedz się, jak połączyć usługę HDInsight z siecią lokalną przy użyciu sieci wirtualnych platformy Azure i bramy sieci VPN. Ten dokument zawiera informacje dotyczące planowania:

  • Korzystanie z usługi HDInsight w sieci wirtualnej platformy Azure łączącej się z siecią lokalną.
  • Konfigurowanie rozpoznawania nazw DNS między siecią wirtualną a siecią lokalną.
  • Konfigurowanie sieciowych grup zabezpieczeń w celu ograniczenia dostępu do Internetu do usługi HDInsight.
  • Porty udostępniane przez usługę HDInsight w sieci wirtualnej.

Omówienie

Aby umożliwić usłudze HDInsight i zasobom w przyłączonej sieci komunikację według nazwy, należy wykonać następujące czynności:

  1. Tworzenie sieci wirtualnej platformy Azure.
  2. Utwórz niestandardowy serwer DNS w usłudze Azure Virtual Network.
  3. Skonfiguruj sieć wirtualną tak, aby używała niestandardowego serwera DNS zamiast domyślnego rozpoznawania cyklicznego platformy Azure.
  4. Skonfiguruj przekazywanie między niestandardowym serwerem DNS a lokalnym serwerem DNS.

Te konfiguracje umożliwiają następujące zachowanie:

  • Żądania w pełni kwalifikowanych nazw domen, które mają sufiks DNS dla sieci wirtualnej, są przekazywane do niestandardowego serwera DNS. Następnie niestandardowy serwer DNS przekazuje te żądania do modułu rozpoznawania cyklicznego platformy Azure, który zwraca adres IP.
  • Wszystkie inne żądania są przekazywane do lokalnego serwera DNS. Nawet żądania dotyczące publicznych zasobów internetowych, takich jak microsoft.com, są przekazywane do lokalnego serwera DNS na potrzeby rozpoznawania nazw.

Na poniższym diagramie zielone linie to żądania dotyczące zasobów, które kończą się sufiksem DNS sieci wirtualnej. Niebieskie linie to żądania dotyczące zasobów w sieci lokalnej lub w publicznym Internecie.

Diagram przedstawiający sposób rozpoznawania żądań DNS w konfiguracji.

Wymagania wstępne

Tworzenie konfiguracji sieci wirtualnej

Skorzystaj z poniższych dokumentów, aby dowiedzieć się, jak utworzyć sieć wirtualną platformy Azure połączoną z siecią lokalną:

Tworzenie niestandardowego serwera DNS

Ważne

Przed zainstalowaniem usługi HDInsight w sieci wirtualnej należy utworzyć i skonfigurować serwer DNS.

Te kroki umożliwiają utworzenie maszyny wirtualnej platformy Azure za pomocą witryny Azure Portal . Aby uzyskać inne sposoby tworzenia maszyny wirtualnej, zobacz Tworzenie maszyny wirtualnej — interfejs wiersza polecenia platformy Azure i Tworzenie maszyny wirtualnej — Azure PowerShell. Aby utworzyć maszynę wirtualną z systemem Linux korzystającą z powiązanego oprogramowania DNS, wykonaj następujące kroki:

  1. Zaloguj się w witrynie Azure Portal.

  2. W menu górnym wybierz pozycję + Utwórz zasób.

    Utwórz maszynę wirtualną z systemem Ubuntu.

  3. Wybierz pozycję Obliczenia>Maszyna wirtualna, aby przejść do strony Tworzenie maszyny wirtualnej.

  4. Na karcie Podstawowe wprowadź następujące informacje:

    Pole Wartość
    Subskrypcja Wybierz odpowiednią subskrypcję.
    Grupa zasobów Wybierz grupę zasobów zawierającą utworzoną wcześniej sieć wirtualną.
    Virtual machine name Wprowadź przyjazną nazwę identyfikującą tę maszynę wirtualną. W tym przykładzie użyto usługi DNSProxy.
    Region (Region) Wybierz ten sam region, w którym utworzono wcześniej sieć wirtualną. Nie wszystkie rozmiary maszyn wirtualnych są dostępne we wszystkich regionach.
    Opcje dostępności Wybierz żądany poziom dostępności. Platforma Azure oferuje szereg opcji zarządzania dostępnością i odpornością aplikacji. Tworzenie architektury rozwiązania w celu używania replikowanych maszyn wirtualnych w Strefy dostępności lub zestawach dostępności w celu ochrony aplikacji i danych przed awariami centrum danych i zdarzeniami konserwacji. W tym przykładzie użyto nadmiarowości infrastruktury bez wymaganej.
    Obraz Pozostaw wartość Ubuntu Server 18.04 LTS.
    Typ uwierzytelniania Hasło lub klucz publiczny SSH: metoda uwierzytelniania dla konta SSH. Zalecamy używanie kluczy publicznych, ponieważ są one bezpieczniejsze. W tym przykładzie użyto hasła. Aby uzyskać więcej informacji, zobacz dokument Tworzenie i używanie kluczy SSH dla maszyn wirtualnych z systemem Linux.
    User name Wprowadź nazwę użytkownika administratora maszyny wirtualnej. W tym przykładzie użyto użytkownika sshuser.
    Hasło lub klucz publiczny SSH Dostępne pole zależy od wybranego typu uwierzytelniania. Wprowadź odpowiednią wartość.
    Publiczne porty ruchu przychodzącego Wybierz pozycję Zezwalaj na wybrane porty. Następnie wybierz pozycję SSH (22) z listy rozwijanej Wybierz porty wejściowe.

    Podstawowa konfiguracja maszyny wirtualnej.

    Pozostaw inne wpisy w wartościach domyślnych, a następnie wybierz kartę Sieć .

  5. Na karcie Sieć wprowadź następujące informacje:

    Pole Wartość
    Sieć wirtualna Wybierz utworzoną wcześniej sieć wirtualną.
    Podsieć Wybierz domyślną podsieć dla utworzonej wcześniej sieci wirtualnej. Nie wybieraj podsieci używanej przez bramę sieci VPN.
    Publiczny adres IP Użyj wartości wypełnianej automatycznie.

    Ustawienia sieci wirtualnej usługi HDInsight.

    Pozostaw inne wpisy w wartościach domyślnych, a następnie wybierz pozycję Przejrzyj i utwórz.

  6. Na karcie Przeglądanie i tworzenie wybierz pozycję Utwórz, aby utworzyć maszynę wirtualną.

Przeglądanie adresów IP

Po utworzeniu maszyny wirtualnej otrzymasz powiadomienie Wdrożenie powiodło się z przyciskiem Przejdź do zasobu . Wybierz pozycję Przejdź do zasobu , aby przejść do nowej maszyny wirtualnej. W widoku domyślnym dla nowej maszyny wirtualnej wykonaj następujące kroki, aby zidentyfikować skojarzone adresy IP:

  1. W obszarze Ustawienia wybierz pozycję Właściwości.

  2. Zanotuj wartości PUBLIC IP ADDRESS/DNS NAME LABEL i PRIVATE IP ADDRESS do późniejszego użycia.

    Publiczne i prywatne adresy IP.

Instalowanie i konfigurowanie powiązania (oprogramowanie DNS)

  1. Użyj protokołu SSH, aby nawiązać połączenie z publicznym adresem IP maszyny wirtualnej. Zastąp sshuser element kontem użytkownika SSH określonym podczas tworzenia maszyny wirtualnej. Poniższy przykład nawiązuje połączenie z maszyną wirtualną pod adresem 40.68.254.142:

    ssh sshuser@40.68.254.142
    
  2. Aby zainstalować program Bind, użyj następujących poleceń z sesji SSH:

    sudo apt-get update -y
    sudo apt-get install bind9 -y
    
  3. Aby skonfigurować powiązanie z przekazywaniem żądań rozpoznawania nazw do lokalnego serwera DNS, użyj następującego tekstu jako zawartości /etc/bind/named.conf.options pliku:

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

    Ważne

    Zastąp wartości w goodclients sekcji zakresem adresów IP sieci wirtualnej i sieci lokalnej. W tej sekcji zdefiniowano adresy, z których ten serwer DNS akceptuje żądania.

    Zastąp 192.168.0.1 wpis w forwarders sekcji adresem IP lokalnego serwera DNS. Ten wpis kieruje żądania DNS do lokalnego serwera DNS na potrzeby rozpoznawania.

    Aby edytować ten plik, użyj następującego polecenia:

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

    Aby zapisać plik, użyj Ctrl+X, Y, a następnie wprowadź.

  4. W sesji SSH użyj następującego polecenia:

    hostname -f
    

    To polecenie zwraca wartość podobną do następującego tekstu:

    dnsproxy.icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net
    

    Tekst icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net jest sufiksem DNS dla tej sieci wirtualnej. Zapisz tę wartość, ponieważ jest używana później.

  5. Aby skonfigurować powiązanie w celu rozpoznawania nazw DNS dla zasobów w sieci wirtualnej, użyj następującego tekstu jako zawartości /etc/bind/named.conf.local pliku:

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

    Ważne

    Musisz zastąpić element sufiksem icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net DNS pobranym wcześniej.

    Aby edytować ten plik, użyj następującego polecenia:

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

    Aby zapisać plik, użyj Ctrl+X, Y, a następnie wprowadź.

  6. Aby uruchomić powiązanie, użyj następującego polecenia:

    sudo service bind9 restart
    
  7. Aby sprawdzić, czy powiązanie może rozpoznać nazwy zasobów w sieci lokalnej, użyj następujących poleceń:

    sudo apt install dnsutils
    nslookup dns.mynetwork.net 10.0.0.4
    

    Ważne

    Zastąp dns.mynetwork.net element w pełni kwalifikowaną nazwą domeny (FQDN) zasobu w sieci lokalnej.

    Zastąp 10.0.0.4 element wewnętrznym adresem IP niestandardowego serwera DNS w sieci wirtualnej.

    Odpowiedź jest podobna do następującego tekstu:

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

Konfigurowanie sieci wirtualnej do używania niestandardowego serwera DNS

Aby skonfigurować sieć wirtualną do używania niestandardowego serwera DNS zamiast rekursywnego rozpoznawania nazw platformy Azure, wykonaj następujące kroki w witrynie Azure Portal:

  1. W menu po lewej stronie przejdź do pozycji Wszystkie usługi>Sieci>wirtualne.

  2. Wybierz sieć wirtualną z listy, co spowoduje otwarcie widoku domyślnego dla sieci wirtualnej.

  3. W widoku domyślnym w obszarze Ustawienia wybierz pozycję Serwery DNS.

  4. Wybierz pozycję Niestandardowy i wprowadź prywatny adres IP niestandardowego serwera DNS.

  5. Wybierz pozycję Zapisz.

    Ustaw niestandardowy serwer DNS dla sieci.

Konfigurowanie lokalnego serwera DNS

W poprzedniej sekcji skonfigurowano niestandardowy serwer DNS do przekazywania żądań do lokalnego serwera DNS. Następnie należy skonfigurować lokalny serwer DNS do przekazywania żądań do niestandardowego serwera DNS.

Aby uzyskać szczegółowe instrukcje dotyczące konfigurowania serwera DNS, zapoznaj się z dokumentacją oprogramowania serwera DNS. Zapoznaj się z instrukcjami dotyczącymi konfigurowania warunkowego przesyłania dalej.

Warunkowe przekazywanie przekazuje tylko żądania dla określonego sufiksu DNS. W takim przypadku należy skonfigurować usługę przesyłania dalej dla sufiksu DNS sieci wirtualnej. Żądania dotyczące tego sufiksu powinny być przekazywane do adresu IP niestandardowego serwera DNS.

Poniższy tekst jest przykładem konfiguracji warunkowego usługi przesyłania dalej dla oprogramowania Bind DNS:

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

Aby uzyskać informacje na temat korzystania z systemu DNS w systemie Windows Server 2016, zobacz dokumentację Add-DnsServerConditionalForwarderZone ...

Po skonfigurowaniu lokalnego serwera DNS można użyć z nslookup sieci lokalnej, aby sprawdzić, czy można rozpoznać nazwy w sieci wirtualnej. Poniższy przykład

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

W tym przykładzie użyto lokalnego serwera DNS pod adresem 196.168.0.4, aby rozpoznać nazwę niestandardowego serwera DNS. Zastąp adres IP tym adresem dla lokalnego serwera DNS. dnsproxy Zastąp adres w pełni kwalifikowaną nazwą domeny niestandardowego serwera DNS.

Opcjonalnie: Kontrolowanie ruchu sieciowego

Do kontrolowania ruchu sieciowego można użyć sieciowych grup zabezpieczeń (NSG) lub tras zdefiniowanych przez użytkownika (UDR). Sieciowe grupy zabezpieczeń umożliwiają filtrowanie ruchu przychodzącego i wychodzącego oraz zezwalanie na ruch lub go odrzucanie. Trasy zdefiniowane przez użytkownika umożliwiają sterowanie przepływem ruchu między zasobami w sieci wirtualnej, Internetem i siecią lokalną.

Ostrzeżenie

Usługa HDInsight wymaga dostępu przychodzącego z określonych adresów IP w chmurze platformy Azure i nieograniczonego dostępu wychodzącego. W przypadku kontrolowania ruchu przy użyciu sieciowych grup zabezpieczeń lub tras zdefiniowanych przez użytkownika należy wykonać następujące czynności:

  1. Znajdź adresy IP lokalizacji zawierającej sieć wirtualną. Aby uzyskać listę wymaganych adresów IP według lokalizacji, zobacz Wymagane adresy IP.

  2. W przypadku adresów IP zidentyfikowanych w kroku 1 zezwalaj na ruch przychodzący z tych adresów IP.

    • Jeśli używasz sieciowej grupy zabezpieczeń: zezwalaj na ruch przychodzący na porcie 443 dla adresów IP.
    • Jeśli używasz trasy zdefiniowanej przez użytkownika: ustaw typ następnego przeskoku trasy do Internetu dla adresów IP.

Przykład użycia programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure do tworzenia sieciowych grup zabezpieczeń można znaleźć w dokumencie Extend HDInsight with Azure Virtual Networks (Rozszerzanie usługi HDInsight za pomocą sieci wirtualnych platformy Azure).

Tworzenie klastra usługi HDInsight

Ostrzeżenie

Przed zainstalowaniem usługi HDInsight w sieci wirtualnej należy skonfigurować niestandardowy serwer DNS.

Wykonaj kroki opisane w dokumencie Tworzenie klastra usługi HDInsight przy użyciu witryny Azure Portal , aby utworzyć klaster usługi HDInsight.

Ostrzeżenie

  • Podczas tworzenia klastra należy wybrać lokalizację zawierającą sieć wirtualną.
  • W części Ustawienia zaawansowane konfiguracji należy wybrać sieć wirtualną i utworzoną wcześniej podsieć.

Nawiązywanie połączenia z usługą HDInsight

Większość dokumentacji usługi HDInsight zakłada, że masz dostęp do klastra za pośrednictwem Internetu. Na przykład możesz połączyć się z klastrem pod adresem https://CLUSTERNAME.azurehdinsight.net. Ten adres używa bramy publicznej, która nie jest dostępna, jeśli do ograniczenia dostępu z Internetu użyto sieciowych grup zabezpieczeń lub tras zdefiniowanych przez użytkownika.

Niektóre dokumenty odwołują się headnodehost również podczas nawiązywania połączenia z klastrem z sesji SSH. Ten adres jest dostępny tylko z węzłów w klastrze i nie można go używać na klientach połączonych za pośrednictwem sieci wirtualnej.

Aby połączyć się bezpośrednio z usługą HDInsight za pośrednictwem sieci wirtualnej, wykonaj następujące kroki:

  1. Aby odnaleźć wewnętrzne w pełni kwalifikowane nazwy domen węzłów klastra usługi HDInsight, użyj jednej z następujących metod:

    $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. Aby określić port dostępny dla usługi, zobacz dokument Porty używane przez usługi Apache Hadoop w usłudze HDInsight .

    Ważne

    Niektóre usługi hostowane w węzłach głównych są aktywne tylko w jednym węźle jednocześnie. Jeśli spróbujesz uzyskać dostęp do usługi w jednym węźle głównym i zakończy się niepowodzeniem, przełącz się do drugiego węzła głównego.

    Na przykład system Apache Ambari jest aktywny tylko w jednym węźle głównym jednocześnie. Jeśli spróbujesz uzyskać dostęp do systemu Ambari w jednym węźle głównym i zostanie zwrócony błąd 404, zostanie on uruchomiony w drugim węźle głównym.

Następne kroki