Registro A ou CNAME: qual usar para apontar seu domínio

Use registro A quando o destino é um endereço IP e CNAME quando é outro nome (hostname). O CNAME não pode ficar no domínio raiz nem coexistir com outros registros no mesmo nome.

Atualizado em 6 min de leitura

Objetivos de aprendizado

Depois de ler este artigo, você vai conseguir:

  • Entender o que cada tipo de registro devolve na resolução
  • Saber por que o CNAME não funciona no domínio raiz e o que usar no lugar
  • Escolher o registro certo para raiz, www e subdomínios
Nesta página

Na hora de apontar um domínio para uma hospedagem, o painel de DNS pergunta o tipo do registro. A escolha errada produz erros confusos: o painel recusa o cadastro, o site some ou o e-mail para de chegar.

A decisão é pequena, mas uma regra do padrão DNS pega muita gente. Entender de onde ela vem resolve quase todos os casos de raiz, www, subdomínio e e-mail.

Anome → IPmeusite.com.brA203.0.113.10CNAMEnome → outro nomewww.meusite.com.brCNAMEdestino.exemplo.A198.51.100.7Domínio raiz: o CNAME não convive com outros registrosmeusite.com.br.SOANSMXTXTCNAME
O A leva o nome direto a um IP; o CNAME leva a outro nome e não pode ficar na raiz, que já tem outros registros.

O que é um registro A?#

Um registro A associa um nome a um endereço IPv4. Quando alguém consulta app.meusite.com.br, o DNS responde com algo como 203.0.113.10 e o navegador conecta nesse IP. O equivalente para IPv6 é o registro AAAA.

bash
dig app.meusite.com.br A +short
203.0.113.10

É o tipo mais simples e o mais previsível: uma consulta, uma resposta. O custo é que o IP fica gravado na sua zona. Se a hospedagem mudar de IP, você precisa editar o registro em todo nome que aponta para ele.

O que é um CNAME?#

CNAME significa "nome canônico". O registro diz que um nome é um alias de outro: quem consulta o alias recebe o nome de destino e segue a consulta até achar um IP.

bash
dig www.meusite.com.br CNAME +short
meusite.com.br.

O ponto final no valor indica um nome completo (FQDN). Sem ele, alguns painéis acrescentam o domínio ao valor e o destino fica errado.

A vantagem é a manutenção: se o destino trocar de IP, o seu alias acompanha sem você mexer no DNS. A desvantagem é uma consulta a mais na resolução, que o cache costuma absorver durante o TTL.

Qual a diferença entre registro A e CNAME na prática?#

Critério Registro A CNAME
Aponta para Um endereço IPv4 Outro nome (hostname)
Se o IP do destino mudar Você edita o registro Acompanha sozinho
Consultas na resolução Uma Pode exigir uma extra, para resolver o destino
Pode ficar no domínio raiz Sim Não
Convive com MX, TXT, NS no mesmo nome Sim Não
Bom para Raiz, IP fixo e estável Subdomínios e www apontando para um serviço

Não há vencedor universal: o que decide é o que a hospedagem entrega (um IP ou um nome) e onde o registro vai ficar.

Por que o CNAME não funciona no domínio raiz?#

A RFC 1034 define que, se existe um CNAME num nome, nenhum outro dado deve existir nesse mesmo nome. A RFC 2181 reforça a regra, e a RFC 1912 resume: um CNAME não pode coexistir com nenhum outro dado.

O domínio raiz (meusite.com.br, sem prefixo, também chamado de apex) sempre tem registros SOA e NS, e normalmente também MX e TXT. Um CNAME ali entraria em conflito com todos eles. Os painéis de DNS costumam recusar o cadastro, e quando aceitam o resultado é imprevisível: a RFC 1912 avisa que o BIND recusa os outros dados do nome quando vê o CNAME, então os NS são ignorados e os hosts do domínio ficam inalcançáveis.

Alguns provedores contornam isso com CNAME flattening, também chamado de ALIAS ou ANAME. O próprio provedor resolve o nome de destino e responde com os IPs como se fossem registros A. É um recurso do provedor de DNS, não do padrão, e o nome varia: a Cloudflare chama de flattening, outros provedores usam ALIAS ou ANAME. Se o seu não tiver, use A na raiz.

E o e-mail, como o CNAME interfere?#

O CNAME causa dois problemas diferentes no e-mail.

CNAME no mesmo nome que o MX. Como o CNAME não convive com outros dados, criar um CNAME na raiz entra em conflito com o MX e o TXT (SPF, verificações). O e-mail do domínio deixa de chegar. É a causa mais comum de "mexi no site e o e-mail parou".

