7 Network Working Group C. Allocchio
8 Request for Comments: 2163 GARR-Italy
9 Obsoletes: 1664 January 1998
10 Category: Standards Track
13 Using the Internet DNS to Distribute
14 MIXER Conformant Global Address Mapping (MCGAM)
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.
26 Copyright (C) The Internet Society (1998). All Rights Reserved.
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
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.
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
58 Allocchio Standards Track [Page 1]
60 RFC 2163 MIXER MCGAM January 1998
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
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.
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.
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
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.
114 Allocchio Standards Track [Page 2]
116 RFC 2163 MIXER MCGAM January 1998
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.
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).
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.
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.
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.
160 In this paper we will adopt the MCGAM syntax, showing how it can be
161 stored into the Internet DNS.
170 Allocchio Standards Track [Page 3]
172 RFC 2163 MIXER MCGAM January 1998
175 1.1 Definitions syntax
177 The definitions in this document is given in BNF-like syntax, using
178 the following conventions:
181 \ is used for continuation of a definition over several lines
183 {} means repeated one or more times
185 The definitions, however, are detailed only until a certain level,
186 and below it self-explaining character text strings will be used.
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:
198 - It avoids fetching and storing of entire mapping tables by every
199 host that wishes to implement MIXER gateways and/or tools
201 - Modifications to the DNS based mapping information can be made
202 available in a more timely manner than with a table driven
205 - It allows full authority delegation, in agreement with the
206 Internet regionalization process.
208 - Table management is not necessarily required for DNS-based
211 - One can determine the mappings in use by a remote gateway by
212 querying the DNS (remote debugging).
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.
218 3. The domain space for X.400 O/R name addresses
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
226 Allocchio Standards Track [Page 4]
228 RFC 2163 MIXER MCGAM January 1998
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).
241 The MIXER mapping information is composed by four tables:
243 - 'table1' and 'gate1' gives the translation from X.400 to RFC822;
244 - 'table2' and 'gate2' tables map RFC822 into X.400.
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):
253 the '#' sign is a delimiter enclosing the translator. An example:
255 foo.bar.us#PRMD$foo\.bar.ADMD$intx.C$us#
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.
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
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.
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
282 Allocchio Standards Track [Page 5]
284 RFC 2163 MIXER MCGAM January 1998
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.
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:
308 +-----------------+-----------+--------+-----------------+...
312 +---+---+... +-----+-----+... +-----+-----+... +--+---+...
314 ... ... cnr X42D infn va ca X42D X42D inria
316 +------------+------------+... ... ... +----+-------+...
318 ADMD-PtPostel ADMD-garr ADMD-Master400 ADMD-atlas ADMD-red
320 +----------+----+... ... +-------+------+... ...
322 PRMD-infn PRMD-STET PRMD-Telecom PRMD-Renault
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.
338 Allocchio Standards Track [Page 6]
340 RFC 2163 MIXER MCGAM January 1998
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.
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.
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.
373 4. The new DNS resource record for MIXER mapping rules: PX
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
394 Allocchio Standards Track [Page 7]
396 RFC 2163 MIXER MCGAM January 1998
399 The definition of the new 'PX' DNS resource record is:
403 name: PX (pointer to X.400/RFC822 mapping information)
407 The PX RDATA format is:
409 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
411 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
414 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
417 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
421 PREFERENCE A 16 bit integer which specifies the preference given to
422 this RR among others at the same owner. Lower values
425 MAP822 A <domain-name> element containing <rfc822-domain>, the
426 RFC822 part of the MCGAM;
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);
432 PX records cause no additional section processing. The PX RR format
435 <name> [<class>] [<TTL>] <type> <RDATA>
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.
450 Allocchio Standards Track [Page 8]
452 RFC 2163 MIXER MCGAM January 1998
455 4.1 Additional features of the PX resource record
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
463 net2.it#PRMD$net2.ADMD$p400.C$it#
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
470 *.net2.it. IN PX 10 net2.it. PRMD-net2.ADMD-p400.C-it.
472 specify the usual wildcard match as for MIXER tables. However an
475 ab.net2.it. IN PX 10 ab.net2.it. O-ab.PRMD-net2.ADMDb.C-it.
477 is valid only for an exact match of 'ab.net2.it' RFC822 domain.
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.
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.
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
506 Allocchio Standards Track [Page 9]
508 RFC 2163 MIXER MCGAM January 1998
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.
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.
528 4.2 The DNS syntax for an X.400 'domain'
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.,
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" | "-"
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:
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
562 Allocchio Standards Track [Page 10]
564 RFC 2163 MIXER MCGAM January 1998
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.
572 The RFC822 domain part of any MCGAM rule is of course already in
573 <domain-name> syntax, and thus remains unchanged.
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.
582 4.2.1 IA5-Printablestring to <alphanumhyphen> mappings
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.
592 Let's then define the following simple rules:
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
600 Non <alphanumhyphen> characters in <attr-value>:
602 MCGAM rule DNS store translation conditions
603 -----------------------------------------------------------------
607 <non A/N character> -<3digit-decimal>- elsewhere
609 If the DNS store translation of <attr-value> happens to end with an
610 hyphen, then this last hyphen is omitted.
612 Let's now have some examples:
618 Allocchio Standards Track [Page 11]
620 RFC 2163 MIXER MCGAM January 1998
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
635 Thus, an X.400 part from a MCGAM like
637 OU$uuu.O$@.PRMD$ppp\.rrr.ADMD$aaa ddd-mmm.C$cc
641 OU-uuu.O.PRMD-ppp-d-rrr.ADMD-aaa-b-ddd-h-mmm.C-cc
645 OU$sales dept\..O$@.PRMD$ACME.ADMD$ .C$GB
649 OU-sales-b-dept-d.O.PRMD-ACME.ADMDb.C-GB
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.
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:
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."
674 Allocchio Standards Track [Page 12]
676 RFC 2163 MIXER MCGAM January 1998
679 Flow chart 1 - Translation from MIXER to DNS format:
681 parse single attribute
682 (enclosed in "." separators)
684 (yes) --- <label>$@ ? --- (no)
686 map to <label> (no) <label>$<blank> ? (yes)
688 | map to <label>- map to <label>"b"
694 | map non A/N char to -<3digit>- |
696 ^ | remove (if any) last "-" |
698 | \-------> add a "." <--------------/
700 \---------- take next attribute (if any)
703 Flow chart 2 - Translation from DNS to MIXER format:
706 parse single attribute
707 (enclosed in "." separators)
709 (yes) ---- <label> ? ---- (no)
711 map to <label>$@ (no) <label>"b" ? (yes)
713 | map to <label>$ map to <label>$<blank>
721 ^ | map -<3digit>- to non A/N char |
723 | \--------> add a "." <----------/
725 \------------- take next attribute (if any)
730 Allocchio Standards Track [Page 13]
732 RFC 2163 MIXER MCGAM January 1998
735 Note that the above flow charts deal with the translation of the
736 attributes syntax, only.
738 4.2.3 The Country Code convention in the <name> value.
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
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.,
755 produces in <domain-name> syntax the key:
759 which is post-fixed by 'X42D.fr.' resulting in:
761 ADMD-acme.C-fr.X42D.fr.
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
767 We thus define the 'Country Code convention' for the <name> key,
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".
775 Thus we obtain the following <name> key examples:
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.
786 Allocchio Standards Track [Page 14]
788 RFC 2163 MIXER MCGAM January 1998
791 4.3 Creating the appropriate DNS files
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.
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:
808 <x400-domain>#<rfc822-domain># (case A: 'table1' and 'gate1'
813 <rfc822-domain>#<x400-domain># (case B: 'table2' and 'gate2'
816 The two cases must be considered separately. Let's consider case A.
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:
824 *.<name> IN PX 50 <rfc822-domain> <x400-in-domain-syntax>
826 Please note that within PX RDATA the <rfc822-domain> precedes the
827 <x400-in-domain-syntax> also for a 'table1' and 'gate1' entry.
829 an example: from the 'table1' rule
831 PRMD$ab.ADMD$ac.C$fr#ab.fr#
835 *.PRMD-ab.ADMD-ac.X42D.fr. IN PX 50 ab.fr. PRMD-ab.ADMD-ac.C-fr.
837 Note that <name>, <rfc822-domain> and <x400-in-domain-syntax> are
838 fully qualified <domain-name> elements, thus ending with a ".".
842 Allocchio Standards Track [Page 15]
844 RFC 2163 MIXER MCGAM January 1998
847 Let's now consider case B.
849 - take <rfc822-domain> as <name> key;
850 - translate <x400-domain> into <x400-in-domain-syntax>;
851 - construct the DNS PX record as:
853 *.<name> IN PX 50 <rfc822-domain> <x400-in-domain-syntax>
855 an example: from the 'table2' rule
857 ab.fr#PRMD$ab.ADMD$ac.C$fr#
861 *.ab.fr. IN PX 50 ab.fr. PRMD-ab.ADMD-ac.C-fr.
863 Again note the fully qualified <domain-name> elements.
865 A file containing the MIXER mapping rules and MIXER 'gate1' and
866 'gate2' table written in DNS format will look like the following
870 ! MIXER table 1: X.400 --> RFC822
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.
878 ! MIXER table 2: RFC822 --> X.400
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.
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.
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.
898 Allocchio Standards Track [Page 16]
900 RFC 2163 MIXER MCGAM January 1998
903 (here the "\" indicates continuation on the same line, as wrapping is
904 done only due to typographical reasons).
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:
911 # MIXER table 1: X.400 --> RFC822
914 PRMD$accred.ADMD$tx400.C$it#accred.it#
915 O$u-newcity.PRMD$x4net.ADMD$ .C$it#cs.ncty.it#
917 # MIXER table 2: RFC822 --> X.400
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#
925 ADMD$XKW-Mail.C$it#XKW-gateway.it#
926 PRMD$Super Inc.ADMD$ .C$it#GlobalGw.it#
930 my.it#OU$int-gw.O$@.PRMD$ninp.ADMD$acme.C$it#
931 co.it#O$mhs-relay.PRMD$x4net.ADMD$ .C$t#
933 4.4 Storing the MIXER 'gate1' and 'gate2' tables
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.
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.
945 DNS must store and distribute also these 'gate1' and 'gate2' data.
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
954 Allocchio Standards Track [Page 17]
956 RFC 2163 MIXER MCGAM January 1998
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).
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.
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.
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
996 5. Finding MIXER mapping information from DNS
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.
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
1010 Allocchio Standards Track [Page 18]
1012 RFC 2163 MIXER MCGAM January 1998
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
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.
1031 Searching the nameserver which can authoritatively solve the query is
1032 automatically performed by the DNS distributed name service.
1034 5.1 A DNS query example
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:
1042 *.cce.nrc.it. IN PX 50 cce.nrc.it. O-cce.PRMD-nrc.ADMD-acme.C-it.
1044 The first query will return immediately the appropriate mapping rule
1045 in DNS store format.
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.
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,
1055 *.mw. IN PX 50 mw. O-cce.PRMD-nrc.ADMD-acme.C-it.G.
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.
1066 Allocchio Standards Track [Page 19]
1068 RFC 2163 MIXER MCGAM January 1998
1071 On the other hand, translating from X.400 to RFC822 the address
1073 C=de; ADMD=pkz; PRMD=nfc; O=top;
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:
1081 O-top.PRMD-nfc.ADMD-pkz.X42D.de.
1083 The DNS could contain:
1085 *.ADMD-pkz.X42D.de. IN PX 50 pkz.de. ADMD-pkz.C-de.
1087 Assuming that there are not more specific records in DNS, the
1088 wildcard mechanism will return the MIXER 'table1' rule in encoded
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,
1095 *.ADMD-PWT400.X42D.us. IN PX 50 intGw.com. ADMD-PWT400.C-us.G.
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.
1103 6. Administration of mapping information
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:
1111 (a) Table-based, (b) DNS-based, (c) X.500-based
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
1122 Allocchio Standards Track [Page 20]
1124 RFC 2163 MIXER MCGAM January 1998
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.
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.
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.
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.
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
1178 Allocchio Standards Track [Page 21]
1180 RFC 2163 MIXER MCGAM January 1998
1183 confirmed the feasibility of the method, and helped identifying some
1184 operational procedures to deploy the insertion of MCGAM into DNS.
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
1234 Allocchio Standards Track [Page 22]
1236 RFC 2163 MIXER MCGAM January 1998
1239 A further informational document describing operational and
1240 implementation of the service is expected.
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.
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:
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;
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;
1267 Menlo Park, CA 94026
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;
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;
1290 Allocchio Standards Track [Page 23]
1292 RFC 2163 MIXER MCGAM January 1998
1297 [CCITT] CCITT SG 5/VII, "Recommendation X.400, Message Handling
1298 Systems: System Model - Service Elements", October 1988.
1300 [RFC 1327] Kille, S., "Mapping between X.400(1988)/ISO 10021 and RFC
1301 822", RFC 1327, March 1992.
1303 [RFC 1034] Mockapetris, P., "Domain Names - Concepts and Facilities",
1304 STD 13, RFC 1034, USC/Information Sciences Institute, November
1307 [RFC 1035] Mockapetris, P., "Domain names - Implementation and
1308 Specification", STD 13, RFC 1035, USC/Information Sciences
1309 Institute, November 1987.
1311 [RFC 1033] Lottor, M., "Domain Administrators Operation Guide", RFC
1312 1033, SRI International, November 1987.
1314 [RFC 2156] Kille, S. E., " MIXER (Mime Internet X.400 Enhanced
1315 Relay): Mapping between X.400 and RFC 822/MIME", RFC 2156,
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
1323 10. Security Considerations
1325 This document specifies a means by which DNS "PX" records can direct
1326 the translation between X.400 and Internet mail addresses.
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.
1346 Allocchio Standards Track [Page 24]
1348 RFC 2163 MIXER MCGAM January 1998
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.
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.
1363 11. Author's Address
1367 SS 14 Km 163.5 Basovizza
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
1402 Allocchio Standards Track [Page 25]
1404 RFC 2163 MIXER MCGAM January 1998
1407 12. Full Copyright Statement
1409 Copyright (C) The Internet Society (1998). All Rights Reserved.
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
1425 The limited permissions granted above are perpetual and will not be
1426 revoked by the Internet Society or its successors or assigns.
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.
1458 Allocchio Standards Track [Page 26]