blog.stackframe.dev

카카오 메일 수신 불가 문제

내 자체 메일 서버에 카카오 메일로 보낸 메일이 수신되지 않는 문제를 발견했다.

내 서버가 카카오 메일을 거부했다.

나는 Postfix 메일 서버 smtpd_helo_restrictions 설정에 reject_unknown_helo_hostname 옵션을 넣어서 사용하고 있다. 이것을 사용하면 SMTP 연결 때 HELO나 EHLO와 함께 오는 도메인을 DNS 쿼리하여 A, MX 레코드 둘 다 없다면 메일을 거부한다. 문제는 카카오 메일이 전송한 kmail-smail-vm26.dakao.io는 A나 MX 레코드가 뜨지 않는다. 그냥 없는게 아니라 아예 네임서버에서 거부를 한다:

$ drill kmail-smail-vm26.dakao.io @ns1.daum.net
;; ->>HEADER<<- opcode: QUERY, rcode: REFUSED, id: 28200
;; flags: qr rd ; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; kmail-smail-vm26.dakao.io.   IN      A

;; ANSWER SECTION:

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 6 msec
;; SERVER: 113.61.106.5
;; WHEN: Mon Nov 15 02:30:25 2021
;; MSG SIZE  rcvd: 43

WHOIS 검색을 해보면 분명 dakao.io는 카카오가 소유하고 있는 도메인이고 네임서버도 다음 네임서버로 등록되어 있지만 이 도메인에 대한 쿼리는 모두 거부하고 있는 상황이다. 심지어 SOA 쿼리까지도 응답하지 않는다.

이상한 점은 저 메일을 보낸 IP에 대한 리버스 도메인을 쿼리해보면 mail.kakao.com 하위 도메인이 뜨고 A 레코드도 정상적으로 나온다:

$ drill -x 121.53.206.36
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 30354
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; 36.206.53.121.in-addr.arpa.  IN      PTR

;; ANSWER SECTION:
36.206.53.121.in-addr.arpa.     86400   IN      PTR     kmail-smail-vm26.mail.kakao.com.

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 37 msec
;; SERVER: 127.0.0.53
;; WHEN: Mon Nov 15 02:35:27 2021
;; MSG SIZE  rcvd: 89

$ drill kmail-smail-vm26.mail.kakao.com A
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 25799
;; flags: qr rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;; kmail-smail-vm26.mail.kakao.com.     IN      A

;; ANSWER SECTION:
kmail-smail-vm26.mail.kakao.com.        600     IN      A       121.53.206.36

;; AUTHORITY SECTION:

;; ADDITIONAL SECTION:

;; Query time: 35 msec
;; SERVER: 127.0.0.53
;; WHEN: Mon Nov 15 11:17:42 2021
;; MSG SIZE  rcvd: 65

그냥 EHLO를 진행할 때 kmail-smail-vm26.mail.kakao.com을 보냈으면 내 서버가 거부하지 않았을 것이다. dakao.io 도메인을 내부 용도로 사용하는건지 모르겠지만, 외부 서비스에는 표시되지 않게 하거나 RFC 표준에 맞게 DNS 쿼리가 되었으면 한다.

댓글