HDInsight’ı şirket içi ağınıza bağlama

Azure Sanal Ağ ve VPN ağ geçidi kullanarak HDInsight'ı şirket içi ağınıza bağlamayı öğrenin. Bu belgede aşağıdakiler hakkında planlama bilgileri sağlanır:

  • Şirket içi ağınıza bağlanan bir Azure Sanal Ağ HDInsight kullanma.
  • Sanal ağ ile şirket içi ağınız arasında DNS ad çözümlemesini yapılandırma.
  • HDInsight'a İnternet erişimini kısıtlamak için ağ güvenlik gruplarını yapılandırma.
  • Sanal ağda HDInsight tarafından sağlanan bağlantı noktaları.

Genel bakış

Birleştirilmiş ağdaki HDInsight ve kaynakların ada göre iletişim kurmasına izin vermek için aşağıdaki eylemleri gerçekleştirmeniz gerekir:

  1. Azure Sanal Ağ oluşturun.
  2. Azure Sanal Ağ özel bir DNS sunucusu oluşturun.
  3. Sanal ağı varsayılan Azure Özyinelemeli Çözümleyicisi yerine özel DNS sunucusunu kullanacak şekilde yapılandırın.
  4. Özel DNS sunucusu ile şirket içi DNS sunucunuz arasında iletmeyi yapılandırın.

Bu yapılandırmalar aşağıdaki davranışı etkinleştirir:

  • Sanal ağ için DNS soneki olan tam etki alanı adları istekleri özel DNS sunucusuna iletilir. Özel DNS sunucusu daha sonra bu istekleri IP adresini döndüren Azure Özyinelemeli Çözümleyici'ye iletir.
  • Diğer tüm istekler şirket içi DNS sunucusuna iletilir. microsoft.com gibi genel İnternet kaynaklarına yönelik istekler bile ad çözümlemesi için şirket içi DNS sunucusuna iletilir.

Aşağıdaki diyagramda, yeşil çizgiler sanal ağın DNS soneki ile biten kaynaklara yönelik isteklerdir. Mavi çizgiler, şirket içi ağdaki veya genel İnternet'teki kaynaklara yönelik isteklerdir.

Diagram of how DNS requests are resolved in the configuration.

Önkoşullar

Sanal ağ yapılandırması oluşturma

Şirket içi ağınıza bağlı bir Azure Sanal Ağ oluşturmayı öğrenmek için aşağıdaki belgeleri kullanın:

Özel DNS sunucusu oluşturma

Önemli

HDInsight'ı sanal ağa yüklemeden önce DNS sunucusunu oluşturup yapılandırmanız gerekir.

