DNS em uma Rede Virtual na Nuvem

O DNS (Domain Name System) permite que os computadores usem nomes de host, em vez de endereços IP, para se comunicar entre si. Esse recurso é limitado ao tráfego dentro de uma VCN (Rede Virtual na Nuvem), para uso de DNS com tráfego da internet, consulte DNS e Gerenciamento de Tráfego

Opções para DNS em uma VCN

A seguir estão as opções de resolução de nome de DNS para as instâncias de uma VCN. Você faz essa escolha para cada sub-rede na VCN, usando o conjunto de opções de DHCP da sub-rede. Esse procedimento é semelhante a configurar qual tabela de roteamento e quais listas de segurança serão associadas a cada sub-rede. Para obter mais informações, consulte as Opções de DHCP.

Observação

Você usa a opção de DHCP do Servidor de Nomes de Domínio para especificar o Tipo de DNS da sub-rede associada. Se você alterar o valor da opção, reinicie o cliente DHCP na instância ou reinicialize a instância. Caso contrário, a alteração só será retirada depois que o cliente DHCP atualizar o leasing (dentro de 24 horas).

OPÇÃO PADRÃO: RESOLVEDOR DE INTERNET E VCN
Esta é uma opção fornecida pela Oracle que inclui duas partes:
  • Resolvedor de Internet: permite que as instâncias resolvam os nomes de host divulgados publicamente na internet. As instâncias Não precisam ter acesso à Internet por meio de um gateway de internet nem de uma conexão com uma rede on-premises (como uma conexão VPN Site a Site IPSec por meio de um DRG).
  • Resolvedor de VCN: permite que as instâncias resolvam os nomes de host (que você pode designar) de outras instâncias na mesma VCN. Para obter mais informações, consulte Sobre os Domínios DNS e Nomes de Host.
Por padrão, as novas VCNs criadas utilizam o Resolvedor de Internet e VCN. Se você estiver usando a API do serviço Networking, essa opção fará referência à enumeração VcnLocalPlusInternet no objeto DhcpDnsOption.
Observação

Por padrão. O Resolvedor da Internet e da VCN não permite às instâncias resolver os nomes de host de hosts em uma rede local conectada a uma VCN pela VPN Site-to-Site ou FastConnect. Essa funcionalidade pode ser obtida usando um resolvedor personalizado ou configurando o resolvedor de DNS privado da VCN.

RESOLVEDOR PERSONALIZADO
Use servidores DNS para resolução (máximo três). Eles podem ser servidores DNS que:
  • Estão disponíveis na internet Por exemplo, 216.146.35.35 para o Guia de Internet da Dyn.
  • Na VCN.
  • Em uma rede local, que é conectada à VCN por meio de uma VPN Site-to-Site ou FastConnect (por meio de um DRG).

Sobre Domínios de DNS e Nomes de Host

Quando você cria inicialmente uma VCN e sub-redes, pode especificar labels DNS para cada um. Os labels de DNS de sub-rede só poderão ser definidos se a própria VCN for criada com um label de DNS. Os labels, juntamente com o domínio pai de oraclevcn.com, formam o nome de domínio de VCN e o nome de domínio de sub-rede:

  • Nome do domínio da VCN: <VCN-DNS-label>.oraclevcn.com
  • Nome do domínio de sub-rede: <subnet-DNS-label>.<VCN-DNS-label>.oraclevcn.com

Quando você cria uma instância do serviço Compute, pode designar um nome de host à VNIC que é criada automaticamente durante a criação da instância (a VNIC principal). Juntamente com o nome do domínio da sub-rede, o nome do host forma o nome de domínio totalmente qualificado da instância (FQDN):

  • FQDN da Instância: <hostname>.<subnet-DNS-label>.<VCN-DNS-label>.oraclevcn.com

Por exemplo: database1.privatesubnet1.abccorpvcn1.oraclevcn.com.

O FQDN é resolvido como o endereço IP privado da instância. O Resolvedor de Internet e VCN também executa uma pesquisa de DNS reversa, que permite localizar o nome do host correspondente ao endereço IP privado.

Se você adicionar uma VNIC secundária a uma instância, poderá especificar um nome de host. O FQDN resultante resolve o endereço IP privado da VNIC (o IP privado principal).

Se você adicionar um IP privado secundário à VNIC, poderá especificar um nome de host. O FQDN resultante é resolvido como esse endereço IP privado.

