Sendmail und ipv6

Walzing

Active Member
Hi,

ich habe FreeBSD 6.1. Da habe ich jetzt mySQL, Apache und OTRS drauf.
Jetzt habe ich Probleme mit meinem Sendmail darunter. Mails gehen nicht raus.
Mit Etherreal habe ich gesehen, dass der FreeBSD Server den MX Record meines Exchange Servers erfragt (der kommt auch richtig zurück). Danach fragt er aber nicht nach einem A-Record, sondern nach einem AAAA (ipv6) Record.

Kann ich dem Sendmail das austreiben, ohne sendmail neu zu kompilieren?

cu and thx in advance
Walzing
 
Das nachfolgende selbst zu ermitteln waere nicht sonderlich schwierig gewesen.

Excerpt aus meiner sendmail.cf:
dnl
dnl Accept incoming connections on any IPv4 or IPv6 interface for ports
dnl 25 (SMTP) and 587 (MSA).
dnl
FEATURE(`no_default_msa')dnl
DAEMON_OPTIONS(`Family=inet, Address=0.0.0.0, Name=MTA')dnl
dnl DAEMON_OPTIONS(`Family=inet6, Address=::, Name=MTA6, M=O')dnl
DAEMON_OPTIONS(`Family=inet, Address=0.0.0.0, Port=587, Name=MSA, M=E')dnl
dnl DAEMON_OPTIONS(`Family=inet6, Address=::, Port=587, Name=MSA6, M=O, M=E')dnl
dnl
dnl Use either IPv4 or IPv6 for outgoing connections.
dnl
CLIENT_OPTIONS(`Family=inet, Address=0.0.0.0')dnl
dnl CLIENT_OPTIONS(`Family=inet6, Address=::')dnl
dnl
 
walt schrieb:
Das nachfolgende selbst zu ermitteln waere nicht sonderlich schwierig gewesen.

Aha - das sagst du so leicht. Erstens ist mir nicht klar, warum ich unter /etc/mail
- freebsd.cf
- freebsd.mc
- freebsd.submit.cf
- freebsd.submit.mc
- sendmail.cf
- submit.cf

habe. Dazu kommt, dass freebsd.cf und sendmail.cf fast identisch sind. Deine Einträge (z.B. DAEMON_OPTIONS) finde ich nicht in meiner sendmail.cf. Aber in der freebsd.mc finde ich die. Aber soweit ich das verstanden habe, sind das Einträge, die für ein rebuild ziehen.

Und was ist bitte dnl????

cu
 
Ahh okay,

Ich denke freebsd.mc, freebsd.cf und sendmail.cf habe ich verstanden.
Aber dann bringt CLIENT_OPTIONS doch nur was in der .mc? Und das wird in der .cf dann zu ClientPortOptions (richtig???)

Das ist der Auszg aus meiner sendmail.cf:

# SMTP daemon options

O DaemonPortOptions=Name=IPv4, Family=inet
#O DaemonPortOptions=Name=IPv6, Family=inet6, Modifiers=O
O DaemonPortOptions=Port=587, Name=MSA, M=E

# SMTP client options
O ClientPortOptions=Family=inet, Address=0.0.0.0

Es wird aber noch immer nach AAAA Records gefragt.

cu
 
Walzing schrieb:
Ich denke freebsd.mc, freebsd.cf und sendmail.cf habe ich verstanden.
Aber dann bringt CLIENT_OPTIONS doch nur was in der .mc? Und das wird in der .cf dann zu ClientPortOptions (richtig???)

Richtig.

Diese sendmail.mc Option kannst Du auch mal versuchen:

dnl Some broken nameservers will return SERVFAIL (a temporary failure)
dnl on T_AAAA (IPv6) lookups.
dnl
define(`confBIND_OPTS', `WorkAroundBrokenAAAA')dnl
dnl
 
Hi,

Daraus wird dann in der sendmail.cf:
# name resolver options
O ResolverOptions=WorkAroundBrokenAAAA

In der submit.cf habe ich das auch stehen. Trotzdem will er nicht... Er fragt weiter nach AAAA und nicht nach A

cu
 
Dann musst Du deinem Betriebssystem IPv6 abgewoehnen.

Z.B. in /etc/rc.conf
ipv6_enable="NO"
 
Hi,

dann sollte nach einem reboot ifconfig keine ipv6 adresse mehr anzeigen oder?
Tut es aber noch und die Mails gehen nicht raus...

cu
 
Meinst Du nicht auch, dass mittlerweile eine praezise Problembeschreibung inklusive
Auszug aus relevanten Logfiles (/var/log/maillog) etc. und Auszug aus relevanten
Configfiles (/etc/rc.conf) etc. faellig ist ?
 
Daran solls nicht scheitern.

Mein Sendmail liefert keine Emails aus. Mailq zeigt mir meine Mails, die an meinen Exchange gehen (gleiches Subnet/kein IPv6). Ein Trace mit Ethereal zeigt, dass der FreeBSD/Sendmail Server DNS Querys geben meinen Windows 2003 DNS startet.
Es wird nach dem MX Record gefragt (antwort: hermes.mydom.de). Danach werden AAAA Records für hermes.mydom.de erfragt. Nach ca 4 Querys antwortet der Windows 2003 Server mit einem Server Fail. Danach fragt sendmail nichts mehr.

Code:
# -- sysinstall generated deltas -- # Mon Jun 19 14:57:50 2006
# Created: Mon Jun 19 14:57:50 2006
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
defaultrouter="10.0.0.1"
hostname="Sokrates.mydom.de"
ifconfig_xl0="inet 10.0.0.19  netmask 255.255.255.0"
keymap="german.iso"
usbd_enable="YES"
sshd_enable="YES"
apache22_enable="YES"
mysql_enable="YES"
mysql_dbdir="/usr/local/mysql"
ipv6_enable="NO"

Die ich denke wichtig Teile aus /etc/mail/sendmail.cf und /etc/mail/submit.cf habe ich schon gepostet.

Hier ein Auschnitt aus /var/log/mailog:
Jun 22 11:13:43 Sokrates sm-mta[747]: k5M7qtcm006807: to=<Bjoern.Wolfgardt@mydom.de>, delay=03:20:48, xdelay=00:00:00, mailer=esmtp, pri=751037, relay=hermes.mydom.de., dsn=4.0.0, stat=Deferred: Name server: hermes.mydom.de.: host name lookup failure
Jun 22 11:13:43 Sokrates sm-mta[747]: k5M7t2oE006856: to=<Bjoern.Wolfgardt@mydom.de>, delay=03:18:41, xdelay=00:00:00, mailer=esmtp, pri=751260, relay=hermes.mydom.de., dsn=4.0.0, stat=Deferred: Name server: hermes.mydom.de.: host name lookup failure
Jun 22 11:13:43 Sokrates sm-mta[747]: k5KIU2CV003968: to=<Bjoern.Wolfgardt@mydom.de>, delay=1+16:43:41, xdelay=00:00:00, mailer=esmtp, pri=9571296, relay=hermes.mydom.de., dsn=4.0.0, stat=Deferred: Name server: hermes.mydom.de.: host name lookup failure
Jun 22 11:43:43 Sokrates sm-mta[918]: k5M7qtcm006807: to=<Bjoern.Wolfgardt@mydom.de>, delay=03:50:48, xdelay=00:00:00, mailer=esmtp, pri=841037, relay=hermes.mydom.de., dsn=4.0.0, stat=Deferred: Name server: hermes.mydom.de.: host name lookup failure
Jun 22 11:43:43 Sokrates sm-mta[918]: k5M7t2oE006856: to=<Bjoern.Wolfgardt@mydom.de>, delay=03:48:41, xdelay=00:00:00, mailer=esmtp, pri=841260, relay=hermes.mydom.de., dsn=4.0.0, stat=Deferred: Name server: hermes.mydom.de.: host name lookup failure
Jun 22 11:43:43 Sokrates sm-mta[918]: k5KIU2CV003968: to=<Bjoern.Wolfgardt@mydom.de>, delay=1+17:13:41, xdelay=00:00:00, mailer=esmtp, pri=9661296, relay=hermes.mydom.de., dsn=4.0.0, stat=Deferred: Name server: hermes.mydom.de.: host name lookup failure


DNS funktioniert aber soweit ich sehen kann (für ipv4):
Sokrates# dig mydom.de MX

; <<>> DiG 9.3.2 <<>> mydom.de MX
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13626
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:
;mydom.de. IN MX

;; ANSWER SECTION:
mydom.de. 3600 IN MX 10 hermes.mydom.de.

;; ADDITIONAL SECTION:
hermes.mydom.de. 1200 IN A 10.0.0.13

;; Query time: 2 msec
;; SERVER: 10.0.0.11#53(10.0.0.11)
;; WHEN: Thu Jun 22 11:55:22 2006
;; MSG SIZE rcvd: 67


Sokrates# dig hermes.mydom.de A

; <<>> DiG 9.3.2 <<>> hermes.mydom.de A
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25120
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;hermes.mydom.de. IN A

;; ANSWER SECTION:
hermes.mydom.de. 1200 IN A 10.0.0.13

;; Query time: 1 msec
;; SERVER: 10.0.0.11#53(10.0.0.11)
;; WHEN: Thu Jun 22 11:57:15 2006
;; MSG SIZE rcvd: 51

Any Ideas???
Walzing
 
Danach fragt er aber nicht nach einem A-Record, sondern nach einem AAAA (ipv6) Record.
Nur interessehalber. Was für einen DNS-Server benutzt du oder wohin forwarded der? Wenn auch nicht mit Sendmail, hat bei mir in (wohl so) einem ähnlichen Fall nur geholfen, im Netz hier /den/ DNS-Server zu entfernen, der auf diese Anfragen mit einem Error/falsch reagiert hat. (alternativ gibt es in den Ports auch einen DNS-Cache, der diese Anfragen, je nach Config, nicht an den nächsten DNS forwarded.)

Mal ebgesehen davon das dies IMHO eh der Standard ist, falls man es nicht auf "YES" setzt...

dann sollte nach einem reboot ifconfig keine ipv6 adresse mehr anzeigen oder?
Hab mich auch schon, gerade auf Grund dessen, schon gefragt, was diese Option wirklich macht. Bei der Suche im Forum bekommt man ja AFAIK nur Posts, welche einem die Erklärung aus der rc.conf vorlesen... Von den Interfaces (abgesehen vom lo0 mit ::1) bekommt man die IPv6-Adresse nur weg durch "net.inet6.ip6.auto_linklocal=0" in sysctl.conf.

Aber bringen würde das IMHO nichts, da die AAAA-Requests auch über IPv4 laufen (tcpdump).

Achso: Hier FBSD5.4
 
Hi,

ich habe intern 2 Windows 2003 DNS.

Wahrscheinlich wäre die einfachste Lösung für mein Problem, einen Smarthost mit IP anzugeben. Aber darum geht es jetzt nicht mehr. Jetzt will ich schon wissen, wieso das so ist...

Eine andere Alternative (auch das Sendmail ja ziemlich in der Kritik bei einigen Leuten steht) wäre Postfix zu nehmen. Aber da weiss ich wieder nicht, wie mein OTRS sich da verhält.

cu
 
Hast Du sendmail nach Aenderung der sendmail.[mc|cf] neu gestartet ?

Versuch1:
in /etc/resolv.conf:
lookup file bind

in /etc/hosts:
- alle Eintraege mit IPv6-Adressen nach unten setzen
- 10.0.0.13 hermes.mydom.de hinzufuegen


Versuch2:
Auf dem FreeBSD Rechner einen eigenen Nameserver einrichten
 
Hi,

Restart habe ich gemacht. Auch des ganzen Servers.

Bei den Lösungen handelt es sich eher um Workarounds oder?

cu
 
Okay,

eine Lösung ist z.B.:
define(`SMART_HOST',`esmtp:[10.0.0.13]')

Aber angenommen ich will sendmail mal 'wirklich' als Mailserver einsetzen, dann muss ich schon wissen, wie ich sendmail das mit dem ipv6 austreibe...

cu
 
Bei den Lösungen handelt es sich eher um Workarounds oder?

Da steht Versuch1: und nicht Loesung1:

Aber angenommen ich will sendmail mal 'wirklich' als Mailserver einsetzen, dann muss ich schon wissen, wie ich sendmail das mit dem ipv6 austreibe...

Genauso wie ich das im 2. Posting dieses Threads beschrieben habe.

SMART_HOST ist natuerlich auch keine Loesung.
Schon allein an den hohen delay= Werten im logfile kann man erkennen,
dass sendmail seine Zeit mit Warten verbringt.

Wenn die Massnahmen im 2. Posting nichts bewirken, dann liegt es am
Resolver deines Betriebssystems.

Was ergibt denn Versuch1: ?
 
Hi,

die Wartezeiten kommen wohl daher, dass sendmail ein retry interval hat.

Aber okay Versuch 1(!) werde ich mal austesten.
Versuch 2 kann natürlich was bringen, aber wird meinen Sendmail wohl nicht davon abringen IPv6 zu versuchen oder?

Jetzt habe ich aber leider keine Zugriff mehr auf den Server. Morgen aber wieder...

danke
Walzing
 
die Wartezeiten kommen wohl daher, dass sendmail ein retry interval hat.
Nein.

Auszug aus der Technet:
Anmerkung: Aufgrund falsch konfigurierter DNS-Server im Internet kann es möglich sein, dass Computer, die IPv4 und IPv6 nutzen, nicht in der Lage sind, Namen von Internet-Ressourcen aufzulösen oder Verbindungen mit diesen aufzubauen. Dieses sehr selten auftretende Problem kommt dann zustande, wenn ein fehlerhaft konfigurierter DNS-Server eine bestimmte IPv6-Anfrage erhält (für einen AAAA-Eintrag). Wenn der DNS-Server IPv6 nicht unterstützt, dann schlägt diese Anfrage fehl. Der anfragende Knoten sendet dann eine Anfrage für IPv4-Adressen (A-Einträge). Der fehlerhaft konfigurierte DNS-Server verwirft diese weitere Anfrage jedoch, und somit schlägt die Namensauflösung fehl. Wenn Sie sich mit diesem Problem konfrontiert sehen, bitten Sie Ihren ISP um eine Neukonfiguration Ihrer DNS-Server. Diese müssen nach einer fehlgeschlagenen Anfrage für einen AAAA-Eintrag folgende Anfragen für A-Einträge akzeptieren. Alternativ haben Sie natürlich auch die Möglichkeit, IPv6 auf dem anfragenden Computer zu deaktivieren. Die Ursache des Problems liegt wie gesagt auf dem DNS-Server, und es wirkt sich auf alle Computer aus, die IPv4 und IPv6 nutzen.

In dieser Ecke ist der Fehler zu suchen.
Die Meldung:
stat=Deferred: Name server: hermes.mydom.de.: host name lookup failure
im logfile bestaetigt das.
 
walt schrieb:
In dieser Ecke ist der Fehler zu suchen.
Die Meldung:
stat=Deferred: Name server: hermes.mydom.de.: host name lookup failure
im logfile bestaetigt das.

Das Log bestätigt nur, dass der Name nicht aufgelöst werden kann. Er bestätigt aber nicht, dass

walt schrieb:
Der anfragende Knoten sendet dann eine Anfrage für IPv4-Adressen (A-Einträge).

denn mein Netzwerk Trace zeigt nur AAAA Anfragen.

cu
 
Walzing schrieb:
ich habe intern 2 Windows 2003 DNS.
Und wohin reichen diese die Anfragen weiter? Es geht doch bei dir auch um DNS-Anfragen die deine Server nicht selbst beantworten können? Ist bei mir ähnlich, nur mit 2x 2000er AD's. Und dort hatte ich erst als Weiterleitung den DSN-forwarder vom Router eingetragen. Dieser konnte allerdings mit AAAA anfragen nichts anfangen (zu alt und kennt diese gar nicht. Reagiert aber wohl nicht standardgemäss bei unbekannten anfragen). Seit ich in den 2000ern direkt die DNS-Server vom Provider drin hab, hab ich keine Probleme mehr.

BTW: Das Problem hatte ich auf dem Rechner, wo ich hin und wieder mal ein FBSD mit X und Firefox starte zum Websiten testen. Der FF lies sich dann unheimlich Zeit für die Anzeige der Seiten (liest man auch öfters im Forum).

walt schrieb:
Alternativ haben Sie natürlich auch die Möglichkeit, IPv6 auf dem anfragenden Computer zu deaktivieren.
Eben das geht ja wie schon beschrieben nicht wirklich komplett... (mal abgesehen von vielleicht den Kernel neu kompilieren).

="walt" schrieb:
Der anfragende Knoten sendet dann eine Anfrage für IPv4-Adressen (A-Einträge).
Schön wärs... wie ich und jetzt auch "Walzing" schon bemerkte, werden auch über ipv4 AAAA Anfragen an den DNS-Server gesendet. Und in unserem Fall kann ein DNS in Folge damit nichts anfangen. Wieso überhaupt AAAA-Records über ipv4 abgefragt werden bleibt mir ein Rätsel. Die haben IMHO nur was über ipv6 zu suchen. (gerade wenn ich IPv6 gar nicht enabled hab). Betroffen sind IMHO auch nur manche Progeramme, die eine bestimmte resolver lib/funktion zur Namensaufläsung benutzen. Dig und nslookup ist IMHO nicht betroffen. (Weil die hier standardmässig über ipv4 gehen und dann auch nur A-records über ipv4 abfragen).
 
Hi,

Wiedmann schrieb:
Es geht doch bei dir auch um DNS-Anfragen die deine Server nicht selbst beantworten können?

Das ist nicht richtig. Die Emails die hängen gehen an bjoern.wolfgardt@mydom.de.
Das ist auch meine AD Domäne. Also ist mein DNS (10.0.0.11) authorisiert für mydom.de. Wenn also jemand etwas wissen könnte, dann nur 10.0.0.11.

Irgendwo in der sendmail Doku steht, dass sendmail erstmal '1x" einen AAAA-Record anfragt und wenn das nicht geht A-Records. Das tut es aber nicht...

Aber mal ehrlich, wieso bestimmt sendmail ob AAAA oder A Records angefragt werden. Sollte es nicht eine Funktion vom OS geben (gethostbyname???), die dann entscheidet was angefragt wird (meintewegen auch zuerst AAAA).
Pings, nslookup, dig - Alles funktioniert. Im Log werden die Reverse Zonen richtig abgefragt, usw... Nur das 'dumme' Sendmail zickt rum.

cu
 
Oha - bin ich jetzt in der OpenSource Welt?

Es geht was nicht, dann muss es an Windows liegen? Auch wenn der Windows 2003 Server richtig auf die AAAA Anfragen reagiert (no such name) schaltet sendmail nicht auf A-Records um? Ach klar - Windows!

cu
 
Hi,

ich habe schon früher mit Bind gearbeitet. Aber bei diesem spez. Problem noch nicht. Aber okay - ich setzte jetzt einen Bind auf.

cu
 
Zurück
Oben