[도메인] 다중 MX Record 설정시
[[ powered by DNS 참조 ]]
MX(Mail eXchange) 알고리즘
MX 레코드는 해당 호스트로 수신되는 편지를 다른 호스트로 라우팅 하도
록 한다. 원격 호스트에서 다음과 같이 설정된 도메인, tt.co.kr 로 편지
를 송신할 경우에 Sendmail의 동작을 알아보자.
tt.co.kr. IN MX 10 mail1.tt.co.kr.
IN MX 20 mail2.tt.co.kr.
IN MX 20 mail3.tt.co.kr.
(1) 로컬호스트가 해당 도메인에 대해 인증을 갖는지 확인한다.
(2) mail1 로 배달을 시도한다.
(3) mail2 혹은 mail3 으로 배달을 시도한다.
(4) 에서 시도되지 않은 호스트로 배달을 시도한다.
(5) 자체 큐잉 후, 일정 기간동안 주기적으로 2-4의 과정을 반복한다.
흔히 갖는 잘못된 MX의 이해 중 하나는, mail1 이 다운되어 mail2 로 편지
가 배달되었을 때, 편지가 mail2 의 메일박스에 저장 된다는 생각으로, 다
수의 MX 레코드 설정을 꺼리는 경우이다. 이렇게 되면, 사용자 계정을 양
쪽 호스트에 설정하여 두어야 하며, 사용자는 매번 양쪽의 계정을 모두 확
인하여야 한다는 노파심 때문일텐데, 일반적으로 낮은 priority를 갖는 호
스트는 큐잉서버로 동작하도록 설정하기 때문에 결국 편지는 하나의 호스
트(mail1)로 집결 된다. 위의 경우 mail1 와 mail2의 Sendmail이 다음 조
건을 만족하도록 설정되어 있으면 메일 큐잉서버로 동작한다.
(1)해당 도메인(tt.co.kr)에 대한 인증을 갖지 않아야 한다.
(즉 mail2 나 mail3 메일 서버의 sendmail.cw 에 tt.co.kr 이 설정되어 있
으면 안된다.)
(2)서버는 해당 호스트로의 메일 릴레이(Relay)를 허용하여야 한다.
( /etc/mail/access 에서 아래와 같이 정의되어야 한다.)
mail1 relay
인증을 갖지 않아야 한다는 것은 Sendmail의 w 클래스(sendmail.cw 혹은
sendmail.cf의 Cw)에 tt.co.kr 도메인이 없어야 함을 의미하고 , 메일 릴
레이란 수신되는 편지의 최종 배달지가 자신이 아닐 경우, 즉 인증을 갖
지 않을 경우 편지를 해당 호스트로 포워딩함을 뜻한다. 근래의 몇몇 OS
배포판들은 기본적으로 Sendmail이 릴레이를 거부하도록 설정되어 있는
데, 이러할 경우 해당 호스트는 큐잉서버로 동작하지 못함에 유의하자. 보
통 기관의 SMTP 서버는 타인에 의한 남용을 막기위해 내부 IP(혹은 도메
인)에 대해서만 릴레이를 허용하도록 설정하지만, 메일 큐잉 서버의 경우
는 본 Feature를 끄거나 해당 호스트를 목적지로 하는 편지에 대해서는 릴
레이를 허용하도록(이 말의 의미하는 바를 잘 모르겠다면, 모든 IP에 대
해 릴레이를 허용토록 설정하라) 조정하여야 한다.
mail1 의 수신 불능으로 인해 mail1 로 전달되는 편지는 메일큐에 저장되
어 있으면서, 일정 기간(Sendmail.cf에서 지정된 Timeout.queuereturn=5d
만큼)동안 주기적(Sendmail 구동시 지정된, 일반적으로 30분 -q30m)으로
배달이 시도된다. 따라서 반드시 mail1 만이 tt.co.kr 에 대한 인증을 가
져야 한다.