Я использую Postfix 2.11.3 в Debian 8.0
Я настроил Postfix для запуска нескольких экземпляров (3), по одному для каждого общедоступного IP-адреса, подключенного к нашему серверу, чтобы сбалансировать исходящий трафик в зависимости от службы.
Я настроил DKIM и SPF для всех поддоменов (1 поддомен для каждого IP-адреса), но иногда я получаю сбой SPF и DKIM от GMail и других провайдеров, и, глядя на заголовки, похоже, что получающий почтовый сервер не смог разрешить мой IP.
Пожалуйста, проверьте следующий заголовок, например
Delivered-To: XX@XXXX.com
Received: by 10.28.221.87 with SMTP id u84csp184407wmg;
Fri, 5 Jun 2015 19:26:17 -0700 (PDT)
X-Received: by 10.52.116.162 with SMTP id jx2mr11374004vdb.80.1433557576885;
Fri, 05 Jun 2015 19:26:16 -0700 (PDT)
Return-Path: <chris@hello3.much.cheap>
Received: from hello3.much.cheap ([2607:5300:60:6516::])
by mx.google.com with ESMTP id f2si9741219vdb.2.2015.06.05.19.26.14
for <XX@XXXX.com>;
Fri, 05 Jun 2015 19:26:15 -0700 (PDT)
Received-SPF: permerror (google.com: domain of chris@hello3.much.cheap uses a mechanism not recognized by this client. unknown mechanisms: )) client-ip=2607:5300:60:6516::;
Authentication-Results: mx.google.com;
spf=permerror (google.com: domain of chris@hello3.much.cheap uses a mechanism not recognized by this client. unknown mechanisms: )) smtp.mail=chris@hello3.much.cheap;
dkim=pass header.i=@much.cheap;
dmarc=pass (p=NONE dis=NONE) header.from=hello3.much.cheap
Message-Id: <55725a47.220a340a.cc4f.ffffada7SMTPIN_ADDED_MISSING@mx.google.com>
Received: from hello3.much.cheap (hello3.much.cheap [167.114.180.233])
by hello3.much.cheap (Postfix) with ESMTP id 27F7940083
for <XX@XXXX.com>; Fri, 5 Jun 2015 22:26:10 -0400 (EDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=much.cheap; s=hello;
t=1433557570; bh=z/R8LvudDLyZmOBbw+42+SG7pLmnI+4/+E4YxHqibK4=;
h=Date:To:From:Subject:From;
b=tJdvbP1c+me6BwXx4Qayzwvw7GR+OFd/xG+OwCqXz/YNPVhTIS56HxGxRkEvnztTr
ClouAavusckmwXfQ5GmwjWvzVlcIZc7eT9rkBrAL8Th+2YPXNiw4k36ZDRik9lfICp
qpvcGIhruOCE4BBQFE31j2qEDTl6qVh2D0jSAbD8=
Received: from [167.114.180.233] by hello3.much.cheap with HTTP; Fri, 05 Jun 2015 22:26:09 -0400
Date: Fri, 5 Jun 2015 22:26:10 -0400
To: XX@XXXX.com
From: Chris <chris@hello3.much.cheap>
Subject: Wonderful trip with family!
Bounces-To: chris@hello3.much.cheap
Как вы можете видеть, как SPF, так и DKIM терпят неудачу из-за неправильного разрешенного IP: 2607: 5300: 60: 6516 :: Самое странное, что после записей SPF и DKIM Google действительно может видеть мой реальный IP-адрес (получено: от [167.114. 180.233] пользователя hello3.much.cheap)
Ошибка не постоянная, иногда она получает правильный IP (167.114.180.233) даже в первом заголовке, и все проверки проходят.
Обратите внимание, что я не нахожусь за брандмауэром / прокси, и связанный экземпляр постфикса привязан к правильному IP-адресу
master.cf
67.114.180.233:2533 inet n - n - - smtpd
main.cf
myorigin = hello3.much.cheap
myhostname = hello3.much.cheap
mydomain = hello3.much.cheap
queue_directory = /var/spool/postfix-3
data_directory = /var/lib/postfix-3
multi_instance_group = outgoing
multi_instance_name = postfix-3
inet_interfaces = all
smtp_bind_address = 167.114.180.233
mynetworks = 127.0.0.0/8 167.114.64.22 167.114.180.232/29
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject
smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, reject
smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject
milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301
multi_instance_enable = yes
smtp_generic_maps = hash:/etc/postfix-3/generic
sender_canonical_classes = envelope_sender, header_sender
sender_canonical_maps = regexp:/etc/postfix-3/sender_canonical_maps
smtp_header_checks = regexp:/etc/postfix-3/header_check
mime_header_checks = regexp:/etc/postfix-3/header_check
header_checks = regexp:/etc/postfix-3/header_check
strict_mailbox_ownership = no
Любая идея?
Этот заголовок
Received: from hello3.much.cheap ([2607:5300:60:6516::])
by mx.google.com with ESMTP id f2si9741219vdb.2.2015.06.05.19.26.14
for <XX@XXXX.com>;
Fri, 05 Jun 2015 19:26:15 -0700 (PDT)
указывает, что postfix отправляет электронное письмо на mx.google.com через IPv6. В противном случае postfix отправит электронную почту через IPv4.
Средство проверки SPF mx.google.com будет использовать ваш IPv6-адрес для сравнения с вашей записью SPF.
v=spf1 mx a ptr include:much.cheap ~all
Как видите, запись IPv6 не была указана в записи SPF, поэтому Google предупреждает вас о неудачных проверках SPF. Сервер mx.google.com не ошибается при разрешении вашего IP-адреса. Это ваш сервер отправляет его с IPv6.
Исправление должно заключаться в добавлении записи IPv6 в ваш SPF.
Я до сих пор не знаю, почему postfix отправляет электронную почту через IPv6, поскольку у вас есть параметр
smtp_bind_address = 167.114.180.233
Однако отслеживание почтового журнала на подробном уровне может выявить проблемы.
Это может быть связано с правилами приоритета DNS. Стандарт решает сначала IPv6, а затем IPv4. Вы можете изменить это поведение, изменив файл /etc/gai.conf. Если вы хотите отдать приоритет IPv4, раскомментируйте строку, в которой говорится:
#precedence ::ffff:0:0/96 100