PMDF System Manager's Guide


Previous Next Contents Index

3.6.3 Implementing Centralized Names

Once you have settled on a naming scheme and dealt with routing issues it is time to implement it. First you should establish an appropriate forwarding mechanism to convert incoming addresses to your internal format, i.e., to accept incoming mail and forward it to the appropriate internal mailbox. Several methods of doing this are discussed in Section 3.5. A specific example is also presented below. After establishing a method to handle incoming mail, you are ready to begin emitting mail to the outside world using your new address format. This is accomplished with either an address reversal database or REVERSE mapping as described in Section 3.3.2. Either of these will convert addresses in outbound mail messages to your centralized naming format. If your format leaves the mailbox portion of addresses alone, then you can accomplish this step more efficiently with domain rewrite rules similar to those described in Section 3.5.2.1. In this case, however, you would use the $R flag instead of $F.

If the conversion from internal addresses to centralized addresses is very algorithmic and an address in one format contains all of the information required to construct the equivalent address in the other format, then you should be able to use FORWARD and REVERSE mappings. However, this is rarely the case. At best, it is usually only possible to do this in one direction (e.g., Jane.Doe@Example.com -> jdoe@Example.com). It is far more likely that you will need to use the alias and address reversal databases, possibly in conjunction with the REVERSE mapping too. This is the situation covered in the example which follows.

Suppose the domain Example.Com has two general purpose computing machines, Marvel.Example.Com and Admin.Example.Com, an enclave of cc:Mail users reached via the gateway ccMail.Example.Com, and ALL-IN-1 IOS users reached via PMDF-MR using the gateway A1.Example.Com. From the outside world all mail to Example employees is addressed to first.last@Example.Com and Example.Com is actually the host Marvel.Example.Com. Suppose further that within ALL-IN-1, the mailbox name space is of the form "Last, First", in cc:Mail it is "First Last", and on vaxa.Example.Com and Admin.Example.Com mailbox names correspond to usernames. The name space for the four machines is shown in Table 3-6.

Table 3-6 Name Space and Centralized Naming Scheme for Example.Com
Internal address Centralized address
Marvel.Example.Com mailboxes
richardsr@Marvel.Example.Com Mr.Fantastic@Example.Com
grimmb The.Thing
storms Invisible.Girl
stormj Human.Torch
   
Admin.Example.Com mailboxes
wchristopher@Admin.Example.Com Warren.Christopher@Example.Com
lbentsen Lloyd.Bentsen
laspin Les.Aspin
jreno Janet.Reno
bbabbitt Bruce.Babbitt
mespy Mike.Espy
rbrown Ronald.Brown
rreich Robert.Reich
dshalala Donna.Shalala
hcisneros Henry.Cisneros
fpena Federico.Pena
holeary Hazel.OLeary
rriley Richard.Riley
jbrown Jesse.Brown
   
ccMail.Example.Com mailboxes
"Harry Blackmun"@ccMail.Example.Com Harry.Blackmun@Example.Com
"William Rehnquist" William.Rehnquist
"John Paul Stevens" John.Paul.Stevens
"Sandra Day OConnor" Sandra.Day.OConnor
"Antonin Scalia" Antonin.Scalia
"Anthony Kennedy" Anthony.Kennedy
"David Souter" David.Souter
"Clarence Thomas" Clarence.Thomas
"Ruth Bader Ginsberg" Ruth.Bader.Ginsburg
   
A1.Example.Com mailboxes
"Burford, Anne"@A1.Example.Com Anne.Burford@Example.Com
"Deaver, Michael" Michael.Deaver
"Donovan, Raymond" Raymond.Donovan
"Meese, Ed" Ed.Meese
"Nofziger, Lyn" Lyn.Nofziger

For this case, we can easily map back and forth between the centralized format and cc:Mail or ALL-IN-1 addresses. However, we can only take advantage of this with outbound messages. For inbound messages you still need to know which host, ccMail.Example.Com or A1.Example.Com, to which to direct a message. We will use an alias database to handle incoming mail.

There should be a DNS MX record for Example.Com which points to Marvel.Example.Com. Moreover, Marvel.Example.Com should either use Example.Com as its official local host name (host name on the local channel), or rewrite Example.Com to its official local host name. By doing this, mail to user@Example.Com is equated to the local channel and user is then looked up in to the alias file or database. This then allows us to use the alias database as a means of forwarding incoming mail for Example.Com to its correct, internal destination. Also, USE_REVERSE_DATABASE should be set to 5,


USE_REVERSE_DATABASE=5 
in the PMDF option file. A setting of 5 causes PMDF to apply the REVERSE mapping and address reversal database to all header addresses instead of just reverse pointing addresses.

The alias database source file shown in Example 3-9, the address reversal database source file shown in Example 3-10, and the REVERSE mapping table shown in Example 3-11 together implement this centralized naming scheme.d For instance, a message coming from jreno@Admin.Example.Com will have its From: address changed to Janet.Reno@Example.Com in accord with the entry in the address reversal database. Similarly messages from "Harry Blackmun"@ccMail.Example.Com and "Sandra Day OConnor"@Example.Com will have their From: addresses changed to Harry.Blackmun@Example.Com and Sandra.Day.OConnor@Example.Com by the second and first entries in the REVERSE mapping table. Incoming mail messages to Janet.Reno@Example.Com will be forwarded to jreno@Admin.Example.Com in accord with the entry in the alias database.

Example 3-9 Alias Database Source File

