Se leste o capítulo sobre tipos de registos DNS, já sabes que cada registo guardado num servidor de nomes tem um trabalho específico. Um registo A associa um nome de domínio a um endereço IP. Um registo MX trata do encaminhamento de email. Um registo CNAME funciona de forma diferente dos dois. Em vez de apontar para um endereço IP ou para um servidor de correio, aponta um nome de domínio para outro nome de domínio. Essa diferença simples faz dele um dos registos mais úteis e mais mal compreendidos do DNS.
O que significa CNAME?
CNAME significa canonical name (nome canónico). Neste contexto, "canónico" quer dizer a versão oficial ou principal. Quando crias um registo CNAME, estás a dizer que um nome de anfitrião é apenas um alias de outro. O nome de anfitrião de destino é o nome canónico e o alias acompanha-o para onde quer que ele vá.
Por exemplo, se configurares um registo CNAME para que "www.yoursite.com" aponte para "yoursite.com", estás a dizer ao DNS que "www.yoursite.com" é um alias. O nome canónico é "yoursite.com". Sempre que alguém consultar a versão www, o DNS segue o alias e resolve o nome canónico.
Como funciona um registo CNAME?
Um registo CNAME, explicado em termos simples, funciona como uma morada de reencaminhamento. O navegador pede ao DNS o endereço IP de um nome de anfitrião. O DNS encontra um registo CNAME nesse nome. Em vez de devolver um endereço IP, devolve outro nome de domínio. O navegador consulta então esse segundo nome de domínio e segue o respetivo registo A até ao servidor verdadeiro.
Eis o que acontece passo a passo.
- Um visitante escreve "blog.yoursite.com" no navegador
- O navegador pede ao DNS para resolver "blog.yoursite.com"
- O DNS encontra um registo CNAME que aponta "blog.yoursite.com" para "yoursite.com"
- O DNS consulta então o registo A de "yoursite.com"
- O registo A devolve o endereço IP do servidor
- O navegador liga-se a esse endereço IP e carrega a página
O passo extra acontece nos bastidores e demora apenas milissegundos. O visitante nunca o vê. A vantagem é que, se mudares o endereço IP no registo A de "yoursite.com", todos os alias CNAME que apontam para ele acompanham automaticamente. Atualizas um registo em vez de muitos.
Como é um registo CNAME?
Um registo CNAME tem quatro partes. Cada uma serve um propósito específico.
- Nome de anfitrião (nome) é o alias que estás a criar. É o nome de domínio que vai apontar para outro sítio. Um valor de exemplo é "www" ou "blog"
- Tipo diz ao DNS que este é um registo CNAME
- Destino (valor) é o nome de domínio canónico para onde o alias aponta. Um valor de exemplo é "yoursite.com"
- TTL (time to live) controla durante quanto tempo os servidores DNS guardam este registo em cache antes de verificarem se há atualizações. É medido em segundos. Um valor comum é 3600, que significa uma hora
Num painel de gestão de DNS, uma entrada típica de registo CNAME mostraria "www" como nome de anfitrião, "CNAME" como tipo, "yoursite.com" como destino e "3600" como TTL.
Quando deves usar um registo CNAME?
Os registos CNAME são úteis sempre que queres que um nome de anfitrião acompanhe outro. As situações mais comuns incluem as seguintes.
Apontar o www para o teu domínio raiz
A utilização mais comum de um registo CNAME é fazer "www.yoursite.com" apontar para "yoursite.com". O domínio raiz tem um registo A com o endereço IP do servidor. A versão www tem um CNAME que aponta para a raiz. Se o IP do servidor mudar, só atualizas o registo A. O alias www acompanha automaticamente.
Ligar subdomínios a serviços externos
Muitos serviços de terceiros pedem-te para criares um registo CNAME para ligares o teu subdomínio à plataforma deles. Por exemplo, podes apontar "shop.yoursite.com" para o endereço de servidor de um serviço externo. O CNAME permite-te usar o teu próprio nome de domínio enquanto o serviço trata do alojamento nos bastidores.
Configurar uma CDN
Uma rede de distribuição de conteúdo (CDN) acelera o teu website ao servir ficheiros a partir de servidores mais próximos de cada visitante. Para usar uma CDN, muitas vezes crias um registo CNAME que aponta o teu domínio ou subdomínio para o endereço do fornecedor da CDN. Isto encaminha o teu tráfego pela rede deles sem alterar a tua configuração de alojamento.
Gerir vários subdomínios de forma eficiente
Se tens vários subdomínios que precisam todos de chegar ao mesmo servidor, podes apontá-los todos como alias CNAME para um domínio que tem o registo A. Quando o endereço IP do servidor mudar, atualizas um registo A em vez de atualizares cada subdomínio individualmente.
Qual é a diferença entre um registo CNAME e um registo A?
A principal diferença é para onde cada registo aponta. Um registo A associa um nome de domínio diretamente a um endereço IP. Um registo CNAME associa um nome de domínio a outro nome de domínio. O registo A é o destino final. O CNAME é um redirecionamento que leva ao destino final.
Eis as principais diferenças.
- Um registo A guarda um endereço IP. Um CNAME guarda um nome de domínio
- Um registo A pode existir em qualquer nome de anfitrião, incluindo o domínio raiz. Um CNAME não pode existir no domínio raiz
- Um registo A resolve-se num só passo. Um CNAME acrescenta um passo de consulta extra, porque o DNS tem de seguir o alias e depois resolver o registo A do destino
- Um registo A tem de ser atualizado manualmente se o endereço IP mudar. Um CNAME acompanha automaticamente o endereço IP para onde o destino se resolve
Usa um registo A quando sabes o endereço IP e é improvável que mude. Usa um CNAME quando queres que um nome de anfitrião acompanhe outro, sobretudo quando o endereço IP por trás é gerido por outra entidade.
Quais são as regras e limitações dos registos CNAME?
Os registos CNAME têm regras específicas na especificação do DNS que os tornam diferentes dos outros tipos de registo. Quebrar estas regras causa erros que podem deixar o teu website ou email offline.
Um CNAME não pode existir no domínio raiz
A especificação do DNS não permite um registo CNAME no domínio raiz (apex). O domínio raiz é a versão simples do teu domínio, sem prefixo, como "yoursite.com" em vez de "www.yoursite.com". Esta restrição existe porque os registos CNAME não podem coexistir com outros tipos de registo no mesmo nome de anfitrião, e o domínio raiz precisa de outros registos (como registos MX para o email e registos NS para os servidores de nomes) para funcionar.
Se precisas que o domínio raiz aponte para algum sítio, usa antes um registo A. Alguns fornecedores de DNS oferecem uma solução alternativa chamada registos ALIAS ou ANAME, que funcionam como um CNAME mas são permitidos no domínio raiz. Nem todos os fornecedores a suportam.
Um CNAME não pode partilhar o nome de anfitrião com outros registos
Se um nome de anfitrião tem um registo CNAME, não pode ter outros tipos de registo nesse mesmo nome. Nem registos A, nem MX, nem TXT. O CNAME tem de ser o único registo nesse nome. É por isso que não podes colocar um CNAME no domínio raiz, porque o domínio raiz já precisa de registos NS e normalmente também de registos MX e TXT.
Deves evitar cadeias de CNAME
Uma cadeia de CNAME acontece quando um CNAME aponta para outro CNAME, que aponta para outro CNAME, até finalmente chegar a um registo A. Embora o DNS consiga tecnicamente seguir estas cadeias, cada salto acrescenta tempo de consulta e aumenta a hipótese de limite de tempo ou falha. Mantém a simplicidade. Aponta cada CNAME diretamente para um nome de anfitrião que tenha um registo A.
Como acrescentas um registo CNAME?
Acrescentar um registo CNAME segue os mesmos passos gerais na maioria dos fornecedores de DNS. O aspeto exato da página de definições varia, mas a informação que introduzes é a mesma em todo o lado.
- Inicia sessão no painel de gestão de DNS onde estão definidos os servidores de nomes do teu domínio. Normalmente é o registador do domínio ou o fornecedor de alojamento
- Encontra a secção de registos DNS ou o editor de zona DNS
- Clica na opção para acrescentar um novo registo
- Seleciona CNAME como tipo de registo
- Introduz o nome de anfitrião que queres criar como alias (por exemplo, "www" ou "blog")
- Introduz o nome de domínio de destino para onde o alias deve apontar (por exemplo, "yoursite.com" ou o endereço de um fornecedor de serviços)
- Define o TTL. Se não tens a certeza, usa o valor predefinido que o teu fornecedor sugere ou define-o para 3600 (uma hora)
- Guarda o registo
As alterações de DNS podem demorar de alguns minutos a 48 horas a espalhar-se pela internet. Este atraso chama-se propagação do DNS. Durante este tempo, alguns visitantes podem ainda ver as definições antigas enquanto outros veem as novas. Para saberes mais sobre como este processo funciona, lê o capítulo sobre como funciona o DNS.
Quais são os erros comuns com CNAME?
A maioria dos problemas com CNAME vem de poucos erros repetidos. Conhecê-los de antemão poupa tempo e evita falhas de serviço.
- Colocar um CNAME no domínio raiz. Isto quebra o DNS. Usa antes um registo A no domínio raiz
- Acrescentar outros registos junto de um CNAME. Se um nome de anfitrião tem um CNAME, tem de ser o único registo nesse nome. Acrescentar um registo MX ou TXT ao mesmo nome de anfitrião causa conflitos
- Criar cadeias de CNAME. Apontar um CNAME para outro CNAME para outro CNAME acrescenta consultas desnecessárias. Aponta cada CNAME diretamente para um nome de anfitrião que se resolva com um registo A
- Esquecer o ponto final. Alguns fornecedores de DNS exigem um ponto no fim do domínio de destino (como "yoursite.com.") para indicar que é um nome de domínio totalmente qualificado. Se o omitires, o fornecedor pode acrescentar texto extra ao destino
- Usar um CNAME quando um registo A é melhor. Se controlas o servidor e o endereço IP é estável, um registo A é mais simples e resolve-se mais depressa. Usa um CNAME quando o endereço IP de destino pode mudar ou é gerido por terceiros
Como a WEMASY trata dos registos CNAME
Quando ligas um domínio personalizado ao teu website WEMASY, a WEMASY diz-te exatamente que registos DNS acrescentar. Para subdomínios, isto costuma significar criar um registo CNAME que aponta para os servidores da WEMASY. A WEMASY trata do alojamento, do SSL e do encaminhamento do outro lado, por isso, depois de o CNAME estar no lugar, o teu subdomínio liga-se ao teu site automaticamente.
Para domínios raiz, a WEMASY fornece antes os valores do registo A, já que os registos CNAME não podem ser usados na raiz. O guia de configuração acompanha-te nas duas opções, consoante o tipo de domínio que estás a ligar. Vê o que está incluído em cada plano na página de preços da WEMASY.
O que vem a seguir
Agora que percebes como os registos CNAME criam alias entre nomes de domínio, o próximo capítulo explica outro tipo de registo essencial. Os registos MX controlam para onde o email do teu domínio é entregue e seguem as suas próprias regras. Isso é tratado no próximo capítulo sobre o que é um registo MX. Para uma visão geral de todos os tipos de registo e de quando usar cada um, vê o capítulo sobre tipos de registos DNS.
Um registo CNAME pode apontar para um endereço IP?
Não. Um registo CNAME só pode apontar para outro nome de domínio, nunca para um endereço IP. Se precisas de apontar um nome de anfitrião diretamente para um endereço IP, usa um registo A (para IPv4) ou um registo AAAA (para IPv6). O objetivo de um CNAME é criar um alias entre dois nomes de domínio.
Um registo CNAME afeta a velocidade do website?
Um CNAME acrescenta uma consulta DNS extra, porque o navegador tem de resolver primeiro o alias e depois o destino. Na prática, este passo extra demora apenas alguns milissegundos e normalmente não se nota. Se a velocidade te preocupa, evita cadeias de CNAME em que vários alias apontam uns para os outros, já que cada salto acrescenta outra consulta.
O que acontece se o destino de um registo CNAME ficar offline?
Se o nome de domínio para onde um CNAME aponta deixar de ser resolvido ou o servidor por trás falhar, o teu alias também deixa de funcionar. O CNAME acompanha o destino para onde quer que ele vá, incluindo as falhas. O próprio registo CNAME não tem nenhuma alternativa incorporada.
Um CNAME é o mesmo que um redirecionamento?
Não. Um CNAME é um alias ao nível do DNS que diz ao navegador onde encontrar o servidor. O URL no navegador mantém-se igual. Um redirecionamento é uma instrução ao nível do servidor que envia o navegador para um URL totalmente diferente, e o URL no navegador muda. Um CNAME liga nomes de domínio nos bastidores. Um redirecionamento envia os visitantes para um novo endereço.
Posso usar um CNAME e um registo A no mesmo nome de anfitrião?
Não. A especificação do DNS não permite que um CNAME coexista com qualquer outro tipo de registo no mesmo nome de anfitrião. Se um nome de anfitrião tem um CNAME, tem de ser o único registo nesse nome. Este é um dos motivos pelos quais um CNAME não pode ser colocado no domínio raiz, que já precisa de registos NS e muitas vezes de registos MX e TXT.