Conectar o HDInsight à sua rede local
Saiba como conectar o HDInsight à sua rede local por meio de redes virtuais do Azure e de um gateway de VPN. Este documento fornece informações para planejamento de como:
- usar o HDInsight em uma Rede Virtual do Azure que se conecta à sua rede local.
- configurar a resolução de nome DNS entre a rede virtual e sua rede local.
- configurar grupos de segurança de rede para restringir o acesso à Internet para o HDInsight.
- Portas fornecidas pelo HDInsight na rede virtual.
Visão geral
Para permitir que o HDInsight e os recursos na rede ingressada se comuniquem por nome, você deve executar as seguintes ações:
- Criar Rede Virtual do Azure.
- Crie um servidor DNS personalizado na Rede Virtual do Azure.
- Configure a rede virtual para usar o servidor DNS personalizado em vez do resolvedor recursivo padrão do Azure.
- Configure o encaminhamento entre o servidor DNS personalizado e seu servidor DNS local.
Essas configurações habilitam o seguinte comportamento:
- Solicitações de nomes de domínio totalmente qualificados que têm o sufixo DNS para a rede virtual são encaminhados para o servidor DNS personalizado. O servidor DNS personalizado, em seguida, encaminha essas solicitações para o resolvedor recursivo do Azure, que retorna o endereço IP.
- Todas as outras solicitações são encaminhadas ao servidor DNS local. Até mesmo solicitações para recursos da Internet pública como microsoft.com são encaminhadas ao servidor DNS local para a resolução de nomes.
No diagrama a seguir, linhas verdes são solicitações de recursos que terminam com o sufixo DNS da rede virtual. Linhas azuis são as solicitações para recursos na rede local ou na Internet pública.
Pré-requisitos
- Um cliente SSH. Para saber mais, confira Conectar-se ao HDInsight (Apache Hadoop) usando SSH.
- Se estiver usando o PowerShell, você precisará do AZ Module.
- Se desejar usar a CLI do Azure e você ainda não a instalou, veja Instalação da CLI do Azure.
Criar a configuração de rede Virtual
Use os documentos a seguir para aprender a criar uma Rede Virtual do Azure conectada à sua rede local:
Criar um servidor DNS personalizado
Importante
Você deve criar e configurar o servidor DNS antes de instalar o HDInsight na rede virtual.
Estas etapas usam o portal do Azure para criar uma Máquina Virtual do Azure. Para conhecer outras maneiras de criar uma máquina virtual, consulte Criar VM – CLI do Azure e Criar VM – Azure PowerShell. Para criar uma VM Linux que usa o software DNS Bind, use as seguintes etapas:
Entre no portal do Azure.
No menu superior, selecione + Criar um recurso.
Selecione Computação>Máquina virtual para ir para a página Criar uma máquina virtual.
Na guia Básico, insira as seguintes informações:
Campo Valor Subscription Selecione a assinatura apropriada. Resource group Selecione o grupo de recursos que contém a rede virtual criada anteriormente. Nome da máquina virtual Insira um nome amigável que identifica esta máquina virtual. Este exemplo usa DNSProxy. Região Selecione a mesma região que a rede virtual criada anteriormente. Nem todos os tamanhos de VM estão disponíveis em todas as regiões. Opções de disponibilidade Selecione o nível desejado de disponibilidade. O Azure oferece várias opções de gerenciamento da disponibilidade e da resiliência de seus aplicativos. Projete sua solução a fim de usar VMs replicadas em Zonas de Disponibilidade ou Conjuntos de Disponibilidade para proteger seus aplicativos e dados contra falhas do datacenter e eventos de manutenção. Este exemplo usa Nenhuma redundância de infraestrutura necessária. Imagem Selecione Ubuntu Server 18.04 LTS. Tipo de autenticação Senha ou Chave pública de SSH: o método de autenticação para a conta SSH. É recomendável usar as chaves públicas, pois elas são mais seguras. Este exemplo usa Senha. Para obter mais informações, consulte o documento Criar e usar chaves SSH para VMs Linux. Nome de usuário Insira o nome de usuário do administrador da VM. Este exemplo usa sshuser. Senha ou chave pública SSH O campo disponível é determinado por sua escolha de Tipo de autenticação. Insira o valor apropriado. Porta de entrada públicas Selecione Permitir portas selecionadas. Em seguida, selecione SSH (22) na lista suspensa Selecionar portas de entrada. Deixe outras entradas com os valores padrão e, em seguida, selecione Rede.
Na guia Rede, insira as seguintes informações:
Campo Valor Rede virtual Selecione a rede virtual que você criou anteriormente. Sub-rede Selecione a sub-rede padrão que da rede virtual que você criou anteriormente. Não selecione a sub-rede usada pelo gateway de VPN. IP público Use o valor preenchido automaticamente. Deixe outras entradas com os valores padrão e, em seguida, selecione Revisar + criar.
Na guia Revisar + criar, selecione Criar para criar a máquina virtual.
Revisar endereços IP
Após a criação da máquina virtual, você receberá uma notificação de Implantação bem-sucedida com um botão Ir para o recurso. Selecione Ir para o recurso para acessar sua nova máquina virtual. Na exibição padrão de sua nova máquina virtual, execute estas etapas para identificar os endereços IP associados:
Em Configurações, selecione Propriedades.
Anote os valores de RÓTULO DE NOME DNS/ENDEREÇO IP PÚBLICO e ENDEREÇO IP PRIVADO para uso posterior.
Instalar e configurar o Bind (software DNS)
Use SSH para conexão com o endereço IP público da máquina virtual. Substitua
sshuser
pela conta de usuário SSH que você especificou ao criar a VM. O exemplo a seguir se conecta a uma máquina virtual em 40.68.254.142:ssh sshuser@40.68.254.142
Para instalar o Bind, use os seguintes comandos da sessão SSH:
sudo apt-get update -y sudo apt-get install bind9 -y
Para configurar o BIND para encaminhar solicitações de resolução de nomes para o servidor DNS local, use o seguinte texto como o conteúdo do arquivo
/etc/bind/named.conf.options
: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
Substitua os valores na seção
goodclients
com o intervalo de endereços IP da rede virtual e rede local. Esta seção define os endereços dos quais esse servidor DNS aceita solicitações.Substitua a entrada
192.168.0.1
na seçãoforwarders
pelo endereço IP do servidor DNS local. Essa entrada roteia solicitações DNS para o servidor DNS local para resolução.Para editar esse arquivo, use o seguinte comando:
sudo nano /etc/bind/named.conf.options
Para salvar o arquivo, use Ctrl+X, Y e, em seguida, Enter.
Na sessão do SSH, use o comando a seguir:
hostname -f
Esse comando retorna um valor semelhante ao texto a seguir:
dnsproxy.icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net
O texto
icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net
é o sufixo DNS para essa rede virtual. Salve esse valor, pois ele será usado mais tarde.Para configurar o Bind para resolver nomes DNS para os recursos na rede virtual, use o seguinte texto como o conteúdo do arquivo
/etc/bind/named.conf.local
:// 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
Você deve substituir o
icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net
com o sufixo DNS que você recuperou anteriormente.Para editar esse arquivo, use o seguinte comando:
sudo nano /etc/bind/named.conf.local
Para salvar o arquivo, use Ctrl+X, Y e, em seguida, Enter.
Para iniciar o Bind, use o seguinte comando:
sudo service bind9 restart
Para verificar se o Bind pode resolver os nomes de recursos em sua rede local, use os seguintes comandos:
sudo apt install dnsutils nslookup dns.mynetwork.net 10.0.0.4
Importante
Substitua
dns.mynetwork.net
pelo FQDN (nome de domínio totalmente qualificado) de um recurso em sua rede local.Substitua
10.0.0.4
pelo endereço IP interno do seu servidor DNS personalizado na rede virtual.A resposta aparece semelhante ao seguinte texto:
Server: 10.0.0.4 Address: 10.0.0.4#53 Non-authoritative answer: Name: dns.mynetwork.net Address: 192.168.0.4
Configure a rede virtual para usar o servidor DNS personalizado
Para configurar a rede virtual a fim de usar o servidor DNS personalizado em vez do resolvedor recursivo do Azure, use estas etapas no portal do Azure:
No menu à esquerda, navegue até Todos os serviços>Rede>Redes virtuais.
Selecione sua rede virtual na lista, que abrirá a exibição padrão da sua rede virtual.
Na exibição padrão, sob Configurações, selecione Servidores DNS.
Selecione Personalizado e insira o ENDEREÇO IP PRIVADO do servidor DNS personalizado.
Selecione Salvar.
Configurar servidor DNS local
Na seção anterior, você configurou o servidor DNS personalizado para encaminhar solicitações para o servidor DNS local. Em seguida, você deve configurar o servidor DNS local para encaminhar solicitações para o servidor DNS personalizado.
Para etapas específicas sobre como configurar seu servidor DNS, consulte a documentação do seu software para servidores DNS. Procure as etapas sobre como configurar um encaminhador condicional.
Um encaminhador condicional só encaminha solicitações para um sufixo DNS específico. Nesse caso, você deve configurar um encaminhador para o sufixo DNS da rede virtual. Solicitações para esse sufixo devem ser encaminhadas para o endereço IP do servidor DNS personalizado.
O texto a seguir é um exemplo de uma configuração de encaminhador condicional para o software DNS do Bind:
zone "icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net" {
type forward;
forwarders {10.0.0.4;}; # The custom DNS server's internal IP address
};
Para obter informações sobre como usar o DNS no Windows Server 2016, consulte a documentação Add-DnsServerConditionalForwarderZone...
Depois de configurar o servidor DNS local, você pode usar nslookup
da rede local para verificar se você pode resolver nomes na rede virtual. O exemplo a seguir
nslookup dnsproxy.icb0d0thtw0ebifqt0g1jycdxd.ex.internal.cloudapp.net 196.168.0.4
Este exemplo usa o servidor DNS local em 196.168.0.4 para resolver o nome do servidor DNS personalizado. Substitua o endereço IP por aquele para o servidor DNS local. Substitua o endereço dnsproxy
pelo nome de domínio totalmente qualificado do servidor DNS personalizado.
Opcional: controlar o tráfego de rede
Você pode usar NSGs (grupos de segurança de rede) ou UDRs (rotas definidas pelo usuário) para controlar o tráfego de rede. As NSGs permitem filtrar o tráfego de entrada e de saída e permitem ou negam o tráfego. As UDRs permitem que você controle como o tráfego flui entre os recursos da rede virtual, a Internet e a rede local.
Aviso
O HDInsight requer acesso de entrada de endereços IP específicos na nuvem do Azure e acesso irrestrito de saída. Ao usar as NSGs ou UDRs para controlar o tráfego, você deve executar as seguintes etapas:
Localize os endereços IP para a localização que contém sua rede virtual. Para obter uma lista de IPs necessários por localização, consulte Endereços IP necessários.
Para os endereços IP identificados na etapa 1, permita tráfego de entrada desses endereços IP.
- Se você estiver usando NSG: permitir o tráfego de entrada na porta 443 para os endereços IP.
- Se você estiver usando UDR: definir o tipo da rota Próximo salto para Internet para os endereços IP.
Para obter um exemplo de como usar o Azure PowerShell ou a CLI do Azure para criar as NSGs, consulte o documento Estender o HDInsight com Redes Virtuais do Azure.
Criar o cluster HDInsight
Aviso
Você deve criar e configurar o servidor DNS personalizado antes de instalar o HDInsight na rede virtual.
Use as etapas no documento Criar um cluster HDInsight usando o portal do Azure para criar um cluster HDInsight.
Aviso
- Durante a criação do cluster, você deve escolher a localização que contém sua rede virtual.
- Na parte Configurações avançadas da configuração, você deve selecionar a rede virtual e a sub-rede que você criou anteriormente.
Conectando-se ao HDInsight
A maior parte da documentação no HDInsight supõe que você tenha acesso ao cluster via Internet. Por exemplo, que você possa se conectar ao cluster em https://CLUSTERNAME.azurehdinsight.net
. Esse endereço usa o gateway público, que não estará disponível se você tiver usado NSGs ou UDRs para restringir o acesso da Internet.
Alguns documentos também fazem referência headnodehost
ao se conectarem ao cluster de uma sessão SSH. Esse endereço só está disponível de nós em um cluster e não é utilizável em clientes conectados através da rede virtual.
Para conectar-se diretamente ao HDInsight por meio da rede virtual, use as seguintes etapas:
Para descobrir os nomes de domínio totalmente qualificado internos dos nós do cluster HDInsight, use um dos seguintes métodos:
$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}"
Para determinar a porta na qual um serviço está disponível, consulte o documento Portas usadas por serviços do Apache Hadoop no HDInsight.
Importante
Alguns serviços hospedados em nós de cabeçalho ficam ativos apenas em um nó por vez. Se você tentar acessar um serviço em um nó de cabeçalho e ele falhar, mude para o outro nó de cabeçalho.
Por exemplo, o Apache Ambari só está ativo em um nó de cabeçalho por vez. Se você tentar acessar o Ambari em um nó de cabeçalho e ele retornar um erro 404, então ele estará em execução no outro nó de cabeçalho.
Próximas etapas
Para obter mais informações sobre como usar o HDInsight em uma rede virtual, consulte o documento Planejar uma implantação de rede virtual para clusters do Azure HDInsight.
Para obter mais informações sobre redes virtuais do Azure, consulte a Visão geral da Rede Virtual do Azure.
Para obter mais informações sobre os Grupos de Segurança de Rede, veja Grupos de segurança de rede.
Para obter mais informações sobre as rotas definidas pelo usuário, confira Rotas definidas pelo usuário e encaminhamento IP.