Exchange 2016 et HAProxy (via pfSense)

Introduction

HAProxy (High Availability Proxy) est une solution de répartition de charge très connue dans le monde.

Dans cet article, je vais l’utiliser pour démontrer comment garantir une haute disponibilité de la partie Accès Client (CAS) au sein d’un environnement Exchange 2016.

Pour des raisons économique, j’ai fait le choix d’utilisé HAProxy en tant que module, qui est installé sur mon pfSense en frontal; ce dernier fait office de firewall/passerelle pour mon infrastructure.

Pour télécharger la dernière version de pfSense, c’est ici !

Si vous souhaitez utilisé un serveur dédié pour HAProxy, je vous invite à effectuer quelques recherches malheureusement !

Concernant HAProxy en lui-même, on prêtera attention à 2 aspects :

  • Frontend : partie (IP) sur laquelle HAProxy va écouter les requêtes
  • Backend : partie (serveurs) où les requêtes seront transmises

Si vous souhaitez avoir plus d’informations sur son fonctionnement, je vous conseille de consulter le site officiel d’HAProxy, qui est bien documenté.

La méthode utilisée ici sera différentes de celles étudiées jusqu’à présent, puisque nous sortons de l’environnement « Windows » (DNS RR, VIP du DAG)


Installation du module HAProxy

Dans un premier temps, on va effectuer l’installation du package « haproxy » sur pfSense.

Connectez-vous au pfSense, puis :

  • « System » >> « Package Manager »
  • Onglet « Available Packages »
  • Dans la zone de recherche, tapez « haproxy »
  • Puis cliquez sur le bouton « Search » :

  • Repérez le package « haproxy »
  • Puis cliquez sur « + Install » :

  • Confirmez l’installation :

Et attendez quelques secondes le temps que l’installation se finisse :


Configuration

Pour l’aspect configuration, on va d’abord s’intéresser à HAProxy, puis on terminera par les DNS.

HAProxy

La configuration principale d’HAProxy s’effectue ici sous pfSense : Services > HAProxy

Comme vous le constaterez, on retrouve ensuite différents onglets.

Onglet Frontend

Pour des raisons de simplicité, j’ai dissocié le port HTTPS (443) et les ports de messagerie (25,465,587) utilisés par Exchange 2016.

Cliquez donc sur « Add » pour effectuer les deux entrées.

Pour HTTPS :

Pour les ports de messagerie :

Ce qui me donne au final :


Onglet Backend

Dans la configuration du Backend, on va dissocier les entrées de la même manière et indiquez les IP de nos deux serveurs Exchange.

Sachez qu’ici je fais la configuration pour un cluster Actif/Passif; mais si vous souhaitez répartir la charge autrement, n’hésitez pas à jouer avec les poids (Weight).

Pour HTTPS :

Si vous souhaitez avoir de l’actif/passif, prêtez attention au champ « Mode » :

Je vous conseille ensuite de descendre dans « Advanced Settings », et de modifier la valeur du « Connection timeout » si elle ne vous convient pas :

La valeur par défaut est à 30000 millisecondes (soit 30 secondes), ce qui me parait un peu élevé.

Descendez ensuite jusqu’à « Statistics », et activez les :

Pour les ports de messagerie :

Puis je change une nouvelle fois le « Connection timeout » :

Voilà le résumé pour le Backend :


Stats

Les stats au sein du module HAproxy sont disponibles ici : Services > HAProxy > Onglet « Stats »

C’est un tableau détaillé qui va nous permettre visuellement de connaitre l’état de nos serveurs.

Avant de poursuivre, assurez-vous que tout soit bon :

Ici tout est bon, le vert signifie que mon serveur EXC-01 (active) est UP, et le bleu que mon serveur EXC-02 (backup) est UP.

Si une anomalie survient, vous verrez alors les lignes se colorées en jaune ou rouge.


DNS

Pour ce qui est des DNS, il suffit de faire pointer votre domaine vers l’IP WAN de votre pfSense :


Tests

Pour la phase de test, je vais faire très simple et me focaliser sur l’OWA.

J’initie tout d’abord une connexion à l’URL de mon OWA, et je me connecte avec l’utilisateur Jean DUPONT :

À ce stade, je constate que tout fonctionne ; le module HAProxy de pfSense  a donc bien redirigé le flux vers EXC-01 (10.32.64.120).

Je coupe donc EXC-01 pour tester la bascule :

Si je regarde les « Stats » HAProxy, le tableau m’indique que EXC-01 est DOWN (en rouge) :

Moins de 15 secondes après la coupure, je note que mon OWA est de nouveau accessible !

Je test donc un envoi sur la boite de Jean. Je reçois le mail immédiatement :

Si j’envoie un mail de réponse à l’adresse gmail, je reçois également le mail dans les 5 secondes :

La bascule des services (web + mail) vers EXC-02 a donc été pleinement faites avec succès. Le tout en moins de 15 secondes !

Fin de l’article !

Nous avons donc vu à travers ce tuto comment utiliser le module haproxy de pfsense pour assurer une haute disponibilité du CAS Exchange 2016 🙂

Vous aimerez aussi...

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.