systemadmin.es > Correo > Balanceo de relayhosts para mails salientes en postfix

Balanceo de relayhosts para mails salientes en postfix

En postfix podemos configurar un servidor para repartir la carga de mails de salida a un conjunto de servidores de relay sin tener que usar ningún software adicional, como podría ser HAProxy

Si miramos la documentación de la opción relayhost veremos:

In the case of SMTP, specify a domain name, hostname, hostname:port, [hostname]:port, [hostaddress] or [hostaddress]:port. The form [hostname] turns off MX lookups.

Por defecto postfix hace caso de los registros MX, excepto si usamos la forma [host], por lo que definiremos lo siguiente:

relayhost = out.systemadmin.es

El registro MX de out.systemadmin.es deberá ser el listado de relayhosts a los que queremos mandar con la misma preferencia:

# dig out.systemadmin.es +short mx
100 smtp-02.out.systemadmin.es.
100 smtp-01.out.systemadmin.es.

Una vez aplicada la configuración, podremos ver en los logs cómo se van repartiendo los mails de salida entre los relayhosts que hemos configurado mediante dicho registro MX:

May 20 19:33:39 host5356xd postfix/pickup[6686]: 83D06AE: uid=0 from=<root>
May 20 19:33:39 host5356xd postfix/cleanup[6714]: 83D06AE: message-id=<20150520153339.83D06AE@host5356xd.localdomain>
May 20 19:33:39 host5356xd postfix/qmgr[6687]: 83D06AE: from=<root@host5356xd.localdomain>, size=444, nrcpt=1 (queue active)
May 20 19:33:39 host5356xd postfix/smtp[6716]: 83D06AE: to=<jordi@systemadmin.es>, relay=smtp-01.out.systemadmin.es[10.10.10.1]:25, delay=0.03, delays=0.02/0/0.01/0.01, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 870DB607B2)
May 20 19:33:39 host5356xd postfix/qmgr[6687]: 83D06AE: removed
May 20 19:33:40 host5356xd postfix/pickup[6686]: 41FA0AE: uid=0 from=<root>
May 20 19:33:40 host5356xd postfix/cleanup[6714]: 41FA0AE: message-id=<20150520153340.41FA0AE@host5356xd.localdomain>
May 20 19:33:40 host5356xd postfix/qmgr[6687]: 41FA0AE: from=<root@host5356xd.localdomain>, size=444, nrcpt=1 (queue active)
May 20 19:33:40 host5356xd postfix/smtp[6716]: 41FA0AE: to=<jordi@systemadmin.es>, relay=smtp-02.out.systemadmin.es[10.10.10.2]:25, delay=0.15, delays=0.02/0/0.11/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 60F7E607B2)
May 20 19:33:40 host5356xd postfix/qmgr[6687]: 41FA0AE: removed

4 comments to “Balanceo de relayhosts para mails salientes en postfix”

  1. ¿Esta opción detecta relayhosts caídos? Entiendo que si un envío falla por ésta causa, quedará pendiente en la cola y en el siguiente intento de delivery, si tiene suerte y le toca el nodo “bueno” lo enviará, y sino volverá de nuevo a la cola de oendientes. Y así sucesivamente. ¿Alguna experiencia al respecto?

    Keep up the good work!

  2. Esta configuración usa la misma lógica de los MX de correos entrantes. También puedes usar la opción smtp_fallback_relay si no te vale que los correos se vayan reintentando si uno de igual preferencia esta caído

  3. Salu2s soy nuevo en ese tema de balancear carga entre varios servidores smtp y quisiera me pudiesen explicar un poco mas en detalle como hacer dicho registro, me haria falta hacer eso en mi nodo, pues se ha incrementado las peticiones de correo y quiero balancear un poco la carga, a ver si mejora el servicio que ya lo tengo jejee bastante saturadito.

    Gracias de antemano.

  4. Te refieres a correos entrantes o salientes? Dicha configuración es para repartir correos salientes entre varios relays

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>