! 
! Marvel.Example.Com users 
! 
Mr.Fantastic         richardsr@Marvel.Example.Com 
The.Thing            grimmb@Marvel.Example.Com 
Invisible.Girl       storms@Marvel.Example.Com 
Human.Torch          stormj@Marvel.Example.Com 
! 
! Admin.Example.Com users 
! 
Warren.Christopher   wchristopher@Admin.Example.Com 
Lloyd.Bentsen        lbentsen@Admin.Example.Com 
Les.Aspin            laspin@Admin.Example.Com 
Janet.Reno           jreno@Admin.Example.Com 
Bruce.Babbitt        bbabbitt@Admin.Example.Com 
Mike.Espy            mespy@Admin.Example.Com 
Ronald.Brown         rbrown@Admin.Example.Com 
Robert.Reich         rreich@Admin.Example.Com 
Donna.Shalala        dshalala@Admin.Example.Com 
Henry.Cisneros       hcisneros@Admin.Example.Com 
Federico.Pena        fpena@Admin.Example.Com 
Hazel.OLeary         holeary@Admin.Example.Com 
Richard.Riley        rriley@Admin.Example.Com 
Jesse.Brown          jbrown@Admin.Example.Com 
! 
! ccMail.Example.Com users 
! 
Harry.Blackmun       "Harry Blackmun"@ccMail.Example.Com 
William.Rehnquist    "William Rehnquist"@ccMail.Example.Com 
John.Paul.Stevens    "John Paul Stevens"@ccMail.Example.Com 
Sandra.Day.OConnor   "Sandra Day OConnor"@ccMail.Example.Com 
Antonin.Scalia       "Antonin Scalia"@ccMail.Example.Com 
Anthony.Kennedy      "Anthony Kennedy"@ccMail.Example.Com 
David.Souter         "David Souter"@ccMail.Example.Com 
Clarence.Thomas      "Clarence Thomas"@ccMail.Example.Com 
Ruth.Bader.Ginsburg  "Ruth Bader Ginsberg"@ccMail.Example.Com 
! 
! A1.Example.Com users 
! 
Anne.Burford         "Burford, Anne"@A1.Example.Com 
Michael.Deaver       "Deaver, Michael"@A1.Example.Com 
Raymond.Donovan      "Donovan, Raymond"@A1.Example.Com 
Ed.Meese             "Meese, Ed"@A1.Example.Com 
Lyn.Nofziger         "Nofziger, Lyn"@A1.Example.Com 

Example 3-10 Reverse Database Source File

! 
! Marvel.Example.Com users 
! 
richardsr@Marvel.Example.Com     Mr.Fantastic@Example.Com 
grimmb@Marvel.Example.Com        The.Thing@Example.Com 
storms@Marvel.Example.Com        Invisible.Girl@Example.Com 
stormj@Marvel.Example.Com        Human.Torch@Example.Com 
! 
! Admin.Example.Com users 
! 
wchristopher@Admin.Example.Com   Warren.Christopher@Example.Com 
lbentsen@Admin.Example.Com       Lloyd.Bentsen@Example.Com 
laspin@Admin.Example.Com         Les.Aspin@Example.Com 
jreno@Admin.Example.Com          Janet.Reno@Example.Com 
bbabbitt@Admin.Example.Com       Bruce.Babbitt@Example.Com 
mespy@Admin.Example.Com          Mike.Espy@Example.Com 
rbrown@Admin.Example.Com         Ronald.Brown@Example.Com 
rreich@Admin.Example.Com         Robert.Reich@Example.Com 
dshalala@Admin.Example.Com       Donna.Shalala@Example.Com 
hcisneros@Admin.Example.Com      Henry.Cisneros@Example.Com 
fpena@Admin.Example.Com          Federico.Pena@Example.Com 
holeary@Admin.Example.Com        Hazel.OLeary@Example.Com 
rriley@Admin.Example.Com         Richard.Riley@Example.Com 
jbrown@Admin.Example.Com         Jesse.Brown@Example.Com 

Example 3-11 REVERSE Mapping Table

REVERSE 
 
  "*$ *$ *"@ccMail.Example.Com  $0.$1.$2@Example.Com$Y 
  "*$ *"@ccMail.Example.Com     $0.$1@Example.Com$Y 
  "*,$ *"@A1.Example.Com        $1.$0@Example.Com$Y 
 

The alias and address reversal databases are generated from your source files with the PMDF CRDB (OpenVMS) or pmdf crdb (UNIX or NT) utility as described in Sections 3.1.2 and 3.3.2. See Chapter 31 and Chapter 32 for information on the CRDB or crdb utility itself. When generating these databases on VMS, it is best to use an intermediate file so as to eliminate any windows during which the "live" databases are in a mixed state. For instance, use the OpenVMS commands,


$ PMDF CRDB alias-source-file PMDF_TABLE:aliases.tmp
$ PMDF CRDB reverse-source-file PMDF_TABLE:reverse.tmp
$ RENAME PMDF_TABLE:aliases.tmp PMDF_ALIAS_DATABASE
$ RENAME PMDF_TABLE:reverse.tmp PMDF_REVERSE_DATABASE
or, on UNIX systems, the commands,


# pmdf crdb alias-source-file PMDF_ALIAS_DATABASE 
# pmdf crdb reverse-source-file PMDF_REVERSE_DATABASE
or, on NT systems, the commands,


C:\ pmdf crdb alias-source-file PMDF_ALIAS_DATABASE
C:\ pmdf crdb reverse-source-file PMDF_REVERSE_DATABASE

If you are using the PMDF multithreaded SMTP server (tcp_* channels), then be sure to restart the SMTP server after generating new database files. If you have merely added entries to an existing database file, then you do not need to restart the SMTP server.

Note

d Many sites maintain a single source file from which, using a site-supplied procedure, they generate alias and reverse database source files.


Previous Next Contents Index