03 - FQDN
video: https://youtu.be/... no frontmatter da nota.FQDN (Fully Qualified Domain Name)
Um FQDN (Fully Qualified Domain Name), ou Nome de Domínio Totalmente Qualificado, é o endereço completo e inequívoco de um host ou recurso específico na Internet.
Diferente de um nome relativo (como "www"), o FQDN fornece o caminho absoluto na hierarquia DNS. É definido formalmente pela RFC 1035 e revisado pela RFC 2181.
1. Estrutura de um FQDN
Um FQDN é composto por, da esquerda para a direita:
- Hostname (ou subdomínio): O nome do dispositivo final (ex:
servidor01). - Second-Level Domain (SLD): O nome registrado (ex:
empresa). - Top-Level Domain (TLD): A extensão (ex:
com,org,br). - Root: O ponto final (
.) representando a raiz da árvore DNS.
Exemplo Completo:
www.google.com.
www→ Hostname (subdomínio)google→ Second-Level Domain (SLD)com→ Top-Level Domain (TLD).→ Root (sempre presente, embora navegadores o omitam)
A leitura é feita da esquerda (mais específico) para a direita (mais genérico, terminando na raiz).
2. Regras de Formação (RFC 1035)
2.1 Limites
| Atributo | Valor |
|---|---|
| Tamanho máximo total | 253 caracteres (excluindo o ponto final) |
| Tamanho máximo por label | 63 caracteres |
| Caracteres permitidos | a-z, 0-9, - (LDH — Letters, Digits, Hyphen) |
| Case | Insensível (mas case-preserving) |
| Posição do hífen | Nunca no início nem no fim de um label |
2.2 Composição Binária
Internamente, o DNS representa o nome como uma sequência de length-prefixed labels. Por exemplo, www.example.com. é armazenado como:
\x03www\x07example\x03com\x00
Cada byte de tamanho limita-se a 63 (porque os 2 bits superiores do byte são reservados para uso futuro/compressão). Por isso, o limite prático de 63 caracteres por label.
3. Diferença entre FQDN e PQDN
- PQDN (Partially Qualified Domain Name): É um nome incompleto que depende do contexto da rede local para ser resolvido.
- Se você digitar apenas
servidor01, o seu computador pode tentar completar com o sufixo DNS da sua empresa (ex:servidor01.minharede.local).
- Se você digitar apenas
- FQDN: Não deixa margem para dúvidas. Ele aponta para exatamente um único ponto na árvore global do DNS, terminando obrigatoriamente com o ponto raiz.
3.1 Exemplo de Resolução
# Em uma rede com sufixo "empresa.local":
ping servidor01 # → tenta resolver servidor01.empresa.local
ping servidor01. # → resolve como FQDN absoluto (root), falha se não existir globalmente
A presença do ponto final força o resolver a tratar o nome como absoluto, ignorando sufixos de busca (search no /etc/resolv.conf).
4. O Ponto Final — Por que Importa?
Em zonas DNS e certificados, o ponto final indica a raiz. Sem ele, softwares como BIND podem interpretar o nome como relativo à zona corrente, gerando bugs difíceis de diagnosticar.
; Correto (FQDN absoluto)
www IN A 192.0.2.1
@ IN NS ns1.example.com.
; Incorreto (relativo — pode gerar ns1.example.com.example.com.)
@ IN NS ns1.example.com
5. FQDNs e Internacionalização (IDN)
Para suportar caracteres não-ASCII (ex: acentos, cirílico, árabe), o padrão IDN (Internationalized Domain Names) foi definido pelas RFCs 3490, 5890 e 5891.
- Codificação: Punycode (RFC 3492) — converte
exämple.comemxn--exmple-cua.com. - Browsers exibem o caractere original, mas o DNS trabalha sempre com a versão ASCII Punycode.
# Converter um IDN para Punycode
idn2 exämple.com
# Saída: xn--exmple-cua.com
6. Uso Técnico de FQDNs
FQDNs são obrigatórios em várias configurações críticas de rede:
- Certificados SSL/TLS: São emitidos para um FQDN específico (ex:
login.banco.com). O navegador valida se o FQDN acessado coincide com o que está no campo SAN (Subject Alternative Name) do certificado. - Registros MX: Devem sempre apontar para um FQDN de um servidor de e-mail, nunca para um endereço IP diretamente (RFC 5321).
- Configuração de Hostname no Linux: O comando
hostname -fretorna o FQDN completo da máquina. - Active Directory: Usa FQDNs para identificar todos os computadores e controladores de domínio na floresta (ex:
dc01.corp.empresa.com). - SPF/DKIM/DMARC: Registros TXT que validam remetentes de email referenciam FQDNs de hosts autorizados.
- Kerberos: Os principals usam formato
servico/FQDN@REALM.
7. Comandos de Inspeção
# Obter FQDN da máquina local
hostname -f
# Definir FQDN persistentemente (Linux)
sudo hostnamectl set-hostname srv01.empresa.com
# Verificar cadeia de domínios
dig +trace www.exemplo.com.br.
# Validar certificado TLS de um FQDN
openssl s_client -connect www.exemplo.com:443 -servername www.exemplo.com
8. Boas Práticas
- Sempre use o ponto final em arquivos de zona DNS.
- Planeje hierarquia: mais de 4–5 níveis dificultam leitura e aumentam latência de resolução.
- Use nomes predictáveis:
mail.empresa.comé melhor quemx1.empresa.compara humanos. - Ative CAA records (RFC 8659) declarando quais CAs podem emitir certificados para o FQDN.
9. Resumo Técnico
| Atributo | Valor |
|---|---|
| RFC de referência | 1035, 2181, 3490 (IDN) |
| Tamanho máximo | 253 caracteres (sem ponto final) |
| Tamanho máximo por label | 63 caracteres |
| Caracteres permitidos | LDH (a-z, 0-9, -) |
| Encoding para IDN | Punycode (ACE) |
| Terminação | . (root) |
10. Conclusão
O FQDN é a unidade fundamental de identificação de hosts na Internet. Sua estrutura hierárquica, regras estritas de tamanho e caracteres, e obrigatoriedade do ponto final garantem que nomes sejam resolvidos sem ambiguidade em qualquer canto do planeta. Compreender FQDNs é pré-requisito para configurar serviços web, emissão de certificados, registros MX, autenticação Kerberos e qualquer arquitetura distribuída que dependa do DNS.