heiko@methan.chemie.fu-berlin.de (Heiko Schlichting) (03/23/91)
Hello,
we noticed a *very* strange behavior of smail 3.1.20 using the
options "-bt -d<nn>" with <nn> in 50 to 99.
With our routers-File (see below) we get the following answers:
echo "test@test" | smail -bt -d49 :
smail> rtd_gethostbyaddr called
smail> rtd_uuname called
smail> rtd_gethostbyname called
smail> rtd_pathalias called
smail> bsearch_lookup: looking for <test>
smail> bsearch_lookup: looking for <.test>
smail> rtd_smarthost called
smail> test@test: test matched by smart_host:
smail> use default transport smtp for test@test
smail> routed test@test --> test@test at unido.informatik.uni-dortmund.de
smail> host: unido.informatik.uni-dortmund.de user: test@test transport: smtp
This seems absolutly normal because unido.informatik... is our
smarthost.
But look at the difference when I use debug-level 50 instead of 49:
echo "test@test" | smail -bt -d50 :
smail> preparse_address(test@test) entry:
smail> preparse address returns: test@test
smail> parse_address called: address=test@test
smail> parse_address: MAILBOX: target=test, remainder=test
smail> route_remote_addrs called
smail> rtd_gethostbyaddr called
smail> rtd_uuname called
smail> rtd_gethostbyname called
smail> test@test: test matched by inet_hosts:
smail> rtd_pathalias called
smail> rtd_smarthost called
smail> parse_address called: address=test
smail> parse_address: LOCAL: remainder=test
smail> user: test transport: local
THIS looks very abnormal... and it appears *only* if the length of the
username is equal to the length of the hostname. If I try this with
tes@test or test@testing the mail is delivered to the smarthost.
But why does the inet_hosts-router (=gethostbyname, see below) match?
Especially when there is a parameter "required=fu-berlin.de".
Unnecessary to mention that there is no host "test[.chemie].fu-berlin.de" in
the nameserver and that we have a "domain chemie.fu-berlin.de" in our
/etc/resolv.conf.
What is the difference between debug-level 49 and 50?
And here is our routers-Configuration File (which is not unusual, I think):
(excuse the *German* comments ;-)
--- cut here ---
#
# /usr/local/lib/smail/routers - Smail 3.1 routing festlegen
#
# Aenderung: 28.02.91 (hs) uucp_neighbors fuer {host}.direct
# eingefuehrt. Gute Moeglichkeit, um
# neue UUCP-Verbindungen zu testen.
# Zur Zeit nur fuer Transport UUX
# geeignet, das methods wird absichtlich
# nicht beachtet.
# Routing-Reihenfolge:
# 1. numerische Internetadressen
# 2. Direkt angeschlossene UUCP-Sites (nur fuer Testzwecke!)
# 3. Rechner auf dem lokalen Netzwerk der FU
# 4. Routen nach den Angaben im Pathalias-Output
# 5. Smart Host
# 1. numerische Internetadressen
#
# Adressen wie user@[130.133.2.81] werden zuerst behandelt, weil
# die eckigen Klammern die anderen Router verwirren (siehe Smail-Doku).
inet_addrs:
driver = gethostbyaddr, # router to match IP domain literals
transport = smtp; # deliver using SMTP over TCP/IP
fail_if_error, # fail malformed domain literal addrs
check_for_local # see if this is really the local host
# 2. Direkt angeschlossene UUCP-Sites (nur fuer Testzwecke!)
#
# Nur fuer Testzwecke in das Routers-File genommen!
# Es wird nur benutzt, wenn der Hostname als "host.direct" eingetippt
# wird. Zum Beispiel wird "neon.direct" in das Spoolverzeichnis von
# neon geschrieben, auch wenn wir eigentlich tmp.mbx.sub.org!utopia!neon
# routen.
uucp_neighbors:
driver = uuname, # use a program which returns neighbors
# method = methods, # Ausnahmsweise keine Methods benutzen,
# sondern IMMER uux!
transport = uux;
cmd = /usr/bin/uuname, # specifically, use the uuname program
required = direct,
domain = direct
# 3. Rechner auf dem lokalen Netzwerk der FU
#
# Nur Rechner die ein "fu-berlin.de" in der Adresse haben werden in
# jedem Fall direkt zugestellt. Moeglicherweise sollte man hier spaeter
# auch die MX-Records auswerten. Da es zur Zeit kaum MX-Records an
# der FU gibt, kann man sich das auch schenken (Minimierung der
# Fehlerquellen und weniger Netzzugriffe)
inet_hosts:
driver = gethostbyname,
transport = smtp;
required = fu-berlin.de
# 4. Routen nach den Angaben im Pathalias-Output
#
# Der Pathalias-Output (steht bei uns in /usr/local/lib/smail/paths)
# wird als Grundlage fuer das Routing genommen. Zahlreiche SMTP-
# Verbindungen sind in /usr/spool/uumaps/u.sub.smtp eingetragen, wie
# zum Beispiel die Verbindung methan... mit opal... und die direkte
# Verbindung von methan... mit uunet...
# Auszuege der DNet-Map findet man in /usr/spool/uumaps/u.sub.x, damit
# die an Unido haengenden Rechner auch ueber unido geroutet werden. Damit
# kommt es dann zum Beispiel zu einem Pfad unido...!uka!smurf.
# Direktes Einliefern bei uka ist nicht moeglich, weil uka unseren
# Rechner ablehnt, solange kein Reversed Mapping moeglich ist.
# WICHTIG: Der Pathalias-Output muss sortiert sein (proto = bsearch),
# sonst muss man proto = lsearch setzen!
# Mit der Datei /usr/local/lib/smail/methods/methods wird festgelegt,
# ob wir mit dem entsprechenden Rechner Mails per uux, smtp oder
# batched-smtp ("uursmtp") Mails austauschen. Default ist uux, also
# muessen alle Rechner, mit denen wir per SMTP austauschen wollen,
# ausdruecklich eingetragen werden (bei weltweitem Internetzugriff
# ist das nicht mehr sinnvoll, da ist dann ein MX beachtender
# Router vom Typ "bind" zu verwenden).
paths: driver = pathalias,
method = methods, # Transportart ist in methods festgelegt:
# entweder uux, smtp oder uursmtp
transport = uux; # default ist uux, steht zusaetzlich noch
# als '*' in methods
file = paths, # Name der Datenbasis, ohne absoluten Pfad
# wird das Smail-Libdir angenommen.
proto = bsearch, # alphabetisch sortiert, sonst lserach, dbm...
# optional, # optional auskommentiert = wenn keine
# Pathalias-Datenbasis vorhanden ist,
# terminiert smail mit einer Eintragung
# im paniclog.
domain = uucp # ".uucp" wird vor dem Nachschauen in
# der Pathalias-Datenbasis entfernt.
# 5. Smart Host
#
# Wenn nichts funktioniert hat, wird die Mail per SMTP zu unido geschickt.
# Bei 'path' kann auch ein laengerer (Bang)-Pfad stehen, zum Beispiel
# opal.cs.tu-berlin.de!uunet.uu.net oder aehnliches.
# Natuerlich darf der Smart_Host-Router nur als letzter Router angegeben
# werden.
smart_host:
driver = smarthost,
transport = smtp;
path = unido.informatik.uni-dortmund.de
# Ende.
--- cut here ---
Bye, Vera and Heiko.
--
|~| Heiko Schlichting | Freie Universitaet Berlin
/ \ heiko@fub.uucp | Institut fuer Organische Chemie
/FUB\ heiko@methan.chemie.fu-berlin.de | Takustrasse 3
`---' phone +49 30 838-2677; fax ...-5163 | D-1000 Berlin 33 Germany