Hi,
heute stehe ich mal bissl aufm Schlauch und brauche, glaube ich, mal jemanden der mich von der Leitung runterstößt ;-)
Zum Setup:
Server mit mehreren NICs sowie einigen virtuellen Schnittstellen auf Debian Wheezy 64-Bit mit ISPConfig im Singleserver Setup
Beispiel:
eth0 ip.v.4.1
eth0:0 ip.v.4.2
eth0:1 ip.v.4.2
eth1 ip.v.4.3
eth1:0 ip.v.4.4
etc. und auch mehreren ipv6 Adressen nach dem gleichen Schema
/etc/hosts enthält ipv6 localhost sowie ipv6 s01.example.com eintrag und danach die beiden ipv4 einträge für localhost und s01.example.com
hostname ist s01.example.com
hostname und hostname -f geben beide s01.example.com zurück
/etc/mailname = hostname
dns eintrag von s01.example.com zeigt auf die korrekten IPs (IPv4 und IPv6), Reverse DNS zeigt auf den korrekten Namen.
Damit Postfix die richtige IP und nicht alle nimmt, habe ich inet_interfaces = localhost, $myhostname gesetzt. Der MX Eintrag und das interne mailen funktionieren. Mails intern können gesendet und empfangen werden. Mail von extern werden auch problemlos empfangen.
Mails nach extern senden scheitert in den meisten Fällen weil Postfix die letzte eingerichtete IP nimmt zum versenden und der Empfänger - in dem Fall freenet - die Verbindung dann ablehnt mit 550 Submission from dynamic IP ip.v.4.4 requires authentication (in reply to RCPT TO command). Alle eingerichteten IPs, selbst die letzte eingerichtete IP, sind statische IPs und werden auch überall so gelistet. Authentifizierung erfolgt natürlich auch, jedoch für s01.example.com und nicht für die letzte eingerichtete ipv4.
mxtoolbox und Co. liefern mir auch nur die Ergebnisse die ich erwartet habe und bescheinigen mir, das alles korrekt wäre.
Mein Problem ist nun: Warum nimmt Postfix trotzdem die letzte eingerichtete IP (sowohl IPv4 als auch IPv6 - je nachdem ob der Empfängerserver per IPv6 erreichbar ist) zum senden und nicht die vorgegebene?
Ich hab auf einem anderen System ein ähnliches Setup laufen und da klappt das sogar mit inet_interfaces = all (so wie es mMn auch sein müsste). Ein diff der beiden configs brachte auch keine wesentlichen Unterschiede.
Irgendwo hab ich also warscheinlich einen Fehler eingebaut und finde ihn jetzt einfach nicht mehr. Hat jemand von euch noch eine Idee?
Grüße
nwb
heute stehe ich mal bissl aufm Schlauch und brauche, glaube ich, mal jemanden der mich von der Leitung runterstößt ;-)
Zum Setup:
Server mit mehreren NICs sowie einigen virtuellen Schnittstellen auf Debian Wheezy 64-Bit mit ISPConfig im Singleserver Setup
Beispiel:
eth0 ip.v.4.1
eth0:0 ip.v.4.2
eth0:1 ip.v.4.2
eth1 ip.v.4.3
eth1:0 ip.v.4.4
etc. und auch mehreren ipv6 Adressen nach dem gleichen Schema
/etc/hosts enthält ipv6 localhost sowie ipv6 s01.example.com eintrag und danach die beiden ipv4 einträge für localhost und s01.example.com
hostname ist s01.example.com
hostname und hostname -f geben beide s01.example.com zurück
/etc/mailname = hostname
dns eintrag von s01.example.com zeigt auf die korrekten IPs (IPv4 und IPv6), Reverse DNS zeigt auf den korrekten Namen.
Damit Postfix die richtige IP und nicht alle nimmt, habe ich inet_interfaces = localhost, $myhostname gesetzt. Der MX Eintrag und das interne mailen funktionieren. Mails intern können gesendet und empfangen werden. Mail von extern werden auch problemlos empfangen.
Mails nach extern senden scheitert in den meisten Fällen weil Postfix die letzte eingerichtete IP nimmt zum versenden und der Empfänger - in dem Fall freenet - die Verbindung dann ablehnt mit 550 Submission from dynamic IP ip.v.4.4 requires authentication (in reply to RCPT TO command). Alle eingerichteten IPs, selbst die letzte eingerichtete IP, sind statische IPs und werden auch überall so gelistet. Authentifizierung erfolgt natürlich auch, jedoch für s01.example.com und nicht für die letzte eingerichtete ipv4.
mxtoolbox und Co. liefern mir auch nur die Ergebnisse die ich erwartet habe und bescheinigen mir, das alles korrekt wäre.
Mein Problem ist nun: Warum nimmt Postfix trotzdem die letzte eingerichtete IP (sowohl IPv4 als auch IPv6 - je nachdem ob der Empfängerserver per IPv6 erreichbar ist) zum senden und nicht die vorgegebene?
Ich hab auf einem anderen System ein ähnliches Setup laufen und da klappt das sogar mit inet_interfaces = all (so wie es mMn auch sein müsste). Ein diff der beiden configs brachte auch keine wesentlichen Unterschiede.
Irgendwo hab ich also warscheinlich einen Fehler eingebaut und finde ihn jetzt einfach nicht mehr. Hat jemand von euch noch eine Idee?
Grüße
nwb