En-tête Postfix indiquant une mauvaise IP

J'utilise Postfix 2.11.3 sur Debian 8.0

J'ai configuré Postfix pour exécuter plusieurs instances (3), une pour chaque IP publique connectée à notre server afin d'équilibrer le trafic sortant en fonction du service.

J'ai configuré DKIM et SPF pour tous les sous-domaines (1 sous-domaine pour chaque IP), mais parfois, je reçois SPF et DKIM échouer de GMail et d'autres fournisseurs, et en regardant les en-têtes, il semble que le server de réception n'a pas réussi à résoudre mon IP.

Veuillez vérifier l'en-tête suivant, par exemple

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 sortingp with family! Bounces-To: chris@hello3.much.cheap 

Comme vous pouvez voir à la fois SPF et DKIM échouer en raison de l'erreur erronée: 2607: 5300: 60: 6516 :: Le plus étrange est qu'après les loggings SPF et DKIM, Google peut effectivement voir mon IP réel (Reçu: à partir de [167.114. 180.233] par hello3.much.cheap)

L'erreur n'est pas constante, certaines fois elle obtient l'IP correcte (167.114.180.233) même dans le premier en-tête et toutes les vérifications sont passées.

Veuillez noter que je ne suis pas derrière le pare-feu / proxy et que l'instance postfix associée est liée à l'adresse IP correcte

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_ressortingctions = permit_mynetworks, permit_sasl_authenticated, reject smtpd_helo_ressortingctions = permit_mynetworks, permit_sasl_authenticated, reject smtpd_sender_ressortingctions = permit_mynetworks, permit_sasl_authenticated, reject smtpd_recipient_ressortingctions = 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_classs = 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 ssortingct_mailbox_ownership = no 

Une idée?

Cet en-tête

 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) 

indique que postfix envoie un courrier électronique à mx.google.com via IPv6. Dans d'autres cas, Postfix enverra un courrier électronique via IPv4.

Le vérificateur SPF mx.google.com utilisera votre adresse IPv6 pour comparer avec votre logging SPF

 v=spf1 mx a ptr include:much.cheap ~all 

Comme vous pouvez le voir, l'logging IPv6 n'a pas été répertorié dans l'logging SPF, ainsi, Google vous avertit des vérifications SPF échouées. Le server mx.google.com ne se trompe pas lorsque vous résolvez votre adresse IP. C'est votre server qui l'envoie avec IPv6.

Le correctif devrait être d'append l'logging IPv6 à votre SPF.


Je ne sais toujours pas pourquoi postfix envoyer un courrier électronique via IPv6 car vous avez un paramètre

 smtp_bind_address = 167.114.180.233 

Tailing maillog en niveau détaillé pourrait révéler les problèmes cependant.

Cela pourrait être lié aux règles de priorité DNS. La norme est la première solution IPv6 et IPv4. Vous pouvez modifier ce comportement en modifiant le file /etc/gai.conf Si vous souhaitez donner la priorité à IPv4, décommentez la ligne qui indique:

#precedence ::ffff:0:0/96 100