You are on page 1of 13

Mise en place d’un

cluster NLB (v1.12)


Tutorial conçu et rédigé par Michel de CREVOISIER – Avril 2013

SOURCES

Présentation du NLB :
 http://technet.microsoft.com/en-us/library/bb742455.aspx

Installation :
 http://technet.microsoft.com/en-us/library/cc770689%28v=ws.10%29.aspx

1
INDEX

SOURCES.............................................................................................................................................................. 1
INDEX................................................................................................................................................................... 2
Préambule ........................................................................................................................................................... 3
1. Présentation ................................................................................................................................................ 4
1.1 Mode Unicast ...................................................................................................................................... 4
1.2 Mode Multicast ................................................................................................................................... 5
2. Prérequis ..................................................................................................................................................... 5
2.1 Mode Unicast ...................................................................................................................................... 5
2.2 Mode Multicast ................................................................................................................................... 6
3. Installation .................................................................................................................................................. 7
3.1 Ajout de la fonctionnalité NLB............................................................................................................. 7
3.2 Pare-feu ............................................................................................................................................... 7
4. Configuration .............................................................................................................................................. 8
4.1 Configuration via PowerShell .............................................................................................................. 8
4.2 Configuration via GUI .......................................................................................................................... 9
4.3 Mode Multicast ................................................................................................................................. 11
5. Notes ......................................................................................................................................................... 12
5.1 Mode « Core » ................................................................................................................................... 12
5.2 Console distante ................................................................................................................................ 12
Conclusion ......................................................................................................................................................... 13

2
Préambule

A la suite vous allez découvrir comment mettre en place une ferme de serveurs NLB. Notez
toutefois que seules les parties mises en place et configuration seront présentées. Pour ce tuto,
j’utiliserai 3 serveurs membres du même domaine :
 SRV-AD: serveur Active Directory et DNS (installation non détaillée)
 SRV-WEB01 (configuration détaillée)
 SRV-WEB02 (configuration détaillée)

A titre d’information, le tableau ci-dessous compare les différentes solutions existantes permettant
de fournir une solution de répartition de charge :

Round Robin (DNS) Matériel (NAT) Dispatch NLB


Facilité d'installation Oui Oui Oui
Matériel nécessaire Serveur(s) DNS Routeur NAT/PAT Min. 2 serveurs
Point de cassure unique Oui Oui Oui Non
Montée en charge facilitée Oui Limitée Limitée Oui
Haute performance Oui Limitée Limitée Oui
Tolérance de panne Non Limitée Limitée Oui

3
1. Présentation
Le NLB (Network Load Balancing) est une fonctionnalité propre à Windows Server. Elle permet de
disposer d’une ferme de serveurs hautement disponibles au travers d’un système de répartition de
charge avancé.

Plus concrètement, lorsque ce service est configuré, une IP virtuelle est émulée par l’ensemble des
nœuds (ou serveurs) du cluster. De cette façon, même si un serveur venait à s’arrêter, le cluster
continuerait d’exister et le service resterait ininterrompu. Cette solution présente toutefois
quelques inconvénients mineurs. Tout d’abord les performances globales ne dépendent pas (ou
très peu) du matériel utilisé sinon de la capacité de votre réseau à acheminer le trafic. Enfin, vous
ne pouvez disposer « que » de 32 nœuds au sein du cluster et l’ensemble de ces nœuds doivent
être situés dans le même sous-réseau.

Il également important de noter qu’il existe deux modes de fonctionnement du NLB. Aussi, lors des
étapes de conception de votre maquette, assurez-vous de bien avoir assimilé les particularités de
ces deux modes présentés à la suite.

1.1 Mode Unicast

En mode unicast, l’adresse MAC de chaque serveur est remplacée par une adresse MAC commune,
définie en tant qu’adresse du cluster. Dès lors, l’ensemble des paquets seront envoyés à chacun des
nœuds étant donné qu’ils disposent de la même adresse MAC. Toutefois cette configuration
présente un inconvénient majeur. En effet, il n’est pas possible d’avoir plusieurs ports sur le switch
déclarant la même adresse MAC.

Pour pallier ce problème, une fausse adresse MAC (« bogus address ») est créée pour chacun des
nœuds du cluster. Cette « bogus adresse » est générée selon l’ID du nœud. Par exemple l’adresse
00-01-ac-10-00-01 correspondra à l’hôte n°1 et l’adresse 00-02-ac-10-00-01 à l’hôte n°2. Toutefois,
si une seule adresse MAC est enregistrée sur chacun des switchs, les paquets ne pourront être
transmis à l’ensemble des nœuds du cluster. Pour cela, le switch va alors émettre des « broadcast
ARP ». Ainsi, quand le routeur effectuera une requête ARP pour connaitre l’adresse de l’IP virtuelle,
un « ARP header » avec l’adresse MAC du cluster sera émis au lieu d’une « bogus address ».