Bu adımlarda , Azure sanal makinesi oluşturmak için Azure portalı kullanılır. Sanal makine oluşturmanın diğer yolları için bkz . VM oluşturma - Azure CLI ve VM oluşturma - Azure PowerShell. Bind DNS yazılımını kullanan bir Linux VM oluşturmak için aşağıdaki adımları kullanın:

  1. Azure Portal’ında oturum açın.

  2. Üstteki menüden + Kaynak oluştur'u seçin.

    Create an Ubuntu virtual machine.

  3. Sanal makine oluştur sayfasına gitmek için İşlem>Sanal makinesi'niseçin.

  4. Temel Bilgiler sekmesinde aşağıdaki bilgileri girin:

    Alan Değer
    Abonelik Uygun aboneliğinizi seçin.
    Kaynak grubu Daha önce oluşturulan sanal ağı içeren kaynak grubunu seçin.
    Virtual machine name Bu sanal makineyi tanımlayan kolay bir ad girin. Bu örnekte DNSProxy kullanılmıştır.
    Bölge Daha önce oluşturulan sanal ağ ile aynı bölgeyi seçin. Tüm VM boyutları tüm bölgelerde kullanılamaz.
    Kullanılabilirlik seçenekleri İstediğiniz kullanılabilirlik düzeyini seçin. Azure, uygulamalarınız için kullanılabilirliği ve dayanıklılığı yönetmek için çeşitli seçenekler sunar. Uygulamalarınızı ve verilerinizi veri merkezi kesintilerine ve bakım olaylarına karşı korumak için çözümünüzü Kullanılabilirlik Alanları veya Kullanılabilirlik Kümelerinde çoğaltılmış VM'leri kullanacak şekilde tasarlayın. Bu örnekte Altyapı yedekliliği gerekli değildir.
    Görsel Ubuntu Server 18.04 LTS'de bırakın.
    Authentication type Parola veya SSH ortak anahtarı: SSH hesabı için kimlik doğrulama yöntemi. Daha güvenli oldukları için ortak anahtarları kullanmanızı öneririz. Bu örnekte Parola kullanılır. Daha fazla bilgi için Linux VM'leri için SSH anahtarları oluşturma ve kullanma belgesine bakın.
    User name VM için yönetici kullanıcı adını girin. Bu örnekte sshuser kullanılır.
    Parola veya SSH ortak anahtarı Kullanılabilir alan, Kimlik doğrulama türü seçiminize göre belirlenir. Uygun değeri girin.
    Genel gelen bağlantı noktaları Seçili bağlantı noktalarına izin ver'i seçin. Ardından Gelen bağlantı noktalarını seçin açılan listesindeN SSH (22) öğesini seçin.

    Virtual machine basic configuration.

    Diğer girdileri varsayılan değerlerde bırakın ve ardından Ağ sekmesini seçin.

  5. sekmesinde aşağıdaki bilgileri girin:

    Alan Değer
    Sanal ağ Daha önce oluşturduğunuz sanal ağı seçin.
    Alt ağ Daha önce oluşturduğunuz sanal ağ için varsayılan alt ağı seçin. VPN ağ geçidi tarafından kullanılan alt ağı seçmeyin.
    Genel IP Otomatik doldurulan değeri kullanın.

    HDInsight Virtual network settings.

    Diğer girdileri varsayılan değerlerde bırakın ve ardından Gözden Geçir + oluştur'u seçin.

  6. Gözden Geçir + oluştur sekmesinde Oluştur'u seçerek sanal makineyi oluşturun.

IP Adreslerini Gözden Geçirme

Sanal makine oluşturulduktan sonra Kaynağa git düğmesiyle dağıtım başarılı bildirimi alırsınız. Yeni sanal makinenize gitmek için Kaynağa git'i seçin. Yeni sanal makinenizin varsayılan görünümünde, ilişkili IP Adreslerini belirlemek için şu adımları izleyin:

  1. Ayarlar Özellikler'i seçin.

  2. Daha sonra kullanmak üzere GENEL IP ADRESI/DNS AD ETIKETI ve ÖZEL IP ADRESI değerlerini not edin.

    Public and private IP addresses.

