オンプレミス ネットワークへの HDInsight の接続Connect HDInsight to your on-premises network

Azure Virtual Network と VPN Gateway を使用して、HDInsight をオンプレミス ネットワークに接続する方法について説明します。Learn how to connect HDInsight to your on-premises network by using Azure Virtual Networks and a VPN gateway. このドキュメントでは、次の計画情報を提供します。This document provides planning information on:

  • オンプレミス ネットワークに接続する Azure Virtual Network で HDInsight を使用する方法。Using HDInsight in an Azure Virtual Network that connects to your on-premises network.
  • 仮想ネットワークとオンプレミス ネットワークの間の DNS 名前解決を構成する方法。Configuring DNS name resolution between the virtual network and your on-premises network.
  • ネットワーク セキュリティ グループを構成して HDInsight へのインターネット アクセスを制限する方法。Configuring network security groups to restrict internet access to HDInsight.
  • 仮想ネットワーク上の HDInsight によって提供されるポート。Ports provided by HDInsight on the virtual network.

概要Overview

接続されたネットワークで HDInsight とリソースが名前によって通信できるようにするには、次のアクションを実行する必要があります。To allow HDInsight and resources in the joined network to communicate by name, you must perform the following actions:

  • Azure 仮想ネットワークを作成する。Create Azure Virtual Network.
  • Azure Virtual Network のカスタム DNS サーバーを作成する。Create a custom DNS server in the Azure Virtual Network.
  • 既定の Azure 再帰リゾルバーではなく、カスタム DNS サーバーを使用するように仮想ネットワークを構成する。Configure the virtual network to use the custom DNS server instead of the default Azure Recursive Resolver.
  • カスタム DNS サーバーとオンプレミス DNS サーバーの間の転送を構成する。Configure forwarding between the custom DNS server and your on-premises DNS server.

この構成により次の動作が可能になります。This configuration enables the following behavior:

  • 仮想ネットワークの DNS サフィックスを持つ完全修飾ドメイン名の要求が、カスタム DNS サーバーに転送されます。Requests for fully qualified domain names that have the DNS suffix for the virtual network are forwarded to the custom DNS server. カスタム DNS サーバーはその要求を Azure 再帰リゾルバーに転送し、リゾルバーは IP アドレスを返します。The custom DNS server then forwards these requests to the Azure Recursive Resolver, which returns the IP address.
  • その他の要求はすべて、オンプレミス DNS サーバーに転送されます。All other requests are forwarded to the on-premises DNS server. microsoft.com などのパブリック インターネット リソースの要求も、名前解決のためにオンプレミス DNS サーバーに転送されます。Even requests for public internet resources such as microsoft.com are forwarded to the on-premises DNS server for name resolution.

次の図の緑色の線は、仮想ネットワークの DNS サフィックスで終わるリソースの要求です。In the following diagram, green lines are requests for resources that end in the DNS suffix of the virtual network. 青色の線は、オンプレミス ネットワークまたはパブリック インターネットのリソースの要求です。Blue lines are requests for resources in the on-premises network or on the public internet.

このドキュメントで使用される構成で DNS 要求がどのように解決されるかを示す図

前提条件Prerequisites

仮想ネットワーク構成を作成するCreate virtual network configuration

次のドキュメントを使用して、オンプレミス ネットワークに接続されている Azure Virtual Network を作成する方法を学習してください。Use the following documents to learn how to create an Azure Virtual Network that is connected to your on-premises network:

カスタム DNS サーバーを作成するCreate custom DNS server

重要

DNS サーバーの作成と構成は、HDInsight を仮想ネットワークにインストールする前に行う必要があります。You must create and configure the DNS server before installing HDInsight into the virtual network.

