질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

받는메일만 유독 안됩니다..OTL

작성자 정보

  • 이지훈 작성
  • 작성일

컨텐츠 정보

본문

Can't find mailnode in the routing table

-> 해당 도메인에 대한 nslookup 시 메일 서버IP를 받지 못해 발생합니다.

예를 들어 주요 포털의 nslookup 의 경우는 아래와 같습니다.

> naver.com

Non-authoritative answer:
naver.com       MX preference = 10, mail exchanger = rcvmail5.naver.com
naver.com       MX preference = 10, mail exchanger = rcvmail7.naver.com
naver.com       MX preference = 10, mail exchanger = rcvmail8.naver.com
naver.com       MX preference = 10, mail exchanger = rcvmail1.naver.com
naver.com       MX preference = 10, mail exchanger = rcvmail2.naver.com
naver.com       MX preference = 10, mail exchanger = rcvmail3.naver.com
naver.com       MX preference = 10, mail exchanger = rcvmail4.naver.com

naver.com       nameserver = ns1.naver.com
naver.com       nameserver = ns2.naver.com
rcvmail5.naver.com      internet address = 211.218.150.164
rcvmail7.naver.com      internet address = 211.218.150.77
rcvmail8.naver.com      internet address = 211.218.151.97
rcvmail1.naver.com      internet address = 211.218.150.166
rcvmail2.naver.com      internet address = 220.73.146.164
rcvmail3.naver.com      internet address = 220.73.146.165
rcvmail4.naver.com      internet address = 220.73.146.166
ns1.naver.com   internet address = 211.218.150.38
ns2.naver.com   internet address = 211.218.150.37

각 이메일 도메인에 대한 메일 서버 라우팅을 지시하는 구문이 들어가 있습니다.

naver.com 도메인으로 메일을 보낼 경우 위와같이 메일서버는 lookup을 해서 해당 도메인의 메일서버 IP를 받아옵니다.

위의 경우는 MX preference 가 동일하므로 rcvmail1.naver.com ~ rcvmail8.naver.com 중 아무거나 메일서버 네임으로 인식하겠죠, 만약 rcvmail1.naver.com 를 받아왔다면 아래를 참고하면

rcvmail1.naver.com      internet address = 211.218.150.166

보시다시피 해당 IP가 나와있으므로 211.218.150.166:25 로 메일을 보내면 됩니다.

질문을 올리신 분은 lookup이 안됩니다.  NS 서버는 있으신 건 같은데 해당 네임서버에 MX 가 없어서 메일 라우팅을 하지 못합니다. DNS 서버를 점검하셔서 MX 레코드가 맞게 설정되어 있는지 확인 해보시기 바랍니다.

물론 메일 테스트 시에 localhost 로 작업하셨기때문에 로컬메일은 수신 될겁니다.  ^^

MX 레코드 확인 을 해보세요.

그럼 ^^





 

관련자료

댓글 1

김대환님의 댓글

  • 김대환
  • 작성일
메일서버의 기본적인 기능설정과 관련된 질문을 하시는 서버관리자들이 많아 손쉽게 점검하고 조치하는 방법을 저의 경험을 바탕으로 설명드립니다.
편지를 보내기는 잘 되는데 받지를 못하거나 받기는 잘 되는데 보내지를 못하거나 로컬에서는 잘 되는데 정작 아웃룩등을 사용하면 잘 되지 않거나 하는 경우에 아래의 방법을 활용해 보실것을 권합니다.

1.릴레이 설정이 옳바른지 확인하여야 합니다.
릴레이 기능은 누가 나의 sendmail 데몬을 이용하여 편지를 보낼수 있도록 권한을 줄 것인가에 관점을 두고 있습니다.

(타이핑)#cat /etc/mail/access
mymail RELAY <----내 자신(호스트명)이 메일 보낼수 있도록 허용
mymail.xxx.co.kr RELAY <----풀네임(도메인명 포함)으로도 허용
localhost RELAY <----로컬호스트네임으로도 허용
10.10 RELAY <----예제)내부사용자1 대역 허용
192.168 RELAY <----예제)내부사용자2 대역 허용
210.xxx.xxx RELAY <----예제)특정 공인IP 사용자 대역 허용
#
163.com DISCARD <--- 스패머 등록
rankjine@sasimi.loli.co.kr DISCARD <--- 스패머 등록
streamwiz39@hanmail.net DISCARD <--- 스패머 등록

