[네임서버의 MX 레코드와 센드메일의 큐잉(Queueing)상태]
안녕하세요?
리눅스 채널의 산이입니다.
(알짜리눅스 6.1 FTP 배포본(99.12.2x)
사용자입니다.)
버그는 아니지만 잘못된 설정이 있어서
글 올립니다.
다루는 범위는 [가상 메일서버]에 해당합니다.
네임서버를 설정하다가 우연히(?)
잘못된 설정으로 무려 하루 반의 시간을
소비했습니다.
(MX 레코드와 전쟁)
다른 버전은 어떤지 모르겠지만
제가 사용하고 있는 버전은
잘못되어 있습니다.
/etc/sendmail.cf 파일에
F클래스 정의가
Fw/etc/mail/sendmail.cw
로 되어 있고
sendmail.cw
파일은 /etc/sendmail.cw에 있습니다.
Fw/etc/sendmail.cw
로 바꾸든지 아니면
sendmail.cw 파일을 /etc/mail/sendmail.cw
로 옮겨야합니다.
물론 linuxconf 에 의해서 sendmail.cf 파일은 생성된다는점은
잊어서는 안되고.................
바뀌지 않은 상태에서
F클래스 정의를 Sendmail이 알지 못하기 때문에
다음과 같은 메시지를 반송하고 맙니다.
553 www.xxx.kr. config error: mail loops back to me (MX problem?)
554 <aaa at www.xxx.kr>... Local configuration error
또는
554 MX list for xxx.kr. points back to mail.xxx.kr
554 <aaa at xxx.kr>... Local configuration error
즉, 네임서버의 MX 레코드로 지정한 호스트로 매핑이 되어야 하는데
정작 메일을 받을 호스트가 인증(메일을 받아줄 수신자)을 못하기 때문에
일어나는 문제입니다.
전자와 같은 경우는 www호스트가 자체 큐잉상태가 되어
무한(?) 루프가 되어 버린 경우입니다.
즉 하나의 리눅스 박스로 가상 메일서버를 설정할 경우에 흔한 경우이며
@ IN A 192.168.10.3
IN MX 0 mail.xxx.kr.
mail IN A 192.168.10.3
www IN A 192.168.10.3
IN MX 0 mail.xxx.kr.
로 설정하여
ID at www.xxx.kr 로 메일을 보내면 ID at mail.xxx.kr 로 매핑할 계획이었으나
의도한 바는 되지 않고 192.168.10.3의 호스트가(통합 서버) www.xxx.kr 호스트에 대해서 메일을
받을 수신자로 알지 못하기 때문에 자체 큐잉이 되어버리고 계속 무한 루프에 빠진 경우입
니다. 그래서 센트메일이 MX(?) 에 문제가 있다고 나온 메시지입니다.
www.xxx.kr ---> 192.168.10.3=mail.xxx.kr(www is NO, 수신불가) --->
www.xxx.kr ---> 192.168.10.3=mail.xxx.kr(www is NO, 수신불가) --->
www.xxx.kr ---> ....계속
즉 www --> mail 까지 매핑은 성공했으나 최종 목적지 호스트인
mail(=www=192.168.10.3)호스트가 www 호스트를 수신자로 알지 못하기
때문에 계속 빙글빙글 돌게 되는 것입니다.
그러나 MX 레코드에 문제가 없고 자체 큐잉만 없애주면 됩니다.
즉 192.168.10.3의 호스트가 www.xxx.kr로 들어오는 메일을 받아주면
그만입니다............./etc/sendmail.cf의 Cw클래스에 정의(또는 Fw)
Queueing :
sendmail이 직접 메일을 받지 않고 잠시 큐 상태인 경우입니다.
매핑하고자 하는 최종 목적지 호스트가 잠시 중단 되었을 경우 큐잉 상태로
동작하며 얼마동안 주기적으로 다운된 최종 목적지 호스트에 접속시도합니다.
MX 레코드로 지정합니다.
A라는 호스트를 큐잉상태로 만들려면 들어오는 메일에 대한 호스트 부분(또는 도메인)
에 대해서 수신자로 설정하지 않아야 합니다.
또한 들어오는 메일에 대해서 릴레이는 허용해야 합니다.(중계 해야하기 때문에)
앞의 예에서는 모두 하나의 리눅스 박스에서 해결하므로 큐잉 상태로 놓으면 안되겠죠.
모든 호스트에 대해서 수신자로 설정해야 메일을 받을 수 있습니다.
때문에 한대의 리눅스로 가상 메일서버를 설정할 경우는 무엇보다. F 클래스 정의에 주
의해야 합니다.
후자의 같은 경우도 일종의 무한 루프에 빠진 경우입니다.
aaa at xxx.kr로 메일을 보내면 aaa at mail.xxx.kr로 매핑할 계획이었으나
(MX 레코드)
mail.xxx.kr 호스트가 불행이도 xxx.kr 도메인을 거부해 버린 경우입니다.
즉 /etc/sendmail.cw 파일에 xxx.kr 도메인이 없는 경우로 뜻하지 않은
큐잉상태인 경우입니다.
이 경우는 따로 독립된 www.xxx.kr 호스트는 큐잉상태로 정상적으로 동작하며
mail 호스트 역시 xxx.kr 도메인에 대해서 수신자로 알지 못하고 큐잉상태에 놓인
경우입니다.
즉 xxx.kr에 대해서 둘다 큐잉 상태로 놓인 경우입니다...........T.T
문제는 mail.xxx.kr이며 www.xxx.kr를 수신자로 받아 주지 않기 때문입니다.
뜻하지 않는 MX 레코드 에러가 아닙니다.
전자와 마찬가지로 xxx.kr에 대해서 수신자로 설정하면 큐잉서버로 동작하지 않습니다.
/etc/sendmail.cf 파일에서 F클래스의 잘못된 설정으로 위와 같은 두개의 메시지를
내고 맙니다.
전자와 후자의 차이는 큐잉 상태로 놓은 서버가 하나로 통합되었냐(전자)아니면
따로 독립되었냐(후자)의 차이 뿐입니다.
----------------------------
MX 전쟁에서 이긴후.........................^.9
*설명이 너무 난잡하네요.............T.T