home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_j_p / draft-ietf-mixer-rfc1664bis-01.txt < prev    next >
Text File  |  1997-07-11  |  58KB  |  1,345 lines

  1. Network Working                                  C. Allocchio (editor)
  2. Group                                                   G.A.R.R. Italy
  3. INTERNET-DRAFT                                               July 1997
  4.                                                Expires:   January 1998
  5.                               File: draft-ietf-mixer-rfc1664bis-01.txt
  6.  
  7.  
  8.  
  9.  
  10.  
  11.                  Using the Internet DNS to Distribute
  12.             MIXER Conformant Global Address Mapping (MCGAM)
  13.  
  14.  
  15.  
  16.  
  17.  
  18. Status of this Memo
  19.  
  20. This document is an Internet Draft.  Internet Drafts are working
  21. documents of the Internet Engineering Task Force (IETF), its Areas,
  22. and its Working Groups.  Note that other groups may also distribute
  23. working documents as Internet Drafts.  Internet Drafts are draft
  24. documents valid for a maximum of six months.  Internet Drafts may be
  25. updated, replaced, or obsoleted by other documents at any time.  It is
  26. not appropriate to use Internet Drafts as reference material or to
  27. cite them other than as a ``working draft'' or ``work in progress.''
  28. Please check the I-D abstract listing contained in each Internet Draft
  29. directory to learn the current status of this or any other Internet
  30. Draft.
  31.  
  32.  
  33. Allocchio                                                       [Page 0]
  34.  
  35. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  36.  
  37.  
  38.  
  39.  
  40. Network Working Group                                       C. Allocchio
  41. Request for Comments: 1664bis                                 GARR-Italy
  42. Category: Internet-Draft                                       July 1997
  43. Obsoletes: RFC1664
  44.  
  45.                                                              
  46.  
  47.  
  48.                  Using the Internet DNS to Distribute
  49.             MIXER Conformant Global Address Mapping (MCGAM)
  50.  
  51. Status of this Memo
  52.  
  53.    This memo will be submitted to the RFC editor as a protocole
  54.    specification for the Internet community. This memo obsoletes 
  55.    RFC1664, updating its specifications to conform with MIXER (updated
  56.    version of RFC1327). Distribution of this memo is unlimited.
  57.  
  58. Abstract
  59.  
  60.    This memo is the complete technical specification to store in the
  61.    Internet Domain Name System (DNS) the mapping information (MCGAM)
  62.    needed by MIXER conformant e-mail gateways and other tools to map
  63.    RFC822 domain names into X.400 O/R names and vice versa.  Mapping
  64.    information can be managed in a distributed rather than a centralised
  65.    way. Organizations can publish their MIXER mapping or preferred
  66.    gateway routing information using just local resources (their local
  67.    DNS server), avoiding the need for a strong coordination with any
  68.    centralised organization. MIXER conformant gateways and tools located
  69.    on Internet hosts can retrieve the mapping information querying the
  70.    DNS instead of having fixed tables which need to be centrally updated
  71.    and distributed.  
  72.  
  73.    This memo obsoletes RFC1664. It includes the changes introduced by
  74.    MIXER specification with respect to RFC1327: the new 'gate1' (O/R
  75.    addresses to domain) table is fully supported. Full backward
  76.    compatibility with RFC1664 specification is mantained, too. 
  77.  
  78.    RFC1664 was a joint effort of IETF X400 operation working group
  79.    (x400ops) and TERENA (formely named "RARE") Mail and Messaging working
  80.    group (WG-MSG). This update was performed by the IETF MIXER working 
  81.    group.
  82.  
  83. 1. Introduction
  84.  
  85.    The connectivity between the Internet SMTP mail and other mail
  86.    services, including the Internet X.400 mail and the commercial X.400
  87.    service providers, is assured by the Mail eXchanger (MX) record
  88.    information distributed via the Internet Domain Name System (DNS). A
  89.  
  90.  
  91. Allocchio                                                       [Page 1]
  92.  
  93. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  94.  
  95.  
  96.    number of documents then specify in details how to convert or encode
  97.    addresses from/to RFC822 style to the other mail system syntax.
  98.    However, only conversion methods provide, via some algorithm or a set
  99.    of mapping rules, a smooth translation, resulting in addresses
  100.    indistinguishable from the native ones in both RFC822 and foreign
  101.    world.
  102.  
  103.    MIXER describes a set of mappings (MIXER Conformant Global Address
  104.    Mapping - MCGAM) which will enable interworking between systems
  105.    operating the CCITT X.400 (1984/88/92) Recommendations and systems using
  106.    using the RFC822 mail protocol, or protocols derived from RFC822. That
  107.    document addresses conversion of services, addresses, message
  108.    envelopes, and message bodies between the two mail systems.
  109.    This document is concerned with one aspect of MIXER: the mechanism
  110.    for mapping between X.400 O/R addresses and RFC822 domain names. As
  111.    described in Appendix F of MIXER, implementation of the mappings
  112.    requires a database which maps between X.400 O/R addresses and domain
  113.    names; in RFC1327 this database was statically defined.
  114.  
  115.    The original approach in RFC1327 required many efforts to maintain the
  116.    correct mapping: all the gateways needed to get coherent tables to apply
  117.    the same mappings, the conversion tables had to be distributed among all
  118.    the operational gateways, and also every update needed to be distributed.
  119.  
  120.    The concept of mapping rules distribution and use has been revised in
  121.    the new MIXER specification, introducing the concept of MIXER Conformant
  122.    Global Address Mapping (MCGAM). A MCGAM does not need to be globally 
  123.    installed by any MIXER conformant gateway in the world any more. However
  124.    MIXER requires now efficient methods to publish its MCGAM.
  125.  
  126.    Static tables are one of the possible methods to publish MCGAM.
  127.    However this static mechanism requires quite a long time to be spent
  128.    modifying and distributing the information, putting heavy constraints
  129.    on the time schedule of every update.  In fact it does not appear
  130.    efficient compared to the Internet Domain Name Service (DNS).  More
  131.    over it does not look feasible to distribute the database to a large
  132.    number of other useful applications, like local address converters,
  133.    e-mail User Agents or any other tool requiring the mapping rules to
  134.    produce correct results.
  135.  
  136.    Two much more efficient methods are proposed by MIXER for publication
  137.    of MCGAM: the Internet DNS and X.500. This memo is the complete
  138.    technical specification for publishing MCGAM via Internet DNS.
  139.  
  140.    A first proposal to use the Internet DNS to store, retrieve and
  141.    maintain those mappings was introduced by two of the authors of
  142.    RFC1664 (B. Cole and R. Hagens) adopting two new DNS resource record
  143.    (RR)  types: TO-X400 and TO-822. This proposal now adopts a more
  144.    complete strategy, and requires one new RR only. The distribution of
  145.    MCGAMs via DNS is in fact an important service for the whole Internet
  146.    community: it completes the information given by MX resource record
  147.  
  148.  
  149. Allocchio                                                       [Page 2]
  150.  
  151. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  152.  
  153.  
  154.    and it allows to produce clean addresses when messages are exchanged
  155.    among the Internet RFC822 world and the X.400 one (both Internet and
  156.    Public X.400 service providers).
  157.  
  158.    A first experiment in using the DNS without expanding the current set
  159.    of RR and using available ones was deployed by some of the authors of
  160.    RFC1664 at the time of its development. The existing PTR resource
  161.    records were used to store the mapping rules, and a new DNS tree was
  162.    created under the ".it" top level domain. The result of the experiment
  163.    was positive, and a few test applications ran under this provisional
  164.    set up. This test was also very useful in order to define a possible
  165.    migration strategy during the deployment of the new DNS containing
  166.    the new RR. The Internet DNS nameservers wishing to provide this
  167.    mapping information need in fact to be modified to support the new RR
  168.    type, and in the real Internet, due to the large number of different
  169.    implementations, this takes some time.
  170.  
  171.    The basic idea is to adopt a new DNS RR to store the mapping
  172.    information. The RFC822 to X.400 mapping rules (including the so
  173.    called 'gate2' rules) will be stored in the ordinary DNS tree, while
  174.    the definition of a new branch of the name space defined under each
  175.    national top level domain is envisaged in order to contain the X.400
  176.    to RFC822 mappings ('table1' and 'gate1'). A "two-way" mapping
  177.    resolution schema is thus fully implemented.
  178.  
  179.    The creation of the new domain name space representing the X.400 O/R
  180.    names structure also provides the chance to use the DNS to distribute
  181.    dynamically other X.400 related information, thus solving other
  182.    efficiency problems currently affecting the X.400 MHS service.
  183.  
  184.    In this paper we will adopt the MCGAM syntax, showing how it can be
  185.    stored into the Internet DNS.
  186.  
  187. 1.1 Definitions syntax
  188.  
  189.    The definitions in this document is given in BNF-like syntax, using
  190.    the following conventions:
  191.  
  192.       |   means choice
  193.       \   is used for continuation of a definition over several lines
  194.       []  means optional
  195.       {}  means repeated one or more times
  196.  
  197.    The definitions, however, are detailed only until a certain level,
  198.    and below it self-explaining character text strings will be used.
  199.  
  200. 2. Motivation
  201.  
  202.    Implementations of MIXER gateways require that a database store
  203.    address mapping information for X.400 and RFC822. This information
  204.    must be made available (published) to all MIXER gateways. In the
  205.  
  206.  
  207. Allocchio                                                       [Page 3]
  208.  
  209. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  210.  
  211.  
  212.    Internet community, the DNS has proven to be a practical mean for
  213.    providing a distributed name service. Advantages of using a DNS
  214.    based system over a table based approach for mapping between O/R
  215.    addresses and domain names are:
  216.  
  217.      - It avoids fetching and storing of entire mapping tables by every
  218.        host that wishes to implement MIXER gateways and/or tools
  219.  
  220.      - Modifications to the DNS based mapping information can be made
  221.        available in a more timely manner than with a table driven
  222.        approach.
  223.  
  224.      - It allows full authority delegation, in agreement with the
  225.        Internet regionalization process.
  226.  
  227.      - Table management is not necessarily required for DNS-based
  228.        MIXER gateways.
  229.  
  230.      - One can determine the mappings in use by a remote gateway by
  231.        querying the DNS (remote debugging).
  232.  
  233.    Also many other tools, like address converters and User Agents can
  234.    take advantage of the real-time availability of MIXER tables,
  235.    allowing a much easier maintenance of the information.
  236.  
  237. 3. The domain space for X.400 O/R name addresses
  238.  
  239.    Usual domain names (the ones normally used as the global part of an
  240.    RFC822 e-mail address) and their associated information, i.e., host
  241.    IP addresses, mail exchanger names, etc., are stored in the DNS as a
  242.    distributed database under a number of top-level domains. Some top-
  243.    level domains are used for traditional categories or international
  244.    organisations (EDU, COM, NET, ORG, INT, MIL...). On the other hand
  245.    any country has its own two letter ISO country code as top-level
  246.    domain (FR, DE, GB, IT, RU, ...), including "US" for USA.  The
  247.    special top-level/second-level couple IN-ADDR.ARPA is used to store
  248.    the IP address to domain name relationship. This memo defines in
  249.    the above structure the appropriate way to locate the X.400 O/R name
  250.    space, thus enabling to store in DNS the MIXER mappings (MCGAMs).
  251.  
  252.    The MIXER mapping information is composed by four tables: 
  253.  
  254.     - 'table1' and 'gate1' gives the translation from X.400 to RFC822;
  255.     - 'table2' and 'gate2' tables map RFC822 into X.400.
  256.  
  257.    Each mapping table is composed by mapping rules, and a single 
  258.    mapping rule is composed by a keyword (the argument of the mapping
  259.    function derived from the address to be translated) and a translator
  260.    (the mapping function parameter):
  261.  
  262.                           keyword#translator#
  263.  
  264.  
  265. Allocchio                                                       [Page 4]
  266.  
  267. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  268.  
  269.  
  270.    the '#' sign is a delimiter enclosing the translator. An example:
  271.  
  272.                 foo.bar.us#PRMD$foo\.bar.ADMD$intx.C$us#
  273.  
  274.    Local mappings are not intended for use outside their restricted
  275.    environment, thus they should not be included in DNS. If local
  276.    mappings are used, they should be stored using static local tables,
  277.    exactly as local static host tables can be used with DNS.
  278.  
  279.    The keyword of a 'table2' and 'gate2' table entry is a valid RFC822
  280.    domain; thus the usual domain name space can be used without problems
  281.    to store these entries.
  282.    On the other hand, the keyword of a 'table1' and 'gate1' entry
  283.    belongs to the X.400 O/R name space. The X.400 O/R name space 
  284.    does not usually fit into the usual domain name space, although
  285.    there are a number of similarities; a new name structure is thus
  286.    needed to represent it. This new name structure contains the X.400
  287.    mail domains.
  288.  
  289.    To ensure the correct functioning of the DNS system, the new X.400
  290.    name structure must be hooked to the existing domain name space in a
  291.    way which respects the existing name hierarchy.
  292.  
  293.    A possible solution was to create another special branch, starting
  294.    from the root of the DNS tree, somehow similar to the in-addr.arpa
  295.    tree. This idea would have required to establish a central authority
  296.    to coordinate at international level the management of each national
  297.    X.400 name tree, including the X.400 public service providers. This
  298.    coordination problem is a heavy burden if approached globally. More
  299.    over the X.400 name structure is very 'country oriented': thus while
  300.    it requires a coordination at national level, it does not have
  301.    concepts like the international root. In fact the X.400 international
  302.    service is based  on a large number of bilateral agreements, and only
  303.    within some communities an international coordination service exists.
  304.  
  305.    The X.400 two letter ISO country codes, however, are the same used
  306.    for the RFC822 country top-level domains and this gives us an
  307.    appropriate hook to insert the new branches. The proposal is, in
  308.    fact, to create under each national top level ISO country code a new
  309.    branch in the name space. This branch represents exactly the X.400
  310.    O/R name structure as defined in each single country, following the
  311.    ADMD, PRMD, O, OU hierarchy. A unique reserved label 'X42D' is placed
  312.    under each country top-level domain, and hence the national X.400
  313.    name space derives its own structure:
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323. Allocchio                                                       [Page 5]
  324.  
  325. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  326.  
  327.  
  328.                                     . (root)
  329.                                     |
  330.       +-----------------+-----------+--------+-----------------+...
  331.       |                 |                    |                 |
  332.      edu                it                   us                fr
  333.       |                 |                    |                 |
  334.   +---+---+...    +-----+-----+...     +-----+-----+...     +--+---+...
  335.   |       |       |     |     |        |     |     |        |      |
  336.  ...     ...     cnr   X42D  infn      va    ca   X42D     X42D  inria
  337.                         |                    |     |        |
  338.            +------------+------------+...   ...   ...  +----+-------+...
  339.            |            |            |                 |            |
  340.     ADMD-PtPostel  ADMD-garr  ADMD-Master400        ADMD-atlas  ADMD-red
  341.                         |            |                 |            |
  342.              +----------+----+...   ...        +-------+------+... ...
  343.              |               |                 |              |
  344.          PRMD-infn       PRMD-STET        PRMD-Telecom   PRMD-Renault
  345.              |               |                 |              |
  346.             ...             ...               ...            ...
  347.  
  348.  
  349.    The creation of the X.400 new name tree at national level solves the
  350.    problem of the international coordination. Actually the coordination
  351.    problem is just moved at national level, but it thus becomes easier
  352.    to solve. The coordination at national level between the X.400
  353.    communities and the Internet world is already a requirement for the
  354.    creation of the national static MIXER mapping tables; the use of
  355.    the Internet DNS gives further motivations for this coordination.
  356.  
  357.    The coordination at national level also fits in the new concept of
  358.    MCGAM pubblication. The DNS in fact allows a step by step authority
  359.    distribution, up to a final complete delegation: thus organizations
  360.    whishing to publish their MCGAM just need to receive delegation also
  361.    for their branch of the new X.400 name space. A further advantage of
  362.    the national based solution is to allow each country to set up its 
  363.    own X.400 name structure in DNS and to deploy its own authority
  364.    delegation according to its local time scale and requirements, with
  365.    no loss of global service in the mean time. And last, placing the
  366.    new X.400 name tree and coordination process at national level fits
  367.    into the Internet regionalization and internationalisation process,
  368.    as it requires local bodies to take care of local coordination 
  369.    problems.
  370.  
  371.    The DNS name space thus contains completely the information required
  372.    by an e-mail gateway or tool to perform the X.400-RFC822 mapping: a
  373.    simple query to the nearest nameserver provides it. Moreover there is
  374.    no more any need to store, maintain and distribute manually any
  375.    mapping table. The new X.400 name space can also contain further
  376.    information about the X.400 community, as DNS allows for it a
  377.  
  378.  
  379.  
  380. Allocchio                                                       [Page 6]
  381.  
  382. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  383.  
  384.  
  385.    complete set of resource records, and thus it allows further
  386.    developments. This set of RRs in the new X.400 name space must be
  387.    considered 'reserved' and thus not used until further specifications.
  388.  
  389.    The construction of the new domain space trees will follow the same
  390.    procedures used when organising at first the already existing DNS
  391.    space: at first the information will be stored in a quite centralised
  392.    way, and distribution of authority will be gradually achieved. A
  393.    separate document will describe the implementation phase and the
  394.    methods to assure a smooth introduction of the new service.
  395.  
  396. 4. The new DNS resource record for MIXER mapping rules: PX
  397.  
  398.    The specification of the Internet DNS (RFC1035) provides a number of
  399.    specific resource records (RRs) to contain specific pieces of
  400.    information. In particular they contain the Mail eXchanger (MX) RR
  401.    and the host Address (A) records which are used by the Internet SMTP
  402.    mailers. As we will store the RFC822 to X.400 mapping information in
  403.    the already existing DNS name tree, we need to define a new DNS RR in
  404.    order to avoid any possible clash or misuse of already existing data
  405.    structures. The same new RR will also be used to store the mappings
  406.    from X.400 to RFC822. More over the mapping information, i.e., the
  407.    MCGAMs, has a specific format and syntax which require an
  408.    appropriate data structure and processing. A further advantage of
  409.    defining a new RR is the ability to include flexibility for some
  410.    eventual future development.
  411.  
  412.    The definition of the new 'PX' DNS resource record is:
  413.  
  414.       class:        IN   (Internet)
  415.  
  416.       name:         PX   (pointer to X.400/RFC822 mapping information)
  417.  
  418.       value:        26
  419.  
  420.    The PX RDATA format is:
  421.  
  422.           +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  423.           |                  PREFERENCE                   |
  424.           +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  425.           /                    MAP822                     /
  426.           /                                               /
  427.           +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  428.           /                    MAPX400                    /
  429.           /                                               /
  430.           +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  431.  
  432.    where:
  433.  
  434.  
  435.  
  436. Allocchio                                                       [Page 7]
  437.  
  438. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  439.  
  440.  
  441.    PREFERENCE   A 16 bit integer which specifies the preference given to
  442.                 this RR among others at the same owner.  Lower values
  443.                 are preferred;
  444.  
  445.    MAP822       A <domain-name> element containing <rfc822-domain>, the
  446.                 RFC822 part of the MCGAM;
  447.  
  448.    MAPX400      A <domain-name> element containing the value of
  449.                 <x400-in-domain-syntax> derived from the X.400 part of
  450.                 the MCGAM (see sect. 4.2);
  451.  
  452.    PX records cause no additional section processing. The PX RR format
  453.    is the usual one:
  454.  
  455.              <name> [<class>] [<TTL>] <type> <RDATA>
  456.  
  457.    When we store in DNS a 'table1' or a 'gate1' entry, then <name> will
  458.    be an X.400 mail domain name in DNS syntax (see sect. 4.2). When we
  459.    store a 'table2' or a 'gate2' table entry, <name> will be an RFC822
  460.    mail domain name, including both fully qualified DNS domains and mail
  461.    only domains (MX-only domains). All normal DNS conventions, like
  462.    default values, wildcards, abbreviations and message compression,
  463.    apply also for all the components of the PX RR. In particular <name>,
  464.    MAP822 and MAPX400, as <domain-name> elements, must have the final
  465.    "." (root) when they are fully qualified.
  466.  
  467. 4.1 Additional features of the PX resource record
  468.  
  469.    The definition of the RDATA for the PX resource record, and the fact
  470.    that DNS allows a distinction between an exact value and a wildcard
  471.    match for the <name> parameter, represent an extension of the MIXER
  472.    specification for mapping rules. In fact, any MCGAM entry is an
  473.    implicit wildcard entry, i.e., the rule
  474.  
  475.       net2.it#PRMD$net2.ADMD$p400.C$it#
  476.  
  477.    covers any RFC822 domain ending with 'net2.it', unless more detailed
  478.    rules for some subdomain in 'net2.it' are present. Thus there is no
  479.    possibility to specify explicitly a MCGAM as an exact match only
  480.    rule. In DNS an entry like
  481.  
  482.       *.net2.it.   IN  PX  10   net2.it.  PRMD-net2.ADMD-p400.C-it.
  483.  
  484.    specify the usual wildcard match as for MIXER tables. However an
  485.    entry like
  486.  
  487.       ab.net2.it.  IN  PX  10   ab.net2.it.  O-ab.PRMD-net2.ADMDb.C-it.
  488.  
  489.  
  490.  
  491.  
  492. Allocchio                                                       [Page 8]
  493.  
  494. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  495.  
  496.  
  497.    is valid only for an exact match of 'ab.net2.it' RFC822 domain.
  498.  
  499.    Note also that in DNS syntax there is no '#' delimiter around MAP822
  500.    and MAPX400 fields: the syntax defined in sect. 4.2 in fact does not
  501.    allow the <blank> (ASCII decimal 32) character within these fields,
  502.    making unneeded the use of an explicit delimiter as required in the
  503.    MIXER original syntax.
  504.  
  505.    Another extension to the MIXER specifications is the PREFERENCE
  506.    value defined as part of the PX RDATA section. This numeric value has
  507.    exactly the same meaning than the similar one used for the MX RR. It
  508.    is thus possible to specify more than one single mapping for a domain
  509.    (both from RFC822 to X.400 and vice versa), giving as the preference
  510.    order. In MIXER static tables, however, you cannot specify more
  511.    than one mapping per each RFC822 domain, and the same restriction
  512.    apply for any X.400 domain mapping to an RFC822 one.
  513.  
  514.    More over, in the X.400 recommendations a note suggests than an
  515.    ADMD=<blank> should be reserved for some special cases. Various
  516.    national functional profile specifications for an X.400 MHS states
  517.    that if an X.400 PRMD is reachable via any of its national ADMDs,
  518.    independently of its actual single or multiple connectivity with
  519.    them, it should use ADMD=<blank> to advertise this fact. Again, if a
  520.    PRMD has no connections to any ADMD it should use ADMD=0 to notify
  521.    its status, etc. However, in most of the current real situations, the
  522.    ADMD service providers do not accept messages coming from their
  523.    subscribers if they have a blank ADMD, forcing them to have their own
  524.    ADMD value. In such a situation there are problems in indicating
  525.    properly the actually working mappings for domains with multiple
  526.    connectivity. The PX RDATA 'PREFERENCE' extension was introduced to
  527.    take in consideration these problems.
  528.  
  529.    However, as these extensions are not available with MIXER static
  530.    tables, it is strongly discouraged to use them when interworking with
  531.    any table based gateway or application. The extensions were in fact
  532.    introduced just to add more flexibility, like the PREFERENCE value,
  533.    or they were already implicit in the DNS mechanism, like the wildcard
  534.    specification. They should be used very carefully or just considered
  535.    'reserved for future use'. In particular, for current use, the
  536.    PREFERENCE value in the PX record specification should be fixed to a
  537.    value of 50, and only wildcard specifications should be used when
  538.    specifying <name> values.
  539.  
  540. 4.2 The DNS syntax for an X.400 'domain'
  541.  
  542.    The syntax definition of the MCGAM rules is defined in appendix F of
  543.    that document. However that syntax is not very human oriented and
  544.    contains a number of characters which have a special
  545.  
  546.  
  547.  
  548. Allocchio                                                       [Page 9]
  549.  
  550. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  551.  
  552.  
  553.    meaning in other fields of the Internet DNS. Thus in order to avoid
  554.    any possible problem, especially due to some old DNS implementations
  555.    still being used in the Internet, we define a syntax for the X.400
  556.    part of any MCGAM rules (and hence for any X.400 O/R name) which
  557.    makes it compatible with a <domain-name> element, i.e.,
  558.  
  559.    <domain-name>    ::= <subdomain> | " "
  560.    <subdomain>      ::= <label> | <label> "." <subdomain>
  561.    <label>          ::= <alphanum>|
  562.                         <alphanum> {<alphanumhyphen>} <alphanum>
  563.    <alphanum>       ::= "0".."9" | "A".."Z" | "a".."z"
  564.    <alphanumhyphen> ::= "0".."9" | "A".."Z" | "a".."z" | "-"
  565.  
  566.    (see RFC1035, section 2.3.1, page 8).  The legal character set for
  567.    <label> does not correspond to the IA5 Printablestring one used in
  568.    MIXER to define MCGAM rules. However a very simple "escape 
  569.    mechanism" can be applied in order to bypass the problem. We can in
  570.    fact simply describe the X.400 part of a MCGAM rule format as:
  571.  
  572.      <map-rule>   ::= <map-elem> | <map-elem> { "." <map-elem> }
  573.      <map-elem>   ::= <attr-label> "$" <attr-value>
  574.      <attr-label> ::= "C" | "ADMD" | "PRMD" | "O" | "OU"
  575.      <attr-value> ::= " " | "@" | IA5-Printablestring
  576.  
  577.    As you can notice <domain-name> and <map-rule> look similar, and also
  578.    <label> and <map-elem> look the same. If we define the correct method
  579.    to transform a <map-elem> into a <label> and vice versa the problem
  580.    to write a MCGAM rule in <domain-name> syntax is solved.
  581.  
  582.    The RFC822 domain part of any MCGAM rule is of course already in
  583.    <domain-name> syntax, and thus remains unchanged.
  584.  
  585.    In particular, in a 'table1' or 'gate1' mapping rule the 'keyword'
  586.    value must be converted into <x400-in-domain-syntax> (X.400 mail
  587.    DNS mail domain), while the 'translator' value is already a valid
  588.    RFC822 domain.  Vice versa in a 'table2' or 'gate2' mapping rule,
  589.    the 'translator' must be converted into <x400-in-domain-syntax>,
  590.    while the 'keyword' is already a valid RFC822 domain.
  591.  
  592. 4.2.1 IA5-Printablestring to <alphanumhyphen> mappings
  593.  
  594.    The problem of unmatching IA5-Printablestring and <label> character
  595.    set definition is solved by a simple character mapping rule: whenever
  596.    an IA5 character does not belong to <alphanumhyphen>, then it is
  597.    mapped using its 3 digit decimal ASCII code, enclosed in hyphens. A
  598.    small set of special rules is also defined for the most frequent
  599.    cases. Moreover some frequent characters combinations used in MIXER
  600.  
  601.  
  602.  
  603. Allocchio                                                      [Page 10]
  604.  
  605. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  606.  
  607.  
  608.    rules are also mapped as special cases.
  609.  
  610.    Let's then define the following simple rules:
  611.  
  612.     MCGAM rule            DNS store translation    conditions
  613.     -----------------------------------------------------------------
  614.     <attr-label>$@        <attr-label>             missing attribute
  615.     <attr-label>$<blank>  <attr-label>"b"          blank attribute
  616.     <attr-label>$xxx      <attr-label>-xxx         elsewhere
  617.  
  618.    Non <alphanumhyphen> characters in <attr-value>:
  619.  
  620.     MCGAM rule            DNS store translation    conditions
  621.     -----------------------------------------------------------------
  622.     -                     -h-                      hyphen
  623.     \.                    -d-                      quoted dot
  624.     <blank>               -b-                      blank
  625.     <non A/N character>   -<3digit-decimal>-       elsewhere
  626.  
  627.    If the DNS store translation of <attr-value> happens to end with an
  628.    hyphen, then this last hyphen is omitted.
  629.  
  630.    Let's now have some examples:
  631.  
  632.     MCGAM rule            DNS store translation    conditions
  633.     -----------------------------------------------------------------
  634.     PRMD$@                PRMD                     missing attribute
  635.     ADMD$<blank>          ADMDb                    blank attribute
  636.     ADMD$400-net          ADMD-400-h-net           hyphen mapping
  637.     PRMD$UK\.BD           PRMD-UK-d-BD             quoted dot mapping
  638.     O$ACME Inc\.          O-ACME-b-Inc-d           blank & final hyphen
  639.     PRMD$main-400-a       PRMD-main-h-400-h-a      hyphen mapping
  640.     O$-123-b              O--h-123-h-b             hyphen mapping
  641.     OU$123-x              OU-123-h-x               hyphen mapping
  642.     PRMD$Adis+co          PRMD-Adis-043-co         3digit mapping
  643.  
  644.    Thus, an X.400 part from a MCGAM like
  645.  
  646.      OU$uuu.O$@.PRMD$ppp\.rrr.ADMD$aaa ddd-mmm.C$cc
  647.  
  648.    translates to
  649.  
  650.      OU-uuu.O.PRMD-ppp-d-rrr.ADMD-aaa-b-ddd-h-mmm.C-cc
  651.  
  652.  Another example:
  653.  
  654.      OU$sales dept\..O$@.PRMD$ACME.ADMD$ .C$GB
  655.  
  656.  
  657.  
  658.  
  659. Allocchio                                                      [Page 11]
  660.  
  661. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  662.  
  663.  
  664.    translates to
  665.  
  666.      OU-sales-b-dept-d.O.PRMD-ACME.ADMDb.C-GB
  667.  
  668. 4.2.2 Flow chart
  669.  
  670.    In order to achieve the proper DNS store translations of the X.400
  671.    part of a MCGAM or any other X.400 O/R name, some software tools
  672.    will be used. It is in fact evident that the above rules for 
  673.    converting mapping table from MIXER to DNS format (and vice versa)
  674.    are not user friendly enough to think of a human made conversion.
  675.  
  676.    To help in designing such tools, we describe hereunder a small flow
  677.    chart. The fundamental rule to be applied during translation is,
  678.    however, the following:
  679.  
  680.       "A string must be parsed from left to right, moving appropriately
  681.       the pointer in order not to consider again the already translated
  682.       left section of the string in subsequent analysis."
  683.  
  684.    Flow chart 1 - Translation from MIXER to DNS format:
  685.  
  686.  
  687.                  parse  single attribute
  688.               (enclosed in "." separators)
  689.                            |
  690.             (yes)  ---  <label>$@ ?  ---  (no)
  691.               |                             |
  692.         map to <label>        (no)  <label>$<blank> ?  (yes)
  693.               |                 |                        |
  694.               |           map to <label>-        map to <label>"b"
  695.               |                 |                        |
  696.               |           map "\." to -d-                |
  697.               |                 |                        |
  698.               |           map "-" to -h-                 |
  699.               |                 |                        |
  700.               |    map non A/N char to -<3digit>-        |
  701.   restart     |                 |                        |
  702.      ^        |      remove (if any) last "-"            |
  703.      |        |                 |                        |
  704.      |        \------->     add a  "."    <--------------/
  705.      |                          |
  706.      \----------  take  next  attribute  (if  any)
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714. Allocchio                                                      [Page 12]
  715.  
  716. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  717.  
  718.  
  719.    Flow chart 2 - Translation from DNS to MIXER format:
  720.  
  721.  
  722.                 parse single attribute
  723.             (enclosed in "." separators)
  724.                           |
  725.             (yes) ---- <label> ? ---- (no)
  726.               |                          |
  727.       map to <label>$@        (no) <label>"b" ? (yes)
  728.               |                 |                 |
  729.               |           map to <label>$    map to <label>$<blank>
  730.               |                 |                 |
  731.               |           map -d- to "\."         |
  732.               |                 |                 |
  733.               |           map -h- to "-"          |
  734.               |                 |                 |
  735.               |           map -b- to " "          |
  736.   restart     |                 |                 |
  737.      ^        |   map -<3digit>- to non A/N char  |
  738.      |        |                 |                 |
  739.      |        \-------->   add a "."   <----------/
  740.      |                         |
  741.      \------------- take next attribute (if any)
  742.  
  743.  
  744.    Note that the above flow charts deal with the translation of the
  745.    attributes syntax, only.
  746.  
  747. 4.2.3 The Country Code convention in the <name> value.
  748.  
  749.    The RFC822 domain space and the X.400 O/R address space, as said in
  750.    section 3, have one specific common feature: the X.400 ISO country
  751.    codes are the same as the RFC822 ISO top level domains for countries.
  752.    In the previous sections we have also defined a method to write in
  753.    <domain-name> syntax any X.400 domain, while in section 3 we
  754.    described the new name space starting at each country top level
  755.    domain under the X42D.cc (where 'cc' is then two letter ISO country
  756.    code).
  757.  
  758.    The <name> value for a 'table1' or 'gate1' entry in DNS should thus
  759.    be derived from the X.400 domain value, translated to <domain-name>
  760.    syntax, adding the 'X42D.cc.' post-fix to it, i.e.,
  761.  
  762.       ADMD$acme.C$fr
  763.  
  764.    produces in <domain-name> syntax the key:
  765.  
  766.       ADMD-acme.C-fr
  767.  
  768.  
  769.  
  770. Allocchio                                                      [Page 13]
  771.  
  772. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  773.  
  774.  
  775.    which is post-fixed by 'X42D.fr.' resulting in:
  776.  
  777.       ADMD-acme.C-fr.X42D.fr.
  778.  
  779.    However, due to the identical encoding for X.400 country codes and
  780.    RFC822 country top level domains, the string 'C-fr.X42D.fr.' is
  781.    clearly redundant.
  782.  
  783.    We thus define the 'Country Code convention' for the <name> key,
  784.    i.e.,
  785.  
  786.       "The C-cc section of an X.400 domain in <domain-name> syntax must
  787.       be omitted when creating a <name> key, as it is identical to the
  788.       top level country code used to identify the DNS zone where the
  789.       information is stored".
  790.  
  791.    Thus we obtain the following <name> key examples:
  792.  
  793.    X.400 domain                       DNS <name> key
  794.    --------------------------------------------------------------------
  795.    ADMD$acme.C$fr                     ADMD-acme.X42D.fr.
  796.    PRMD$ux\.av.ADMD$ .C$gb            PRMD-ux-d-av.ADMDb.X42D.gb.
  797.    PRMD$ppb.ADMD$Dat 400.C$de         PRMD-ppb.ADMD-Dat-b-400.X42D.de.
  798.  
  799. 4.3 Creating the appropriate DNS files
  800.  
  801.    Using MIXER's assumption of an asymmetric mapping between X.400 and
  802.    RFC822 addresses, two separate relations are required to store the
  803.    mapping database: MIXER 'table1' and MIXER 'table2'; thus also in
  804.    DNS we will maintain the two different sections, even if they will
  805.    both use the PX resource record. More over MIXER also specify two
  806.    additional tables: MIXER 'gate1' and 'gate2' tables. These additional
  807.    tables, however, have the same syntax rules than MIXER 'table1' and
  808.    'table2' respectively, and thus the same translation procedure as 
  809.    'table1' and 'table2' will be applied; some details about the MIXER
  810.    'gate1' and 'gate2' tables are discussed in section 4.4.
  811.  
  812.    Let's now check how to create, from an MCGAM entry, the appropriate
  813.    DNS entry in a DNS data file. We can again define an MCGAM entry as
  814.    defined in appendix F of that document as:
  815.  
  816.      <x400-domain>#<rfc822-domain>#  (case A: 'table1' and 'gate1' entry)
  817.  
  818.    and
  819.  
  820.      <rfc822-domain>#<x400-domain>#  (case B: 'table2' and 'gate2' entry)
  821.  
  822.    The two cases must be considered separately. Let's consider case A.
  823.  
  824.  
  825.  
  826. Allocchio                                                      [Page 14]
  827.  
  828. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  829.  
  830.  
  831.     - take <x400-domain> and translate it into <domain-name> syntax,
  832.       obtaining <x400-in-domain-syntax>;
  833.     - create the <name> key from <x400-in-domain-syntax> i.e., apply
  834.       the Country Code convention described in sect. 4.2.3;
  835.     - construct the DNS PX record as:
  836.  
  837.       *.<name>  IN  PX  50  <rfc822-domain>  <x400-in-domain-syntax>
  838.  
  839.    Please note that within PX RDATA the <rfc822-domain> precedes the
  840.    <x400-in-domain-syntax> also for a 'table1' and 'gate1' entry.
  841.  
  842.    an example: from the 'table1' rule
  843.  
  844.      PRMD$ab.ADMD$ac.C$fr#ab.fr#
  845.  
  846.    we obtain
  847.  
  848.      *.PRMD-ab.ADMD-ac.X42D.fr. IN PX 50  ab.fr.  PRMD-ab.ADMD-ac.C-fr.
  849.  
  850.    Note that <name>, <rfc822-domain> and <x400-in-domain-syntax> are
  851.    fully qualified <domain-name> elements, thus ending with a ".".
  852.  
  853.    Let's now consider case B.
  854.  
  855.     - take <rfc822-domain> as <name> key;
  856.     - translate <x400-domain> into <x400-in-domain-syntax>;
  857.     - construct the DNS PX record as:
  858.  
  859.      *.<name>  IN  PX  50  <rfc822-domain>  <x400-in-domain-syntax>
  860.  
  861.    an example: from the 'table2' rule
  862.  
  863.      ab.fr#PRMD$ab.ADMD$ac.C$fr#
  864.  
  865.    we obtain
  866.  
  867.      *.ab.fr.  IN  PX  50  ab.fr.  PRMD-ab.ADMD-ac.C-fr.
  868.  
  869.    Again note the fully qualified <domain-name> elements.
  870.  
  871.    A file containing the MIXER mapping rules and MIXER 'gate1' and 
  872.    'gate2' table written in DNS format will look like the following 
  873.    fictious example:
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884. Allocchio                                                      [Page 15]
  885.  
  886. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  887.  
  888.  
  889.      !
  890.      ! MIXER table 1: X.400 --> RFC822
  891.      !
  892.      *.ADMD-acme.X42D.it.               IN  PX  50  it. ADMD-acme.C-it.
  893.      *.PRMD-accred.ADMD-tx400.X42D.it.  IN  PX  50   \
  894.                                 accred.it. PRMD-accred.ADMD-tx400.C-it.
  895.      *.O-u-h-newcity.PRMD-x4net.ADMDb.X42D.it.  IN  PX  50   \
  896.                        cs.ncty.it. O-u-h-newcity.PRMD-x4net.ADMDb.C-it.
  897.      !
  898.      ! MIXER table 2: RFC822 --> X.400
  899.      !
  900.      *.nrc.it.    IN  PX  50   nrc.it. PRMD-nrc.ADMD-acme.C-it.
  901.      *.ninp.it.   IN  PX  50   ninp.it. O.PRMD-ninp.ADMD-acme.C-it.
  902.      *.bd.it.     IN  PX  50   bd.it. PRMD-uk-d-bd.ADMDb.C-it.
  903.      !
  904.      ! MIXER Gate 1 Table
  905.      !
  906.      *.ADMD-XKW-h-Mail.X42D.it.         IN  PX  50   \
  907.                             XKW-gateway.it. ADMD-XKW-h-Mail.C-it.G.
  908.      *.PRMD-Super-b-Inc.ADMDb.X42D.it.  IN  PX  50   \
  909.                             GlobalGw.it. PRMD-Super-b-Inc.ADMDb.C-it.G.
  910.      !
  911.      ! MIXER Gate 2 Table
  912.      !
  913.      my.it.  IN PX 50  my.it. OU-int-h-gw.O.PRMD-ninp.ADMD-acme.C-it.G.
  914.      co.it.  IN PX 50  co.it. O-mhs-h-relay.PRMD-x4net.ADMDb.C-it.G.
  915.  
  916.  
  917.    (here the "\" indicates continuation on the same line, as wrapping is
  918.    done only due to typographical reasons).
  919.  
  920.    Note the special suffix ".G." on the right side of the 'gate1' and
  921.    'gate2' Tables section whose aim is described in section 4.4. The
  922.    corresponding MIXER tables are:
  923.  
  924.  
  925.      #
  926.      # MIXER table 1: X.400 --> RFC822
  927.      #
  928.      ADMD$acme.C$it#it#
  929.      PRMD$accred.ADMD$tx400.C$it#accred.it#
  930.      O$u-newcity.PRMD$x4net.ADMD$ .C$it#cs.ncty.it#
  931.      #
  932.      # MIXER table 2: RFC822 --> X.400
  933.      #
  934.      nrc.it#PRMD$nrc.ADMD$acme.C$it#
  935.      ninp.it#O.PRMD$ninp.ADMD$acme.C$it#
  936.      bd.it#PRMD$uk\.bd.ADMD$ .C$it# 
  937.  
  938.  
  939. Allocchio                                                      [Page 16]
  940.  
  941. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  942.  
  943.                  
  944.      #
  945.      # MIXER Gate 1 Table
  946.      #
  947.      ADMD$XKW-Mail.C$it#XKW-gateway.it#
  948.      PRMD$Super Inc.ADMD$ .C$it#GlobalGw.it#
  949.      #
  950.      # MIXER Gate 2 Table
  951.      #
  952.      my.it#OU$int-gw.O$@.PRMD$ninp.ADMD$acme.C$it#
  953.      co.it#O$mhs-relay.PRMD$x4net.ADMD$ .C$t#
  954.  
  955. 4.4 Storing the MIXER 'gate1' and 'gate2' tables
  956.  
  957.    Section 4.3.4 of MIXER also specify how an address should be
  958.    converted between RFC822 and X.400 in case a complete mapping is
  959.    impossible. To allow the use of DDAs for non mappable domains, the
  960.    MIXER 'gate2' table is thus introduced. 
  961.  
  962.    In a totally similar way, when an X.400 address cannot be completely
  963.    converted in RFC822, section 4.3.5 of MIXER specifies how to encode 
  964.    (LHS encoding) the address itself, pointing then to the appropriate 
  965.    MIXER conformant gateway, indicated in the MIXER 'gate1' table.
  966.  
  967.    DNS must store and distribute also these 'gate1' and 'gate2' data. 
  968.  
  969.    One of the major features of the DNS is the ability to distribute the
  970.    authority: a certain site runs the "primary" nameserver for one
  971.    determined sub-tree and thus it is also the only place allowed to
  972.    update information regarding that sub-tree. This fact allows, in our
  973.    case, a further additional feature to the table based approach. In
  974.    fact we can avoid one possible ambiguity about the use of the 'gate1'
  975.    and 'gate2' tables (and thus of LHS and DDAs encoding).
  976.  
  977.    The authority maintaining a DNS entry in the usual RFC822 domain
  978.    space is the only one allowed to decide if its domain should be
  979.    mapped using Standard Attributes (SA) syntax or Domain Defined
  980.    Attributes (DDA) one. If the authority decides that its RFC822 domain
  981.    should be mapped using SA, then the PX RDATA will be a 'table2'
  982.    entry, otherwise it will be a 'gate2' table entry. Thus for an RFC822
  983.    domain we cannot have any more two possible entries, one from 'table2
  984.    and another one from 'gate2' table, and the action for a gateway
  985.    results clearly stated.
  986.  
  987.    Similarly, the authority mantaining a DNS entry in the new X.400
  988.    name space is the only one allowed to decide if its X.400 domain
  989.    should be mapped using SA syntax or Left Hand Side (LHS) encoding. If
  990.    the authority decides that its X.400 domain should be mapped using SA,
  991.    then the PX RDATA will be a 'table1' entry, otherwise it will be a
  992.    'gate1' table entry. Thus also for an X.400 domain we cannot have any
  993.    more two possible entries, one from 'table1' and another one from 
  994.    'gate1' table, and the action for a gateway results clearly stated.
  995.  
  996.  
  997. Allocchio                                                      [Page 17]
  998.  
  999. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  1000.  
  1001.  
  1002.    The MIXER 'gate1' table syntax is actually identical to MIXER
  1003.    'table1', and 'gate2' table syntax is identical to MIXER 'table2'.
  1004.    Thus the same syntax translation rules from MIXER to DNS format can
  1005.    be applied in both cases. However a gateway or any other application
  1006.    must know if the answer it got from DNS contains some 'table1', 
  1007.    'table2' or some 'gate1', 'gate2' table information. This is easily
  1008.    obtained flagging with an additional ".G." post-fix the PX RDATA value
  1009.    when it contains a 'gate1' or 'gate2' table entry. The example in
  1010.    section 4.3 shows clearly the result. As any X.400 O/R domain must
  1011.    end with a country code ("C-xx" in our DNS syntax) the additional 
  1012.    ".G." creates no conflicts or ambiguities at all. This postfix must
  1013.    obviously be removed before using the MIXER 'gate1' or 'gate2' table
  1014.    data.
  1015.  
  1016. 5. Finding MIXER mapping information from DNS
  1017.  
  1018.    The MIXER mapping information is stored in DNS both in the normal
  1019.    RFC822 domain name space, and in the newly defined X.400 name space.
  1020.    The information, stored in PX resource records, does not represent a
  1021.    full RFC822 or X.400 O/R address: it is a template which specifies
  1022.    the fields of the domain that are used by the mapping algorithm.
  1023.  
  1024.    When mapping information is stored in the DNS, queries to the DNS are
  1025.    issued whenever an iterative search through the mapping table would
  1026.    be performed (MIXER: section 4.3.4, State I; section 4.3.5, mapping
  1027.    B). Due to the DNS search mechanism, DNS by itself returns the
  1028.    longest possible match in the stored mapping rule with a single
  1029.    query, thus no iteration and/or multiple queries are needed. As
  1030.    specified in MIXER, a search of the mapping table will result in
  1031.    either success (mapping found) or failure (query failed, mapping not
  1032.    found).
  1033.  
  1034.    When a DNS query is issued, a third possible result is timeout. If
  1035.    the result is timeout, the gateway operation is delayed and then
  1036.    retried at a later time. A result of success or failure is processed
  1037.    according to the algorithms specified in MIXER. If a DNS error code
  1038.    is returned, an error message should be logged and the gateway
  1039.    operation is delayed as for timeout. These pathological situations,
  1040.    however, should be avoided with a careful duplication and chaching
  1041.    mechanism which DNS itself provides.
  1042.  
  1043.    Searching the nameserver which can authoritatively solve the query is
  1044.    automatically performed by the DNS distributed name service.
  1045.  
  1046. 5.1 A DNS query example
  1047.  
  1048.    An MIXER mail-gateway located in the Internet, when translating
  1049.    addresses from RFC822 to X.400, can get information about the MCGAM
  1050.    rule asking the DNS. As an example, when translating the address
  1051.    SUN.CCE.NRC.IT, the gateway will just query DNS for the associated
  1052.    PX resource record. The DNS should contain a PX record like this:
  1053.  
  1054.  
  1055. Allocchio                                                      [Page 18]
  1056.  
  1057. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  1058.  
  1059.  
  1060.    *.cce.nrc.it.  IN PX 50   cce.nrc.it.  O-cce.PRMD-nrc.ADMD-acme.C-it.
  1061.  
  1062.    The first query will return immediately the appropriate mapping rule
  1063.    in DNS store format.
  1064.  
  1065.    There is no ".G." at the end of the obtained PX RDATA value, thus
  1066.    applying the syntax translation specified in paragraph 4.2 the
  1067.    MIXER Table 2 mapping rule will be obtained.
  1068.  
  1069.    Let's now take another example where a 'gate2' table rule is returned.
  1070.    If we are looking for an RFC822 domain ending with top level domain
  1071.    "MW", and the DNS contains a PX record like this,
  1072.  
  1073.       *.mw.   IN  PX  50  mw.  O-cce.PRMD-nrc.ADMD-acme.C-it.G.
  1074.  
  1075.    DNS will return 'mw.' and 'O-cce.PRMD-nrc.ADMD-acme.C-it.G.', i.e., a
  1076.    'gate2' table entry in DNS store format. Dropping the final ".G." and
  1077.    applying the syntax translation specified in paragraph 4.2 the
  1078.    original rule will be available. More over, the ".G." flag also tells
  1079.    the gateway to use DDA encoding for the inquired RFC822 domain.
  1080.  
  1081.    On the other hand, translating from X.400 to RFC822 the address
  1082.  
  1083.       C=de; ADMD=pkz; PRMD=nfc; O=top;
  1084.  
  1085.    the mail gateway should convert the syntax according to paragraph
  1086.    4.2, apply the 'Country code convention' described in 4.2.3 to derive
  1087.    the appropriate DNS translation of the X.400 O/R name and then query
  1088.    DNS for the corresponding PX resource record. The obtained record for
  1089.    which the PX record must be queried is thus:
  1090.  
  1091.       O-top.PRMD-nfc.ADMD-pkz.X42D.de.
  1092.  
  1093.    The DNS could contain:
  1094.  
  1095.       *.ADMD-pkz.X42D.de.  IN  PX  50  pkz.de.  ADMD-pkz.C-de.
  1096.  
  1097.    Assuming that there are not more specific records in DNS, the
  1098.    wildcard mechanism will return the MIXER 'table1' rule in encoded
  1099.    format.
  1100.  
  1101.    Finally, an example where a 'gate1' rule is involved. If we are 
  1102.    looking for an X.400 domain ending with ADMD=PWT400; C=US; ,
  1103.    and the DNS contains a PX record like this,
  1104.  
  1105.       *.ADMD-PWT400.X42D.us.  IN  PX  50  intGw.com. ADMD-PWT400.C-us.G.
  1106.  
  1107.    DNS will return 'intGw.com.' and 'ADMD-PWT400.C-us.G.', i.e., a
  1108.    'gate1' table entry in DNS store format. Dropping the final ".G." and
  1109.    applying the syntax translation specified in paragraph 4.2 the
  1110.    original rule will be available. More over, the ".G." flag also tells
  1111.  
  1112.  
  1113. Allocchio                                                      [Page 19]
  1114.  
  1115. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  1116.  
  1117.  
  1118.    the gateway to use LHS encoding for the inquired X.400 domain.
  1119.  
  1120. 6. Administration of mapping information
  1121.  
  1122.    The DNS, using the PX RR, is able to distribute the MCGAM rules
  1123.    to all MIXER gateways located on the Internet. However, not all 
  1124.    MIXER gateways will be able to use the Internet DNS. It is expected 
  1125.    that some gateways in a particular management domain will conform 
  1126.    to one of the following models:
  1127.  
  1128.       (a) Table-based, (b) DNS-based, (c) X.500-based
  1129.  
  1130.    Table-based management domains will continue to publish their MCGAM
  1131.    rules and retrieve the mapping tables via the International Mapping
  1132.    Table coordinator, manually or via some automated procedures. Their
  1133.    MCGAM information can be made available also in DNS by the appropriate
  1134.    DNS authorities, using the same mechanism already in place for MX 
  1135.    records: if a branch has not yet in place its own DNS server, some
  1136.    higher authority in the DNS tree will provide the service for it. 
  1137.    A transition procedure similar to the one used to migrate from the
  1138.    'hosts.txt' tables to DNS can be applied also to the deployment 
  1139.    phase of this specification. An informational document describing 
  1140.    the implementation phase and the detailed coordination procedures is
  1141.    expected. 
  1142.  
  1143.    Another distributed directory service which can distribute the
  1144.    MCGAM information is X.500. Coordination with table-based domains can
  1145.    be obtained in an identical way as for the DNS case. 
  1146.  
  1147.    Coordination of MCGAM information between DNS and X.500 is more
  1148.    complex, as it requies some kind of uploading information between the
  1149.    two systems. The ideal solution is a dynamic alignment mechanism which 
  1150.    transparently makes the DNS mapping information available in X.500 and
  1151.    vice versa. Some work in this specific field is already being done 
  1152.    [see Costa] which can result in a global transparent directory service,
  1153.    where the information is stored in DNS or in X.500, but is visible 
  1154.    completely by any of the two systems.
  1155.  
  1156.    However we must remind that MIXER concept of MCGAM rules publication
  1157.    is different from the old RFC1327 concept of globally distributed,
  1158.    coordinated and unique mapping rules. In fact MIXER does not requires
  1159.    any more for any conformant gateway or tool to know the complete set
  1160.    of MCGAM: it only requires to use some set (eventually empty) of 
  1161.    valid MCGAM rules, published either by Tables, DNS or X.500 mechanisms
  1162.    or any combination of these methods. More over MIXER specifies that
  1163.    also incomplete sets of MCGAM can be used, and supplementary local
  1164.    unpublished (but valid) MCGAM can also be used. As a consequence, the
  1165.    problem of coordination between the three systems proposed by MIXER
  1166.    for MCGAM publication is non essential, and important only for efficient
  1167.    operational matters. It does not in fact affect the correct behaviour
  1168.    of MIXER conformant gateways and tools.
  1169.  
  1170.  
  1171. Allocchio                                                      [Page 20]
  1172.  
  1173. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  1174.  
  1175.  
  1176. 7. Conclusion
  1177.  
  1178.    The introduction of the new PX resource record and the definition of
  1179.    the X.400 O/R name space in the DNS structure provide a good
  1180.    repository for MCGAM information. The mapping information is stored
  1181.    in the DNS tree structure so that it can be easily obtained using the
  1182.    DNS distributed name service. At the same time the definition of the
  1183.    appropriate DNS space for X.400 O/R names provide a repository where
  1184.    to store and distribute some other X.400 MHS information. The use of
  1185.    the DNS has many known advantages in storing, managing and updating
  1186.    the information. A successful number of tests were been performed
  1187.    under the provisional top level domain "X400.IT" when RFC1664 was
  1188.    developed, and their results confirmed the advantages of the method.
  1189.    Operational exeprience for over 2 years with RFC1664 specification
  1190.    confirmed the feasibility of the method, and helped identifying some
  1191.    operational procedures to deploy the insertion of MCGAM into DNS.
  1192.  
  1193.    Software to query the DNS and then to convert between the textual
  1194.    representation of DNS resource records and the address format defined
  1195.    in MIXER was developed with RFC1664. This software also allows a
  1196.    smooth implementation and deployment period, eventually taking care
  1197.    of the transition phase. This software can be easily used (with
  1198.    little or null modification) also for this updated specification,
  1199.    supporting the new 'gate1' MIXER table. DNS software implementations
  1200.    supporting RFC1664 also supports with no modification this memo new
  1201.    specification.
  1202.  
  1203.    A further informational document describing operational and
  1204.    implementation of the service is expected.
  1205.  
  1206. 8. Acknowledgements
  1207.  
  1208.    We wish to thanks all those who contributed to the discussion and
  1209.    revision of this document: many of their ideas and suggestions
  1210.    constitute essential parts of this work. In particular thanks to Jon
  1211.    Postel, Paul Mockapetris, Rob Austin and the whole IETF x400ops, 
  1212.    TERENA wg-msg and IETF namedroppers groups. A special mention to
  1213.    Christian Huitema for his fundamental contribution to this work.
  1214.  
  1215.    This document is a revision of RFC1664, edited by one of its
  1216.    authors on behalf of the IETF MIXER working group. The current
  1217.    editor wishes to thank here also the authors of RFC1664:
  1218.  
  1219.  
  1220.      Antonio Blasco Bonito     RFC822: bonito@cnuce.cnr.it
  1221.      CNUCE - CNR               X.400:  C=it;A=garr;P=cnr;
  1222.      Reparto infr. reti                O=cnuce;S=bonito;
  1223.      Viale S. Maria 36
  1224.      I 56126 Pisa
  1225.      Italy
  1226.  
  1227.  
  1228.  
  1229. Allocchio                                                      [Page 21]
  1230.  
  1231. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  1232.  
  1233.  
  1234.      Bruce Cole                RFC822: bcole@cisco.com
  1235.      Cisco Systems Inc.        X.400:  C=us;A= ;P=Internet;
  1236.      P.O. Box 3075                     DD.rfc-822=bcole(a)cisco.com;
  1237.      1525 O'Brien Drive
  1238.      Menlo Park, CA 94026
  1239.      U.S.A.
  1240.  
  1241.  
  1242.      Silvia Giordano           RFC822: giordano@cscs.ch
  1243.      Centro Svizzero di        X.400:  C=ch;A=arcom;P=switch;O=cscs;
  1244.      Calcolo Scientifico               S=giordano;
  1245.      Via Cantonale
  1246.      CH 6928 Manno
  1247.      Switzerland
  1248.  
  1249.  
  1250.      Robert Hagens                   RFC822: hagens@ans.net
  1251.      Advanced Network and Services   X.400:  C=us;A= ;P=Internet;
  1252.      1875 Campus Commons Drive               DD.rfc-822=hagens(a)ans.net;
  1253.      Reston, VA 22091
  1254.      U.S.A.
  1255.  
  1256.  
  1257. 9. References
  1258.  
  1259.    [CCITT] CCITT SG 5/VII, "Recommendation X.400, Message Handling
  1260.        Systems: System Model - Service Elements", October 1988.
  1261.  
  1262.    [RFC 1327] Kille, S., "Mapping between X.400(1988)/ISO 10021 and RFC
  1263.        822", RFC 1327, March 1992.
  1264.  
  1265.    [RFC 1034] Mockapetris, P., "Domain Names - Concepts and Facilities",
  1266.        STD 13, RFC 1034, USC/Information Sciences Institute, November
  1267.        1987.
  1268.  
  1269.    [RFC 1035] Mockapetris, P., "Domain names - Implementation and
  1270.        Specification", STD 13, RFC 1035, USC/Information Sciences
  1271.        Institute, November 1987.
  1272.  
  1273.    [RFC 1033] Lottor, M., "Domain Administrators Operation Guide", RFC
  1274.        1033, SRI International, November 1987.
  1275.  
  1276.    [MIXER] Kille, S. E., " MIXER (Mime Internet X.400 Enhanced Relay):
  1277.        Mapping between X.400 and RFC 822/MIME", RFC xxxx, xxxxxxx 1997.
  1278.  
  1279.    [Costa] Costa, A., Macedo, J., and V. Freitas, "Accessing and
  1280.        Managing DNS Information in the X.500 Directory", Proceeding of
  1281.        the 4th Joint European Networking Conference, Trondheim, NO, May
  1282.        1993.
  1283.  
  1284.  
  1285.  
  1286.  
  1287. Allocchio                                                      [Page 22]
  1288.  
  1289. RFC 1664bis       Internet DNS for Mail Mapping Tables         July 1997
  1290.  
  1291.  
  1292. 10. Security Considerations
  1293.  
  1294.    This document specifies a means by which DNS "PX" records can
  1295.    direct the translation between X.400 and Internet mail addresses. 
  1296.  
  1297.    This can indirectly affect the routing of mail across an gateway 
  1298.    between X.400 and Internet Mail.  A succesful attack on this 
  1299.    service could cause incorrect translation of an originator address
  1300.    (thus "forging" the originator address), or incorrect translation 
  1301.    of a recipient address (thus directing the mail to an unauthorized
  1302.    recipient, or making it appear to an authorized recipient, that 
  1303.    the message was intended for recipients other than those chosen by
  1304.    the originator) or could force the mail path via some particular
  1305.    gateway or message transfer agent where mail security can be 
  1306.    affected by compromised software.
  1307.  
  1308.    There are several means by which an attacker might be able to
  1309.    deliver incorrect PX records to a client.  These include:
  1310.    (a) compromise of a DNS server,  (b) generating a counterfeit
  1311.    response to a client's DNS query, (c) returning incorrect 
  1312.    "additional information" in response to an unrelated query. 
  1313.  
  1314.    Clients using PX records SHOULD ensure that routing and address 
  1315.    translations are based only on authoritative answers.  Once
  1316.    DNS Security mechanisms [RFC 2065] become more widely deployed,
  1317.    clients SHOULD employ those mechanisms to verify the authenticity
  1318.    and integrity of PX records.
  1319.  
  1320.  
  1321. 11. Author's Address
  1322.  
  1323.    Claudio Allocchio
  1324.    Sincrotrone Trieste
  1325.    SS 14 Km 163.5 Basovizza
  1326.    I 34012 Trieste
  1327.    Italy
  1328.  
  1329.    RFC822: Claudio.Allocchio@elettra.trieste.it
  1330.    X.400:  C=it;A=garr;P=Trieste;O=Elettra;
  1331.    S=Allocchio;G=Claudio;
  1332.    Phone:  +39 40 3758523
  1333.    Fax:    +39 40 3758565
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344. Allocchio                                                      [Page 23]
  1345.