임시 DNS 실패 후 Exim 메일 서버를 더 빠르게 재시도하는 방법

임시 DNS 실패 후 Exim 메일 서버를 더 빠르게 재시도하는 방법

우리는 DMZ에 위치하고 LAN에서 인터넷으로 이메일을 보내는 Ubuntu Server 18.04.1 LTS에서 Exim4 메일 서버 버전 4.90.1을 실행하고 있습니다.

때때로(아마도 24시간마다 성공적으로 전송된 수천 개의 메시지 중 몇 개) Exim에 일시적인 DNS 문제가 발생하여 메시지가 지연될 수 있습니다.

defer (-1): 호스트 조회가 완료되지 않았습니다.

그러나 수동 DNS 테스트(예: dig 사용)를 수행할 때 수신 도메인에 대한 MX 레코드를 가져오는 데 아무런 문제가 없습니다.

Exim은 이메일을 연기했고 다음 시도(20~30분 후)에서는 더 이상 DNS 문제 없이 이메일이 정상적으로 전송되었습니다.

수천 개의 메시지 중 일부 드문 메시지에서 짧은 DNS 문제가 때때로 발생하는 이유를 찾지 못했습니다. 하지만 내 생각에는 소프트웨어(이 경우 exim)가 몇 초의 DNS 시간 초과를 처리할 수 있을 만큼 강력해야 한다고 생각합니다. 예제에서 바인드 DNS 서버의 쿼리 오류 로그에는 다음 항목이 있습니다.

22-Aug-2023 17:20:28.639 query-errors: debug 1: client @0x7f56f74b2050 195.xxx.xxx.87#45395 (examplecustom.com): query failed (SERVFAIL) for examplecustom.com/IN/MX at ../../../bin/named/query.c:8402

아래에는 위의 오류로 인해 이메일이 20분 동안 지연된 사례가 나와 있습니다.

제 질문은: 20분 동안 1분마다 DNS 조회 오류를 재시도하도록 Exim을 어떻게 구성합니까? 따라서 가장 좋은 시나리오에서는 DNS 문제가 몇 초 동안 지속되면 1분 후에 메시지가 전송되며 이때 다시 시도할 수 있습니다. 현재 지연은 최대 30분까지 허용되지 않습니다.

내가 읽고https://www.exim.org/exim-html-current/doc/html/spec_html/ch-retry_configuration.html다음 줄을 시도했습니다 /etc/exim4.conf.template.

# DNS(Lookup) retry every minute for 20 minutes, first
*                      lookup      F,20m,1m; G,16h,1h,1.5; F,4d,6h
# This is Exim default rule
*                      *           F,2h,15m; G,16h,1h,1.5; F,4d,6h

그러나 불행하게도 이는 아무것도 변경하지 않습니다. 아래 예는 위의 추가 규칙이 활성화될 때 발생하는 상황입니다. 이 예에서는 이메일이 17:28:47에 전송되기를 원했지만 Exim에서는 12 분을 더 낭비했다고 QUEUEINTERVAL='10m'합니다 . 그때까지 재시도 시간이 도달했으면 좋겠습니다. 이 적극적인 재시도 설정은 특히 DNS 조회 오류에 사용해야 합니다./etc/default/exim4"retry time not reached"

2023-08-22 17:20:19 1qBTYB5-0006NM-Nv <= [email protected] H=(smtp.example.com) [10.10.10.62] P=esmtps X=TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256 CV=no K S=2478 [email protected]
2023-08-22 17:20:28 1qBTYB5-0006NM-Nv == [email protected] R=dnslookup defer (-1): host lookup did not complete
2023-08-22 17:28:47 1qBTYB5-0006NM-Nv == [email protected] routing defer (-51): retry time not reached
2023-08-22 17:40:59 1qBTYB5-0006NM-Nv => [email protected] R=dnslookup T=remote_smtp H=mx01.hornetsecurity.com [94.100.132.8] X=TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256 CV=yes C="250 2.0.0 OK accept as AC027FA06BA:4f234742f62fac6098baf99d16db6d79 by mx-gate97-hz1"
2023-08-22 17:40:59 1qBTYB5-0006NM-Nv Completed

관련 정보