While originally developed for use in an Internet-wide RFC 822/X.400 gateway environment, the RFC 2156 mapping tables are more commonly used to simplify addressing problems between X.400 and RFC 822 users within an enterprise or across a few interconnected organizations.
This example assumes that the fictitious, ACME Corp is using PMDF-X400 to interconnect their X.400 user base with their non X.400 users. They have two organizations on the X.400 side, assigned X.400 addresses of the form:
/O=Administration/PRMD=ACME/ADMD=XYZ/C=US /O=Bean Counters/PRMD=ACME/ADMD=XYZ/C=US
The non X.400 side of the house is using Internet domain names underneath of ACME.COM, such as:
po1.ccmail.acme.com vax.rnd.acme.com unix1.engineering.acme.comBefore applying RFC 2156 mapping with the
x400_domains.com
procedure (OpenVMS) or x400_domains.tcl
TCL script (UNIX),
these addresses look rather daunting to the X.400 users:
/DD.RFC-822=user(a)po1.ccmail.acme.com/O=Gateway/PRMD=ACME/ADMD=XYZ/C=USwhile the non-X.400 users have to put up with things like:
/G=First/S=Last/O=Administration/PRMD=ACME/ADMD=XYZ/C=US/@X400.ACME.COMTo make this a little easier to use, it's decided to equate some domain names with X.400 ORnames and vice versa. In particular, these pairings will be created:
/O=ccMAIL/PRMD=ACME/ADMD=XYZ/C=US ccmail.acme.com /O=R and D/PRMD=ACME/ADMD=XYZ/C=US rnd.acme.com /O=Engineering/PRMD=ACME/ADMD=XYZ/C=US engineering.acme.com /O=Administration/PRMD=ACME/ADMD=XYZ/C=US admin.acme.com /O=Bean Counters/PRMD=ACME/ADMD=XYZ/C=US beans.acme.com
Note that the first three are already existing domains on the RFC 822 side, for which new ORnames are invented, while the latter two are existing ORnames for which new domains are specified.
The mapping files, table1.map
and table2.map
to accomplish the address translations look like this:
6
# # TABLE 1 # ORname -> domains mappings for ACME.COM # O$R and D.PRMD$ACME.ADMD$XYZ.C$US#rnd.acme.com# O$Administration.PRMD$ACME.ADMD$XYZ.C$US#admin.acme.com# O$Bean Counters.PRMD$ACME.ADMD$XYZ.C$US#beans.acme.com# PRMD$ACME.ADMD$XYZ.C$US#acme.com#
# # TABLE 2 # domains -> ORname mappings for ACME.COM # rnd.acme.com#O$R and D.PRMD$ACME.ADMD$XYZ.C$US# admin.acme.com#O$Administration.PRMD$ACME.ADMD$XYZ.C$US# beans.acme.com#O$Bean Counters.PRMD$ACME.ADMD$XYZ.C$US# acme.com#PRMD$ACME.ADMD$XYZ.C$US#
Note that we've taken a slight shortcut here. CCMAIL.ACME.COM and ENGINEERING.ACME.COM can be handled by a single more general rule, the last one in each table, because sub-domains will, by default, be placed into separate, decreasing ORname attributes. This also handily takes care of any other domains, to a depth of up to five more levels, under ACME.COM by placing the subdomain names into O, OU1, OU2, OU3, and OU4 attribute fields to whatever depth is necessary.
Conversion of TABLE 1 and TABLE 2 into PMDF rewrite rules and PMDF-X400
address conversion databases is achieved on OpenVMS by executing the
procedure x400_domains_driver.com
shown in Example 41-3
, or on UNIX by executing the Tcl script
x400_domains_driver.tcl
shown in Example 41-3 . When the
procedure is done, the x400.rules
configuration file
containing rewrite rules for PMDF-X400 needs to be augmented by adding
a reference to the new x400_domains.rules
file. Edit the
x400.rules
file in the PMDF table directory and add, for
instance at the bottom of the file, the following line on OpenVMS:
<PMDF_TABLE:x400_domains.rulesor on UNIX add the line:
</pmdf/table/x400_domains.rulesNote that no blank lines are allowed in the
x400.rules
file. If a compiled PMDF configuration is in
use, recompile and reinstall the configuration so that the new rules
will be seen.
Once in place, these rules now allow the X.400 user to, for example, reach the cc:Mail users with addresses like:
/S=user/OU=po1/O=ccMail/PRMD=ACME/ADMD=XYZ/C=USSimilarly, users used to RFC 822 addresses no longer need to worry about X.400 ORnames. The can use much simpler addresses such as:
Givenname.Surname@admin.acme.com
@
character as the value. For instance, a site that wished
its X.400 addresses not to use an O (Organization) field at all in
favor of simply using OU (Organizational Unix) fields, and that wished
to map those various OU groups under the domain .x400.acme.com, might
use something like: # TABLE 1: ORname -> domains mapping for ACME.COM O$@.PRMD$ACME.ADMD$XYZ.C$US#x400.acme.com#