[Postfixbuch-users] eine frage

Werner Detter werner at aloah-from-hell.de
Fr Apr 7 09:01:52 CEST 2006


>
>
>  
>
>>- ein skript gleicht die virtual_alias_tabelle meines primaries mit dem 
>>secondary ab und
>>  ändert desweiteren den transport einer tabelle auf dem secondary. 
>>"relay" wenn auf
>>  dem primären mindestens eine mailbox vorhanden ist, ansonsten "virtual".
>>    
>>
>
>Okay, so weit so gut. Obwohl ich es seltsam finde, dass der Transport 
>umgeändert werden muss. Stehen diese denn nicht in der MySQL-Tabelle, die 
>für beide Server gültig ist?
>
>  
>
Hi Sandy,

erst mal Danke für deine Antwort. Das Konstrukt ist nicht jedermanns 
Setup, das
muss ich zugeben :) Also. Zur kurzen Erklärung, warum ich den Transport
Skriptgesteuert ändern möchte.

- Aktuell haben alle Domains in der MySQL Datenbank als Transport 
"relay" gesetzt.
- Die Implementierung von "relay_recipient_maps" ist auf diesem System 
nicht trivial,
- Ich möchte, dass der Secondary die virtual_alias_maps des Primary 
berücksichtigt
  wenn für eine Domain meine beiden MX als MX eingetragen sind.

daraus ergibt sich folgendes:
1) Ist für Domain example.com mein Primary und Secondary als MX 
eingetragen und
  keine Mailbox auf dem Primary vorhanden, setzen des Transports auf 
"virtual" auf
  dem Secondary. Somit berücksichtigt dieser die virtual_alias_maps und 
nimmt
  Mails an nicht existente Adressen nicht mehr an. Desweiteren stellt 
der Secondary
  in dem Fall die Weiterleitungen auch direkt an externe Ziele zu (und 
stellt diese
  nicht erst dem Primary - Stichwort Entlastung).

2) Ist für Domain example.com mein Primary und Secondary als MX 
eingetragen, jedoch
  mindestens eine Mailbox auf dem Primary eingerichtet wird der 
transport in der
  Datenbank auf "relay" gesetzt. (Mit dem Hintergrund, dass auf dem mx2 
keine
  virtual_mailbox Umgebung eingerichtet ist und dieser die eMails an den 
Primary
  weiterleiten muss.

3) Es gibt Domains, die nur auf meinem Secondary eingetragen sind. Diese 
haben in der
  MySQL als transport "relay".

zu 3)
Das Funktioniert, nach dem ich vorhergegangenes Setup aktiviert nicht mehr.

>
>  
>
>>die implementierung in postfix sieht so aus:
>>
>>mydestination = mx2test, mx2test.trans.net, localhost.localdomain, 
>>localhost, $transport_maps
>>    
>>
>
>Das ist etwas, das mir etwas quersteht mit den $transport_maps in 
>$mydestination. mydestination ist ja gedacht für lokale Domains, welche mit dem local transport ausgeliefert werden
>  
>
Ich weiss, dass Postfix die Domain dann als lokale Domain behandelt.


>Abgesehen davon kann es passieren, dass du mal einen Transport für eine 
>externe, nicht von dir gehostete Domain setzen musst, dann ist diese 
>Domain plötzlich für deinen Server ein lokale Domain.
>  
>
Das ist genau das Problem wozu ich eine Lösung suche :)

>Wie genau hast du den Transport denn gesetzt? Was ergibt die Abfrage von 
>mysql_transport_maps.cf mit deiner domain
>  
>

kurz und knackig:

a) Abfrage einer Domain, die auf Primary und Secondary gehostet ist und 
mind. eine Mailbox auf
dem Primary hat:
postmap -q "example.com" mysql:/etc/postfix/mysql_transport_maps.cf
relay

b) Abfrage einer Domain, die auf Primary udn Secondary gehostet ist 
jedoch keine Mailbox hat:
postmap -q "example.de" mysql:/etc/postfix/mysql_transport_maps.cf
virtual

c) Abfrage einer Domain, die nur auf dem Secondary gehostet ist
postmap -q "example.org" mysql:/etc/postfix/mysql_transport_maps.cf
relay

>>transport_maps = mysql:/etc/postfix/mysql_transport_maps.cf
>>virtual_mailbox_base = /tmp
>>virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
>>
>>alles funktioniert soweit prima, nun habe ich etwas lustiges festgestellt:
>>- eine domain, die im dns meinen secondary als secondary eingetragen hat 
>>jedoch
>>  der primary vom kunden selbst gemacht,  wird bekomm ich die meldung:
>>    
>>
>
>Der Kunde hat also einen eigenen Server und trägt diesen als primären MX 
>ein und deinen Server als sekundären MX
>  
>
ja, richtig. ich habe mehrere Kunden für den mein sec. MX secondary für 
deren Domain ist.

>>Recipient address rejected: User unknown in local recipient table;
>>    
>>
>
>Der Transport lief also über local. Die Abfrage von Transport hat also 
>nicht übersteuert.
>  
>
Das lustige ist, wenn ich den local Transport komplett deaktiviere (in 
master.cf und in
main.cf) scheint auf den ersten Blick alles zu funktionieren. Bei 
näherer Betrachtung
nimmt Postfix eMails für die Domains brav an, die virtual_alias_maps 
greift dann jedoch
auch nicht mehr.


>Was ergibt denn die Abfrage mit
>postmap -q domain mysql:/etc/postfix/mysql_transport_maps.cf
>  
>

siehe oben :)

>  
>
>>in der transport-tabelle ist für diese domain als transport 
>>richtigerweise "relay"
>>gesetzt. normal sollte postfix die mail doch doch jetzt ebenfalls 
>>annehmen und
>>weiterleiten, tut dies aber nur für diese domains nicht. alles andere 
>>funktoiniert
>>    
>>
>
>Wenn du das nicht geändert hast, dann ist relay und smtp das gleiche:
>
>smtp      unix  -       -       n       -       -       smtp
>relay     unix  -       -       n       -       -       smtp
>  
>
hab ich drin:

smtp      unix  -       -       n       -       -       smtp
relay     unix  -       -       n       -       -       smtp


Werner





Mehr Informationen über die Mailingliste Postfixbuch-users