I'm trying to figure out whether or not source-route addressing is strict
or loose. This is mostly a philosophical question, since I think I already
know the answer.
In the context of 821 predating DNS, the use of source-routes should be
interpreted as strict, since a list of "hosts" is all that was available.
However, consider that a routing agent could have a local routing table
that redirected traffic for a specific mail-domain to another relay
(without rewriting the envelope). Although 821 doesn't define static
routing and precedence issues, the use of static routes wasn't exactly an
unknown concept. Taken together, source-route addresses that were routed
with static maps would be loose, even though they were defined within a
With 2821, this is even more jello-like, since each hop in the path may be
resolved with MX resource recrods (defined, but not for use with source
routes), or with any static maps (still undefined). The terminology in
Appendix C makes it appear that the source-route construct is still
intended to be used with "hosts" but since the hosts are FQDNs, they
should be treated as mail domains, with MX being applied.
This means that with EG relay1:user(_at_)hosta
originator --> submission
submission router does MX/static lookups
submission --> relay1
relay1 router does MX/static lookups
MX hosta=relay2, pref 10
relay1 --> relay2
relay2 router does MX/static lookups
relay2 --> hosta
So it is loose in practice, even though it is implied as strict.
Is that off-base? I can't find anything that would either endorse or
reject this output.
A better question here would be "what is the implementation norm?" Do most
implementations treat source routes as strict, rejecting mail if a direct
connection cannot be established, or do they process the next-hop of the
source-route address through the routing table?
Eric A. Hall http://www.ehsco.com/
Internet Core Protocols http://www.oreilly.com/catalog/coreprot/