Postix doručování emailů na dva servery

Pavel novic

Postix doručování emailů na dva servery
« kdy: 02. 03. 2016, 23:31:06 »
Zdravím,
řeším problém v rámci nastavení postfixu. Mám postfix server jako mail gateway. Na tomto serveru dojde k filtraci pošty a následně je doručen na jiný server, kde je uložen do schránky uživatele. Chtěl bych do sítě přidat další poštovní server, který by v případě výpadku primárního serveru jeho činnost nahradil. Zároveň ale nechci aby daný server byl jen jako failover (v tomto případě by stačilo přidat jen druhý MX záznam a případně nastavit fail_relayhost na mail gateway), ale chtěl bych aby se mi pošta doručovala do obou serverů zároveň. Snažil jsem se něco dohledat, ale v řešení s postfixem jsem toho moc nenašel. Hledal jsem různými způsoby, nejzajímavější bylo hledat výraz: postfix dual delivery. Tohle hledání mi dalo i odkaz na web, kde daná věc byla i nějak vyřešena. Bohužel scripty, které upravovaly posílání emailu již na internetu nejsou nebo jsem neměl to štěstí je najít.

Děkuji za každou ranu nebo jen nakopnutí jakým směrem se lépe vydat.


Re:Postix doručování emailů na dva servery
« Odpověď #1 kdy: 03. 03. 2016, 06:43:20 »
Píšete, že máte dva servery, a chcete přidat třetí – ale kam, k tomu prvnímu, co poštu filtruje, nebo k tomu druhému, který ji doručuje do schránek?

Re:Postix doručování emailů na dva servery
« Odpověď #2 kdy: 03. 03. 2016, 07:59:05 »
Jak už to tak bývá, bylo by lepší, kdybys popsal, čeho se snažíš dosáhnout než se ptát, jak implementovat řešení, které sis vymyslel. To tvoje řešení je totiž nestandardní a dost pravděpodobně nic opradu neřeší, proto ho nemůžeš nikde najít.

Pokud ti jde o opravdové HA, musíš na to jít klasičtější cestou - nejspíš přes nějaké sdílené úložiště, failover, možná i předávání IP adres kvůli failoveru IMAPu. Na to návody najdeš a snadné to nebude. Nebo jít ještě klasičtější a jednodušší cestou - backup MX.

To tvoje řešení by mělo minimálně tři problémy (v tomhle pořadí důležitosti):

1. pokud uživatelé na serveru poštu i čtou, tak když přepneš na druhý server, objeví se jim tam všechny maily - i ty, které už četli, vyřídili, smazali a nebudou tam mít maily, které odeslali (pokud mají složku odeslané na IMAPu). To určitě nechceš a jít cestou nějaké synchronizace je nasazování narovnáváku na ohýbák.

2. ten vstupní postfix je pořád single point of failure, takže je otázka, jestli to tvoje řešení vůbec něco řeší (to je otázka na tebe, ty tu situaci tam znáš)

3. je to nestandardní řešení a nikdo ti s ním pak nepomůže, když ti to nebude fungovat

TKL

Re:Postix doručování emailů na dva servery
« Odpověď #3 kdy: 03. 03. 2016, 10:46:52 »
Není to nestandardní, je to stav, kterému se říká "Split domain".
Část uživatelů ve stejné doméně je na jednom serveru, část na druhém.

Řešení je prosté: ten postfix, který je první na ráně, musí znát všechny uživatele.
Tudíž je musíte všechny přidat do transportní mapy toho postfixu a nastavit jim, na který server se má mail doručit.

Googlujte postfix transport map.

Re:Postix doručování emailů na dva servery
« Odpověď #4 kdy: 03. 03. 2016, 10:47:44 »
Není to nestandardní, je to stav, kterému se říká "Split domain".
Část uživatelů ve stejné doméně je na jednom serveru, část na druhém.
To ale není to, na co se OP ptal.


TKL