次の手順では Azure portal を使用して Azure Virtual Machine を作成します。These steps use the Azure portal to create an Azure Virtual Machine. 他の方法で仮想マシンを作成する場合は、VM の作成 - Azure CLI および VM の作成 - Azure PowerShell に関するページをご覧ください。For other ways to create a virtual machine, see Create VM - Azure CLI and Create VM - Azure PowerShell. Bind DNS ソフトウェアを使用する Linux VM を作成するには、次の手順に従います。To create a Linux VM that uses the Bind DNS software, use the following steps:

  1. Azure Portal にサインインします。Sign in to the Azure portal.

  2. 左側のメニューから、 [+ リソースの作成] > [Compute] > [Ubuntu Server 18.04 LTS] に移動します。From the left menu, navigate to + Create a resource > Compute > Ubuntu Server 18.04 LTS.

    Ubuntu 仮想マシンを作成する

  3. [基本] タブで、次の情報を入力します。From the Basics tab, enter the following information:

    フィールドField Value
    サブスクリプションSubscription 適切なサブスクリプションを選択します。Select your appropriate subscription.
    リソース グループResource group 前に作成した仮想ネットワークが含まれているリソース グループを選択します。Select the resource group that contains the virtual network created earlier.
    仮想マシン名Virtual machine name この仮想マシンを特定するフレンドリ名を入力します。Enter a friendly name that identifies this virtual machine. この例では、DNSProxy を使用します。This example uses DNSProxy.
    リージョンRegion 前に作成した仮想ネットワークと同じリージョンを選択します。Select the same region as the virtual network created earlier. すべてのリージョンですべての VM サイズを使用できるわけではありません。Not all VM sizes are available in all regions.
    可用性のオプションAvailability options 必要な可用性のレベルを選択します。Select your desired level of availability. Azure は、アプリケーションの可用性と耐障害性を管理するためのさまざまなオプションを提供しています。Azure offers a range of options for managing availability and resiliency for your applications. 可用性ゾーンまたは可用性セット内のレプリケートされた VM を使用して、データセンターの障害やメンテナンス イベントからアプリやデータを保護するためのソリューションを設計します。Architect your solution to use replicated VMs in Availability Zones or Availability Sets to protect your apps and data from datacenter outages and maintenance events. この例では、 [インフラストラクチャ冗長は必要ありません] を使用します。This example uses No infrastructure redundancy required.
    ImageImage [Ubuntu Server 18.04 LTS] のままにしてください。Leave at Ubuntu Server 18.04 LTS.
    認証の種類Authentication type パスワード または SSH 公開キー:SSH アカウントの認証方法。Password or SSH public key: The authentication method for the SSH account. 安全性の高いパブリック キーを使用することをお勧めします。We recommend using public keys, as they are more secure. この例では、 [パスワード] を使用します。This example uses Password. 詳細については、Linux VM 用の SSH キーの作成と使用に関するドキュメントをご覧ください。For more information, see the Create and use SSH keys for Linux VMs document.
    ユーザー名User name VM の管理者ユーザー名を入力します。Enter the administrator username for the VM. この例では、sshuser を使用します。This example uses sshuser.
    [パスワード] または [SSH 公開キー]Password or SSH public key 使用可能なフィールドは、 [認証の種類] として選択された内容によって決定されます。The available field is determined by your choice for Authentication type. 適切な値を入力します。Enter the appropriate value.
    パブリック受信ポートPublic inbound ports [選択したポートを許可する] を選択します。Select Allow selected ports. 次に、 [受信ポートを選択] ボックスの一覧から [SSH (22)] を選択します。Then select SSH (22) from the Select inbound ports drop-down list.

    仮想マシンの基本構成

    他のエントリは既定値のままにして、 [ネットワーク] タブを選択します。Leave other entries at the default values and then select the Networking tab.

  4. [ネットワーク] タブで、次の情報を入力します。From the Networking tab, enter the following information:

    フィールドField Value
    仮想ネットワークVirtual network 前に作成した仮想ネットワークを選択します。Select the virtual network that you created earlier.
    SubnetSubnet 前に作成した仮想ネットワークの既定のサブネットを選択します。Select the default subnet for the virtual network that you created earlier. VPN Gateway で使用されているサブネットは選択 しないでくださいDo not select the subnet used by the VPN gateway.
    パブリック IPPublic IP 自動入力されている値を使用します。Use the autopopulated value.

    仮想ネットワークの設定

    他のエントリは既定値のままにして、 [確認と作成] を選択します。Leave other entries at the default values and then select the Review + create.

  5. [確認と作成] タブで、 [作成] を選択して仮想マシンを作成します。From the Review + create tab, select Create to create the virtual machine.

IP アドレスの確認Review IP Addresses

