HTTPfy

URI record

A URI record maps a service name to a complete URI, including scheme and path, where SRV could only give a host and port.

type code 256 RFC 7553

Live URI records from real domains

Checked at via public DNS
_kerberos.fedoraproject.orgURI
_kerberos.fedoraproject.org. 300 IN URI 10 1 "krb5srv:m:kkdcp:https://id.fedoraproject.org/KdcProxy/"
  ; priority 10, weight 1: krb5srv:m:kkdcp:https://id.fedoraproject.org/KdcProxy/
_kerberos.stg.fedoraproject.orgURI
_kerberos.stg.fedoraproject.org. 300 IN URI 10 1 "krb5srv:m:kkdcp:https://id.stg.fedoraproject.org/KdcProxy/"
  ; priority 10, weight 1: krb5srv:m:kkdcp:https://id.stg.fedoraproject.org/KdcProxy/
_kerberos.almalinux.orgURI
_kerberos.almalinux.org. 300 IN URI 0 100 "krb5srv:m:tcp:ipa01.awsuseast1.ipa.almalinux.org"
  ; priority 0, weight 100: krb5srv:m:tcp:ipa01.awsuseast1.ipa.almalinux.org
_kerberos.almalinux.org. 300 IN URI 0 100 "krb5srv:m:tcp:ipa02.awsuseast1.ipa.almalinux.org"
  ; priority 0, weight 100: krb5srv:m:tcp:ipa02.awsuseast1.ipa.almalinux.org
_kerberos.almalinux.org. 300 IN URI 0 100 "krb5srv:m:tcp:ipa03.azureussouthcentral.ipa.almalinux.org"
  ; priority 0, weight 100: krb5srv:m:tcp:ipa03.azureussouthcentral.ipa.almalinux.org
_kerberos.almalinux.org. 300 IN URI 0 100 "krb5srv:m:tcp:ipa04.azureussouthcentral.ipa.almalinux.org"
  ; priority 0, weight 100: krb5srv:m:tcp:ipa04.azureussouthcentral.ipa.almalinux.org
uri.dns.netmeister.orgURI
uri.dns.netmeister.org. 3600 IN URI 10 1 "https://www.netmeister.org/blog/dns-rrs.html"
  ; priority 10, weight 1: https://www.netmeister.org/blog/dns-rrs.html

What the URI record does

The owner name follows the SRV pattern (_service._proto.name or _service.name), and priority and weight work the same way. The best-known real use is Kerberos: MIT Kerberos and FreeIPA look up _kerberos.<realm domain> URI records with values such as krb5srv:m:tcp:kdc.example.com or krb5srv:m:kkdcp:https://... (a KDC proxy over HTTPS).

Adoption elsewhere is low, so it is still uncommon to find URI records outside identity-management deployments.

Zone-file syntax

_kerberos.example.com.  3600  IN  URI  10 1 "krb5srv:m:tcp:kdc.example.com"
; priority weight "target"

Wire format: RDATA is priority and weight (16-bit each) followed by the URI as raw bytes (not a length-prefixed string).

Fields

FieldMeaning
PriorityLower is preferred.
WeightRelative selection among equal priorities.
TargetAn absolute URI, quoted in zone files. It must not be empty.

Common mistakes

  • Leaving off the quotes in the zone file.
  • Expecting general clients to look up URI records; only software that implements a protocol using them will.

Specification

  • RFC 7553: The Uniform Resource Identifier (URI) DNS Resource Record

Related record types

  • SRV: host and port for a named service
  • NAPTR: rewrite rules for SIP and ENUM
  • SVCB: generic service binding for any protocol

All DNS record types