Re:Postix doručování emailů na dva servery
« Odpověď #5 kdy: 03. 03. 2016, 10:47:57 »
Není to nestandardní, je to stav, kterému se říká "Split domain".
Část uživatelů ve stejné doméně je na jednom serveru, část na druhém.

Řešení je prosté: ten postfix, který je první na ráně, musí znát všechny uživatele.
Tudíž je musíte všechny přidat do transportní mapy toho postfixu a nastavit jim, na který server se má mail doručit.

Googlujte postfix transport map.

Aha, beru zpět. Blbě jsem si přečetl zadání :-)

Pavel novic

Re:Postix doručování emailů na dva servery
« Odpověď #6 kdy: 03. 03. 2016, 12:04:40 »
Píšete, že máte dva servery, a chcete přidat třetí – ale kam, k tomu prvnímu, co poštu filtruje, nebo k tomu druhému, který ji doručuje do schránek?

K serveru co poštu filtruje.. rsp chci aby email došel jak do starého serveru, tak do tohodle třetího zároveň.

Re:Postix doručování emailů na dva servery
« Odpověď #7 kdy: 03. 03. 2016, 12:07:57 »
K serveru co poštu filtruje.. rsp chci aby email došel jak do starého serveru, tak do tohodle třetího zároveň.
Tak teď teda nevím. Server A je "gateway", chodí tam maily zvenku, on je filtruje a ham posílá na server B. Ty chceš mít redundantní A nebo B?

(ne že by to měnilo něco na tom, co jsem psal dřív, ale aspoň to zadání by mohlo být jasné :) )

Pavel novic

Re:Postix doručování emailů na dva servery
« Odpověď #8 kdy: 03. 03. 2016, 12:11:12 »
Jak už to tak bývá, bylo by lepší, kdybys popsal, čeho se snažíš dosáhnout než se ptát, jak implementovat řešení, které sis vymyslel. To tvoje řešení je totiž nestandardní a dost pravděpodobně nic opradu neřeší, proto ho nemůžeš nikde najít.

Pokud ti jde o opravdové HA, musíš na to jít klasičtější cestou - nejspíš přes nějaké sdílené úložiště, failover, možná i předávání IP adres kvůli failoveru IMAPu. Na to návody najdeš a snadné to nebude. Nebo jít ještě klasičtější a jednodušší cestou - backup MX.

To tvoje řešení by mělo minimálně tři problémy (v tomhle pořadí důležitosti):

1. pokud uživatelé na serveru poštu i čtou, tak když přepneš na druhý server, objeví se jim tam všechny maily - i ty, které už četli, vyřídili, smazali a nebudou tam mít maily, které odeslali (pokud mají složku odeslané na IMAPu). To určitě nechceš a jít cestou nějaké synchronizace je nasazování narovnáváku na ohýbák.

2. ten vstupní postfix je pořád single point of failure, takže je otázka, jestli to tvoje řešení vůbec něco řeší (to je otázka na tebe, ty tu situaci tam znáš)

3. je to nestandardní řešení a nikdo ti s ním pak nepomůže, když ti to nebude fungovat


Děkuji za přípomínky:

1) Nehodlám nic synchronizovat..beru to jako možnost, kdy člověk bude mít možnost si dohledat email když je primární server mimo provoz. Jinak bšechny tři servery jsou za jednou veřejnou IP adresou, takže backup MX nic neřeší. Vše je zatím vidět jako jeden server.

2) jsem si toho vědom a v dané situaci je to OK

3) Bohužel to chápu..


V konečném důsledku jsi uvědomuji, že by možná stačilo nastavil failover relayhost..jelikož poštu mají klienti ve svých PST a OST souborech..

Cením si hodně těchto rad a připomínek.

Pavel novic