仮想マシンが作成されると、 [リソースに移動] ボタンが含まれている [デプロイメントに成功しました] という通知を受け取ります。Once the virtual machine has been created, you will receive a Deployment succeeded notification with a Go to resource button. [リソースに移動] を選択して、新しい仮想マシンに移動します。Select Go to resource to go to your new virtual machine. 新しい仮想マシンの既定のビューで、次の手順に従って関連する IP アドレスを特定します。From the default view for your new virtual machine, follow these steps to identify the associated IP Addresses:

  1. [設定][プロパティ] を選択します。From Settings, select Properties.

  2. 後で使用するために [パブリック IP アドレス/DNS 名ラベル][プライベート IP アドレス] の値をメモします。Note the values for PUBLIC IP ADDRESS/DNS NAME LABEL and PRIVATE IP ADDRESS for later use.

    パブリックおよびプライベート IP アドレス

Bind (DNS ソフトウェア) をインストールして構成するInstall and configure Bind (DNS software)

  1. SSH を使用して、仮想マシンの パブリック IP アドレス にアクセスします。Use SSH to connect to the public IP address of the virtual machine. sshuser は、VM の作成時に指定した SSH ユーザー アカウントで置き換えます。Replace sshuser with the SSH user account you specified when creating the VM. 次の例では、40.68.254.142 の仮想マシンに接続します。The following example connects to a virtual machine at 40.68.254.142:

    ssh sshuser@40.68.254.142
    
  2. Bind をインストールするには、SSH セッションから次のコマンドを使用します。To install Bind, use the following commands from the SSH session:

    sudo apt-get update -y
    sudo apt-get install bind9 -y
    
  3. 名前解決の要求をオンプレミス DNS サーバーに転送するように Bind を構成するには、/etc/bind/named.conf.options ファイルの内容として、次のテキストを使用します。To configure Bind to forward name resolution requests to your on premises 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; };
     };
    

    重要

    goodclients セクションの値は、仮想ネットワークとオンプレミス ネットワークの IP アドレス範囲で置き換えます。Replace the values in the goodclients section with the IP address range of the virtual network and on-premises network. このセクションは、この DNS サーバーが受け入れる要求の転送元アドレスを定義します。This section defines the addresses that this DNS server accepts requests from.

    forwarders セクションの 192.168.0.1 エントリは、オンプレミス DNS サーバーの IP アドレスで置き換えます。Replace the 192.168.0.1 entry in the forwarders section with the IP address of your on-premises DNS server. このエントリは、DNS 要求を解決のためにオンプレミス DNS サーバーにルーティングします。This entry routes DNS requests to your on-premises DNS server for resolution.

    このファイルを編集するには、次のコマンドを使用します。To edit this file, use the following command:

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

    ファイルを保存するには、Ctrl + X キー、Y キー、Enter キーの順に押します。To save the file, use Ctrl+X, Y, and then Enter.

  4. SSH セッションでは、次のコマンドを使用します。From the SSH session, use the following command:

    hostname -f
    

    このコマンドにより、次のテキストのような値が返されます。This command returns a value similar to the following text:

    dnsproxy.icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net
    

    icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net テキストは、この仮想ネットワークの DNS サフィックス です。The icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net text is the DNS suffix for this virtual network. この値を保存します。これは後で使用します。Save this value, as it is used later.

  5. 仮想ネットワークでリソースの DNS 名を解決するように Bind を構成するには、/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
     };
    

    重要

    icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net は、前に取得した DNS サフィックスで置き換える必要があります。You must replace the icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net with the DNS suffix you retrieved earlier.

    このファイルを編集するには、次のコマンドを使用します。To edit this file, use the following command:

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

    ファイルを保存するには、Ctrl + X キー、Y キー、Enter キーの順に押します。To save the file, use Ctrl+X, Y, and then Enter.

  6. Bind を起動するには、次のコマンドを使用します。To start Bind, use the following command:

    sudo service bind9 restart
    
  7. Bind がオンプレミス ネットワークのリソース名を解決できることを確認するには、次のコマンドを使用します。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
    

    重要

    dns.mynetwork.net は、オンプレミス ネットワークのリソースの完全修飾ドメイン名 (FQDN) で置き換えます。Replace dns.mynetwork.net with the fully qualified domain name (FQDN) of a resource in your on-premises network.

    10.0.0.4 は、仮想ネットワークのカスタム DNS サーバーの 内部 IP アドレス に置き換えます。Replace 10.0.0.4 with the internal IP address of your custom DNS server in the virtual network.

    次のテキストのような応答が表示されます。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
    

カスタム DNS サーバーを使用するように仮想ネットワークを構成するConfigure virtual network to use the custom DNS server

