URI Record  URI Record


What is a URI record?


URI records provide a means to resolve hostnames to URIs that can be used by various applications. For resolution the application needs to know both the hostname and the protocol that the URI is to be used for.

It is an alternative to the SRV record. Similar to the SRV record, it returns both weight and priority values which can be used to select an appropriate URI from multiple results. However, unlike the SRV no port number is returned in the URI record since this information is contained (if applicable) in the URI string. So the returned URI strings from a URI record query can be used directly by the requested application, while the usable URI has to be assembled from the search and results information of an SRV record query.

URI record format


A typical URI record looks like the following in standard BIND format:

$ORIGIN example.com.
_ftp._tcp.example.com. 3600 IN URI 10 1 "ftp://ftp.example.com/public"
An anatomy of the URI Record looks like the below:
Name TTL Record Class Record Type Priority Weight Target Uri
_ftp._tcp.example.com. 3600 IN URI 10 1 "ftp://ftp.example.com/public"
Name
This field of an SRV record is composed of three parts separated by periods (.). These parts are Service, Proto, and Name in the format of _service._proto.name.

  • Service is the symbolic name of the desired service, an underscore (_) is added to the service identifier to avoid confusion with DNS labels.
  • Proto is the symbolic name of the desired protocol, with an underscore (_) added to prevent collisions with DNS labels that occur in nature.
  • Name is the domain or subdomain this record refers to.
TTL
The time-to-live in seconds. It specifies how long a resolver is supposed to cache or remember the DNS query before the query expires and a new one needs to be done. The URI record has no special TTL requirements.

Record Class
Mainly 3 classes of DNS records exist:
  • IN (Internet) – default and generally what internet uses.
  • CH (Chaosnet) – used for querying DNS server versions.
  • HS (Hesiod) – uses DNS functionality to provide access to databases of information that change infrequently.
Record Type
The record format is defined using this field. Common record types are A, AAAA, CNAME, CAA, TXT etc. In the case of a URI record, the record type is URI.

Priority
An integer that decides the priority of this target host. Much like the priority in MX record, the lower the number in the priority field, the more desirable the associated target.

Weight
This field specifies a relative weight for entries with the same priority. Larger weights are given a higher priority. This value is a number between 0 - 65535. If you have only a single URI record, use 0 as the weight.

Target URI
The URI of the target, enclosed in double-quote characters ("). Resolution of the URI is according to the definitions for the URI Scheme the URI consists of.

URI record glossary


URI
A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource. It includes a string of characters for the filename and may also contain the path to the directory of the file.

BIND
Berkeley Internet Name Daemon - is the most commonly used DNS software on the Internet and Dynu observes BIND format.