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

08 - SRV (Serviços)

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

Registro SRV (Service Locator)

O registro SRV (Service) é um tipo de registro DNS definido pela RFC 2782 que permite localizar serviços específicos (servidores, portas e protocolos) dentro de um domínio. Diferente dos registros A ou MX, o SRV indica não apenas o host que oferece o serviço, mas também a porta, prioridade, peso e protocolo associado.

1. Formato do Registro SRV

_service._proto.name   TTL   class   SRV   priority   weight   port   target

1.1 Campos Detalhados

Campo Descrição
_service Nome simbólico do serviço, prefixado por underscore (ex: _ldap, _sip, _kerberos). Definido pela IANA em https://www.iana.org/assignments/service-names.
_proto Protocolo de transporte: _tcp ou _udp.
name Domínio ao qual o serviço pertence (FQDN).
TTL Tempo de cache em segundos.
class Sempre IN (Internet).
priority Número inteiro (0–65535). Menor prioridade = preferência. Funciona como o priority dos registros MX.
weight Número inteiro (0–65535). Usado para balanceamento entre registros de mesma prioridade. Maior peso = maior probabilidade.
port Porta TCP/UDP do serviço (0–65535).
target FQDN do host que oferece o serviço (deve ter registro A/AAAA correspondente).

1.2 Exemplo Prático

_sip._tcp.example.com.  86400  IN  SRV  10  60  5060  sip1.example.com.
_sip._tcp.example.com.  86400  IN  SRV  10  40  5060  sip2.example.com.
_sip._tcp.example.com.  86400  IN  SRV  20  0   5060  sip3.example.com.

Neste exemplo, sip1 e sip2 (prioridade 10) recebem 60% e 40% do tráfego, respectivamente. sip3 (prioridade 20) só é usado caso os dois anteriores falhem.

2. Lógica de Seleção (Prioridade e Peso)

  1. Cliente consulta o registro SRV e obtém a lista de alvos.
  2. Seleciona apenas os de menor prioridade.
  3. Entre esses, distribui as requisições proporcionalmente ao peso (weight).
  4. Se todos os de menor prioridade falharem, repete o processo com a próxima prioridade.

Esse modelo replica o comportamento do MX, mas adiciona o balanceamento por peso — ausente no MX original.

3. Casos de Uso Clássicos

3.1 Microsoft Active Directory

O AD usa registros SRV extensivamente para localização de controladores de domínio, Catálogo Global, Kerberos e LDAP. Sem SRV, o AD simplesmente não funciona.

_ldap._tcp.dc._msdcs.example.com.      SRV  0 100 389  dc01.example.com.
_ldap._tcp.dc._msdcs.example.com.      SRV  0 100 389  dc02.example.com.
_kerberos._tcp.dc._msdcs.example.com.  SRV  0 100 88   dc01.example.com.
_gc._tcp.example.com.                  SRV  0 100 3268 dc01.example.com.
_ldap._tcp.pdc._msdcs.example.com.     SRV  0 100 389  dc01.example.com.

3.2 SIP (VoIP)

Clientes SIP (ex: softphones) consultam _sip._tcp ou _sip._udp para descobrir o servidor de registro sem configuração manual.

3.3 XMPP / Jabber

Serviços de mensageria como Jabber/XMPP usam SRV para localizar servidores:

_xmpp-server._tcp.example.com.  SRV  5 0 5269 xmpp.example.com.
_xmpp-client._tcp.example.com.  SRV  5 0 5222 xmpp.example.com.

3.4 Kubernetes

O discovery interno de serviços do Kubernetes baseia-se em registros SRV. Cada Service exposto gera automaticamente:

_<port>._<proto>.<svc>.<ns>.svc.cluster.local.  SRV  <weight> <priority> <port> <endpoint>

3.5 Outros Usos

  • Minecraft (_minecraft._tcp)
  • SMTP submission (_submission._tcp)
  • IMAP/POP sobre TLS (_imaps._tcp, _pop3s._tcp)
  • Caldav/Carddav (_caldav._tcp, _carddav._tcp)

4. Consulta via Linha de Comando

# Consultar serviço SIP sobre TCP
dig SRV _sip._tcp.example.com +short

# Consultar localização de controladores de domínio (AD)
dig SRV _ldap._tcp.dc._msdcs.empresa.local +short

# Ver registro completo (com prioridade, peso, porta, alvo)
host -t SRV _kerberos._tcp.dc._msdcs.empresa.local

4.1 Saída Típica do dig

_sip._tcp.example.com. 86400 IN SRV 10 60 5060 sip1.example.com.
_sip._tcp.example.com. 86400 IN SRV 10 40 5060 sip2.example.com.
_sip._tcp.example.com. 86400 IN SRV 20 0  5060 sip3.example.com.

5. Diferenças em Relação ao MX

Atributo MX SRV
Indica porta? Não (sempre 25 SMTP) Sim (campo port)
Indica protocolo? Não (sempre TCP) Sim (_tcp / _udp)
Suporta peso? Não (apenas prioridade) Sim
Caso de uso Apenas email Serviços arbitrários

6. Boas Práticas

  • TTL moderado: 300–3600s para permitir mudanças rápidas sem sobrecarregar autoritativos.
  • Sempre criar registros A/AAAA para os target especificados — SRV não resolve IP.
  • Não usar CNAME como target (embora tecnicamente possível em algumas implementações, gera ambiguidade).
  • Documentar portas não padronizadas via SRV, evitando exigir conhecimento prévio do cliente.
  • Monitorar consistência entre registros SRV publicados e serviços efetivamente ativos.

7. Resumo Técnico

Atributo Valor
RFC 2782 (2000)
Tipo de registro SRV (código 33)
Campos-chave priority, weight, port, target
Software suporte BIND, Windows DNS, PowerDNS, Knot, Unbound
Casos típicos AD, SIP, XMPP, Kubernetes

8. Conclusão

O registro SRV é a forma canônica de anunciar serviços localizáveis via DNS. Sua flexibilidade — combinar protocolo, porta, prioridade e peso — faz dele peça central do funcionamento de tecnologias críticas como Active Directory, VoIP, mensageria e orquestração de containers. Compreender seu formato e lógica de seleção é essencial para diagnosticar falhas de autenticação, problemas de roaming SIP e erros de discovery em clusters Kubernetes.