Azure 再帰リゾルバーではなく、カスタム DNS サーバーを使用するように仮想ネットワークを構成するには、Azure portal から次の手順に従います。To configure the virtual network to use the custom DNS server instead of the Azure recursive resolver, use the following steps from the Azure portal:

  1. 左側のメニューから [すべてのサービス] > [ネットワーキング] > [仮想ネットワーク] の順に移動します。From the left menu, navigate to All services > Networking > Virtual networks.

  2. リストから仮想ネットワークを選択して、仮想ネットワークの既定のビューを開きます。Select your virtual network from the list, which will open the default view for your virtual network.

  3. 既定のビューの [設定] で、 [DNS サーバー] を選択します。From the default view, under Settings, select DNS servers.

  4. [カスタム] を選択し、カスタム DNS サーバーのプライベート IP アドレス を入力します。Select Custom, and enter the PRIVATE IP ADDRESS of the custom DNS server.

  5. [保存] を選択します。Select Save.

    ネットワークのカスタム DNS サーバーを設定する

オンプレミス DNS サーバーを構成するConfigure on-premises DNS server

前のセクションでは、オンプレミス DNS サーバーに要求を転送するように、カスタム DNS サーバーを構成しました。In the previous section, you configured the custom DNS server to forward requests to the on-premises DNS server. 次は、カスタム DNS サーバーに要求を転送するように、オンプレミス DNS サーバーを構成する必要があります。Next, you must configure the on-premises DNS server to forward requests to the custom DNS server.

DNS サーバーを構成する具体的な手順については、DNS サーバー ソフトウェアのドキュメントを参照してください。For specific steps on how to configure your DNS server, consult the documentation for your DNS server software. 条件付きフォワーダー を構成する手順を検索してください。Look for the steps on how to configure a conditional forwarder.

条件付き転送では、特定の DNS サフィックスの要求のみが転送されます。A conditional forward only forwards requests for a specific DNS suffix. この場合は、仮想ネットワークの DNS サフィックスのフォワーダーを構成する必要があります。In this case, you must configure a forwarder for the DNS suffix of the virtual network. このサフィックスの要求は、カスタム DNS サーバーの IP アドレスに転送する必要があります。Requests for this suffix should be forwarded to the IP address of the custom DNS server.

次のテキストは、Bind DNS ソフトウェアの条件付きフォワーダー構成の例です。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
};

Windows Server 2016 での DNS の使用については、Add-DnsServerConditionalForwarderZone のドキュメントを参照してください。For information on using DNS on Windows Server 2016, see the Add-DnsServerConditionalForwarderZone documentation...

オンプレミス DNS サーバーを構成したら、オンプレミス ネットワークから nslookup を使用して、仮想ネットワークで名前を解決できることを確認できます。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. 次の例をご覧ください。The following example

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

この例では、196.168.0.4 のオンプレミス DNS サーバーを使用して、カスタム DNS サーバーの名前を解決します。This example uses the on-premises DNS server at 196.168.0.4 to resolve the name of the custom DNS server. IP アドレスは、オンプレミス DNS サーバーの IP アドレスで置き換えてください。Replace the IP address with the one for the on-premises DNS server. dnsproxy アドレスは、カスタム DNS サーバーの完全修飾ドメイン名で置き換えてください。Replace the dnsproxy address with the fully qualified domain name of the custom DNS server.

省略可能:ネットワーク トラフィックを制御するOptional: Control network traffic

ネットワーク セキュリティ グループ (NSG) またはユーザー定義のルート (UDR) を使用して、ネットワーク トラフィックを制御できます。You can use network security groups (NSG) or user-defined routes (UDR) to control network traffic. NSG を使用すると、受信トラフィックと送信トラフィックをフィルター処理し、そのトラフィックを許可または拒否できます。NSGs allow you to filter inbound and outbound traffic, and allow or deny the traffic. UDR を使用すると、仮想ネットワーク、インターネット、およびオンプレミス ネットワークのリソース間のトラフィック フローを制御できます。UDRs allow you to control how traffic flows between resources in the virtual network, the internet, and the on-premises network.

警告