Bağlamayı yükleme ve yapılandırma (DNS yazılımı)

  1. Sanal makinenin genel IP adresine bağlanmak için SSH kullanın. değerini VM'yi oluştururken belirttiğiniz SSH kullanıcı hesabıyla değiştirin sshuser . Aşağıdaki örnek 40.68.254.142 konumundaki bir sanal makineye bağlanır:

    ssh sshuser@40.68.254.142
    
  2. Bind'i yüklemek için SSH oturumundan aşağıdaki komutları kullanın:

    sudo apt-get update -y
    sudo apt-get install bind9 -y
    
  3. Bind'i ad çözümleme isteklerini şirket içi DNS sunucunuza iletecek şekilde yapılandırmak için dosyanın içeriği /etc/bind/named.conf.options olarak aşağıdaki metni kullanın:

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

    Önemli

    bölümündeki değerleri goodclients sanal ağın ve şirket içi ağın IP adresi aralığıyla değiştirin. Bu bölüm, bu DNS sunucusunun istekleri kabul eden adresleri tanımlar.

    bölümündeki girdisini 192.168.0.1forwarders şirket içi DNS sunucunuzun IP adresiyle değiştirin. Bu giriş, DNS isteklerini çözümlemek üzere şirket içi DNS sunucunuza yönlendirir.

    Bu dosyayı düzenlemek için aşağıdaki komutu kullanın:

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

    Dosyayı kaydetmek için Ctrl+X, Y ve ardından Enter tuşlarını kullanın.

  4. SSH oturumunda aşağıdaki komutu kullanın:

    hostname -f
    

    Bu komut aşağıdaki metne benzer bir değer döndürür:

    dnsproxy.icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net
    

    Metin icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net , bu sanal ağın DNS sonekidir . Bu değeri daha sonra kullanıldığı gibi kaydedin.

  5. Bağlama'yı sanal ağ içindeki kaynakların DNS adlarını çözümlemek üzere yapılandırmak için dosyanın içeriği /etc/bind/named.conf.local olarak aşağıdaki metni kullanın:

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

    Önemli

    değerini icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net daha önce aldığınız DNS soneki ile değiştirmeniz gerekir.

    Bu dosyayı düzenlemek için aşağıdaki komutu kullanın:

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

    Dosyayı kaydetmek için Ctrl+X, Y ve ardından Enter tuşlarını kullanın.

  6. Bağlamayı başlatmak için aşağıdaki komutu kullanın:

    sudo service bind9 restart
    
  7. Bağlamanın şirket içi ağınızdaki kaynakların adlarını çözümleyebildiğini doğrulamak için aşağıdaki komutları kullanın:

    sudo apt install dnsutils
    nslookup dns.mynetwork.net 10.0.0.4
    

    Önemli

    değerini, şirket içi ağınızdaki bir kaynağın tam etki alanı adı (FQDN) ile değiştirin dns.mynetwork.net .

    değerini sanal ağdaki özel DNS sunucunuzun iç IP adresiyle değiştirin10.0.0.4.

    Yanıt aşağıdaki metne benzer şekilde görünür:

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

Sanal ağı özel DNS sunucusunu kullanacak şekilde yapılandırma

Sanal ağı Azure özyinelemeli çözümleyicisi yerine özel DNS sunucusunu kullanacak şekilde yapılandırmak için Azure portalından aşağıdaki adımları kullanın:

  1. Sol menüden Tüm hizmetler>>Sanal ağları'na gidin.

  2. Listeden sanal ağınızı seçin. Bu seçenek sanal ağınız için varsayılan görünümü açar.

  3. Varsayılan görünümde, Ayarlar altında DNS sunucuları'nı seçin.

  4. Özel'i seçin ve özel DNS sunucusunun ÖZEL IP ADRESINI girin.

  5. Kaydet'i seçin.

    Set the custom DNS server for the network.

Şirket içi DNS sunucusunu yapılandırma

Önceki bölümde, istekleri şirket içi DNS sunucusuna iletmek için özel DNS sunucusunu yapılandırmıştınız. Ardından, istekleri özel DNS sunucusuna iletmek için şirket içi DNS sunucusunu yapılandırmanız gerekir.

DNS sunucunuzu yapılandırmayla ilgili belirli adımlar için DNS sunucusu yazılımınızın belgelerine bakın. Koşullu iletici yapılandırma adımlarını arayın.

Koşullu iletme yalnızca belirli bir DNS soneki için istekleri iletir. Bu durumda, sanal ağın DNS soneki için bir iletici yapılandırmanız gerekir. Bu sonek istekleri özel DNS sunucusunun IP adresine iletilmelidir.

Aşağıdaki metin, Bind DNS yazılımı için koşullu iletici yapılandırması örneğidir:

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

Windows Server 2016'da DNS kullanma hakkında bilgi için Add-DnsServerConditionalForwarderZone belgelerine bakın...

Şirket içi DNS sunucusunu yapılandırdıktan sonra, şirket içi ağı kullanarak sanal ağdaki adları çözümleyebildiğinizi doğrulayabilirsiniz nslookup . Aşağıdaki örnek

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

Bu örnek, özel DNS sunucusunun adını çözümlemek için 196.168.0.4 konumundaki şirket içi DNS sunucusunu kullanır. IP adresini şirket içi DNS sunucusu için olan adresle değiştirin. dnsproxy adresi, özel DNS sunucusunun tam etki alanı adıyla değiştirin.

