Suponha que você tenha publicado um site a partir da sua rede doméstica e criado um registro DNS que aponta para o endereço IP público do seu roteador. Como manter seu registro DNS atualizado quando o endereço IP público muda? Talvez você deva considerar configurar um DNS dinâmico do Cloudflare.
Os provedores de serviços de internet (ISPs) geralmente atribuem endereços IP dinâmicos aos seus assinantes, que podem mudar a qualquer momento. Como resultado, seu registro DNS continua apontando para um endereço IP que já não é seu, e seu site se torna inacessível.
Continue lendo, pois este tutorial o ajudará a manter seu registro DNS atualizado usando a interface de programação de aplicativos (API) do Cloudflare e o PowerShell. Vamos começar!
Pré-requisitos
Se você pretende seguir este tutorial, abaixo estão os requisitos necessários.
- A computer with PowerShell 7.1 where you’ll run the Cloudflare dynamic DNS update script. This tutorial will use a Windows 10 computer.
- A script editor of your choice. This tutorial will use Visual Studio Code v1.59.1 (recommended).
- A domain that you already own. The example domain in this tutorial is lazyexchangeadmin.cyou.
Domínios de nível superior (TLD) gratuitos, como .ml, .ga, .tk, .cf e .gq, não são aplicáveis para automação de DNS dinâmico do Cloudflare e não funcionarão com este tutorial.
- A Cloudflare account. A free account is enough to use in this tutorial.
- Você deve ter adicionado seu domínio ao Cloudflare.
- Você deve ter adicionado um registro DNS sob seu domínio no Cloudflare. O registro A DNS neste tutorial será demo.lazyexchangeadmin.cyou com um endereço IP inicial de 0.0.0.0.

O que é DNS Dinâmico do Cloudflare?
Os registros DNS são inherentemente estáticos e não se comportam bem com endereços IP dinâmicos. Agora, para resolver esse problema, você precisará configurar um DNS dinâmico. Felizmente, o Cloudflare fornece uma API que permite que você gerencie registros DNS de forma programática.
Para configurar um DNS dinâmico do Cloudflare, você precisará executar um processo em um cliente dentro de sua rede que faça duas ações principais: obter o endereço IP público atual de sua rede e atualizar automaticamente o registro DNS correspondente.
A imagem abaixo mostra o diagrama de alto nível de como ocorre o fluxo de atualização dinâmica do DNS do Cloudflare.

Existem muitos clientes de DNS dinâmico disponíveis para instalação, principalmente para sistemas Linux, como em um servidor Ubuntu ou Raspberry PI. Também existem serviços de DNS dinâmico de terceiros que podem ser pagos ou gratuitos. Mas neste tutorial, você estará implantando um script de atualização de DNS que é executado no PowerShell 7.1.
Obtendo o Token da API do Cloudflare
Ao atualizar o registro de DNS dinâmico do Cloudflare programaticamente, seu script deve se autenticar na API do Cloudflare. Somente então o Cloudflare permitirá que você faça alterações nos registros de DNS em sua conta.
O Cloudflare permite criar tokens de API com permissões suficientes para seu propósito. Por sua vez, você pode usar o nome de usuário da sua conta do Cloudflare e o token de API resultante para autenticar na API do Cloudflare.
Para criar um Token da API do Cloudflare, siga estas etapas.
1. Abra seu navegador, acesse https://dash.cloudflare.com/login/ e faça login em sua conta do Cloudflare.
2. Após fazer login no painel do Cloudflare, clique no botão de perfil no canto superior direito e clique em Meu Perfil.

3. Em seguida, clique na guia API Tokens. Na seção API Tokens, clique no botão Criar Token. O exemplo abaixo pressupõe que você ainda não criou nenhum token de API.

4. Na lista de modelos de token de API, clique no modelo de Edit zone DNS para utilizá-lo. Esse modelo permite que você crie um token de API com permissão de edição para todas ou selecionadas zonas DNS em sua conta.

5. Na seção Recursos da Zona na página de Criar Token, clique na caixa de seleção mais à direita e selecione a zona DNS para incluir no acesso deste token de API. Após escolher a zona DNS, clique em Continuar para o resumo.
Opcionalmente, para limitar o período de validade do token de API, preencha a Data de Início e a Data de Término> na seção TTL. Se deixado em branco, o token de API não terá data de expiração.

6. Revise o resumo e certifique-se de que a API tenha permissão de Edit:DNS para a zona DNS previamente selecionada. Por fim, clique em Criar Token para criar o token de API.

7. Após criar o token de API, copie o valor do token e certifique-se de armazená-lo com segurança. Trate o token de API como você trataria uma senha.

8. Volte para a guia de Token de API e confirme a existência do token de API que você criou.

