[comp.mail.uucp] When to reroute

vixie@decwrl.dec.com (Paul Vixie) (09/14/88)

# I would rather see a standard way to explicitly request a site to re-route
# and everything else should be left alone if deliverable.

You've got the seeds of your answer: if the supposed next-hop-to-send-to is
not something you speak to "directly", feel free to reroute.  But if it's a
neighbor which you've published in the UUCP Map (which is likely, if someone
knows to try to use your connection to it), you should fulfill your implicit
promise to deliver the darned message to the neighbor.

Summary: don't reroute unless the alternative is bouncing it.

# Then news software running on machines that do not have the map data could
# pass replies off to the nearest site that knows how to route it. 

The above solution will work fine with the "mailpaths" mechanism in B News,
or with the "smart-host" mechanism in Smail.  In either case, you just
forward the message to your nearest smart router, writing up the path as
though the place you want to get to was a neighbor of the place you are
forwarding it to:

	foo!bar!smarthost!%s

...will expand "user@mumble.uucp" or "mumble!user" into

	foo!bar!smarthost!mumble!user

...and the fact that "mumble" is not a directly reachable neighbor will clue
"smarthost" in on the need to find a route.

This works.  It works today.  If we could get the rabid rerouters off their
high horse and convince them somehow to be more polite (and to honor the
implicit promise many people see in their UUCP map entry), we would all be
able to spend more time advancing the state of the art instead of wondering
why our last message to some distant friend was never answered.

I can mark active rerouters dead in my own pathalias build, but sites that
don't do that might end up either not being able to reach me (because a
rabid rerouter decided to send the mail to Italy) or, worse, All The Mail
In The Universe will suddenly start flowing through my machine because
someone mistakenly published a shortcut through my machine and some distant
large site insists that anything coming through their machine bound for
some large fraction of the internet _must_ go through my machine because
it's suddenly the "most efficient way".  Pfaa.

Don't mind me, I'm just bellyaching.
-- 
Paul Vixie
Work:    vixie@decwrl.dec.com    decwrl!vixie    +1 415 853 6600
Play:    paul@vixie.sf.ca.us     vixie!paul      +1 415 864 7013

robert@hemingway.WEITEK.COM (Robert Plamondon) (09/28/88)

If you are an active re-router, you should indicate such in your
published map entry. Here's how: Mark all your connections as DEAD.
This saves the rest of us the bother of manually marking YOUR site as
DEAD when we discover you are an active re-router.
-- 
    Robert Plamondon
    robert@weitek.COM
    "No Toon can resist the old 'Shave and a Hair-Cut'"

lmb@vsi1.UUCP (Larry Blair) (09/28/88)

In article <802@bacchus.dec.com> vixie@decwrl.dec.com (Paul Vixie) writes:
=# I would rather see a standard way to explicitly request a site to re-route
=# and everything else should be left alone if deliverable.
=
=You've got the seeds of your answer: if the supposed next-hop-to-send-to is
=not something you speak to "directly", feel free to reroute.  But if it's a
=neighbor which you've published in the UUCP Map (which is likely, if someone
=knows to try to use your connection to it), you should fulfill your implicit
=promise to deliver the darned message to the neighbor.

It's not often that I disagree with Paul on this subject, but in this case
I feel that he's trying too strickly to adhere to the no-reroute concept.

In the case of foo!bar!baz!user, foo has the right to use whatever path it
wants to to pass the mail to bar.  Foo's obligation is only to send the mail
to bar.  This satisfies Paul's "implicit promise" while allowing knowledgeable
adaptation for local conditions.
-- 
Larry Blair   ames!vsi1!lmb   lmb%vsi1@ames.arc.nasa.gov

mark@jhereg.Jhereg.MN.ORG (Mark H. Colburn) (09/28/88)

>wants to to pass the mail to bar.  Foo's obligation is only to send the mail
>to bar.  This satisfies Paul's "implicit promise" while allowing knowledgeable
>adaptation for local conditions.

Unfortunately, it does, and it does not.  It only provides the "implicit
promise" if and only if no sites along foo's route to bar decide to
reroute as well.  

Here is a contrived pathalogical example using the mail path 
foo!bar!baz!user:

Foo re-writes the original path to site1!site2!bar!baz!user. If site1 
decides they know a better route to baz (say site bar is down), they 
could in turn route it, possibly to: baz!user%sitec@sited (god what a 
twisted address).   Sited gets the message and turns it back into 
baz!user@sitec and may or may not be able to route the message.

The problem with this last address (baz!user@sitec) is that it is not 
an explicit address.  The rules for parsing that address are completely
undefined.  Therefore the mail could go to baz!(user@sitec) or
(baz!user)@sitec or it may go to the dead-letter bin....

Eventually, the message may or may not get to baz!user.  Unfortunately 
this kind of routing (mixing bangs and ats) is performed by several 
mailers around the net.

Therefore, the only way the "implicit promise" is kept is if a SINGLE 
host along the path reroutes providing a valid address to other sites 
which do not reroute, or all sites which do re-route provide valid, 
RFC-822 conformant addresses.

There is no way to guarantee that a single host rewrites the path 
unless an additional header were put into the mail envelope which 
providded a list of sites which re-routed.  Something like a line which 
read Xre-route: <site> [<optional-reason>]; each site which re-route 
could put the line  in.  I would like to see this anyways, that way when 
a message bounces, you can track down the sites which rerouted it 
incorrectly.

The latter solution (everybody generates RFC-822 conformant addresses) 
is a better solution, but, unfortunately, no one which is likely to 
happen in the near future...

-- 
Mark H. Colburn                  "They didn't understand a different kind of 
NAPS International                smack was needed, than the back of a hand, 
mark@jhereg.mn.org                something else was always needed."

vixie@decwrl.dec.com (Paul Vixie) (09/29/88)

As Larry says, it's not often that we disagree.  I muddled for a few minutes
trying to decide this, and decided to be ambiguously conservative.  To those
who think I refuse to change my mind:

In article <1036@vsi1.UUCP> lmb@vsi1.UUCP (Larry Blair) writes:
# In the case of foo!bar!baz!user, foo has the right to use whatever path it
# wants to to pass the mail to bar.  Foo's obligation is only to send the mail
# to bar.  This satisfies Paul's "implicit promise" while allowing knowledgeable
# adaptation for local conditions.

Agreed.  I stand corrected.
-- 
Paul Vixie
Work:    vixie@decwrl.dec.com    decwrl!vixie    +1 415 853 6600
Play:    paul@vixie.sf.ca.us     vixie!paul      +1 415 864 7013