팁)위의 DISCARD는 스패머가 보내온 편지를 일단은 받은후 슬그머니 휴지통에 버리는 명령으로 스팸을 걸러내는데 사용하면 상당히 유용합니다.
보다 적극적으로 스팸을 차단(메일서버단에서)코자 한다면 프락메일을 쓸수 있으며 본 게시판에서 "광고"등의 제목으로 검색해 보거나 작성자를 "김대환"으로 검색해 보시면 좋은 정보를 얻을 수 있을 것입니다.

2. sendmail이 외부로 부터 보내오는 편지를 잘 수신할 수 있는지 기초적인 기능 점검해 봅니다.
즉 기초적인 진단은 성공 하였는데도 잘 수신되지 않는다면 여전히 릴레이 설정에 문제가 있다고 보여집니다.

(타이핑)[root@mymail mail]# telnet localhost 25
Trying 127.0.0.1...
Connected to mymail (127.0.0.1).
Escape character is '^]'.
220 localhost.localdomain ESMTP Sendmail 8.12.5/8.12.5; Mon, 23 Jun 2003 23:31:16 +0900

(타이핑)[root@mymail mail]# telnet mail 25
Trying 127.0.0.1...
Connected to mymail (127.0.0.1).
Escape character is '^]'.
220 localhost.localdomain ESMTP Sendmail 8.12.5/8.12.5; Mon, 23 Jun 2003 23:31:16 +0900

3. TCP-rapper가 동작중이라면 hosts.allow에 접근규칙이 있어야 합니다.
아래의 예제를 참고바랍니다.
(타이핑)[root@mail root]# cat /etc/hosts.allow
#
# hosts.allow This file describes the names of the hosts which are
# allowed to use the local INET services, as decided
# by the '/usr/sbin/tcpd' server.
#
#
in.proftpd: localhost xxx.xxx.xxx.xxx
in.telnetd: ALL@ALL
#
#
#아래의 설정값은 메일서버에 접근하여 편지를 읽을 수 있는 권한을 부여하며 미설정시 로그인이 않된다.
ipop3d: ALL@ALL
#
#
#외부에서 메일서버로 편지를 보내도록 하는 것으로 미설정시 반송처리된다.
sendmail: ALL@ALL
#

4. 이렇게 까지 해보았는데도 잘 되지 않는경우 sendmail.cf를 재구성해봅니다.
(타이핑)#cat /etc/mail/sendmail.mc
.
.
.
TRUST_AUTH_MECH 라고 되어 있는 부분의 주석(dnl)제거
define(`confATUH_MECHANISM...) 부분의 주석 제거
.
.
.
DAEMON_OPTIONS(`port...
부분에 Addr=127.0.0.1 을 사용하고 있는 실제 주소로 바꾼다음
저장하고 나서

(타이핑)#m4 sendmail.mc > sendmail.cf
라고 해서 sendmail.cf를 새로 만듭니다.

(타이핑)#/etc/rc.d/init.d/sendmail stop
(타이핑)#/etc/rc.d/init.d/sendmail stop
(타이핑)#/etc/rc.d/init.d/sendmail start
데몬을 재시작 시키고

(타이핑)#netstat -ant
.
.
tcp 0 0 xxx.xxx.xxx.xxx:25 0.0.0.0:* LISTEN
.
.
라고 보이면 일단은 정상입니다.
물론 xxx.xxx.xxx.xxx는 서버의 실제 주소이어야 합니다.

sendmail이 돌고 있는 서버에서 자체 확인
(타이핑)#telnet localhost 25
(타이핑)#telnet 호스트네임 25
(타이핑)#telnet xxx.xxx.xxx.xxx 25

원격지의 서버로 부터 검사
(타이핑)c:telnet xxx.xxx.xxx.xxx 25

5. 방화벽이 설치된 경우 차단규칙 검사

6. DNS 서버의 MX 레코드 설정이 옳바른지 검사

이상으로 설명을 마칩니다만 메일이 잘 보내지지 않거나 받게되지 못하는 경우가 여러요인으로 인해 발생되므로
차근차근 점검해 보시는 것이 가장 중요하다고 생각됩니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  67 명