home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1464.txt < prev    next >
Text File  |  1996-05-07  |  8KB  |  142 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                       R. Rosenbaum Request for Comments: 1464                 Digital Equipment Corporation                                                                 May 1993 
  8.  
  9.                       Using the Domain Name System                   To Store Arbitrary String Attributes 
  10.  
  11. Status of this Memo 
  12.  
  13.    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. 
  14.  
  15. Abstract 
  16.  
  17.    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    classified. 
  18.  
  19.    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. 
  20.  
  21. 1.  Introduction 
  22.  
  23.    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. 
  24.  
  25.    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. 
  26.  
  27. 2.  Format of TXT record 
  28.  
  29.    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 (=). 
  30.  
  31.  
  32.  
  33. Rosenbaum                                                       [Page 1] 
  34.  RFC 1464          Storing Arbitrary Attributes in DNS           May 1993 
  35.  
  36.     For example, the following TXT records contain attributes specified    in this fashion: 
  37.  
  38.         host.widgets.com   IN   TXT   "printer=lpr5"         sam.widgets.com    IN   TXT   "favorite drink=orange juice" 
  39.  
  40.    The general syntax is: 
  41.  
  42.         <owner> <class> <ttl> TXT "<attribute name>=<attribute value>" 
  43.  
  44.    Attribute Names 
  45.  
  46.    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 "`". 
  47.  
  48.    Attribute Name Matching Rules 
  49.  
  50.    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". 
  51.  
  52.    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    ignored. 
  53.  
  54.    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". 
  55.  
  56.    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 "\\\\"). 
  57.  
  58.    Attribute Values 
  59.  
  60.    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. 
  61.  
  62.    Once again, note that in most implementations the backslash character    is an active quoting character (and must, itself, be quoted). 
  63.  
  64.  
  65.  
  66.  Rosenbaum                                                       [Page 2] 
  67.  RFC 1464          Storing Arbitrary Attributes in DNS           May 1993 
  68.  
  69.     All whitespace in the attribute value is returned to the requestor    (it is up to the application to decide if it is significant.) 
  70.  
  71.    Examples 
  72.  
  73.    <sp> indicates a space character. 
  74.  
  75.    Attribute    Attribute       Internal Form           External Form    Name         Value           (server to resolver)    (TXT record) 
  76.  
  77.    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"    =            \=              `==\=                   "`==\\=" 
  78.  
  79.    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 " 
  80.  
  81. 3.  Application Usage 
  82.  
  83.    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: 
  84.  
  85.          getattributebyname(objectname,          name of object                             attributename,       name of attribute                             attributevalue,      pointer to buffer                             attributevaluelen)   length of buffer 
  86.  
  87.    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. 
  88.  
  89. 4.  Attribute Name Registration 
  90.  
  91.    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. 
  92.  
  93.    This paper does not address attribute name registration. 
  94.  
  95.  
  96.  
  97.  Rosenbaum                                                       [Page 3] 
  98.  RFC 1464          Storing Arbitrary Attributes in DNS           May 1993 
  99.  
  100.  5.  Restrictions 
  101.  
  102.    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. 
  103.  
  104. 6.  REFERENCES and BIBLIOGRAPHY 
  105.  
  106.    [1] Stahl, M., "Domain Administrators Guide", RFC 1032, Network        Information Center, SRI International, November 1987. 
  107.  
  108.    [2] Mockapetris, P., "Domain Names - Concepts and Facilities", STD        13, RFC 1034, USC/Information Sciences Institute, November 1987. 
  109.  
  110.    [3] Mockapetris, P., "Domain Names - Implementation and        Specification", STD 13, RFC 1035, USC/Information Sciences        Institute, November 1987. 
  111.  
  112.    [4] Mockapetris, P., "DNS Encoding of Network Names and Other Types",        RFC 1101, USC/Information Sciences Institute, April 1989. 
  113.  
  114. 7.  Security Considerations 
  115.  
  116.    Security issues are not discussed in this memo. 
  117.  
  118. 8. Author's Address 
  119.  
  120.    Rich Rosenbaum    Digital Equipment Corporation    550 King Street, LKG2-2/Z7    Littleton, MA  01460-1289 
  121.  
  122.    Phone: 508-486-5922    Email: rosenbaum@lkg.dec.com 
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140. Rosenbaum                                                       [Page 4] 
  141.  
  142.