我们目前正在将公司的电子邮件服务器(Postfix/Cyrus,带有 OpenLDAP 后端)从一个设备迁移到另一个位于异地的设备。在进行全面切换之前,我希望先迁移一两个流量最大(也是抱怨最多)的设备,因为如果我的配置和测试中遗漏了任何问题,他们一定会告诉我。
目前,所有传输映射都存储在 ldap 中。我创建了一个单独的可哈希传输映射,并配置 Postfix 来使用它,如下所示:
transport_maps = hash:/etc/postfix/oldmail_transport,ldap:trans
在 /etc/postfix/oldmail_transport 中我得到:
[email protected] :[newmailserver.domain.com]
[email protected] :[newmailserver.domain.com]
domain.com 存在于两台服务器的 virtual_alias_domains 中。
问题是,这不起作用。旧邮件服务器认为[电子邮件保护]是本地地址,将邮件投递到该地址,然后结束。看来,使传输图正常工作的唯一方法是从旧服务器上的 virtual_alias_domains 中删除 domain.com,这当然会中断向该域上所有其他用户的投递。
我在这里正确使用了 transport_maps 吗?我是否应该使用其他方法来让 postfix 执行我想要的操作?
在此先感谢您的帮助!
答案1
我可以建议另一种方法吗?
对于 POP/IMAP 连接处理,使用毁灭。它将 POP/IMAP 流量透明地代理到正确的服务器,对最终用户来说也是如此。后端服务器查找和执行来自 LDAP、文本文件或您想要使用的其他方法。因此,使用 Perdition,您可以逐个将用户从旧服务器迁移到新服务器,而他们甚至不会注意到。只需创建一个脚本,将邮件从旧服务器迁移到新服务器,然后更新 LDAP/文本文件/任何内容以告诉 Perdition 用户刚刚被迁移。
我以前使用此方法迁移过 50,000 - 100,000 个用户帐户,对用户来说没有明显的停机时间。
对于 SMTP,邮件服务器查找很简单,您似乎已经通过 LDAP 执行这些查找。:)
答案2
这个问题之前已经出现过,并且您每次都会遇到同样的问题:如果您将两个邮件服务器配置为一个域的权威服务器,那么就没有真正无缝的方式让其中一个服务器将发往“自己”的电子邮件发送到另一个服务器。
最好的办法可能是在新服务器上使用临时域名进行测试。如果您希望重度用户进行一些测试,请将他们的邮件副本发送到新服务器。