Importante

Recomendamos que você sempre use o FQDN da instância ao enviar mensagens a um host ou, alternativamente, especifique apenas o nome do host das mensagens enviadas em uma VCN.

Requisitos para Labels de DNS e Nomes de Host.

  • Labels de VCN e de sub-rede: Máximo de 15 caracteres alfanuméricos e deve começar com uma letra. Observe que hifens e sublinhados não são permitidos. O valor não pode ser alterado posteriormente.
  • Nomes de host: São permitidos no máximo 63 caracteres, letras e números. Hifens são permitidos. Observe que períodos não são permitidos, hifens não são permitidos no início ou no final do nome do host, e o nome do host não pode ser todos os números. Os nomes de host devem estar em conformidade com as RFCs 952 e 1123. O valor pode ser alterado posteriormente.
Importante

O serviço Networking suporta nomes de host com até 63 caracteres. No entanto, alguns sistemas operacionais mais antigos impõem nomes de host mais curtos. No Linux, veja como encontrar o tamanho máximo permitido de nome de host:

getconf HOST_NAME_MAX

Se uma instância tiver um nome de host maior que o máximo específico do sistema operacional, o FQDN da instância não pode ser resolvido dentro da VCN. Você pode usar o serviço Networking para atualizar a VNIC e alterar o nome do host para um valor menor.

Exclusividade:

  • O label de DNS da VCN deve ser exclusivo entre VCNs em uma tenancy (não obrigatório, mas uma prática recomendada)
  • Os labels de DNS de sub-rede devem ser exclusivos dentro da VCN
  • Os nomes de host devem ser exclusivos dentro da sub-rede
Dica

Não confunda o label do DNS ou o nome de host com o nome simples que você pode designar ao objeto (o nome de exibição), que não precisa ser exclusivo.

Validação e Geração do Nome do Host

Se você definir labels de DNS para a VCN e as sub-redes, o sistema Oracle validará o nome do host para conformidade e exclusividade de DNS durante a criação da instância do serviço Compute. Se um desses requisitos não for atendido, a solicitação de criação falhará.

Se você não especificar um nome de host durante a criação da instância, o sistema Oracle tentará usar o nome para exibição da instância como o nome do host. Se o nome para exibição não passar na validação, o sistema Oracle gerará automaticamente um nome de host compatível com DNS exclusivo na sub-rede. Você pode ver o nome do host gerado na página da instância na Console. Na API, o nome do host faz parte do objeto VNIC.

Se você não fornecer um hostname ou nome para exibição durante a criação da instância usando o SDK ou CLI, o Oracle não gerará um host ou nome para exibição. Isso significa que a instância não pode ser resolvida usando o Resolvedor de Internet e VCN.

Se você não fornecer um Nome de Host ou nome para exibição durante a criação da instância usando a Console, o Oracle gerará automaticamente um Nome para exibição e um registro DNS correspondente, contanto que a sub-rede tenha um label DNS válido associado à mesma.

Observação

O nome do host do sistema operacional Linux na instância é definido automaticamente como o nome do host definido durante a criação da instância (ou aquele gerado pela Oracle). Se você alterar o nome do host diretamente na instância, o FQDN da instância será atualizado.

Se você adicionar uma VNIC secundária a uma instância ou adicionar um IP privado secundário a uma VNIC, o sistema nunca tentará gerar um nome de host. Forneça um nome de host válido se quiser que o endereço IP privado seja resolvido com o Resolvedor de Internet e VCN.

Opções de DHCP para DNS

Duas opções DHCP estão relacionadas ao DNS na VCN:

  • Servidor de Nomes de Domínios: Para especificar a opção do tipo DNS (Resolvedor de Internet e VCN ou Resolvedor Personalizado).

    • Valor padrão no conjunto padrão de opções de DHCP: Resolvedor de Internet e VCN
  • Domínio de Pesquisa: para especificar um único domínio de pesquisa. Ao resolver uma consulta de DNS, o Sistema Operacional anexa este domínio de pesquisa ao valor que está sendo consultado. Você só pode especificar um domínio de pesquisa para o conjunto de opções de DHCP.

    • Valor padrão no conjunto padrão das opções de DHCP: O nome de domínio daVCN (<VCN-DNS-label>.oraclevcn.com), se você especificou um label de DNS para a VCN durante o processo de criação, mas não especificou um valor do domínio de pesquisa. Se você tiver especificado um valor de domínio de pesquisa, esse valor será usado para a opção de Domínio de Pesquisa. Se você não especificou um label DNS, o conjunto padrão das opções de DHCP, não inclui uma opção de Domínio de Pesquisa.
