Premier IT Outsourcing and Support Services within the UK

User Tools

Site Tools


Network Working Group R. Rosenbaum Request for Comments: 1464 Digital Equipment Corporation

                                                              May 1993
                   Using the Domain Name System
                To Store Arbitrary String Attributes

Status of this Memo

 This memo defines an Experimental Protocol for the Internet
 community.  Discussion and suggestions for improvement are requested.
 Please refer to the current edition of the "IAB Official Protocol
 Standards" for the standardization state and status of this protocol.
 Distribution of this memo is unlimited.


 While the Domain Name System (DNS) [2,3] is generally used to store
 predefined types of information (e.g., addresses of hosts), it is
 possible to use it to store information that has not been previously
 This paper describes a simple means to associate arbitrary string
 information (ASCII text) with attributes that have not been defined
 by the DNS.  It uses DNS TXT resource records to store the
 information.  It requires no change to current DNS implementations.

1. Introduction

 The Domain Name System is designed to store information that has both
 a predefined type and structure.  Examples include IP addresses of
 hosts and names of mail exchangers.  It would be useful to take
 advantage of the widespread use and scaleability of the DNS to store
 information that has not been previously defined.
 This paper proposes the use of the DNS TXT resource record (defined
 in STD 13, RFC 1035) to contain new types of information.  The
 principal advantage of such an approach is that it requires no change
 to most existing DNS servers.  It is not intended to replace the
 process by which new resource records are defined and implemented.

2. Format of TXT record

 To store new types of information, the TXT record uses a structured
 format in its TXT-DATA field.  The format consists of the attribute
 name followed by the value of the attribute.  The name and value are
 separated by an equals sign (=).

Rosenbaum [Page 1] RFC 1464 Storing Arbitrary Attributes in DNS May 1993

 For example, the following TXT records contain attributes specified
 in this fashion:   IN   TXT   "printer=lpr5"    IN   TXT   "favorite drink=orange juice"
 The general syntax is:
      <owner> <class> <ttl> TXT "<attribute name>=<attribute value>"
 Attribute Names
 Any printable ASCII character is permitted for the attribute name.
 If an equals sign is embedded in the attribute name, it must be
 quoted with a preceding grave accent (or backquote: "`").  A
 backquote must also be quoted with an additional "`".
 Attribute Name Matching Rules
 The attribute name is considered case-insensitive.  For example, a
 lookup of the attribute "Favorite Drink" would match a TXT record
 containing "favorite drink=Earl Grey tea".
 During lookups, TXT records that do not contain an unquoted "=" are
 ignored.  TXT records that seem to contain a null attribute name,
 that is, the TXT-DATA starts with the character "=", are also
 Leading and trailing whitespace (spaces and tabs) in the attribute
 name are ignored unless they are quoted (with a "`").  For example,
 "abc" matches " abc<tab>" but does not match "` abc".
 Note that most DNS server implementations require a backslash (\) or
 double quote (") in a text string to be quoted with a preceding
 backslash.  Accent grave ("`") was chosen as a quoting character in
 this syntax to avoid confusion with "\" (and remove the need for
 confusing strings that include sequences like "\\\\").
 Attribute Values
 All printable ASCII characters are permitted in the attribute value.
 No characters need to be quoted with a "`".  In other words, the
 first unquoted equals sign in the TXT record is the name/value
 delimiter.  All subsequent characters are part of the value.
 Once again, note that in most implementations the backslash character
 is an active quoting character (and must, itself, be quoted).

Rosenbaum [Page 2] RFC 1464 Storing Arbitrary Attributes in DNS May 1993

 All whitespace in the attribute value is returned to the requestor
 (it is up to the application to decide if it is significant.)
 <sp> indicates a space character.
 Attribute    Attribute       Internal Form           External Form
 Name         Value           (server to resolver)    (TXT record)
 color        blue            color=blue              "color=blue"
 equation     a=4             equation=a=4            "equation=a=4"
 a=a          true            a`=a=true               "a`=a=true"
 a\=a false           a\`=a=false             "a\\`=a=false"
 =            \=              `==\=                   "`==\\="
 string       "Cat"           string="Cat"            "string=\"Cat\""
 string2      `abc`           string2=``abc``         "string2=``abc``"
 novalue                      novalue=                "novalue="
 a b          c d             a b=c d                 "a b=c d"
 abc<sp>      123<sp>         abc` =123<sp>           "abc` =123 "

3. Application Usage

 The attributes can be accessed by the standard resolver library, but
 it is recommended that a library routine designed specially for this
 attribute format be used.  Such a routine might provide an analogue
 to gethostbyname:
       getattributebyname(objectname,          name of object
                          attributename,       name of attribute
                          attributevalue,      pointer to buffer
                          attributevaluelen)   length of buffer
 This routine would remove all quoting characters before returning the
 information to the caller.  A more complex routine could return
 attributes with multiple values, or several different attributes.

4. Attribute Name Registration

 To permit ease of interoperability and to reduce the chance of naming
 conflicts, a registration process for well known attribute names
 might be established.  This could be a periodically updated list of
 names and/or adherence to other name registration mechanisms such as
 published object identifiers.
 This paper does not address attribute name registration.

Rosenbaum [Page 3] RFC 1464 Storing Arbitrary Attributes in DNS May 1993

5. Restrictions

 Some DNS server implementations place limits on the size or number of
 TXT records associated with a particular owner.  Certain
 implementations may not support TXT records at all.


 [1] Stahl, M., "Domain Administrators Guide", RFC 1032, Network
     Information Center, SRI International, November 1987.
 [2] Mockapetris, P., "Domain Names - Concepts and Facilities", STD
     13, RFC 1034, USC/Information Sciences Institute, November 1987.
 [3] Mockapetris, P., "Domain Names - Implementation and
     Specification", STD 13, RFC 1035, USC/Information Sciences
     Institute, November 1987.
 [4] Mockapetris, P., "DNS Encoding of Network Names and Other Types",
     RFC 1101, USC/Information Sciences Institute, April 1989.

7. Security Considerations

 Security issues are not discussed in this memo.

8. Author's Address

 Rich Rosenbaum
 Digital Equipment Corporation
 550 King Street, LKG2-2/Z7
 Littleton, MA  01460-1289
 Phone: 508-486-5922

Rosenbaum [Page 4]

/data/webs/external/dokuwiki/data/pages/rfc/rfc1464.txt · Last modified: 1993/05/24 23:10 by

Was this page helpful?-10+1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki