Voltar às atualizações
New releaseAug 19, 2026

dnscontrol v5.0.0-rc9

Infraestrutura como código para DNS!

Compartilhar

DNSControl

DNSControl/dnscontrol/build Google Group PkgGoDev

O DNSControl é Infraestrutura como Código para DNS. Ele inclui uma linguagem de configuração completa (compatível com JavaScript), além de "plug-ins" que se comunicam com APIs de provedores de DNS, como AWS Route 53, Cloudflare e Gandi. Ele pode enviar os mesmos registros DNS para vários provedores. Ele roda em qualquer lugar onde Go roda (Linux, macOS, Windows). O modelo de provedores é extensível, portanto mais provedores podem ser adicionados.

Um Exemplo

dnsconfig.js:

// define our registrar and providers
var REG_NAMECOM = NewRegistrar("name.com");
var r53 = NewDnsProvider("r53")

D("example.com", REG_NAMECOM, DnsProvider(r53),
  A("@", "1.2.3.4"),
  CNAME("www","@"),
  MX("@",5,"mail.myserver.com."),
  A("test", "5.6.7.8")
)

Executar dnscontrol preview fará a comunicação com os provedores (aqui, name.com como registrador e route 53 como host de DNS) e determinará quais mudanças precisam ser feitas.

Executar dnscontrol push fará essas mudanças com o provedor, e meus registros DNS serão atualizados corretamente.

A maneira mais fácil de executar o DNSControl é usar o contêiner Docker:

docker run --rm -it -v "$(pwd):/dns"  ghcr.io/dnscontrol/dnscontrol preview

Veja a página Getting Started no site de documentação para começar!

Provedores Suportados

O DNSControl suporta 65 provedores e registradores de DNS:

¹também suporta funções de registrador ²somente registrador

O Stack Overflow usa este sistema para gerenciar centenas de domínios e subdomínios em vários registradores e provedores de DNS.

Você pode pensar nele como um compilador de DNS. Os arquivos de configuração são escritos em uma DSL que se parece muito com JavaScript. Ele é compilado para uma representação intermediária (IR). Os back-ends do compilador usam a IR para atualizar suas zonas DNS em serviços como Route53, Cloudflare e Gandi, ou em sistemas como BIND.

Benefícios

  • Menos propenso a erros do que editar um arquivo de zona BIND.
  • Mais reprodutível do que clicar em botões em um portal web.
  • Troque facilmente entre provedores de DNS: A linguagem do DNSControl é independente de fornecedor. Se você a usa para manter seus registros de zona DNS, pode alternar facilmente entre provedores de DNS. Na verdade, o DNSControl fará o upload dos seus registros DNS para vários provedores, o que significa que você pode testar um enquanto muda para outro. Trocamos de provedor 3 vezes em três anos e nunca perdemos um registro DNS.
  • Aplique princípios de CI/CD ao DNS! O StackOverflow mantém suas configurações do DNSControl no Git e usa nosso sistema de CI para implementar mudanças. Manter informações de DNS em um VCS significa que temos histórico completo. Usar CI nos permite incluir testes de unidade e testes de sistema. Lembra quando você esqueceu de incluir um "." no final de um registro MX? Não tivemos esse problema desde que incluímos um teste para garantir que o Tom não cometa esse erro... de novo.
  • Adote atualizações baseadas em PR (GitOps). Permita que desenvolvedores enviem atualizações como PRs, que você pode revisar antes de aprovar.
  • Variáveis economizam tempo! Atribua um endereço IP a uma constante e use o nome da variável em todo o arquivo. Precisa mudar o endereço IP globalmente? Basta alterar a variável e "recompilar."
  • Macros! Defina seus registros SPF, registros MX ou outros dados repetidos uma vez e reutilize-os para todos os domínios.
  • Controle o Cloudflare a partir de uma única fonte de verdade. Ative/desative o proxy do Cloudflare (o botão "nuvem laranja") diretamente dos seus arquivos do DNSControl.
  • Mantenha domínios semelhantes em sincronia com transformações e outros recursos. Se um domínio deve ser uma versão filtrada de outro, isso é fácil de configurar.
  • É extensível! Todos os provedores de DNS são escritos como plugins. Escrever novos plugins é muito fácil.

Instalação

O DNSControl pode ser instalado por meio de pacotes para macOS, Linux e Windows, ou a partir do código-fonte. Veja as instruções oficiais.

Via GitHub Actions (GHA)

Veja dnscontrol-action ou gacts/install-dnscontrol.

Avisos de descontinuação (atualizado em 21/11/2025)

  • REV() mudará de RFC2317 para RFC4183 na v5.0. Esta é uma mudança que quebra a compatibilidade. Avisos são emitidos se a sua configuração for afetada. Nenhuma data foi anunciada para a v5.0. Veja https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
  • NAMEDOTCOM, OPENSRS e SOFTLAYER precisam de mantenedores! Esses provedores não têm mantenedor. Mantenedores respondem a PRs e corrigem bugs em tempo hábil e tentam se manter atualizados em relação às mudanças de protocolo. Interessado em ser um herói e adotá-los? Entre em contato com tal arroba what exit ponto org.

Contribuindo

Quer contribuir? Seja corrigindo um bug, adicionando um novo provedor de DNS ou melhorando a documentação, contribuições são bem-vindas. Veja CONTRIBUTING.md para saber como começar.

Mais informações em nosso site

O site: https://docs.dnscontrol.org/

O guia de primeiros passos: https://docs.dnscontrol.org/getting-started/getting-started

Estrelas ao longo do tempo

Stargazers over time

Categorias