Linux
如何設置具有公共靜態 IP 介面和私有 IP 介面的路由郵件伺服器
我正在建構一個電子郵件伺服器,它將為 SMTP 使用 Postfix,為 IMAP 使用 Dovecot。
該伺服器將有兩個介面:
- wwan0 - 此介面有一個靜態公共 IP 地址,將被 Postfix 用於發送和接收電子郵件,Dovecot 用於遠端訪問 IMAP - 此介面具有有限的使用上限,因為它是 3G 連接
- wlan0 - 這個介面有一個由 wifi/ADSL 路由器分配的私有 IP 地址 - 這個介面將被 Dovecot 用於本地 IMAP 和剩餘的非 Postfix 傳出流量 - 這個介面有一個更大的使用上限
我的理解是我需要:
- 通過將 inet_interfaces main.cf 參數設置為公共靜態 IP 來告訴 Postfix 僅使用 wwan0 - 這應該使 Postfix 僅偵聽 wwan0,並通過 wwan0 發送所有傳出流量
- 將預設網關設置為 ADSL 路由器 - 這應該會導致所有剩餘流量通過 ADSL
- 將 Dovecot 設置為在 localhost 上偵聽,以便所有介面都響應 IMAP
對此的進一步擴展將是探索如何在 ADSL 發生故障時讓預設網關故障轉移到 wwan0 連接(有時 ADSL 會掉線,但 WiFi 和路由器會保持正常,但無法轉發任何流量)。
我了解您可以擁有多個具有不同指標的預設網關,但我看不出這將如何解決 ADSL 故障而不是路由器故障(因為網關仍然可以路由到但無法轉發流量)。
我看到有人建議使用腳本檢查 ADSL 是否仍然有效(ping 或 HTTP)並更改核心路由表以將流量引導到最佳介面。
我的理解正確嗎?
如果您將“將預設網關設置為 ADSL 路由器”,AFAIK 這將導致所有(不是剩餘的!)流量都流向 ADSL 路由器。所以來自 Postfix 的傳出流量也將通過 ADSL 路由器。這可能不是你想要的……
這個問題的答案 - Get linux to change default route if one path down? - 包含有關如何實施基於策略的路由的連結,這可能是您的案例中最相關的解決方案。
但是,我不確定您的設置。據我了解,您有 2 個 Internet 連接。並且您的郵件伺服器已連接到它們兩個。然後我不知道為什麼你需要總是將來自 Postfix 的傳出流量發送到 wwan0。
我只是這樣設置它:
- Postfix 在 wwan0 上監聽
- Dovecot 在兩者上都聽
- 所有傳出流量都通過 ADSL 路由器(預設路由)
在這種情況下,我將設置一個具有不同指標的輔助網關 (wwan0),而無需基於策略的路由,並在某些資源無法通過主網關訪問時應用腳本來首選(更改指標)故障轉移(輔助)網關網關: