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:
|Host Label||TTL||Record Class||Record Type||Priority||Weight||Target URI|
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.
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.
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.
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.
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.
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.
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
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.
Berkeley Internet Name Daemon - is the most commonly used DNS software on the Internet and Dynu observes BIND format.