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