Cuidado

Recomendamos que você sempre use o FQDN da instância ao enviar mensagens a um host em outra sub-rede/VCN e que não dependa do domínio da pesquisa de DNS.

Importante

Em geral, quando qualquer conjunto de opções de DHCP é criado inicialmente (o conjunto padrão ou um conjunto personalizado que você cria), o serviço de Rede adiciona automaticamente a opção Domínio de Pesquisa e a define com o nome do domínio da VCN ( <VCN-DNS-label>.oraclevcn.com) se todas as condições forem atendidas:

  • A VCN tem um label de DNS
  • Tipo de DNS = Resolvedor de Internet e VCN
  • Você não especificou um domínio de pesquisa durante a criação do conjunto de opções de DHCP

Após o conjunto de opções de DHCP ser criado, você sempre poderá remover a opção Pesquisar Domínio ou poderá defini-la com outro valor.

Como Ativar Nomes do Host DNS em uma VCN

Somente as novas VCNs criadas após o lançamento da funcionalidade Resolvedor de Internet e VCN têm acesso automático a ela. A forma de permitir o uso de nomes de host DNS para uma nova VCN dependerá da interface que você está usando.

Se você criar uma VCN e novas sub-redes com a Console
  1. Ao criar a VCN:
    • Selecione Usar Nomes de Host DNS nesta VCN
    • Especifique um label de DNS para a VCN. Se você selecionar esta opção, mas não especificar um label de DNS, a Console considerará que você deseja usar o Resolvedor de Internet e VCN na VCN e gerará automaticamente um label de DNS para a VCN. A Console usa o nome da VCN que você forneceu, remove caracteres não-alfanuméricos, garante que o primeiro caractere seja uma letra e trunca o label para 15 caracteres. A Console exibe o resultado e, se você não gostar, poderá informar outro valor no campo Label do DNS. Consulte Sobre Domínios de DNS e Nomes de Host.
  2. Ao criar as sub-redes:
    • Novamente, selecione Usar Nomes de Host do DNS nesta Sub-rede
    • Especifique um label de DNS para cada sub-rede. Se você marcar a seleção, mas não especificar o label DNS para uma sub-rede específica, a Console considerará que deseja usar o Resolvedor de Internet e VCN para a sub-rede e gerará automaticamente um label DNS para a sub-rede. A Console usa o nome da sub-rede que você forneceu, remove caracteres não-alfanuméricos, garante que o primeiro caractere seja uma letra e trunca o label para 15 caracteres. A Console exibe o resultado e, se você não gostar, poderá informar um valor personalizado no campo Label do DNS. Consulte Sobre Domínios de DNS e Nomes de Host.
      Observação

      Os labels de DNS de Sub-rede só poderão ser definidos se a própria VCN for criada com um label de DNS.
    • Associe qualquer conjunto de opções de DHCP que tenha o tipo de DNS = Resolvedor de Internet e VCN. O conjunto padrão de opções de DHCP na VCN usa o Resolvedor de Internet e VCN por padrão.
  3. Ao criar instâncias do serviço Compute:
    • Selecione a opção para designar um registro de DNS privado.
    • Especifique um nome de host (ou pelo menos um nome para exibição) para cada instância. Para obter mais informações, consulte Sobre os Domínios DNS e Nomes de Host.

Se você não selecionar Usar Nomes de Host do DNS nesta VCN ao criar a VCN, não poderá definir o label do DNS para a VCN ou as sub-redes e não poderá especificar um nome de host durante a criação da instância do serviço Compute.

Observação

O procedimento anterior supõe que você cria a VCN e as sub-redes uma de cada vez na Console. A Console tem uma funcionalidade que cria automaticamente uma VCN com sub-redes e um gateway de internet ao mesmo tempo. Se você usar essa funcionalidade para criar a VCN e as sub-redes, a Console gerará automaticamente labels de DNS para elas.

