내 현재 설정: mailserver1 mailserver2 (둘 다 동일한 도메인을 제공합니다)
그리고
사용자 1 사용자 2
user1에게 보낸 모든 메일을 mailserver1로 리디렉션하고 user2에게 보낸 모든 메일을 mailserver2로 리디렉션하고 싶습니다.
그래서 도메인에 대한 모든 메시지를 다른 메일 서버로 리디렉션하는 방법을 설명하는 많은 튜토리얼을 찾았지만 각 개별 사용자에 대한 것은 아닙니다.
누군가 이 구성을 도와줄 수 있나요?
답변1
이 두 서버가 어떻게 동일한 도메인에 서비스를 제공할 수 있는지 정확하게 이해하고 있는지 잘 모르겠습니다. 도메인에 동일한 우선순위를 가진 두 개의 MX 레코드가 각 서버마다 하나씩 있어서 수신 메일이 두 서버 간에 분산됩니까?
특정 계정의 메일을 다른 주소로 리디렉션하려면,/etc/aliases
가는 길이 될 것입니다. 예를 들어 수신자 users1의 메일을 다른 주소로 리디렉션하려면 다음을 수행하세요.
user1: [email protected]
하지만 메일을 다른 메일 서버로 리디렉션하려면 자체 도메인이 필요한 것 같습니다. IP를 사용할 수 있을까요...?
user1: anotheraddress@<IP of mailserver2>
나는 메일 서버 로드 밸런싱에 대한 경험이 없기 때문에 이것이 어떻게 작동하는지 잘 모르겠습니다. 귀하가 수행하고 있다고 가정합니다.
귀하의 의견에 대한 응답으로 편집하십시오. 귀하가 무엇을 성취하고 싶은지 아직 잘 모르겠습니다.
user@domain으로 전송된 메일은 server1에 도달하고 server1은 user@domain을 기반으로 메일 서버1 또는 mailserver2로 리디렉션하기로 결정합니다. 그러나 두 메일 서버 모두 MX 레코드에 포함되어 있으며 동일한 도메인을 제공합니다(차이 없음).
이것은 나에게 모순되는 것 같습니다. MX 레코드에 mailserver1과 mailserver2를 모두 지정하면 보내는 서버는 서버 중 하나를 무작위로 선택하여 해당 서버로 메일을 배달합니다. 서버 중 하나만 메일을 수신하므로 mailserver2가 메일을 수신하는 경우 mailserver1에서 구성한 내용은 메일에 영향을 주지 않습니다.
또한 수신자가 메일을 별도의 메일 서버로 리디렉션하는 메일 게이트웨이를 만들고 싶습니다.
들어오는 메일을 Postfix와 같은 MTA로 리디렉션하지 않고 Cyrus나 dovecot과 같은 MDA로 리디렉션하여 나중에 검색할 수 있도록 사용자의 메일함에 메일을 저장하는 것이 가능합니까?
http://en.wikipedia.org/wiki/Message_transfer_agent
http://en.wikipedia.org/wiki/Mail_delivery_agent
나는 당신이 다음과 같은 설정을 찾고 있다고 상상할 수 있습니다.
MX +----+ +----+
+---->|MTA1|\-------/|MDA1|
| +----+ \ / +----+
| \ /
+------+| \ /
|Domain|+ +
+------+| / \
| / \
| +----+ / \ +----+
+---->|MTA2|/-------\|MDA1|
MX +----+ +----+
다음과 같이 작동합니다.
- 누군가 user@domain으로 메일을 보냅니다. 보내는 서버는 메일을 MTA1 또는 MTA2로 배달하기로 무작위로 결정합니다.
- MTA1과 MTA2는 동일하게 구성됩니다. 단지 중복성 때문에 두 개의 MTA가 있습니다. 수신자 이메일 주소의 로컬 부분을 구문 분석하고 이를 사용하여 메시지를 보낼 MDA를 결정합니다.
- MTA는 다음을 통해 메시지를 MDA에 전달합니다.LMTP.
- MTA는 메일함에 메시지를 저장합니다.
- 이제 사용자는 IMAP 등을 통해 해당 MDA에 연결하고 메일을 검색할 수 있습니다.
답변2
마틴의 대답은 정확합니다.
도메인과 고유한 호스트 이름에 대한 메일을 허용하도록 두 메일 서버를 모두 구성합니다.
예를 들어 도메인 이름이 example.com이고 메일 서버가 mail1.example.com 및 mail2.example.com인 경우 mail1은 example.com 및 mail1.example.com의 이메일을 수락해야 하고 mail2는 example.com을 수락해야 합니다. com 메일 및 mail2.example.com
mail1.example.com 및 mail2.example.com은 DNS에 정의되어야 합니다.또는두 서버 모두의 /etc/hosts에 있는 항목입니다. 아마도 이를 가리키는 MX 레코드가 있기 때문에 DNS에 이미 정의되어 있을 것입니다.
mail1의 /etc/aliases 항목은 일부 사용자의 메일을 mail2로 리디렉션합니다.
사용자 1:[이메일 보호됨]
마찬가지로, mail2의 별칭을 사용하여 특정 사용자의 메일을 mail1로 리디렉션할 수 있습니다. 하지만 두 서버 모두 동일한 주소에 대해 별칭이 정의되어 있는 경우 메일 루프가 생성되지 않도록 주의하십시오.
/etc/aliases를 편집한 후 "newaliases" 명령을 실행하는 것을 잊지 마십시오.
보다 일반적으로, 메일 서버 중 하나가 postfix를 실행하고 다른 메일 서버가 MS Exchange를 실행하는 경우 방화벽 뒤에 Exchange 서버를 숨기고 postfix 서버를 메일 게이트웨이로 만듭니다. Postfix 서버에는 들어오는 모든 메일이 이 서버로 전송될 수 있도록 해당 서버를 가리키는 고유한 MX 레코드가 있어야 합니다. 그런 다음 인바운드 메시지를 로컬로 전달할지 아니면 일부를 교환 서버로 전달할지 결정합니다.
두 대의 MX 서버는 거의 필요하지 않습니다. 두 대의 서버가 있으면 생각보다 더 많은 문제가 발생할 수 있습니다. 특히 그 중 하나가 강력하고 안전하며 강력한 메일 서버(예: postfix)이고 다른 하나가 Exchange인 경우 더욱 그렇습니다.
두 번째 MX 서버를 보유하는 것이 실수인 경우가 많은 이유에 대한 간략한 요약은 다음을 참조하세요.
https://serverfault.com/questions/47312/mx-backup-service/47325#47325
이 질문은 특히 백업(낮은 우선순위) MX 서버에 관한 것이지만 동일한 원칙이 적용되지만 (DNS 루프로 인해) 수신 메일의 약 50%가 한 서버로 전송되고 50%가 다른 서버로 전송되기 때문에 더 복잡합니다.