İsteğe bağlı: Ağ trafiğini denetleme

Ağ trafiğini denetlemek için ağ güvenlik gruplarını (NSG) veya kullanıcı tanımlı yolları (UDR) kullanabilirsiniz. NSG'ler gelen ve giden trafiği filtrelemenize ve trafiğe izin vermenizi veya trafiği reddetmenizi sağlar. UDR'ler sanal ağdaki, İnternet'teki ve şirket içi ağdaki kaynaklar arasında trafiğin nasıl aktığını denetlemenize olanak tanır.

Uyarı

HDInsight, Azure bulutundaki belirli IP adreslerinden gelen erişim ve sınırsız giden erişim gerektirir. Trafiği denetlemek için NSG'leri veya UDF'leri kullanırken aşağıdaki adımları gerçekleştirmeniz gerekir:

  1. Sanal ağınızı içeren konumun IP adreslerini bulun. Konuma göre gerekli IP'lerin listesi için bkz . Gerekli IP adresleri.

  2. 1. adımda tanımlanan IP adresleri için bu IP adreslerinden gelen trafiğe izin verin.

    • NSG kullanıyorsanız: IP adresleri için 443 numaralı bağlantı noktasında gelen trafiğe izin verin.
    • UDR kullanıyorsanız: IP adresleri için yolun Sonraki Atlama türünü İnternet olarak ayarlayın.

NSG oluşturmak için Azure PowerShell veya Azure CLI kullanma örneği için HDInsight'ı Azure Sanal Ağ s ile genişletme belgesine bakın.

HDInsight kümesi oluşturma

Uyarı

Sanal ağa HDInsight yüklemeden önce özel DNS sunucusunu yapılandırmanız gerekir.

HDInsight kümesi oluşturmak için Azure portalını kullanarak HDInsight kümesi oluşturma belgesindeki adımları kullanın.

Uyarı

  • Küme oluşturma sırasında, sanal ağınızı içeren konumu seçmeniz gerekir.
  • Yapılandırmanın Gelişmiş ayarlar bölümünde, daha önce oluşturduğunuz sanal ağı ve alt ağı seçmeniz gerekir.

HDInsight'a Bağlan

HDInsight'ta çoğu belge, kümeye İnternet üzerinden erişiminiz olduğunu varsayar. Örneğin, https://CLUSTERNAME.azurehdinsight.net konumundaki kümeye bağlanabildiğiniz kabul edilir. Bu adres, İnternet'ten erişimi kısıtlamak için NSG'leri veya UDF'leri kullandıysanız kullanılamayan genel ağ geçidini kullanır.

Bazı belgeler ayrıca bir SSH oturumundan kümeye bağlanırken başvurur headnodehost . Bu adres yalnızca küme içindeki düğümlerden kullanılabilir ve sanal ağ üzerinden bağlanan istemcilerde kullanılamaz.

Sanal ağ üzerinden HDInsight'a doğrudan bağlanmak için aşağıdaki adımları kullanın:

  1. HDInsight küme düğümlerinin iç tam etki alanı adlarını bulmak için aşağıdaki yöntemlerden birini kullanın:

    $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. Bir hizmetin kullanılabilir olduğu bağlantı noktasını belirlemek için HDInsight üzerinde Apache Hadoop hizmetleri tarafından kullanılan bağlantı noktaları belgesine bakın.

    Önemli

    Baş düğümlerde barındırılan bazı hizmetler aynı anda yalnızca bir düğümde etkindir. Bir baş düğümündeki bir hizmete erişmeyi denerseniz ve hizmet başarısız olursa, diğer baş düğüme geçin.

    Örneğin, Apache Ambari aynı anda yalnızca bir baş düğümde etkindir. Ambari'ye bir baş düğümünde erişmeyi denerseniz ve 404 hatası döndürürse, diğer baş düğümde çalışıyor demektir.

Sonraki adımlar