The SRV (Location of Service) resource record type
can be used to to specify location of the servers for specific protocol
and domain name.
Name specifies protocol and it has a form _Service._Proto, where
Service is a name, for example http and Proto is protocol
name, for example tcp or udp.
Resource record contents is specified as a list of whitespace-separated words:
Priority which is an unsigned integer in a range 0-65535. Smaller number
means higher priority. The client will always be directed to the server
with smallest priority if one of them is available.
Weight which is an unsigned integer in a range 0-65535. This number
specifies the probability for this service of being selected. If you have
only one server for this service it is recommended to specify 0 as weight.
Otherwise probability for a particular server of being selected is
proportional to the weight, which means that server with low weight will
be selected rarely and a zero-weight server have very small chance of
being selected.
Port number is a target port number of this service.
Target is a domain name of the service target host. Target name
"." banns that the service is not available at this domain.
For example, one can specify two web servers for a domain. In this
case RR name could be _http._tcp and resource records could be
If one of old-slow-machine and new-fast-machine is
available web clients
will access these machines and faster machine is supposed to be
3 times havier loaded than the old one. If both are down clients are
directed to backup machine.
Records like
*._udp SRV 0 0 0 .
specifies that no UDP based services are available.
Functionality of this DNS feature depends very much on clients
software. If client does not support SRV records than these
priority and load balancing mechanism will not function.