H.A. para SMTP: Haproxy + Postfix

imagesmysza

 

Olá ! Nesse artigo eu gostaria de falar sobre uma arquitetura de alta disponibilidade para o serviço SMTP, com o software HAPROXY. Embora seja viável o balanceamento de carga com a inclusão de múltiplos servidores MX, muitas vezes é necessário ter alta disponibilidade de fato, sem depender de alterações de DNS, bem como a necessidade de se utilizar um único IP para apresentação.

Desta forma, iremos utilizar o HAPROXY como camada de apresentação para o serviço SMTP. Se a distribuição utilizada para implementação do HAPROXY for o Debian 7, a instalação do software é efetuada através do repositório Backports. Para o Debian 8, a instalação é efetuada através do repositório padrão.

Para instalar o HAPROXY, instale o pacote do mesmo:

aptitude install haproxy

O arquivo /etc/haproxy/haproxy.cfg pode ser configurado da seguinte maneira:

haproxy-cfg

 

Destacando as diretivas Frontend e Backend, que, respectivamente, correspondem ao serviço e porta que será iniciada no servidor Haproxy e os servidores SMTP que farão parte do pool. Como a porta utilizada no proxy também será a padrão SMTP [25], é necessário desinstalar outros servidores SMTP que por ventura tenham sido instalados por padrão pela distribuição.

No backend SMTP, estamos definindo qual o nome que será utilizado pelo servidor proxy para os backends ao efetuar testes de conectividade. A disponibilidade dos servidor é verificada a cada 30 segundos, podendo ser alterada conforme o cenário.

Após a configuração do HAPROXY para efetuar o balanceamento de carga do serviço SMTP, o Postfix deve ser instalado com versão superior a 2.10, uma vez que o protocolo é suportado somente a partir desta versão.

Nos servidores Postfix que irão integrar o balanceamento, a seguinte configuração deve ser aplicada no arquivo main.cf, e somente será possível conectar nestes servidores através do HAPROXY:

smtpd_upstream_proxy_protocol = haproxy
smtpd_upstream_proxy_timeout = 50s

Anúncios