SMTP를 이용한 메일 송수신 시 매우 많은 DNS 조회가 발생합니다. 메일을 발송할 때는 수신 서버를 찾기 위해 DNS 서버에서 MX 레코드와 A 레코드를 조회합니다. 메일을 수신할 때는 발신처의 유효성을 검사하기 위해 SPF, DKIM, DMARC 관련 레코드를 조회하고, 스팸 여부를 판별하기 위해 다양한 RBL 서버에 DNS 쿼리를 전송해 결과를 받아옵니다.
일반적으로 공용 DNS 서버를 사용해 DNS 쿼리를 실행하지만 송수신 량이 많을 경우 DNS 응답이 지연되어 메일 처리가 지연될 수 있습니다. 공용 DNS 서버에 직접 쿼리하는 대신 로컬 DNS 서버를 운영해 쿼리를 실행할 경우 보다 빠르고 안정적으로 DNS 쿼리 실행이 가능합니다.
이와 같이 조회 전용 DNS 서버를 DNS 리졸버(캐시 서버)라고 부르며 대표적인 프로그램으로 Unbound가 있습니다.
메일캐리어 설치 폴더 아래에 있는 Tools/unbound 폴더에 프로그램 파일이 존재합니다.
unbound-service-install.exe을 실행하면 Unbound가 윈도우 서비스로 등록됩니다.
윈도우 서비스를 실행하면 Unbound DNS validator라는 명칭으로 등록되어 있으며 해당 서비스를 시작시킵니다.
메일캐리어를 위한 Unbound 기본 구성
동일(로컬) 머신에서만 접속해 DNS 쿼리를 실행할 수 있도록 구성되어 있습니다.
직접 루트 DNS를 조회하고 캐시하는 재귀 모드로 동작합니다.
service.conf 파일을 수정해 설정을 변경할 수 있으며 Unbound DNS validator 서비스를 재시작해야 변경 사항이 적용됩니다.
주의 - service.conf 파일은 utf-8 형식의 텍스트 파일이므로 해당 형식을 올바르게 지원하는 텍스트 편집기를 사용해 수정합니다.
메일캐리어 관리 도구에서 [메일 서버 > 메일 수신 서버 > SMTP 수신1]의 속성 창을 연 후 DNS 탭으로 이동합니다.
기본 DNS 서버에 127.0.0.1을 지정합니다.
메일캐리어 관리 도구에서 [메일 서버 > 메일 발송 서버 > SMTP 발송1]의 속성 창을 연 후 DNS 탭으로 이동합니다.
기본 DNS 서버에 127.0.0.1을 지정합니다.
메일캐리어 메일 송수신에 필요한 모든 DNS 쿼리는 127.0.0.1로 전송되고 이를 받은 Unbound는 해당 쿼리에 응답하게 됩니다.