Home Comunidade Eventos YouTube Networks Desafios // produtos Academy News CTI | CVE Contato

01 - Fully Qualified Domain Name

video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione video: https://youtu.be/... no frontmatter da nota.

Fully Qualified Domain Name

O FQDN (Fully Qualified Domain Name), ou Nome de Domínio Totalmente Qualificado, é a forma absoluta e inequívoca de especificar a localização exata de um host dentro da hierarquia do DNS (Domain Name System). Diferente de um nome de host simples (como pc-vendas), um FQDN fornece o caminho completo desde o nó folha até a raiz da árvore do DNS, eliminando qualquer ambiguidade de resolução.


1. A Anatomia do FQDN

Um FQDN é composto por uma série de rótulos (labels) separados por pontos. A estrutura segue uma ordem de especificidade que aumenta da direita para a esquerda:

[host/serviço] . [segundo_nível] . [top_level_domain] . [raiz]

Exemplo técnico: www.google.com.br.

  • Host (Hostname): www – identifica a máquina ou serviço específico dentro do domínio.
  • Domínio de Segundo Nível (SLD): google – a entidade registrada sob o TLD.
  • Top-Level Domain (TLD): com.br – a categoria ou código de país.
  • O Ponto Final (Trailing Dot): . – Representa a Zona Raiz. Em configurações técnicas de servidores DNS (como arquivos de zona do BIND), este ponto é obrigatório para indicar que o nome é absoluto.

Exemplo de Decomposição

Posição Rótulo Função Delegado por
Folha www Host/serviço final Administrador do domínio
Nível 4 empresa Domínio registrado Operador do TLD .com.br (Registro.br)
Nível 3 com SLD comercial Operador do ccTLD .br (NIC.br)
Nível 2 br TLD de país (ccTLD) IANA/ICANN
Nível 1 . Raiz ICANN / Root Server Operators

2. Nomes Absolutos vs. Nomes Relativos (PQDN)

Para entender o valor do FQDN, é preciso contrastá-lo com o PQDN (Partially Qualified Domain Name):

  • PQDN: É um nome incompleto que depende do contexto de busca (search suffix) configurado no sistema operacional. Se você digitar apenas servidor01, o sistema tentará completar com sufixos locais (ex: servidor01.empresa.lan).
  • FQDN: Não deixa margem para interpretação. Ele aponta para um único ponto na árvore global do DNS. Se um sistema recebe um FQDN, ele ignora listas de busca e resolve o nome diretamente a partir da raiz.

Comportamento do Resolvedor GNU libc

O arquivo /etc/resolv.conf controla o comportamento do PQDN:

# /etc/resolv.conf
search empresa.lan filial.empresa.lan
nameserver 10.0.0.53
options ndots:1
  • search: lista de sufixos anexados a nomes sem ponto.
  • ndots:1: se o nome contiver menos de 1 ponto, será tratado como PQDN e os sufixos search serão tentados antes da resolução absoluta.

3. O Ponto Final e a Resolução de Nomes

Na navegação cotidiana, os navegadores web ocultam o ponto final à direita por questões de usabilidade, mas ele é a âncora técnica do protocolo. Sem o ponto final, o resolvedor DNS pode interpretar o nome como relativo e tentar anexar domínios de busca locais antes de tentar a resolução global.

  • Com ponto (www.exemplo.com.): O resolvedor entende: "Inicie a busca na raiz imediatamente".
  • Sem ponto (www.exemplo.com): O resolvedor pode entender: "Isso é um host local? Deixe-me tentar www.exemplo.com.meudominio.interno primeiro".

Comportamento em Arquivos de Zona BIND

; /etc/bind/db.empresa.com
$ORIGIN empresa.com.
@       IN  SOA  ns1.empresa.com. admin.empresa.com. (
              2026040501 ; Serial
              3600       ; Refresh
              1800       ; Retry
              604800     ; Expire
              86400 )    ; Minimum TTL
www     IN  A    192.0.2.10      ; rótulo "www" relativo a $ORIGIN
ftp.empresa.com.  IN  A  192.0.2.20  ; FQDN absoluto por causa do ponto final

4. Limitações Técnicas (RFC 1035, RFC 2181, RFC 5891)