HDInsight では、Azure クラウド内の特定の IP アドレスからの着信アクセスと、制限のない発信アクセスが必要です。HDInsight requires inbound access from specific IP addresses in the Azure cloud, and unrestricted outbound access. NSG または UDR を使用してトラフィックを制御する場合は、次の手順を実行する必要があります。When using NSGs or UDRs to control traffic, you must perform the following steps:

  1. 仮想ネットワークがある場所の IP アドレスを調べます。Find the IP addresses for the location that contains your virtual network. 場所ごとの必須 IP アドレスの一覧については、「必須 IP アドレス」を参照してください。For a list of required IPs by location, see Required IP addresses.

  2. 手順 1 で識別された IP アドレスについて、その IP アドレスからの受信トラフィックを許可します。For the IP addresses identified in step 1, allow inbound traffic from that IP addresses.

    • NSG を使用している場合:IP アドレスについて、443 ポートでの 受信 トラフィックを許可します。If you are using NSG: Allow inbound traffic on port 443 for the IP addresses.
    • UDR を使用している場合:IP アドレスについて、ルートの [次ホップ] の種類を [インターネット] に設定します。If you are using UDR: Set the Next Hop type of the route to Internet for the IP addresses.

Azure PowerShell または Azure CLI を使用して NSG を作成する例については、「Azure Virtual Network を使用した HDInsight 機能の拡張」を参照してください。For an example of using Azure PowerShell or the Azure CLI to create NSGs, see the Extend HDInsight with Azure Virtual Networks document.

HDInsight クラスターを作成するCreate the HDInsight cluster

警告

HDInsight を仮想ネットワークにインストールする前に、カスタム DNS サーバーを構成する必要があります。You must configure the custom DNS server before installing HDInsight in the virtual network.

Azure Portal を使用した HDInsight クラスターの作成に関するドキュメントの手順に従って、HDInsight クラスターを作成します。Use the steps in the Create an HDInsight cluster using the Azure portal document to create an HDInsight cluster.

警告

  • クラスターの作成中に、仮想ネットワークが含まれる場所を選択してください。During cluster creation, you must choose the location that contains your virtual network.
  • 構成の [詳細設定] では、前に作成した仮想ネットワークとサブネットを選択する必要があります。In the Advanced settings part of configuration, you must select the virtual network and subnet that you created earlier.

HDInsight に接続するConnecting to HDInsight

HDInsight のほとんどのドキュメントでは、インターネット経由でクラスターにアクセスできることが前提となっています。Most documentation on HDInsight assumes that you have access to the cluster over the internet. たとえば、https://CLUSTERNAME.azurehdinsight.net でクラスターに接続できることが必要です。For example, that you can connect to the cluster at https://CLUSTERNAME.azurehdinsight.net. このアドレスではパブリック ゲートウェイが使用されていますが、NSG または UDR を使用してインターネットからのアクセスが制限されている場合は、このゲートウェイを使用できません。This address uses the public gateway, which is not available if you have used NSGs or UDRs to restrict access from the internet.

一部のドキュメントは、SSH セッションからクラスターに接続するときに headnodehost も参照しています。Some documentation also references headnodehost when connecting to the cluster from an SSH session. このアドレスは、クラスター内のノードからのみ使用可能であり、仮想ネットワーク経由で接続しているクライアントでは使用できません。This address is only available from nodes within a cluster, and is not usable on clients connected over the virtual network.

仮想ネットワーク経由で HDInsight に直接接続するには、次の手順を使用します。To directly connect to HDInsight through the virtual network, use the following steps:

  1. HDInsight クラスター ノードの内部完全修飾ドメイン名を検出するには、次のいずれかの方法を使用します。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-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. サービスを使用できるポートを特定するには、「HDInsight 上の Apache Hadoop サービスで使用されるポート」を参照してください。To determine the port that a service is available on, see the Ports used by Apache Hadoop services on HDInsight document.

    重要

    ヘッド ノードでホストされている一部のサービスは、一度に 1 つのノードでのみアクティブになります。Some services hosted on the head nodes are only active on one node at a time. 一方のヘッド ノードでサービスにアクセスしようとして、アクセスできなかった場合に、もう一方のヘッド ノードに切り替えてください。If you try accessing a service on one head node and it fails, switch to the other head node.

    たとえば、Apache Ambari は一度に 1 つのヘッド ノードでのみアクティブになります。For example, Apache Ambari is only active on one head node at a time. 一方のヘッド ノードで Ambari にアクセスしようして、404 エラーが返された場合、Ambari はもう一方のヘッド ノードで実行されています。If you try accessing Ambari on one head node and it returns a 404 error, then it is running on the other head node.

次の手順Next steps