Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site umcp-cs.UUCP
Path: utzoo!linus!philabs!cmcl2!seismo!umcp-cs!chris
From: chris@umcp-cs.UUCP (Chris Torek)
Newsgroups: net.mail
Subject: Re: Mail addressing and routing
Message-ID: <1156@umcp-cs.UUCP>
Date: Thu, 8-Aug-85 07:42:01 EDT
Article-I.D.: umcp-cs.1156
Posted: Thu Aug 8 07:42:01 1985
Date-Received: Sun, 11-Aug-85 05:15:32 EDT
References: <644@adobe.UUCP> <734@vortex.UUCP>
Organization: U of Maryland, Computer Science Dept., College Park, MD
Lines: 96
Let me see if I can take Lauren's suggestion and get pseudo-code out of
it. If I ever get shanghaid into hacking mailers, I would probably
implement the "UUCP" "domain" like this:
rmail: given !, just forward by direct UUCP
to the first host in , doing what rmail has
always done with these. If it fails, return
to sender. Rmail is a transport system, not a
router.
Note that I ignore any @-signs in !.
rmail: given with no !s, hand it to mailer.
mailer: given ! with no @-signs, just hand it
off to uux. (Pretend to be a transport system; no
routing.)
mailer: given @, look up "string" in our
local UUCP database and see if we have a route for
it. (I.e., given "cbosgd.att.uucp" see if we know
how to get to "cbosgd.att".) If so, then it should
hopefully be a fully specified ! string, and I hand
that straight to uux (without even looking at it).
(In this case I would get "seismo!cbosgd" as the
full route. Note that you can put arbitrary stuff
in the database if you think it will "work right".)
Otherwise, do a "nameserver lookup" on the "domain"
part of "string" (excluding UUCP---there is no top
level uucp name server), again by a local UUCP
database lookup (different database though). E.g.,
if I don't know "cbosgd.att" then I look for "att".
If I can get there, then I take the string I get
back from that, append the original address, and
hand *that* to uux.
Just for completeness, here's an example if I get
(say) user@tinyhost.smalluniv.bigcity.calif.uucp:
1. look under "full routes for hosts" for
tinyhost.smalluniv.bigcity.calif.uucp; fails.
2. look under "partial routes for domains" for
smalluniv.bigcity.calif.uucp; fails.
3. look under "partial routes for domains" for
bigcity.calif.uucp; fails.
4. look under "partial routes for domains" for
calif.uucp; succeeds; I get "seismo!vortex"
(vortex is such a smart router :-) ), so I
send to
seismo!vortex!user@tinyhost.smalluniv.bigcity.calif.uucp
In other words, if I don't have a route for the full domain name,
I will try to find a route for what I have put into my database as
the "domain server" for the partial domain. It is entirely the
responsibility of *me* to have correct data in my UUCP database.
My database can be as extensive (or not) as I want.
Also, I am depending on myself (again) not to put "dumb" hosts in
my "partial routes for domains" table. I could (it would be a bad
idea but I could) put myself in for something, causing a mail loop.
I could also put a host in that I thought was smart, but actually
wasn't, again causing a mail loop. If I find I've done that, I
change my database.
Also, if I am a "partial route for domains" for someone else for
maryland.uucp, then things work too. Suppose someone else, let's
call him otherguy@hishost.hisuniv.uucp just to give him a "full
name", uses my scheme to send to user@sphinx.ee.maryland.uucp and
gets me as his partial route for maryland.uucp. He sends to
hplabs!hao!seismo!umcp-cs!user@sphinx.ee.maryland.uucp. Now (if
everyone is using my algorithm, or if they're running v7 rmail),
that finally gets here and all the ! stuff has been used up and
rmail gets "user@sphinx.ee.maryland.uucp". Since this doesn't have
!s, rmail pops it over to the mailer, which looks up
sphinx.ee.maryland.uucp and finds it, and sends the mail off to
"eneevax!umd-sphinx!user"---which is the right place. (Or maybe
it can only handle ee.maryland.uucp and routes it to
"eneevax!user@sphinx.ee.maryland.uucp" for further processing.)
Finally, down!honey can still do his tricksy pathalias stuff and
send to what I label "user@sphinx.ee.maryland.uucp" by sending to
"princeton!seismo!umcp-cs!eneevax!umd-sphinx!user", and that works
too. (Isn't backwards compatibility fun?)
Of course, this does not address what happens in the user interface,
nor with crossover between DARPA Internet and UUCP (but we're not
supposed to do that anyway). I'll think about that later. . . .
Another problem is that I have this huge UUCP routing database
duplicated at lots of UUCP sites. down!honey just has a huge
pathalias database duplicated at lots of UUCP sites, which is
clearly better, right? :-)
--
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 4251)
UUCP: seismo!umcp-cs!chris
CSNet: chris@umcp-cs ARPA: chris@maryland