Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!seismo!mimsy!oddjob!gargoyle!ihnp4!ptsfa!vixie!paul
From: paul@vixie.UUCP (Paul Vixie Esq)
Newsgroups: comp.mail.misc
Subject: Re: address writing by gateways (was: NO NO NO NO NO)
Message-ID: <715@vixie.UUCP>
Date: Sun, 12-Jul-87 13:12:08 EDT
Article-I.D.: vixie.715
Posted: Sun Jul 12 13:12:08 1987
Date-Received: Wed, 15-Jul-87 00:36:15 EDT
References: <684@vixie.UUCP> <8120005@hpfclp.HP.COM>
Reply-To: paul@vixie.UUCP (Paul Vixie Esq)
Organization: Vixie Enterprises, San Francisco
Lines: 102

>> = Paul Vixie
> = John Diamant

>>[Paul Vixie wonders why every host in a route-addr needs to be registered. 
>>Suggests that it may be a political thing, because ARPA dislikes being
>>used as a transport for non-ARPA mail (that originates and terminates on
>>non-ARPA hosts).]
>
>It is not a political restriction.  It is to avoid having things that look
>like domains but can't be replied to because they aren't properly registered
>(in other words, machines won't know who they are or be able to look them
>up).  Allow me to quote from RFC-822:

[relevant quote omitted]

>Notice that the syntax specification refers to the word domain and that
>the definition of domain says "registered."  This is pretty explicit.  If
>it isn't registered, it isn't legal in a source route.

It seems unnecessary, since nobody needs to reply to anyone in the middle of
a route -- just the first.  The others are relative.  If they all have to be
registered, then one assumes that every host will know how to get mail to 
them, and wouldn't need route-addrs.

Still, I agree with your interpretation of RFC-822 in this respect.  I guess
this IS a valid reason to use %@ instead of <@,:@>.  But it seems like a
gratuitous restriction, for the reason I stated above.

>> Still, the % operator is not absolutely neccessary in a pure RFC822 or UUCP
>> world -- there is a way in each standard to specify a route unambiguously.

Well, even I disagree with this now.  The only routing syntax available in
the SMTP world is %@, apparently; if there is no standard that specifies "%",
then routes cannot be rewritten between UUCP- and SMTP-based networks, and
gateways between them will necessarily not be perfect.

>> >When you translate from "!" addresses to
>> >RFC style addresses, how do know whether to use a source route or a "%?"
>> 
>> I'd say always use a source route.  Is this unfeasable?  Are there Internet
>> sites (here I mean DDN-only sites) that don't grok source-routes, and need
>> %-routes?  This sounds like the point to push, if so.

Again, critiquing myself, I'd now say to use "%" for routes rewritten from a
UUCP network that will be forwarded on an SMTP network ...

>Well, one of the main reasons for using "%" is for unregistered machines.

... and that's why.

>Also, if a "%" came in and was translated to
>"!" and then left again, but was now as source route, then you've illegally
>applied an interpretation to it.

The envelope address in the UUCP network should always have a pure !-route in
it (if it doesn't, then is still SHOULD :-)).  When a gateway host gets a
message from its UUCP side, and detects that it needs to be forwarded to an
SMTP network, it can rewrite the envelope address as much as it wants to do.
The header address may be in normal, domain form, in which case it should be
left alone so that replies can use a new (and perhaps better) source route; if
the header addresses are in !-form, well, they aren't protected by RFC-822
(the whole thing would be a local part), and can be re-written into the
routing syntax of the new network (SMTP, in this case).

The fact that SMTP doesn't have a routing syntax (route-addrs need registered
hosts only, and % is non-standard) stops this scheme in its tracks.  Can we
bend or push either of those restrictions?

>I think there are many machines that don't handle source routes
>properly.  However, that by itself is only an argument to get those
>machines fixed, not a reason to use "%."  The reason "%" appears to be
>needed is to handle unregistered hosts.

Well, if a route is to contain (potentially) the contents of a UUCP path
(after it passes through a UUCP->SMTP gateway), we need a routing syntax
that can handle unregistered hosts.

>I gave it a shot.  What do you think now?  This situation is deceptive.
>Scott McGregor (also of HP) and I tried to write an RFC to clarify this
>problem and we discovered the deeper we got, the more complicated the
>RFC got, and the worse the problem became.  We did convince Mark Horton
>(author of RFC-976) the a real problem did exist with "%" and some ambiguities
>in RFC-976, but we never came up with a satisfactory additional RFC
>to resolve the issues (though we did write one that isn't satisfactory).
>The basic problem was that no matter how you looked at it, you needed to
>know too much about your next hop machine to know how it would interpret
>addresses (foo!bar%baz@foobar -- is the "%" interpreted before or after the
>"!"?).

I think you're right about % being insufficient, and you seem to be right 
about <@,:@> being insufficient, and I'm not sure what to suggest.  Maybe
we can remove the registration restriction on route-addrs -- as I stated
way up there, it doesn't seem to be necessary (and it certainly isn't
helpful in this case!).  Alternatively, an RFC that specified "%"/"@"/"!"
and their relationship to eachother would make "perfect" UUCP/SMTP gateways
possible.  You can send me your unfinished RFC, if you think it will
enlighten me...
-- 
Paul A. Vixie, Esq.		   "A viler evil than to throw a man into a
paul%vixie@uunet.uu.net		    sacrificial furnace, is to demand that he
{uunet,ptsfa,hoptoad}!vixie!paul    leap in, of his own free will, and that he
San Francisco, (415) 647-7023	    build the furnace, besides."  (Ayn Rand)