MX apontando para um CNAME. A RFC 2181 (seção 10.3) diz que o destino de um MX ou NS não pode ser um alias, e a RFC 1912 também desaconselha. O valor do MX deve ser um nome com registro A ou AAAA.

Por isso, se o domínio recebe e-mail, nunca coloque CNAME na raiz e aponte o MX sempre para um nome que resolva direto para IP.

Quando usar cada um?#

  • Domínio raiz (meusite.com.br): registro A, ou ALIAS/ANAME/flattening se o seu provedor tiver.
  • www: CNAME para a raiz (meusite.com.br.) ou para o nome indicado pela hospedagem. Se preferir, um A com o mesmo IP.
  • Subdomínios (app, api, bot): CNAME quando a hospedagem fornece um nome de destino. É a opção que melhor sobrevive a trocas de IP. Veja o que é um subdomínio.
  • Hospedagem que informa só um IP: registro A, em qualquer nome.
  • Nome que também precisa de MX ou TXT: registro A (ou AAAA), nunca CNAME.

Exemplo de zona para um site na raiz com www e app:

Tipo Nome Valor TTL
A @ 203.0.113.10 300
CNAME www meusite.com.br. 300
CNAME app destino-da-hospedagem.exemplo. 300

Os valores são fictícios: use os que a sua hospedagem informar. O passo a passo completo está em como apontar um domínio para sua hospedagem, e o catálogo de tipos em o que são registros DNS.

Como confirmar o que está publicado?#

Consulte o tipo de registro diretamente:

bash
dig meusite.com.br A +short
dig www.meusite.com.br CNAME +short
dig meusite.com.br MX +short

Para ver a cadeia inteira até o IP, rode dig www.meusite.com.br: a seção ANSWER mostra o CNAME seguido do A. Se um mesmo nome mostrar CNAME e outros tipos ao mesmo tempo, a zona está inconsistente e precisa de correção.

Depois de mudar um registro, o valor antigo pode continuar visível até o TTL expirar nos resolvedores.

Como fazer isso na Square Cloud#

Toda aplicação web na Square Cloud ganha um subdomínio *.squareweb.app com HTTPS, em todos os planos, sem você criar registro nenhum. Domínio próprio fica disponível a partir do plano Standard.

Você adiciona o domínio no painel, que mostra os registros DNS necessários, e cria esses registros no seu registrador ou provedor de DNS. O destino é um CNAME para cname.squareweb.app, mais um TXT de validação. O painel exibe o status da validação em tempo real e emite o TLS automaticamente.

Como não há IP fixo para usar num registro A, o domínio raiz funciona quando o seu provedor de DNS aceita CNAME na raiz (flattening ou ALIAS), como visto acima. Para o www, o recomendado é um redirect para o domínio principal. O domínio continua registrado em seu nome, e a zona DNS fica com você.

Se várias aplicações atendem o mesmo domínio, veja também o load balancing. Os detalhes estão na página de domínios.

Rede

Domínio próprio, TLS automático e CDN global para o seu app

Saiba mais

Perguntas frequentes

Posso usar CNAME no domínio raiz (exemplo.com.br)?

Pelo padrão do DNS, não. A raiz já tem registros SOA e NS, e um CNAME não pode coexistir com outros dados no mesmo nome. Use um registro A, ou um provedor de DNS com CNAME flattening (também chamado de ALIAS ou ANAME).

O CNAME é mais lento que o registro A?

Em teoria sim, porque o resolvedor pode precisar de uma consulta extra para chegar ao IP. Na prática a resposta fica em cache pelo TTL, então a diferença quase nunca é perceptível para o usuário.

Posso ter um CNAME e um registro MX no mesmo nome?

Não. O CNAME não pode coexistir com nenhum outro tipo de registro no mesmo nome, e isso inclui MX e TXT. É o motivo pelo qual um CNAME na raiz quebra o e-mail do domínio.

Um CNAME pode apontar para outro CNAME?

Pode, formando uma cadeia, mas é melhor evitar. Cada salto adiciona uma consulta e mais um ponto de falha.

Se o IP da hospedagem mudar, o que eu preciso fazer?

Com registro A, você edita o IP manualmente em cada nome que aponta para ele. Com CNAME, a hospedagem troca o IP do nome de destino e o seu domínio acompanha sozinho.

Próximo artigoAlgoritmos de balanceamento: round robin, least connections e maisAlgoritmos de balanceamento decidem qual servidor recebe cada requisição. Veja round robin, least connections, IP hash e hash consistente, com código e nginx.

Mais em Rede e domínios

Ver todos os 27 artigos