O FQDN deve aderir a regras estritas definidas nas normas da Internet:

  • Tamanho máximo total: Um FQDN completo não pode exceder 253 caracteres (limitação de apresentação; em formato DNS wire-format o limite é 255 octetos).
  • Tamanho de Rótulo: Cada parte (entre os pontos) pode ter no máximo 63 caracteres (6 bits no comprimento do label).
  • Caracteres Permitidos (LDH - Letters, Digits, Hyphen): Apenas letras (A-Z, case-insensitive), números (0-9) e o hífen (-). O hífen não pode iniciar nem terminar um rótulo (regra da RFC 952/1123).
  • IDN (Internationalized Domain Names): Domínios com acentos (ex: café.com.br) são codificados via Punycode (RFC 3492) sob o prefixo xn--, resultando em FQDNs como xn--caf-6ra.com.br para o protocolo DNS.

Comparativo LDN vs IDN

Representação Exemplo Tamanho
LDH (ASCII) www.empresa.com.br. 19 caracteres
IDN (Unicode) são-paulo.empresa.com.br. 25 caracteres
IDN (Punycode wire) xn--so-paulo-7za.empresa.com.br. 32 caracteres

5. Aplicações Práticas e Importância

O uso correto do FQDN é crítico em diversos serviços de rede:

  • Certificados SSL/TLS (X.509 SAN): Um certificado digital é emitido para um FQDN específico (campo Subject Alternative Name – SAN). Se o certificado é para web.empresa.com e o usuário acessa apenas web, o navegador emitirá um alerta de segurança (NET::ERR_CERT_COMMON_NAME_INVALID).
  • Servidores de E-mail (SMTP): Durante o HELO/EHLO, os servidores de e-mail trocam seus FQDNs para identificação e verificação de registros SPF/PTR/MX (Anti-spam). Postfix valida o FQDN do cliente via reject_non_fqdn_helo_hostname.
  • Active Directory / LDAP: A estrutura de diretórios é mapeada sobre FQDNs para localizar controladores de domínio e serviços de autenticação via registros SRV (_ldap._tcp.dc._msdcs.empresa.com).
  • Registros PTR (DNS Reverso): O mapeamento de um endereço IP para um nome exige obrigatoriamente um FQDN para garantir a validade da prova de identidade do host (FCrDNS – Forward Confirmed reverse DNS).
  • Kerberos: Os tickets de serviço (HTTP/web.empresa.com@EMPRESA.COM) incorporam o FQDN no Service Principal Name (SPN); inconsistências entre SPN e FQDN real geram KRB_AP_ERR_MODIFIED.

6. Configuração no Linux

No Linux, o FQDN é geralmente derivado da combinação do nome da máquina definido em /etc/hostname e o domínio definido em /etc/hosts ou via DNS. O comando hostname -f é utilizado para exibir o FQDN configurado no sistema.

# Definir hostname curto
sudo hostnamectl set-hostname web01

# /etc/hosts (essencial para resolver FQDN antes do DNS externo)
127.0.1.1   web01.empresa.com.br  web01

# Verificar FQDN
hostname -f    # Saída: web01.empresa.com.br
hostname -d    # Saída: empresa.com.br (domínio)
hostname -s    # Saída: web01 (short name)
dnsdomainname # Saída: empresa.com.br (via DNS apenas)

# Validar FQDN resolvendo via DNS
dig +short web01.empresa.com.br @10.0.0.53
host web01.empresa.com.br

7. Resumo Técnico

Atributo Valor
RFCs de referência 952, 1123, 1035, 2181, 3492, 5891
Comprimento máximo 253 caracteres (apresentação) / 255 octetos (wire)
Comprimento de rótulo 63 caracteres
Caracteres permitidos LDH (Letters, Digits, Hyphen)
Delimitador . (ponto final, representa a raiz)
Sufixo IDN xn-- (Punycode, RFC 3492)
TLDsmais comuns .com, .org, .net, .br, .eu, .io

8. Conclusão

O FQDN é a unidade canônica de identificação de hosts na Internet. Seu rigor sintático (limite de 253 caracteres, regras LDH, ponto final obrigatório em arquivos de zona) garante que a resolução de nomes seja determinística, sem dependência de contexto local. Engenheiros de redes, administradores de sistemas e desenvolvedores de aplicações distribuídas devem sempre utilizar FQDNs em configurações de produção — especialmente em certificados TLS, registros MX/PTR e Service Principal Names do Kerberos — para evitar ambiguidades que causam falhas silenciosas e vulnerabilidades de segurança.