Configurando o DNS em uma rede virtual do Azure

6

Eu tenho alguns serviços na nuvem e uma VM executando o Redis no Azure. Pelo que entendi eu preciso criar uma rede virtual para que os serviços em nuvem possam se comunicar com o Redis na VM. Essa foi fácil. Agora, o que eu gostaria de fazer é configurar o DNS para que eu não precise especificar endereços IP em todos os lugares.

Os artigos que estou encontrando lidam com a integração de um servidor DNS no site, mas eu não tenho isso. Existe alguma maneira de usar godaddy, ou dnsimple para isso? Que tal instalar apenas um serviço DNS simples na VM atual?

Acho que minha pergunta pode ser resumida como o que preciso fazer para que meus serviços em nuvem possam se comunicar com meu VN por meio de um nome DNS?

    
por Joe 28.02.2013 / 01:43

3 respostas

6

Existem alguns recursos "ocultos" do VN no Azure que ajudarão você. Primeiro de tudo, sim, você está correto. Se você criar uma rede virtual, a resolução de nomes não funcionará, a menos que você forneça seu próprio servidor DNS e configure-o para permitir atualizações dinâmicas. Você não pode usar os serviços DNS públicos para fornecer a resolução de nomes DNS para a rede virtual do Windows Azure.

Então aqui está sua solução. Você deve iniciar o "Clean" porque você não pode alterar o endereço IP do servidor DNS assim que o VNet executar máquinas virtuais nele.

  • Crie a VNet como de costume (e suas sub-redes)
  • Forneça o endereço do servidor DNS. Defina este endereço como xxx.xxx.xxx.4 (4 será sempre o primeiro endereço IP atribuído em uma determinada sub-rede!)
  • Na VNet limpa, crie uma nova VM com o Windows Server. Essa VM obterá o endereço IP xxx.xxx.xxx.4
  • Instalar e configurar a função do servidor DNS nesta máquina
  • NÃO DEFINE ENDEREÇO DE IP ESTÁTICO DESTA MÁQUINA!
  • Crie o restante das VMs como de costume

Coisas a ter em conta:

  • Nunca atribua endereços IP estáticos a qualquer VM no Windows Azure. Eles devem ter endereços IP alocados pelo DHCP
  • Tenha o cuidado de primeiro criar a máquina DNS, para obter o endereço IP .4
  • A sua máquina virtual de DNS preservará seu endereço IP (0,4), desde que você não a exclua.

Esta arquitetura provou ser válida e funciona dentro do Windows Azure IaaS (também conhecido como Virtual Machines)

    
por 01.03.2013 / 14:15
6

Eu tive o mesmo problema e acredito que encontrei uma solução razoável que não envolve nenhuma máquina extra e é muito pouco trabalho.

Em suma, você coloca seu back-end e frontend na mesma rede virtual e sub-rede, para que recebam o mesmo servidor DNS. Em seguida, você configura a Lista de pesquisa de sufixos de DNS nos serviços de front-end para que eles usem o sufixo DNS do back-end ao executar a resolução de nomes.

Etapas:

  1. Faça login em uma de suas VMs de back-end e execute ipconfig .
  2. Na saída, obtenha o valor de Connection-specific DNS Suffix

  3. Definaovalorde$dnsSuffixparaovalordaetapa2noscriptaseguir.

    $dnsSuffix='xxxxxx.yyyyy.uswest.internal.cloudapp.net';$nics=Get-WmiObject'-Classwin32_networkadapterconfiguration'-Filter'IPEnabled=true';$nics|%{$nicSuffixes=$_.DNSDomainSuffixSearchOrder;if($nicSuffixes-notcontains$dnsSuffix){$_.DNSDomainSuffixSearchOrder=$dnsSuffix+$_.DNSDomainSuffixSearchOrder;}};Invoke-WmiMethod'-Classwin32_networkadapterconfiguration'-NamesetDNSSuffixSearchOrder'-ArgumentList@(@($dnsSuffix)),$null;
  4. NomeieessescriptcomoSet-DnsSuffixSearchList.ps1einclua-oemseuprojeto,definindoaspropriedadesnoarquivopara"Copiar sempre" assim:

  5. Crieumarquivochamadostartup.cmd,quecontémoseguinteconteúdoetambémdefinaapropriedade"Copiar sempre":

    powershell -Command "Set-ExecutionPolicy Unrestricted" >> "%TEMP%\StartupLog.txt" 2>&1
    
    # Set the DNS SearchList so that backend hosts are resolvable using their shortened names.
    powershell .\Set-DnsSuffixSearchList.ps1 >> "%TEMP%\StartupLog.txt" 2>&1
    
  6. Adicione uma tarefa de inicialização ao projeto do Serviço de Nuvem do Azure, editando ServiceDefinition.csdef e adicionando o seguinte XML no WebRole node:

    <Startup>
      <Task
        commandLine="startup.cmd"
        executionContext="elevated"
        taskType="background">
      </Task>
    </Startup>
    
  7. Você terminou, presumindo que já tenha especificado que seu site e back-end devem estar na mesma sub-rede. Se não, adicione isso ao seu arquivo ServiceConfiguration.Cloud.cscfg dentro do nó ServiceConfiguration :

      <NetworkConfiguration>
        <VirtualNetworkSite name="yourVirtualNetwork" />
        <AddressAssignments>
          <InstanceAddress roleName="yourCloudServiceName">
            <Subnets>
              <Subnet name="yourSubnetName" />
            </Subnets>
          </InstanceAddress>
        </AddressAssignments>
      </NetworkConfiguration>
    

Espero que ajude alguém que se depara com o mesmo problema!

    
por 22.07.2013 / 04:40
0

No novo portal, você pode definir seu nome DNS no Recurso de Endereço IP Público. Aqui está uma foto que descreve como configurá-lo:

(Clique para ampliar)

    
por 07.04.2016 / 22:10