Nesta página, descrevemos como criar, atualizar e associar endpoints de saída a zonas de encaminhamento e políticas de servidor DNS para permitir o encaminhamento direto de consultas DNS usando endereços IP privados da sua rede VPC. Ao usar essa abordagem, você tem um controle mais granular sobre o tráfego de saída. Para mais informações sobre endpoints de saída, consulte Visão geral de endpoints de saída.
Antes de começar
-
No console do Google Cloud , na página do seletor de projetos, selecione ou crie um projeto do Google Cloud .
Papéis necessários para selecionar ou criar um projeto
- Selecionar um projeto: para selecionar um projeto, não é necessário ter um papel do IAM específico. É possível selecionar qualquer projeto em que você tenha um papel.
-
Criar um projeto: para criar um projeto, é preciso ter o papel de Criador de projetos
(
roles/resourcemanager.projectCreator), que contém a permissãoresourcemanager.projects.create. Saiba como conceder papéis.
-
Verifique se o faturamento está ativado para o projeto do Google Cloud .
-
Ative as APIs Cloud DNS, Compute Engine e Network Services, se ainda não estiverem ativadas.
Funções necessárias para ativar APIs
Para ativar APIs, você precisa da permissão
serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão pelo papel de proprietário (roles/owner). Caso contrário, é possível conseguir essa permissão pelo papel de administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.
Verifique se você tem uma rede VPC com conectividade com seus servidores de nomes DNS locais ou externos. Em cada região em que você planeja
implantar um endpoint de saída, sua rede VPC precisa ter uma sub-rede
regular e uma sub-rede regional ativa somente de proxy (--purpose=REGIONAL_MANAGED_PROXY
e --role=ACTIVE com um tamanho mínimo de /26 ou 64 endereços) na região
de destino. Para mais informações, consulte Criar e gerenciar redes VPC.
Verifique também se a rede local tem uma rota de retorno para o intervalo de endereços IP da sub-rede somente proxy regional e configure as regras de firewall locais para permitir consultas DNS de entrada (UDP e porta TCP 53) do intervalo de endereços IP da sub-rede somente proxy regional.
Criar um endpoint de saída
Para criar um endpoint de saída, faça o seguinte:
Console
No console do Google Cloud , acesse a página Cloud DNS.
Acesse a guia Endpoints de saída e clique em Criar endpoint de saída.
No campo Nome, insira um nome exclusivo para o endpoint.
(Opcional) No campo Descrição, insira uma descrição para o endpoint.
Em Região, selecione a região de destino.
Na lista Rede, selecione sua rede VPC.
Em Sub-rede, selecione a sub-rede regular na região selecionada.
Em Endereço IP do endpoint, insira uma string de endereço IPv4 válida do intervalo de sub-rede selecionado.
Em Sub-rede somente proxy, o console detecta automaticamente a sub-rede somente proxy regional na rede VPC e na região selecionadas para saída de consulta de saída. Se uma sub-rede somente proxy não for detectada, clique em Reservar sub-rede para criar uma antes de continuar.
Clique em Criar.
gcloud
Execute o comando gcloud beta dns outbound-endpoints create:
gcloud beta dns outbound-endpoints create ENDPOINT_NAME \
--project=PROJECT_ID \
--network=VPC_NETWORK \
--subnetwork=REGULAR_SUBNET \
--location=REGION \
--endpoint-ip=IP_ADDRESS \
--description=DESCRIPTION
Substitua:
ENDPOINT_NAME: nome do endpoint de saída.PROJECT_ID: ID do projeto;VPC_NETWORK: rede VPC associada ao endpoint de saída, por exemplo,projects/PROJECT_ID/global/networks/VPC_NETWORK_NAMEou apenasVPC_NETWORK_NAMEREGULAR_SUBNET: a sub-rede regular de onde o endereço IP de detecção interno do endpoint é alocado, por exemplo,projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAMEou apenasSUBNET_NAMEREGION: região em que o endpoint está implantado.IP_ADDRESS: um endereço IPv4 interno disponível do intervalo de endereços IP principal da sub-rede comum.DESCRIPTION: uma descrição opcional para o endpoint.
API
Execute o método outboundEndpoints.create:
POST https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints?outboundEndpointId=ENDPOINT_NAME
{
"network": "projects/PROJECT_ID/global/networks/VPC_NETWORK",
"subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/REGULAR_SUBNET",
"endpointIp": "IP_ADDRESS",
"description": "DESCRIPTION"
}
Substitua:
PROJECT_ID: ID do projeto;REGION: região em que o endpoint está implantado.ENDPOINT_NAME: nome do endpoint de saída.VPC_NETWORK: rede VPC associada ao endpoint de saídaREGULAR_SUBNET: a sub-rede regular de onde o endereço IP de detecção interno do endpoint é alocado.IP_ADDRESS: um endereço IPv4 interno disponível do intervalo de IP principal da sub-rede comum.DESCRIPTION: uma descrição opcional para o endpoint.
Atualizar um endpoint de saída
Para atualizar um endpoint de saída, siga estas etapas:
Console
No console do Google Cloud , acesse a página Cloud DNS.
Acesse a guia Endpoints de saída e clique no nome do endpoint de saída que você quer atualizar.
Clique em Editar, atualize o campo Descrição e clique em Salvar.
gcloud
Execute o comando gcloud beta dns outbound-endpoints update:
gcloud beta dns outbound-endpoints update ENDPOINT_NAME \
--project=PROJECT_ID \
--location=REGION \
--description=UPDATED_DESCRIPTION
Substitua:
ENDPOINT_NAME: nome do endpoint de saída a ser atualizado.PROJECT_ID: ID do projeto;REGION: região em que o endpoint está implantado.UPDATED_DESCRIPTION: descrição opcional atualizada do endpoint.
API
Execute o método outboundEndpoints.patch:
PATCH https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints/ENDPOINT_NAME?updateMask=description
{
"description": "UPDATED_DESCRIPTION"
}
Substitua:
PROJECT_ID: ID do projeto;REGION: região em que o endpoint está implantado.ENDPOINT_NAME: nome do endpoint de saída a ser atualizado.UPDATED_DESCRIPTION: descrição atualizada do endpoint de saída
Associar endpoints a uma zona de encaminhamento
Console
No console do Google Cloud , acesse a página Cloud DNS.
Acesse a guia Zonas e clique em Criar zona ou selecione uma zona de encaminhamento existente e clique em Editar.
Configure os parâmetros da zona:
- Em Tipo de zona, selecione Particular.
- Em Nome da zona, insira um identificador exclusivo para a zona.
- Em Nome do DNS, insira o sufixo de domínio que você quer encaminhar. Por exemplo,
corp.example.com. - (Opcional) Em Descrição, digite uma descrição.
- Em Opções, selecione Encaminhar consultas para outro servidor.
- Em Redes, selecione as redes VPC autorizadas a resolver consultas nessa zona.
Em Servidores DNS de destino, insira os endereços IPv4 de destino ou os FQDNs dos servidores de nomes externos/locais.
Em Caminho de ida, selecione Endpoints de saída.
Em Endpoints de saída, selecione um ou mais endpoints para processar o encaminhamento de consultas:
- Seleção mínima: selecione pelo menos um endpoint de saída (obrigatório quando os endpoints de saída são escolhidos como o caminho de ida).
- Restrição de VPC única: todos os endpoints selecionados precisam pertencer à mesma rede VPC.
- Prática recomendada de alta disponibilidade (HA): para recuperação de desastres entre regiões e failover automático, configure e selecione pelo menos dois endpoints em regiões diferentes na rede VPC.
Clique em Criar (ou Salvar para uma zona atual).
gcloud
Associe endpoints a uma zona de encaminhamento usando o
comando gcloud beta dns managed-zones update:
gcloud beta dns managed-zones update ZONE_NAME \
--project=PROJECT_ID \
--outbound-endpoints=projects/PROJECT_ID/locations/REGION_1/outboundEndpoints/ENDPOINT_NAME_1,projects/PROJECT_ID/locations/REGION_2/outboundEndpoints/ENDPOINT_NAME_2
Substitua:
ZONE_NAME: nome da zona de encaminhamento a ser atualizada.PROJECT_ID: ID do projeto;REGION_1eREGION_2: regiões em que os endpoints são implantadosENDPOINT_NAME_1: nome do primeiro endpoint a ser associado à zona de encaminhamentoENDPOINT_NAME_2: nome do segundo endpoint a ser associado à zona de encaminhamento
API
Execute o método managedZones.patch:
PATCH https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/managedZones/ZONE_NAME
{
"name": "ZONE_NAME",
"dnsName": "DNS_NAME",
"description": "DESCRIPTION",
"visibility": "private",
"forwardingConfig": {
"targetNameServers": [
{
"ipv4Address": "TARGET_IP_ADDRESS"
}
],
"outboundEndpoints": [
{
"name": "projects/PROJECT_ID/locations/REGION_1/outboundEndpoints/ENDPOINT_NAME_1"
},
{
"name": "projects/PROJECT_ID/locations/REGION_2/outboundEndpoints/ENDPOINT_NAME_2"
}
]
}
}
Substitua:
PROJECT_ID: ID do projeto;ZONE_NAME: nome da zona de encaminhamento a ser atualizada.DNS_NAME: nome DNS da zona de encaminhamentoDESCRIPTION: (opcional) descrição atualizada da zona de encaminhamentoTARGET_IP_ADDRESS: endereço IPv4 de destino (oudomainName: TARGET_FQDN) do servidor de nomes DNS externo ou localREGION_1eREGION_2: regiões em que os endpoints são implantados (todos os endpoints de saída listados emforwardingConfigprecisam pertencer à mesma rede VPC)ENDPOINT_NAME_1: nome do primeiro endpoint a ser associado à zona de encaminhamentoENDPOINT_NAME_2: nome do segundo endpoint a ser associado à zona de encaminhamento
Associar endpoints a uma política de servidor DNS
Console
No console do Google Cloud , acesse a página Cloud DNS.
Acesse a guia Políticas de servidor DNS e clique em Criar política (ou selecione uma política de servidor DNS atual e clique em Editar).
Faça as configurações a seguir:
- Em Nome da política, insira um nome exclusivo para a política do servidor.
- (Opcional) Em Descrição, digite uma descrição.
- Em Encaminhamento de consulta de entrada, especifique se os clientes externos vão consultar cargas de trabalho da VPC usando endpoints de entrada.
- Para DNS64, ative ou desative a síntese de IPv6 conforme necessário.
- Em Registros, ative ou desative a geração de registros de DNS conforme necessário.
- Em Redes VPC, selecione as redes VPC a que a política de servidor se aplica.
Em Servidores DNS alternativos, insira os endereços IPv4 de destino dos servidores de nomes externos ou locais.
Em Caminho de ida, selecione Endpoints de saída.
Em Endpoints de saída, selecione um ou mais endpoints para rotear todas as consultas de VPC não privadas:
- Seleção mínima: selecione pelo menos um endpoint de saída.
- Restrição de VPC única: todos os endpoints selecionados precisam pertencer à mesma rede VPC.
- Prática recomendada de alta disponibilidade (HA): para recuperação de desastres entre regiões e failover automático, configure e selecione pelo menos dois endpoints em regiões diferentes na rede VPC.
Clique em Criar (ou Salvar para uma política atual).
gcloud
Associe endpoints a uma política de servidor DNS usando o
comando gcloud beta dns policies update:
gcloud beta dns policies update POLICY_NAME \
--project=PROJECT_ID \
--outbound-endpoints=projects/PROJECT_ID/locations/REGION_1/outboundEndpoints/ENDPOINT_NAME_1,projects/PROJECT_ID/locations/REGION_2/outboundEndpoints/ENDPOINT_NAME_2
Substitua:
POLICY_NAME: nome da política de servidor DNS a ser atualizadaPROJECT_ID: ID do projeto;REGION_1eREGION_2: regiões em que os endpoints são implantadosENDPOINT_NAME_1: nome do primeiro endpoint a ser associado à política do servidor DNSENDPOINT_NAME_2: nome do segundo endpoint a ser associado à política do servidor DNS
API
Execute o método policies.patch:
PATCH https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/policies/POLICY_NAME
{
"alternativeNameServerConfig": {
"targetNameServers": [
{"ipv4Address": "TARGET_IP_ADDRESS"}
],
"outboundEndpoints": [
{"name": "projects/PROJECT_ID/locations/REGION_1/outboundEndpoints/ENDPOINT_NAME_1"},
{"name": "projects/PROJECT_ID/locations/REGION_2/outboundEndpoints/ENDPOINT_NAME_2"}
]
}
}
Substitua:
PROJECT_ID: ID do projeto;POLICY_NAME: nome da política de servidor DNS a ser atualizadaTARGET_IP_ADDRESS: endereço IPv4 de destino do servidor de nomes alternativo externo ou local.REGION_1eREGION_2: regiões em que os endpoints são implantadosENDPOINT_NAME_1: nome do primeiro endpoint a ser associado à política do servidor DNSENDPOINT_NAME_2: nome do segundo endpoint a ser associado à política de servidor DNS
Ver endpoints de saída
Para listar ou descrever endpoints de saída em uma região, siga estas etapas:
Console
No console do Google Cloud , acesse a página Cloud DNS.
Acesse a guia Endpoints de saída para conferir todos os endpoints de saída no seu projeto, as regiões, redes, sub-redes, endereços IP e status de integridade deles. Clique no nome de um endpoint de saída para ver os detalhes específicos dele, como descrição, sub-rede normal, endereço IP do endpoint e sub-rede regional somente proxy.
gcloud
Para listar todos os endpoints de saída em uma região, execute o
comando gcloud beta dns outbound-endpoints list:
gcloud beta dns outbound-endpoints list \
--project=PROJECT_ID \
--location=REGION
Substitua:
PROJECT_ID: ID do projeto;REGION: região em que o endpoint está implantado.
Para ver detalhes de um endpoint de saída específico, execute o
comando gcloud beta dns outbound-endpoints describe:
gcloud beta dns outbound-endpoints describe ENDPOINT_NAME \
--project=PROJECT_ID \
--location=REGION
Substitua:
ENDPOINT_NAME: nome do endpoint de saída.PROJECT_ID: ID do projeto;REGION: região em que o endpoint está implantado.
API
Para listar todos os endpoints de saída em uma região, envie uma solicitação GET:
GET https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints
Substitua:
PROJECT_ID: ID do projeto;REGION: região em que o endpoint está implantado.
Para ver detalhes de um endpoint de saída específico, envie uma solicitação GET:
GET https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints/ENDPOINT_NAME
Substitua:
PROJECT_ID: ID do projeto;REGION: região em que o endpoint está implantado.ENDPOINT_NAME: nome do endpoint de saída.
Excluir um endpoint de saída
Antes de excluir um endpoint de saída, é preciso desassociá-lo de todas as zonas de encaminhamento ou políticas de servidor DNS que o referenciam. Para mais informações, consulte Gerenciar recursos de rede associados a endpoints de saída.
Depois de desassociar o endpoint de saída de todas as zonas de encaminhamento e políticas de servidor DNS, siga estas etapas para excluir o endpoint:
Console
No console do Google Cloud , acesse a página Cloud DNS.
Acesse a guia Endpoints de saída.
Selecione o endpoint de saída que você quer excluir e clique em Excluir.
gcloud
Execute o comando gcloud beta dns outbound-endpoints delete:
gcloud beta dns outbound-endpoints delete ENDPOINT_NAME \
--project=PROJECT_ID \
--location=REGION
Substitua:
ENDPOINT_NAME: nome do endpoint de saída a ser excluídoPROJECT_ID: ID do projeto;REGION: região em que o endpoint está implantado.
API
Use o método outboundEndpoints.delete.
DELETE https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints/ENDPOINT_NAME
Substitua:
PROJECT_ID: ID do projeto;REGION: região em que o endpoint está implantado.ENDPOINT_NAME: nome do endpoint de saída a ser excluído
Resolver problemas
Para encontrar métodos de diagnóstico e resolução de erros relacionados a endpoints de saída, consulte Solução de problemas.
A seguir
- Saiba mais sobre endpoints de saída.