Pour rappel, un client utilise l’adresse MAC située au niveau ARP (niveau 3 du modèle OSI) et non
Ethernet (niveau 2). Inversement pour le switch qui utilise l’adresse MAC du niveau 2 et non celle
du niveau 3. Lorsqu’un client envoie une requête vers le cluster, le switch va rechercher dans sa
table CAM l’adresse du cluster qui n’est bien évidemment pas enregistrée. Dès lors, le switch va
« flooder » l’ensemble de ses ports pour savoir à qui est assignée cette adresse. Cette technique
peut s’avérer fonctionnelle, mais va générer une quantité de trafic importante. La solution pour
éviter cela est de placer en frontal du switch (où sont connectés les nœuds du cluster) un hub. De
cette façon, le hub enregistrera les adresses MAC des nœuds tout en acheminant l’ensemble des
requêtes vers tous ses ports.

Conclusion : comme vous avez pu le constater, ce mode présente une certaine complexité et
requiert des équipements supplémentaires au détriment de possibles baisses des performances en
raison du « flooding » et du « hub » (détails point 2.1). Notez par ailleurs que ce mode n’est pas
supporté sur le Nexus 1000v Switch (sauf v4.2(1) SV1 (5.1) et ultérieur).
4
1.2 Mode Multicast

Le mode multicast est une alternative au mode unicast. Ce choix implique d’une part que les
membres du cluster répondent aux requêtes ARP via une adresse MAC « multicast » et d’autres
parts qu’ils envoient des messages « IGMP membership ». Si l’« IGMP snooping » est activé sur le
switch, toutes les trames de ce type seront analysées. De ce fait, quand un client enverra un paquet
à destination de l’adresse MAC du cluster, il sera transmis vers l’ensemble des ports membre du
cluster. Il n’y donc en ici aucun problème de « flooding ».

Toutefois, un problème survient avec ce mode. En effet, l’adresse virtuelle sera inaccessible depuis
un sous-réseau différent étant donné que les périphériques Cisco ne supportent pas les réponses
ARP pour une adresse IP unicast contenant une adresse MAC multicast. De ce fait, un message
« ICMP unreachable » sera envoyé au client.

Solution : pour résoudre ce problème, il convient de créer manuellement une entrée ARP associée
à l’adresse MAC multicast (détails point 2.2)

2. Prérequis

En corrélation avec votre architecture et les points 1.1 et 1.2, effectuez les étapes de « pré-
configuration » décrites à la suite.

2.1 Mode Unicast

2.1.1 Environnement physique

Vous aurez besoin deux cartes réseaux pour chacun des nœuds du cluster :
 Une carte réseau pour l’administration de votre serveur
 Une carte réseau dédiée pour le NLB

2.1.2 Environnement virtuel

Pour commencer, notez que ce mode n’est pas recommandé en environnement virtuel. Par ailleurs
vous aurez besoin deux cartes réseaux pour chacun des nœuds du cluster :
 Une carte réseau virtuelle pour l’administration de votre serveur
 Une carte réseau virtuelle dédiée pour le NLB

Effectuez les paramétrages suivants au niveau de votre hyperviseur :


 Désactivez les paquets RARP (au choix - source)
o Au niveau du NIC virtuel, passez le Notify switches à No (onglet NIC Teaming)
o Au niveau du switch virtuel, passez le Notify switches à No (onglet NIC Teaming)

Notez également que :


 Tous les membres du cluster devront être connectés au même vSwitch
 vMotion n’est pas supporté

5
2.1.3 Configuration système (env. physique et virtuel)

 Exécutez les commandes suivantes sur l’interface réseau dédiée au NLB :


netsh interface ipv4 set interface "<interface>" weakhostreceive=enable
netsh interface ipv4 set interface "<interface>" weakhostsend=enable

 Vérifiez la prise en compte des paramètres :


netsh interface ipv4 show interface "<interface>"

Pour terminer, effectuez les configurations suivantes cette même carte réseau :
 Attribuez-lui une IP fixe
 Supprimez les DNS / WINS saisis
 Désactivez l’enregistrement DNS automatique et vérifiez qu’il n’existe pas d’autres
enregistrements DNS liés à cette IP

2.2 Mode Multicast

2.2.1 Environnement physique

Vous aurez besoin deux cartes réseaux pour chacun des nœuds du cluster :
 Une carte réseau pour l’administration de votre serveur
 Une carte réseau dédiée pour le NLB

2.2.2 Environnement virtuel

Si vous êtes en environnement virtuel, VMware recommande d’utiliser le mode Multicast, en plus
de deux cartes réseaux pour chacun des nœuds du cluster. Autrement dit, il vous faudra :
 Une carte réseau virtuelle pour l’administration de votre serveur
 Une carte réseau virtuelle dédiée pour le NLB

2.2.3 Configuration système (env. physique et virtuel)

Vous devrez également effectuer les configurations suivantes sur la carte dédiée au NLB :
 Attribuez-lui une IP fixe
 Supprimez les DNS / WINS saisis
 Désactivez l’enregistrement DNS automatique et vérifiez qu’il n’existe pas d’autres
