🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.mail.sendmail
Article #2857

Sendmail/resolver problem

#2857
From: Michael C. Berch
Date: Thu, 13 Oct 1988 21:47
50 lines
2885 bytes
The discussion of sendmail/resolver interaction and rooted vs.
non-rooted lookups prompts me to post in search of a solution -- or at
least a pointer in the right direction -- to our sendmail/resolver
problem.  I'm pretty sure it can be fixed in sendmail.cf (possibly by
the method mentioned of adding a "." to indicate a rooted domain
name), or perhaps elsewhere in the resolver/server area.

The problem is that we are unable to send mail *locally* among our
machines when the sending machine is unable to communicate with either
the second-level name server above it, or with the Internet (i.e., the
root servers).  Presumably this should not occur.

Assume our two machines are a.foo.bar.gov and b.foo.bar.gov, and someone 
on "a" sends to "user@b".  Our sendmail.cf canonicalizes "b" by appending 
the default domain name, "foo.bar.gov", and the host "b.foo.bar.gov" is 
sent to the resolver.  When sendmail goes out to the server, the query 
actually is

	res_mkquery(b.foo.bar.gov.foo.bar.gov)     [other args omitted]

i.e., it appends the default domain name *again*.  This query is
answered NXDOMAIN, and it drops the least-significant-part of the appended 
domain and tries again:

	res_mkquery(b.foo.bar.gov.bar.gov)

If no server for bar.gov is reachable, the query fails and the mail is
requeued with "Name Server Failure for host b.foo.bar.gov".  If the bar.gov
NS is reachable, the query is answered NXDOMAIN, and it tries again:

	res_mkquery(b.foo.bar.gov.gov)

which requires a root server, and if we can't reach the Internet, then
it fails as above and is undeliverable.

The sendmail binary involved is denoted "SMI 4.0" and is the one
mentioned by Casey Leedom and Bill Nowicki in the discussion of
Sun mx-sendmail's on NAMEDROPPERS recently.   I don't personally 
have the source but presumably we have access to it here.

What I would like to do is have sendmail not need to loop local
queries through the root at all.  I'm sure it shouldn't have to.
The two alternatives seem to be  1) DON'T canonicalize local names in
the sendmail.cf before they are resolved, allowing the resolver
query-builder to tack the default domain on itself, or 2) make sure
that all names, including local names, are rooted names so that the
local server will give a quick, authoritative answer on the first try.

Michael C. Berch 
mcb@tis.llnl.gov / uunet!tis.llnl.gov!mcb / ames!lll-tis!mcb
Technical Details
Message-ID: <22426@tis.llnl.gov>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!bloom-beacon!apple!bionet!agate!helios.ee.lbl.gov!lll-tis!mcb

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!bloom-beacon!apple!bionet!agate!helios.ee.lbl.gov!lll-tis!mcb
From: mcb@tis.llnl.gov (Michael C. Berch)
Newsgroups: comp.mail.sendmail
Subject: Sendmail/resolver problem
Message-ID: <22426@tis.llnl.gov>
Date: 13 Oct 88 21:47:44 GMT
Reply-To: mcb@tis.llnl.gov (Michael C. Berch)
Organization: Lawrence Livermore National Laboratory, Livermore CA
Lines: 50