Se você criar uma VCN e as sub-redes com a API
  1. Ao criar a VCN:

    • Especifique um label de DNS para a VCN. Consulte Sobre Domínios de DNS e Nomes de Host. Se você não definir um valor (se ele for nulo), o sistema vai assumir que você não deseja usar o Resolvedor de Internet e VCN, mesmo que as opções de DHCP tenham DhcpDnsOption serverType = VcnLocalPlusInternet.
  2. Ao criar as sub-redes:

    • Especifique um label de DNS para cada sub-rede. Consulte Sobre Domínios de DNS e Nomes de Host. Se você especificou um label de DNS para a VCN, mas não especificar um para a sub-rede, o sistema Oracle vai assumir que você não deseja que as instâncias na sub-rede usem o Resolvedor de Internet e VCN e a capacidade de usar nomes de host para se comunicar com instâncias na VCN não estará mais disponível.
      Observação

      Os labels de DNS de Sub-rede só poderão ser definidos se a própria VCN tiver sido criada com um label de DNS.
    • Associe qualquer conjunto de opções de DHCP que tenha DhcpDnsOptionserverType = VcnLocalPlusInternet, que é a opção de DHCP padrão na VCN.
  3. Ao criar instâncias:

    • Selecione a opção para designar um registro de DNS privado.
    • Especifique um nome de host (ou pelo menos um nome para exibição) para cada instância. Para obter mais informações, consulte Sobre os Domínios DNS e Nomes de Host.

Se você não especificar um label de DNS ao criar a VCN, não poderá fazer o seguinte:

  • Definir o label de DNS das sub-redes (fazendo com que a chamada CreateSubnet falhe)
  • Especifique um nome de host durante a criação da instância do serviço Compute (causando a falha na chamada LaunchInstance)
  • Designar um nome de host a uma VNIC secundária ou a um IP privado secundário

Cenário 1: Use o Resolvedor de Internet e VCN com nomes de host DNS na VCN

O cenário típico é ativar o Resolvedor de Internet e VCN em uma VCN inteira, de modo que todas as instâncias da VCN possam se comunicar entre si sem saber seus endereços IP. Para fazer isso, siga as instruções em Sobre Domínios de DNS e Nomes de Host e designe um label de DNS à VCN e a cada sub-rede. Em seguida, atribua a cada instância um Nome de Host (ou pelo menos um Nome de Exibição) na criação. Se você adicionar uma VNIC secundária ou um IP privado secundário, também deverá designar um respectivo nome de host. Dessa forma, as instâncias poderão se comunicar entre elas usando FQDNs, em vez de endereços IP.

Cenário 2: Use um Resolvedor de DNS Privado para Resolver Nomes de Host de DNS

Você pode usar um resolvedor de DNS privado para responder às consultas de DNS de uma VCN usando uma configuração que você cria. O resolvedor ouve em 169.254.169.254 por padrão, mas você também pode definir pontos finais para atender às consultas e encaminhá-los a outros resolvedores em outras VCNs, em uma rede local do cliente ou em outra rede privada. Para obter mais informações, consulte Resolvedores de DNS Privado.

Cenário 3: Use Diferentes Opções de DHCP por Sub-rede

O Cenário 1 pressupõe que você deseja usar o Resolvedor de Internet e VCN da mesma forma entre todas as sub-redes e, portanto, entre todas as instâncias da VCN. No entanto, é possível configurar diferentes definições de DNS para cada sub-rede, pois as opções de DHCP estão configuradas no nível da sub-rede. O importante é entender que a sub-rede na qual você deseja gerar a consulta de DNS é aquela na qual você precisa configurar as respectivas definições do Resolvedor de Internet e VCN.

Por exemplo, se você quiser que a instância A na sub-rede A resolva o nome do host da instância B na sub-rede B, deverá configurar a sub-rede A para usar o Resolvedor de Internet e VCN. Por outro lado, se você quiser que a instância B resolva o nome do host da instância A, deverá configurar a sub-rede B para usar o Resolvedor de Internet e VCN.

É possível configurar um conjunto de opções de DHCP específico para cada sub-rede. Por exemplo, você pode definir um Domínio de Pesquisa da sub-rede A para subneta.vcn1.oraclevcn.com, o que significa que todas as instâncias da sub-rede A só podem usar nomes de host para se comunicarem entre si. Da mesma forma, você poderia definir o domínio de Pesquisa da sub-rede B como subnetb.vcn1.oraclevcn.com para permitir que as instâncias da Sub-rede B se comuniquem entre si somente com nomes de host.