enregistrements DNS liés à cette IP

6
3. Installation

3.1 Ajout de la fonctionnalité NLB

3.1.1 Installation via PowerShell

Si vous passez par un script :


Set-ExecutionPolicy RemoteSigned

Pour déployer ce rôle en PowerShell sur tous vos serveurs exécutez la commande suivante depuis
votre console « pilote »:
$Session=New-PsSession –ComputerName <name1>, <name2>, <name3>
Invoke-Command –Session $Session –ScriptBlock {Import-Module ServerManager}
Invoke-Command –Session $Session –ScriptBlock {Add-WindowsFeature NLB, RSAT-NLB}

Exécutez ensuite cette commande pour installer la console de gestion sur votre serveur pilote :
Add-WindowsFeature RSAT-NLB

3.1.2 Installation via GUI

Pour installer cette fonctionnalité, lancez simplement la console Server Manager et sélectionnez le
rôle Network Load Balancing. Répétez cette action sur chacun de vos serveurs :

3.2 Pare-feu

Suite à l’activation de ce rôle, les règles ci-dessous seront créées. Aucune autre modification à ce
niveau ne sera nécessaire par la suite :

7
4. Configuration
Pour configurer votre cluster, vous avez le choix entre le mode GUI et le mode PowerShell.
Rappelez-vous que le PowerShell peut être exécuté à distance sur vos serveurs.

4.1 Configuration via PowerShell

Pour configurer votre cluster en PowerShell, exécutez dans l’ordre les commandes ci-dessous :

Si vous passez par un script :


Set-ExecutionPolicy RemoteSigned
Import-Module NetworkLoadBalancingClusters

Création du cluster et de son premier nœud :


New-NlbCluster -InterfaceName “<network interface>” -ClusterName <cluster name> -Hostname
<hostname> -ClusterPrimaryIP <cluster IP> -OperationMode <mode : multicast/unicastt>

Suppression des ports existants en écoute:


Get-NlbClusterPortRule | Remove-NlbClusterPortRule –Force

Ajout des ports en écoute (action à répéter pour chaque port de site IIS hébergé)
Add-NlbClusterPortRule -StartPort 80 -EndPort 80 -Protocol TCP -Affinity Single -InterfaceName
“<interface>”

Intégration d’un nouveau nœud au cluster:


Get-NlbCluster –hostname <cluster ip> | Add-NlbClusterNode -NewNodeName <hostname> -
NewNodeInterface “<network interface>”

8
4.2 Configuration via GUI

Lancez la console NLB et faites :


 Clic droit > New Cluster
 Saisissez le nom du serveur à configurer et choisissez l’interface réseau dédiée au NLB :

 Indiquez la priorité du serveur :

9
 Ajoutez une IP virtuelle pour le cluster …

 … ainsi que son nom et son mode (explications aux points 1.1 et 1.2)

Note importante : récupérer bien l’adresse MAC du cluster si vous êtes en multicast. Vous en aurez
besoin pour le point 4.3

 Spécifiez ensuite les ports « en écoute » pour le NLB (attention à l’affinité) :

10
 Les informations ci-dessous sont à préciser lorsque vous ajoutez un port :

4.3 Mode Multicast

Si vous avez opté pour ce mode, vous devez créer une entrée ARP sur vos cœurs de réseaux Cisco.
Pour cela exécutez la commande suivante (format adresse MAC : XXXX.XXXX.XXXX) :
conf t
arp <IP> <cluster MAC>
mac-address-table static <cluster MAC> vlan <ID> interface faX/X faX/X

Pour les Cisco Catalyst 6000/6500, il faut impérativement ajouter le paramètre « disable-snooping » :
mac-address-table static <cluster MAC> vlan <ID> interface faX/X faX/X disable-snooping

Note : l’adresse MAC devra elle celle générée par le cluster au point 4.2

11
5. Notes

5.1 Mode « Core »

Lorsque vous basculez en mode Core après avoir configuré votre NLB, les commandes PowerShell
propres au NLB ne seront plus disponibles (Get-ClusterNLB…).

5.2 Console distante

Les 5 règles de pare-feu « Network Load Balancing (…) » du point 3.2 apparaitront de la façon
suivante depuis une console MMC distante :

12
Conclusion
Ce tuto vous a permis de mettre en place une ferme de serveurs NLB. Grâce à cela, vous êtes
maintenant en mesure de fournir un service hautement disponible, aussi bien sur des plateformes
physiques que virtuelles. Par ailleurs, sachez que cette configuration est particulièrement adaptée
pour l’hébergement de sites web. C’est pourquoi je vous invite à lire mon tuto concernant la mise
en place d’une ferme de serveurs IIS en mode Core.

N’hésitez pas à m’envoyer vos commentaires ou retours à l’adresse suivante :


m.decrevoisier A-R-0-B-A-5 outlook . com

Soyez-en d’ores et déjà remercié

13

You might also like