Configurando o Script de Atualização de DNS Dinâmico do Cloudflare
Agora você possui a conta do Cloudflare e o Token de API do Cloudflare com permissão para editar uma zona DNS. E agora? Você precisará utilizar o token de API e integrá-lo a um script que atualizaria programaticamente o registro de DNS dinâmico do Cloudflare.
Este tutorial fornece a você um script PowerShell funcional especificamente para atualizar um registro DNS no Cloudflare.
Salvando o Script
Siga as etapas abaixo para salvar o script PowerShell dinâmico do Cloudflare no seu computador cliente.
1. Decida em qual pasta salvar o script e crie essa pasta se ela ainda não existir. Neste exemplo, a localização do script é em C:\CloudflareDDNS.
2. Abra seu editor de código, como o VSCode, e crie um novo arquivo de script PowerShell chamado Update-CloudflareDDNS.ps1
. Salve o script dentro da pasta C:\CloudflareDDNS.
3. Copie o script abaixo, cole-o no seu editor de código e salve o arquivo. Consulte os comentários inline para entender o que o script faz.
Executando o Script
Agora que você salvou o script de atualização dinâmica do DNS do Cloudflare, o que vem depois? Antes de implantar o script, testar se sua funcionalidade funciona é essencial. Executar o script requer quatro detalhes para ser bem-sucedido, e esses são:
Email
– que é o endereço de e-mail para sua conta do Cloudflare.Token
– o token da API que você criou anteriormente em sua conta do Cloudflare.Domínio
– o nome do domínio DNS que contém o registro DNS que você deseja atualizar. (por exemplo, lazyexchangeadmin.cyou).Registro
– o registro DNS que você deseja atualizar. (por exemplo, demo.lazyexchangeadmin.cyou).
Para executar o script, siga estas etapas.
1. Primeiro, abra uma sessão do PowerShell. Ou, se estiver usando o VSCode, use o terminal do PowerShell do VSCode.
2. Em seguida, execute uma pesquisa de registro DNS para confirmar o endereço IP atual do registro DNS. Para fazer isso, execute o cmdlet Resolve-DnsName
, conforme você pode ver abaixo. Certifique-se de fornecer o nome de domínio totalmente qualificado (FQDN) com o parâmetro -Name
.
O comando deve retornar o registro DNS que você pesquisou, incluindo seu endereço IP.

3. Agora, invoque o script Update-CloudflareDDNS.ps1
para atualizar o registro DNS no Cloudflare executando o comando abaixo. Certifique-se de alterar o Email
, Token
, Domínio
e Registro
. O comando abaixo assume que seu script está em C:\CloudflareDDNS\Update-CloudflareDDNS.ps1.
O script então realiza as seguintes ações, como você pode ver na captura de tela abaixo.
- Valida o token da API.
- Encontra o domínio que contém o registro DNS a ser atualizado.
- Encontra o registro DNS a ser atualizado.
- Compara o endereço IP do registro DNS com o endereço IP externo ou público atual.
- Atualiza o endereço IP do registro DNS no Cloudflare.
- Exibe o resultado da atualização do DNS dinâmico.

4. Volte para o painel do Cloudflare e verifique se o registro DNS reflete o novo endereço IP. A captura de tela abaixo mostra que o endereço IP mudou para o valor do endereço IP externo após a execução do script de atualização.

5. Por fim, execute outra consulta de registro DNS como fez no passo 2 para confirmar se o novo endereço IP já foi propagado publicamente.
A propagação do registro DNS pode levar vários minutos, horas ou até dias. Neste exemplo, a propagação do Cloudflare levou menos de um minuto.

Agendando a Tarefa de Atualização Dinâmica do DNS do Cloudflare
Neste ponto, você agora tem um script funcional que atualiza o registro dinâmico do seu DNS no Cloudflare. No entanto, executar o script manualmente cada vez não é o objetivo. Você deve garantir que a atualização dinâmica do DNS seja executada automaticamente em um cronograma, tão frequentemente quanto necessário.
Dependendo do sistema operacional que você está usando, a forma de agendar a execução do script varia, como um trabalho cron no Linux. Este tutorial criará uma tarefa agendada no Windows que executa o script de atualização dinâmica do DNS do Cloudflare a cada cinco minutos.
Definindo a Ação da Tarefa Agendada
Sua tarefa agendada precisa ter uma ação, que você pode criar executando o cmdlet New-ScheduledTaskAction
. Neste exemplo, a ação é executar o script Update-CloudflareDDNS.ps1 usando o arquivo executável do PowerShell pwsh.exe
.
Para fazer isso, abra uma nova janela do PowerShell como administrador. Em seguida, copie e execute o código abaixo no PowerShell. Certifique-se de alterar as variáveis $scriptPath
, $Email,
$Token
, $Domain
, e $Record
.
Criando o Desencadeador da Tarefa Agendada
Depois de definir o que a tarefa fará, você deve criar um desencadeador ou agenda para a tarefa executando o cmdlet New-ScheduledTaskTrigger
. Copie o código abaixo e execute-o no PowerShell para criar um novo desencadeador de tarefa que é executado a cada cinco minutos dentro de uma duração de dez anos.
Registrando a Nova Tarefa Agendada no Sistema
Finalmente, você está pronto para registrar a nova tarefa agendada no computador. Para fazer isso, você precisará executar o cmdlet Register-ScheduledTask
, igual ao código abaixo. Copie o código abaixo e execute-o no PowerShell para registrar a tarefa agendada.
A tarefa agendada resultante será executada sob a conta do sistema local. Sinta-se à vontade para atribuir uma conta de usuário diferente para executar a tarefa agendada conforme necessário.
Como você pode ver abaixo, o comando criou a tarefa agendada e o status está pronto. A partir deste ponto, o script será executado a cada intervalo de cinco minutos.

Conclusão
Manter os registros DNS atualizados com as mudanças de endereço IP dinâmico não precisa ser um desafio. Você também não precisa pagar por um serviço de DNS dinâmico! Ao gerenciar suas zonas DNS no Cloudflare, você pode aproveitar sua API, permitindo que você atualize seus registros DNS de forma programática.
Neste tutorial, você aprendeu como atualizar um registro DNS dinâmico do Cloudflare usando uma combinação de chamadas de API, PowerShell 7 e tarefas agendadas. Tudo isso permite que você configure seu mecanismo de atualização de DNS dinâmico do Cloudflare uma vez e mantenha a atualização em execução em intervalos sem supervisão.
Você consideraria gerenciar suas zonas DNS com o Cloudflare para aproveitar os benefícios de sua API? Ou existe uma maneira mais conveniente e acessível que você conhece?
Source:
https://adamtheautomator.com/cloudflare-dynamic-dns/