Difference between revisions of "SRV Records"
Neustradamus (talk | contribs) m |
Neustradamus (talk | contribs) |
||
Line 1: | Line 1: | ||
A Service record (SRV record) is a specification of data in the Domain Name System (DNS) defining the location | A Service record (SRV record) is a specification of data in the Domain Name System (DNS) defining the location (i.e. the hostname and port number) of servers for specified services. It is defined in [http://tools.ietf.org/html/rfc2782 RFC 2782]. | ||
XMPP uses 5222 (C2S) and 5269 (S2S) ports in TCP ([http://xmpp.org/rfcs/rfc6120.html RFC 6020]) and STUN uses 3478 port in TCP/UDP. | == Ports == | ||
* XMPP uses 5222 ('''C2S''') and 5269 ('''S2S''') ports in TCP only ([http://xmpp.org/rfcs/rfc6120.html RFC 6020]). | |||
* STUN uses 3478 port in TCP/UDP and STUNS (STUN over TLS) uses 5349 port in TCP only ([http://tools.ietf.org/html/rfc5389 RFC 5389]). | |||
* TURN uses 3478 port in TCP/UDP and TURNS (TURN over TLS) uses 5349 port in TCP only ([http://tools.ietf.org/html/rfc5766 RFC 5766]), ([http://tools.ietf.org/html/rfc5928 RFC 5928]). | |||
== Record format == | == Record format == | ||
Line 93: | Line 96: | ||
$ dig SRV _stun._udp.example.net | $ dig SRV _stun._udp.example.net | ||
$ dig SRV _stuns._tcp.example.net | $ dig SRV _stuns._tcp.example.net | ||
== TURN SRV records == | |||
_turn._tcp.example.net. TTL IN SRV priority weight port target | |||
_turn._udp.example.net. TTL IN SRV priority weight port target | |||
=== Example 1 === | |||
_turn._tcp.example.net. 86400 IN SRV 5 0 3478 example.net. | |||
_turn._udp.example.net. 86400 IN SRV 5 0 3478 example.net. | |||
_turns._tcp.example.net. 86400 IN SRV 5 0 5349 example.net. | |||
The TURN domain is example.net and the server is example.net. | |||
=== Example 2 === | |||
_turn._tcp.example.net. 86400 IN SRV 5 0 3478 server.example.net. | |||
_turn._udp.example.net. 86400 IN SRV 5 0 3478 server.example.net. | |||
_turns._tcp.example.net. 86400 IN SRV 5 0 5349 server.example.net. | |||
The TURN domain is example.net and the server is server.example.net. | |||
=== Example 3 === | |||
_turn._tcp.example.net. 86400 IN SRV 5 50 3478 server1.example.net. | |||
_turn._tcp.example.net. 86400 IN SRV 10 30 3478 server2.example.net. | |||
_turn._tcp.example.net. 86400 IN SRV 10 10 3478 server3.example.net. | |||
_turn._tcp.example.net. 86400 IN SRV 10 10 3478 server4.example.net. | |||
_turn._tcp.example.net. 86400 IN SRV 15 0 3478 backup.example.net. | |||
_turn._udp.example.net. 86400 IN SRV 5 50 3478 server1.example.net. | |||
_turn._udp.example.net. 86400 IN SRV 10 30 3478 server2.example.net. | |||
_turn._udp.example.net. 86400 IN SRV 10 10 3478 server3.example.net. | |||
_turn._udp.example.net. 86400 IN SRV 10 10 3478 server4.example.net. | |||
_turn._udp.example.net. 86400 IN SRV 15 0 3478 backup.example.net. | |||
_turns._tcp.example.net. 86400 IN SRV 5 50 5349 server1.example.net. | |||
_turns._tcp.example.net. 86400 IN SRV 10 30 5349 server2.example.net. | |||
_turns._tcp.example.net. 86400 IN SRV 10 10 5349 server3.example.net. | |||
_turns._tcp.example.net. 86400 IN SRV 10 10 5349 server4.example.net. | |||
_turns._tcp.example.net. 86400 IN SRV 15 0 5349 backup.example.net. | |||
The XMPP domain is example.net and the principal server is server1.example.net which used 50% after server2.example.net 30%, server3.example.net 10%, server4.example.net 10% too, if server1 is down, server2, server3 and server4 will work, if servers 1/2/3/4 are down, backup will work. | |||
=== Retrieving turn SRV records === | |||
$ dig SRV _turn._tcp.example.net | |||
$ dig SRV _turn._udp.example.net | |||
$ dig SRV _turns._tcp.example.net | |||
== External links == | == External links == | ||
* [http://tools.ietf.org/html/rfc2782 RFC 2782: A DNS RR for specifying the location of services (DNS SRV)] | * [http://tools.ietf.org/html/rfc2782 RFC 2782: A DNS RR for specifying the location of services (DNS SRV)] | ||
* [http://xmpp.org/rfcs/rfc6120.html RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core] | * [http://xmpp.org/rfcs/rfc6120.html RFC 6120: Extensible Messaging and Presence Protocol (XMPP): Core] |
Revision as of 16:01, 31 August 2011
A Service record (SRV record) is a specification of data in the Domain Name System (DNS) defining the location (i.e. the hostname and port number) of servers for specified services. It is defined in RFC 2782.
Ports
- XMPP uses 5222 (C2S) and 5269 (S2S) ports in TCP only (RFC 6020).
- STUN uses 3478 port in TCP/UDP and STUNS (STUN over TLS) uses 5349 port in TCP only (RFC 5389).
- TURN uses 3478 port in TCP/UDP and TURNS (TURN over TLS) uses 5349 port in TCP only (RFC 5766), (RFC 5928).
Record format
An SRV record has the form:
_service._proto.name TTL class SRV priority weight port target
- service: the symbolic name of the desired service.
- proto: the transport protocol of the desired service; this is usually either TCP or UDP.
- name: the domain name for which this record is valid.
- TTL: standard DNS time to live field.
- class: standard DNS class field (this is always IN).
- priority: the priority of the target host, lower value means more preferred.
- weight: A relative weight for records with the same priority.
- port: the TCP or UDP port on which the service is to be found.
- target: the canonical hostname of the machine providing the service.
XMPP SRV records
_xmpp-client._tcp.example.net. TTL IN SRV priority weight port target _xmpp-server._tcp.example.net. TTL IN SRV priority weight port target
Example 1
_xmpp-client._tcp.example.net. 86400 IN SRV 5 0 5222 example.net. _xmpp-server._tcp.example.net. 86400 IN SRV 5 0 5269 example.net.
The XMPP domain is example.net and the server is example.net.
Example 2
_xmpp-client._tcp.example.net. 86400 IN SRV 5 0 5222 server.example.net. _xmpp-server._tcp.example.net. 86400 IN SRV 5 0 5269 server.example.net.
The XMPP domain is example.net and the server is server.example.net.
Example 3
_xmpp-client._tcp.example.net. 86400 IN SRV 5 50 5222 server1.example.net. _xmpp-client._tcp.example.net. 86400 IN SRV 10 30 5222 server2.example.net. _xmpp-client._tcp.example.net. 86400 IN SRV 10 10 5222 server3.example.net. _xmpp-client._tcp.example.net. 86400 IN SRV 10 10 5222 server4.example.net. _xmpp-client._tcp.example.net. 86400 IN SRV 15 0 5222 backup.example.net. _xmpp-server._tcp.example.net. 86400 IN SRV 5 50 5269 server1.example.net. _xmpp-server._tcp.example.net. 86400 IN SRV 10 30 5269 server2.example.net. _xmpp-server._tcp.example.net. 86400 IN SRV 10 10 5269 server3.example.net. _xmpp-server._tcp.example.net. 86400 IN SRV 10 10 5269 server4.example.net. _xmpp-server._tcp.example.net. 86400 IN SRV 15 0 5269 backup.example.net.
The XMPP domain is example.net and the principal server is server1.example.net which used 50% after server2.example.net 30%, server3.example.net 10%, server4.example.net 10% too, if server1 is down, server2, server3 and server4 will work, if servers 1/2/3/4 are down, backup will work.
Retrieving XMPP SRV records
$ dig SRV _xmpp-client._tcp.example.net $ dig SRV _xmpp-server._tcp.example.net
STUN SRV records
_stun._tcp.example.net. TTL IN SRV priority weight port target _stun._udp.example.net. TTL IN SRV priority weight port target
Example 1
_stun._tcp.example.net. 86400 IN SRV 5 0 3478 example.net. _stun._udp.example.net. 86400 IN SRV 5 0 3478 example.net. _stuns._tcp.example.net. 86400 IN SRV 5 0 5349 example.net.
The STUN domain is example.net and the server is example.net.
Example 2
_stun._tcp.example.net. 86400 IN SRV 5 0 3478 server.example.net. _stun._udp.example.net. 86400 IN SRV 5 0 3478 server.example.net. _stuns._tcp.example.net. 86400 IN SRV 5 0 5349 server.example.net.
The STUN domain is example.net and the server is server.example.net.
Example 3
_stun._tcp.example.net. 86400 IN SRV 5 50 3478 server1.example.net. _stun._tcp.example.net. 86400 IN SRV 10 30 3478 server2.example.net. _stun._tcp.example.net. 86400 IN SRV 10 10 3478 server3.example.net. _stun._tcp.example.net. 86400 IN SRV 10 10 3478 server4.example.net. _stun._tcp.example.net. 86400 IN SRV 15 0 3478 backup.example.net. _stun._udp.example.net. 86400 IN SRV 5 50 3478 server1.example.net. _stun._udp.example.net. 86400 IN SRV 10 30 3478 server2.example.net. _stun._udp.example.net. 86400 IN SRV 10 10 3478 server3.example.net. _stun._udp.example.net. 86400 IN SRV 10 10 3478 server4.example.net. _stun._udp.example.net. 86400 IN SRV 15 0 3478 backup.example.net. _stuns._tcp.example.net. 86400 IN SRV 5 50 5349 server1.example.net. _stuns._tcp.example.net. 86400 IN SRV 10 30 5349 server2.example.net. _stuns._tcp.example.net. 86400 IN SRV 10 10 5349 server3.example.net. _stuns._tcp.example.net. 86400 IN SRV 10 10 5349 server4.example.net. _stuns._tcp.example.net. 86400 IN SRV 15 0 5349 backup.example.net.
The XMPP domain is example.net and the principal server is server1.example.net which used 50% after server2.example.net 30%, server3.example.net 10%, server4.example.net 10% too, if server1 is down, server2, server3 and server4 will work, if servers 1/2/3/4 are down, backup will work.
Retrieving STUN SRV records
$ dig SRV _stun._tcp.example.net $ dig SRV _stun._udp.example.net $ dig SRV _stuns._tcp.example.net
TURN SRV records
_turn._tcp.example.net. TTL IN SRV priority weight port target _turn._udp.example.net. TTL IN SRV priority weight port target
Example 1
_turn._tcp.example.net. 86400 IN SRV 5 0 3478 example.net. _turn._udp.example.net. 86400 IN SRV 5 0 3478 example.net. _turns._tcp.example.net. 86400 IN SRV 5 0 5349 example.net.
The TURN domain is example.net and the server is example.net.
Example 2
_turn._tcp.example.net. 86400 IN SRV 5 0 3478 server.example.net. _turn._udp.example.net. 86400 IN SRV 5 0 3478 server.example.net. _turns._tcp.example.net. 86400 IN SRV 5 0 5349 server.example.net.
The TURN domain is example.net and the server is server.example.net.
Example 3
_turn._tcp.example.net. 86400 IN SRV 5 50 3478 server1.example.net. _turn._tcp.example.net. 86400 IN SRV 10 30 3478 server2.example.net. _turn._tcp.example.net. 86400 IN SRV 10 10 3478 server3.example.net. _turn._tcp.example.net. 86400 IN SRV 10 10 3478 server4.example.net. _turn._tcp.example.net. 86400 IN SRV 15 0 3478 backup.example.net. _turn._udp.example.net. 86400 IN SRV 5 50 3478 server1.example.net. _turn._udp.example.net. 86400 IN SRV 10 30 3478 server2.example.net. _turn._udp.example.net. 86400 IN SRV 10 10 3478 server3.example.net. _turn._udp.example.net. 86400 IN SRV 10 10 3478 server4.example.net. _turn._udp.example.net. 86400 IN SRV 15 0 3478 backup.example.net. _turns._tcp.example.net. 86400 IN SRV 5 50 5349 server1.example.net. _turns._tcp.example.net. 86400 IN SRV 10 30 5349 server2.example.net. _turns._tcp.example.net. 86400 IN SRV 10 10 5349 server3.example.net. _turns._tcp.example.net. 86400 IN SRV 10 10 5349 server4.example.net. _turns._tcp.example.net. 86400 IN SRV 15 0 5349 backup.example.net.
The XMPP domain is example.net and the principal server is server1.example.net which used 50% after server2.example.net 30%, server3.example.net 10%, server4.example.net 10% too, if server1 is down, server2, server3 and server4 will work, if servers 1/2/3/4 are down, backup will work.
Retrieving turn SRV records
$ dig SRV _turn._tcp.example.net $ dig SRV _turn._udp.example.net $ dig SRV _turns._tcp.example.net