O que é um registro de DNS SRV?

O registro SRV é utilizado para serviços especiais como o VoIP.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Compreenda a finalidade de um registro SRV.
  • Saiba quais informações um registro SRV contém
  • Entenda as portas

Copiar o link do artigo

O que é um registro de DNS SRV?

O registro de "serviço" (SRV) de DNS especifica um host e a porta para serviços específicos como voz sobre IP (VoIP), mensagens instantâneas, e assim por diante. A maioria dos outros registros de DNS especifica apenas um servidor ou um endereço de IP, mas os registros SRV também incluem uma porta nesse endereço de IP. Alguns protocolos de internet exigem o uso de registros SRV para funcionar.

O que é uma porta?

Na rede, portas são locais virtuais que indicam para que processos o tráfego de rede vai em um computador. As portas permitem que os computadores diferenciem facilmente entre os diferentes tipos de tráfego: streamings de VoIP vão para uma porta diferente daquela das mensagens de e-mail, por exemplo, mesmo que ambos cheguem a um computador usando a mesma conexão de internet. Assim como acontece com os endereços de IP, é atribuído um número a todas as portas.

Alguns protocolos da internet, como IMAP, SIP e XMPP, precisam se conectar a uma porta específica, além de se conectar a um servidor específico. Os registros SRV correspondem à forma como uma porta pode ser especificada dentro do DNS.

O que é um registro SRV?

Um registro SRV contém as seguintes informações. Aqui, listamos exemplos de valores para cada campo.

serviço XMPP
proto* TCP
nome** exemplo.com
TTL 86400
class IN
tipo SRV
prioridade 10
peso 5
porta 5223
alvo server.example.com

*Abreviação de "protocolo", como no protocolo de transporte.
**Nome de domínio.

Entretanto, os registros SRV são, na verdade, formatados desta forma:

_service._proto.name. TTL classe tipo de registro prioridade peso porta destino

Assim, nosso exemplo de registro SRV na verdade ficaria da seguinte forma:

_xmpp._tcp.example.com. 86400 IN SRV 10 5 5223 server.example.com.

No exemplo acima, "_xmpp" indica o tipo de serviço (o protocolo XMPP) e "_tcp" indica o protocolo de transporte TCP, enquanto "example.com" é o host, ou o nome do domínio. "Server.example.com" é o servidor de destino e "5223" indica a porta nesse servidor.

Os registros SRV devem apontar para um registro A (em IPv4) ou um registro AAAA (em IPv6). O nome do servidor listado por eles não pode ser um CNAME. Assim, "server.example.com" deve levar diretamente a um registro A ou AAAA com esse nome.

Qual é a diferença entre prioridade e peso nos registros SRV?

Os registros SRV indicam a "prioridade" e o "peso" dos vários servidores listados por eles. O valor de "prioridade" em um registro SRV permite aos administradores dar prioridade a um servidor que é compatível com um determinado serviço em vez de outro. Um servidor com um valor de prioridade menor receberá mais tráfego do que outros servidores. Entretanto, o valor do "peso" é semelhante: um servidor com um peso maior receberá mais tráfego do que outros servidores com a mesma prioridade.

A principal diferença entre eles é que a prioridade é analisada em primeiro lugar. Se existem três servidores, servidor A, Servidor B e Servidor C, com prioridades 10, 20 e 30, respectivamente, então o "peso" deles não importa. O serviço irá sempre consultar o Servidor A em primeiro lugar.

Mas suponha que os Servidores A, B e C tenham todos uma prioridade de 10. Como um serviço escolherá entre eles? É aqui que o peso se torna um fator: se o Servidor A tem um peso com "valor" 5 e os Servidores B e C têm um peso com "valor" 3 e 2, respectivamente, o Servidor A receberá o maior tráfego, o Servidor B receberá o segundo maior tráfego, e o Servidor C o terceiro maior tráfego.