Sendmail ist von Natur aus extrem neugierig. Daran ist eigentlich nichts auszusetzen, es sei denn, der nächste erreichbare Domain-Name-Server liegt hinter einer Wählleitung und die Einwahl kostet jedesmal wenigstens sechs Pfennig.
Im Wesentlichen hat Sendmail drei Gründe, den DNS zu bemühen:
Der letzte Punkt ist mit Abstand der nervigste. Jedesmal, wenn Sendmail startet, kontaktiert es den DNS. Das heißt, jedesmal, wenn eine Mail eingeliefert wird (per UUCP oder von einem lokalen Programm), wählt sich entwerder der Rechner ins Netz ein oder Sendmail wartet auf ein Timeout. Die Krönung dieses Leidens sind die Startup-Skripte der (nicht mehr existenten) DLD (Deutsche Linux Distribution): Sendmail wird gestartet, kontaktiert den DNS, was aber nicht geht, weil das ISDN-Subsystem noch nicht initialisiert ist. Sendmail kommt aber nicht mehr dazu, vom Timeout zu erfahren, weil das Skript vorher die Geduld verliert und Sendmail wieder beendet.
Es gibt es generelle und eine spezielle Lösung des Problems. Zunächst die generelle: Man beschaffe sich einen Nameserver. Bind ist eine Möglichkeit dafür. Dann muss man allerdings auch noch Bind administrieren. Es gibt auch Nameserver, die nur Caching anbieten. Gute Erfahrungen habe ich mit PDNSD, dem Persistent Name Service Caching Daemon, gemacht.
Die spezielle Lösung ist, Sendmail seine Neugier auszutreiben. Die Maßnahmen in der gleichen Reihenfolge wie oben:
define(`confDONT_EXPAND_CNAMES',`True') FEATURE(nocanonify)
define(`SMART_HOST',`smtp:studserv.uni-leipzig.de') FEATURE(mailertable,`hash -o /etc/mailertable')
define(`confDONT_PROBE_INTERFACES',`True')