Article original publié le vendredi 29 mai 2013

Je suis ingénieur support CSS. Je travaille avec un client qui me signale une erreur de boucle de message pour un domaine spécifique tel que contoso.com. Cette erreur ne se produit que pour des messages de grande taille. Tout cela était bien mystérieux jusqu’à ce que je comprenne que la boucle était due à une limitation de taille du connecteur d’envoi. J’ai pensé qu’il était intéressant de partager ce curieux problème.

Comprendre la configuration et la cause du problème :

Au début, j’ai pensé que la raison était due à un serveur Edge configuré pour utiliser un serveur DNS externe (un serveur DNS qui résout les hôtes externes). En règle générale quand le serveur de transport Edge est configuré pour utiliser un DNS externe, il résout le nom de domaine aux adresses IP publiques (en pointant vers lui-même, le pare-feu externe ou le fournisseur de services) au lieu d’un serveur de transport Hub dans le site Active Directory, ce qui provoque une boucle de message.

En reproduisant ce problème, j’ai découvert que le serveur de transport Edge n’était pas configuré pour utiliser un serveur DNS externe. L’environnement que j’ai configuré pour reproduire le problème est indiqué dans le diagramme ci-dessous :

clip_image002

 

Voici ce qui se passe dans ce scénario : quand le serveur de transport Edge reçoit un message de 20 Mo d’un expéditeur Internet, il l’accepte. Le serveur de transport Edge a deux connecteurs qui correspondent à l’espace d’adressage : un pour l’espace d’adressage contoso.com vers le site Active Directory et un pour l’espace d’adressage *. Lorsqu’il décide de l’itinéraire en fonction des connecteurs disponibles, celui du Edge vers le Hub n’est pas pris en compte en raison de la restriction de taille (la limite de taille est de 10 Mo). La meilleure correspondance est le connecteur * du Edge vers Internet (voir l’algorithme de sélection du connecteur décrit dans Présentation du routage des messages) qui a une limite de message de 30 Mo.

Résultat final : le message est renvoyé vers Internet ce qui crée une boucle de message entre Internet et le serveur Edge.

Selon si le connecteur d’envoi vers Internet est configuré pour utiliser DNS ou un hôte actif pour remettre le courrier sortant, nous obtiendrons l’un des rapports de non remise suivants :

Utilisation de DNS :

#554 5.4.4 SMTPSEND.DNS.MxLoopback; DNS records for this domain are configured in a loop ##

Utilisation d’un hôte actif :

5.4.6 smtp;554 5.4.6 Hop count exceeded - possible mail loop> #SMTP#

La solution

Ce comportement est voulu et peut être facilement rectifié en modifiant la limite de taille des messages sur le connecteur. En fonction de vos exigences, vous pouvez choisir l’une des options suivantes :

  • Définissez le paramètre MaxMessageSize du connecteur de réception (qui reçoit le courrier entrant d’Internet) à 10Mo, afin que les messages provenant d’Internet soient limités à 10 Mo.
  • Définissez le paramètre MaxMessageSize du connecteur d’envoi du serveur Edge vers le serveur HUB à 30Mo, ce qui autorisera la réception de messages de 30 Mo d’expéditeurs externes.

Le mystère est résolu ! Merci à Arindam Thokder et à Scott Landry, qui m’ont aidé à rédiger ce billet de blog.

Suresh Kumar (XCON)

Ce billet a été traduit de l’anglais. La version originale est disponible à la page Mysterious mail loop on Edge Transport server: Check your size limits!