iT邦幫忙

0

請問如果有兩台mail server DNS指向該如何設定

 Main Server1                                Mail server 2
 1.1.1.1                                      2.2.2.2     
Mx1.aaa.com                                  mx2.aaa.com      

目前兩台mail主機 我希望可以做到 mail1斷線mail2可以當備援的MailSserver但是我目前DNS 1.1.1.1 / 2.2.2.2 都指向 mail.aaa.com 會遇到電腦端dns 如果對應到 2.2.2.2 mail寄不出去(我的mail server沒有支援HA要手動切換我平常會定時同步主機的資料)
我要怎麼改才能 main server正常mx都是用1.1.1.1 這台主機 異常mx自己會轉到2.2.2.2
**異地HA
**
以下是我原本指向得但好像是我 兩個IP都指向同一個Domain 所以用戶端如果DNS解析到2.2.2.2的就會異常()
DNS
A mail 1.1.1.1
A mail 2.2.2.2
A mail2 2.2.2.2
Mx mx1.aaa.com 5
MX mx2.aaa.com 10

slime iT邦大師 1 級 ‧ 2019-08-20 10:52:28 檢舉
問題還不到 DNS , 而是 Mail Server 架構就有問題.

Mail 分為 收/發/存 三個動作, 如果兩台 Mail Server 都能 收 信, 必須有共通的 存 的空間, 才能把 DNS 同時指向兩個 Server .

所以請先確認 Mail 軟體的 存 如何處理, 例如 host1 是 真正存 , host2 只有 暫存 , 或 host1 跟 host2 都存到 host3 上.
ks1217 iT邦研究生 5 級 ‧ 2019-08-20 10:58:55 檢舉
如Slime所述, mx2.aaa.com 能自己收發郵件嗎? 對應到 2.2.2.2 mail寄不出去是出現甚麼錯誤訊息? 是停在User端還是在Server端, 防火牆對外是否有開放 2.2.2.2 的SMTP port ?

你的A 記錄錯了, 應該改為 A mx1 1.1.1.1 , mx2 2.2.2.2 ,這樣優先權才會有作用吧,

Email進來會先問 MX紀錄, 也就是會找 mx1.aaa.com , 但是您卻沒有 mx1 的 A紀錄, 然後再去找 mx2.aaa.com , 但也沒有 mx2 的A紀錄, 所以找到 mail這台主機, 而 mail主機又有兩組IP, 所以就誰先喊到先找誰了.
mail cluster

2 個回答

2
雷伊
iT邦新手 1 級 ‧ 2019-08-20 11:51:23

DNS是託管還是自管?
您的架構非常有問題,光是SPF你就會被一堆SPAM主機列為黑名單

防火牆對外Public IP需要唯一性,你看GMail Host幾萬台也才一個IP
對內你的容錯移轉並非用單單僅用DNS優先順序可解決
防火牆有負載平衡功能?若為兩條以上的專線,請限制郵件主機單走一條不要跳來跳去
防火牆規則(外對內)虛擬IP轉址有設兩組並設定優先權?對外要唯一IP,對內你要裝20台沒人管你

SPF記錄測試工具:https://www.kitterman.com/spf/validate.html
IP反解設定:https://domain.hinet.net/dns_reverse_c/
SPAMHAUS:https://www.spamhaus.org/lookup/

看更多先前的回應...收起先前的回應...
kenny iT邦新手 5 級 ‧ 2019-08-20 14:56:12 檢舉

我本來的想法是怕IP斷線的時候mail 會斷線想在異地有另一台主機的接下去

slime iT邦大師 1 級 ‧ 2019-08-20 16:19:29 檢舉

通常 Mail 主機會有每隔幾小時重試送件, 幾天之後放棄的緩衝.

ks1217 iT邦研究生 5 級 ‧ 2019-08-20 16:39:50 檢舉

Hi Kenny, 那你有共用的email DB嗎? 假設MX1 斷線, 信件往 MX2丟了, 然後 MX1 復線, 請問這段時間的MX2收到的信要如何丟回MX1 ?

雷伊 iT邦新手 1 級 ‧ 2019-08-20 18:17:01 檢舉

樓主並未將郵件服務說明的很清楚,我們連郵件系統是甚麼,MailBOX是否有做共用都不知道

0
ks1217
iT邦研究生 5 級 ‧ 2019-08-20 17:00:14

使用Linux可以運用指令來做Cluster,
舉例,
主機兩台 MX1 與 MX2, 共同Storage 放DB,
正常情況下, MX1 mount DB提供Email服務,
當MX1異常,(可用Ping 偵測MX1網路是否通), 當MX1不通則運行腳本切換
改由 MX2 去 mount DB ,
當然前提是你的內外 DNS 及防火牆 對映正確,
假設你有兩條線路分別兩個固定IP
外部 DNS
MX 10 mail.abc.com.tw
MX 20 mail2.abc.com.tw
mail A 固IP1
mail2 A 固IP2
v=spf1 a mx -all
防火牆
外對內
固IP1 port(25,110,995,465,993等舉例) 轉到 1.1.1.1
固IP2 port(25,110,995,465,993等舉例) 轉到 2.2.2.2
內對外 (這部份請自行調整)
1.1.1.1 to 固IP1 allow all
1.1.1.1 to 固IP2 allow all
2.2.2.2 to 固IP1 allow all
2.2.2.2 to 固IP2 allow all
內部DNS
MX 10 mail.abc.com.tw
MX 20 mail2.abc.com.tw
mx1 A 1.1.1.1
mx2 A 2.2.2.2
mail in cname mx1
mail2 in cname mx2
以上..好像打太多了....
參考就好~ 感謝~~

我要發表回答

立即登入回答