Re:Postix doručování emailů na dva servery
« Odpověď #9 kdy: 03. 03. 2016, 12:11:58 »
K serveru co poštu filtruje.. rsp chci aby email došel jak do starého serveru, tak do tohodle třetího zároveň.
Tak teď teda nevím. Server A je "gateway", chodí tam maily zvenku, on je filtruje a ham posílá na server B. Ty chceš mít redundantní A nebo B?

(ne že by to měnilo něco na tom, co jsem psal dřív, ale aspoň to zadání by mohlo být jasné :) )

Chci redundanci serveru B

Re:Postix doručování emailů na dva servery
« Odpověď #10 kdy: 03. 03. 2016, 13:12:00 »
Myslím, že jste to moc neujasnil…
Píšete, že máte dva servery, a chcete přidat třetí – ale kam, k tomu prvnímu, co poštu filtruje, nebo k tomu druhému, který ji doručuje do schránek?

K serveru co poštu filtruje.. rsp chci aby email došel jak do starého serveru, tak do tohodle třetího zároveň.

Tady píšete, že chcete redundanci filtrujícího serveru (toho, kam jako první dorazí e-maily z venku)…

Tak teď teda nevím. Server A je "gateway", chodí tam maily zvenku, on je filtruje a ham posílá na server B. Ty chceš mít redundantní A nebo B?

Chci redundanci serveru B

… a tady, že chcete redundanci druhého serveru (toho, který ukládá e-maily do schránek uživatelů).

Pokud byste chtěl to první, nikoho z venku nedonutíte, aby vám e-maily posílal dvakrát. Jediné možné řešení tedy je, že e-mail přijmete svým serverem, a pak pošlete jeho kopii někam dál. (Samozřejmě běžně funguje, že máte pro příjem e-mailů určené dva nebo více serverů, a když se nepodaří e-mail doručit na jeden, zkusí to odesílatel s dalším v pořadí. Doručí ale vždy jen jednomu z těch serverů.)

Něco jiného je, pokud chcete dvě úložiště schránek. To bych ale neřešil na úrovni poštovního serveru, ale na úrovni té služby, která dodává e-maily do schránek (MDA – Mail Delivery Agent). Postfix umí spolupracovat s různými MDA (prakticky s kterýmkoli – spustí zadaný skript a e-mail mu předá). Řešil bych to tedy až na úrovni MDA, který převezme e-mail, zapíše jej do obou úložišť, a teprve pak Postfixu potvrdí jeho převzetí. Není na tom nic světoborného, ten skript si myslím klidně napíšete sám.

Dzavy

Re:Postix doručování emailů na dva servery
« Odpověď #11 kdy: 03. 03. 2016, 13:31:55 »
No koukam z tohodle bude nejaky ultimativni user friendly reseni...nektery maily budou mit dvakrat, nektery ani jednou, nektery jenom na jednom servery, nektery jenom na druhym.

Z "B" proste udelat normalni HA cluster s virtualni IP (jak pro klienty, tak pro pripojeni od "A") a replikaci FS/DB/... s mailama. Samozrejmosti je pak centralni autentizace atd.

PV

Re:Postix doručování emailů na dva servery
« Odpověď #12 kdy: 03. 03. 2016, 20:53:15 »
Dobry den, co takto pouzit cluster reseni? P.

Fautzi

Re:Postix doručování emailů na dva servery
« Odpověď #13 kdy: 04. 03. 2016, 15:12:34 »
Zdravíčko,
řešil jsem stejný problém, bohužel uvažovat o řešení na straně postfixu je hloupost (vyjadřoval se k tomu i Wietse Venema), protože dle specifikace mailového protokolu je pouze schéma, že jeden mail = jeden transport, kterým půjde, ty ošklivé bashové hacky, které jste zajisté stejně jako já našel jsou docela prasárna, nejlepším řešením je to replikovat a synchronizovat na úrovni IMAP serveru (Dovecot, Cyrus, Courier....) a hlavně je to nejlepší řešení v tom, že následné nasazení takového záložního serveru je otázkou minut, proto bych se vrhl touto cestou.