UK sendmail has only a few `classes' to play abouut with, so allocates them to
the largest sets of subdomains. Building a UK-wide delivery scheme, the esc
subdomain of cam does not figure as a large enough subdomain to warrant a
class of its own. You should therefore find in ruleset 15 or 17 an explicit
entry for bul etc.
The real answer is that attempts to do this are indeed wrong. The sites
should make a small change to ruleset 16 to punt to a relay host if they don't
have an entry, rather than trying the optimisation (that's how I run my
internal hosts)
Alternatively they should run IDA sendmail, build the full tables into a dbm
file, and give an error if there is no route.
Anyway a short edit of rulset 16 to give:
R$+@$+ $:$>17$1@$2 initial routing
R<$+>$+ $@<$1>$2 success, return triple
# initial match failed, punt to relay
R<$+> $@<$1>relay.dom.mailer
where relay.dom is a competent mailer (pp, IDA sendmail, smail, mmdf)
and mailer is the channel to get there is what is needed.
The optimisation only happens if the `child' domain is not matched, ie a
direct link is indeed the prefered method. If the sites in question have an
up-to-date nrs table, then they should be attempting to deliver directly,
equally since you have no mail context for esc.cam.ac.uk, that should not
match as deliverable.
| 2.) Are there any options that allow you to choose whether or not you
| use this optimisation?
Not as things stand --- it seems a reasonable 'best guess' vs junking the
message as addressed to an unregistered site (my preferred option). I suggest
you get those sites to update their NRS tables. The algorithm is really
if domain deliverable then send directly
else while subdomain not deliverable
truncate subdomain # assumes all top domains deliverable
send to subdomain (which might be a top domain)
/* NOTREACHED */ if subdomain == NULL give error.
| I appreciate that whether this optimisation is the right thing to do
| or not is probably a "religious" argument. I would argue that it is
| not the correct thing to do as it produces sub-optimal routing and
| can, as it has in this case, produce serious problems for system
| maintainers and great inconveniense for users.
|
| I look forward to your comments.
|
|
| Tim Brooks
| Postmaster(@uk.ac.cam.ucs, @uk.ac.cam.phx, @uk.ac.cam.cus, @uk.ac.cam.ppsw)
| Postmaster(@ucs.cam.ac.uk, @phx.cam.ac.uk, @cus.cam.ac.uk, @ppsw.cam.ac.uk)
|
| University of Cambridge Computing Service Tel: 0223-334709, Int: +44 223 334709
| New Museums Site Fax: 0223-334678, Int: +44 223 334678
| Pembroke Street Telex: 81240 CAMSPL G
| CAMBRIDGE E-Mail(JNT): T.Br...@UK.AC.Cam.UCS
| CB2 3QG United Kingdom "(Internet): T.Br...@UCS.Cam.AC.UK
| X.400: /I=T/S=Brooks/OU=Computing-Service/O=Cambridge/PRMD=UK.AC/ADMD= /C=GB/
But the child domain exists. It is just not included in the .cf file.
I enclose a few *very* recently generated extracts from a local uk
sendmail.cf file:
DAcam
CAadmin amtp ast ast-star bio ch chemcrys cheng cl csi cus econ eng esc
CAgeog hslmc infodev maths mbcr mill mrc-apu mrc-bsu mrc-dunn mrc-lmb
CAmrc-lmba mrc-lmbv msm phar phx phy phy-hep phy-ravx phy-tcm pmms ppsw
CAppsw1 ppsw2 sel statslab ucs ula vms-supp west
Note the total absence of child domains for those "parents" that
already exist. How can it possibly deliver them directly if it
doesn't know about them?
I (PPSW) knows precisely how to deliver to cam.esc - it is cam.esc
which can't accept the mail, and it is on the PPSW that we have fudged
it so that those sites that source route via cam.esc for cam.esc.*.
Tim Brooks
My questions are therefore:
1.) Is this optimisation the correct thing to do? Just because a
domain appears to be the child of another domain does not mean that it
is right to route all the child's mail via the parent. Surely it is
better to send the mail as directly as possible?
2.) Are there any options that allow you to choose whether or not you
use this optimisation?
I appreciate that whether this optimisation is the right thing to do
Thanks for the pointers. Unfortunately the subdomains don't appear
*anywhere* in the .cf file, hence the source routing.
Obviously there isn't an easy answer to this problem. It seems that
there is no such thing as a "standard" uk.sendmail configuration that
might need fixing, just like there is no standard sendmail.cf file.
At least, using PP, I can get the mail where it is meant to go until
such time as esc is operational and can do the routing itself.
Thanks anyway,
Tim