내 자체 메일 서버에 카카오 메일로 보낸 메일이 수신되지 않는 문제를 발견했다.
나는 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 쿼리가 되었으면 한다.