Routage statique et Windows Server 2008 Failover Clustering
C’est la première fois que je rencontre ce cas de figure et c’est presque un coup de chance qui m’a permis d’identifier la solution à ce problème.
Le contexte est le suivant : sur un cluster Windows Server 2008 deux noeuds, lorsque l’on passe la ressource IP Address offline ou que l’on forçe un failover du groupe contenant cette ressource il n’est plus possible de contacter le noeud qui détenait cette ressource à travers le réseau. Encore moins d’ouvrir une session en Remote Desktop.
Comportement qui laisse sceptique au début et qui relève de la magie lorsqu’on nous le montre…
En une images, la configuration simple pour reproduire ce comportement :
Trois réseaux (le problème apparaît avec deux voir un seul réseau) :
- Réseau publique : communication intra-cluster et connectivité clients
- Réseau pour le heartbeat : communication intra-cluster seule autorisée
- Réseau iSCSI : aucune communication cluster autorisée
Une ressource IP Address disposant de l’adresse IP 192.168.40.33
Les addresses IP des noeuds étant :
- LAB-WS08-SQL0 : 192.168.40.103
- LAB-WS08-SQL1 : 192.168.40.104
Après les quelques vérifications d’usage autour de la configuration des adaptateurs réseau de chaque noeud, nous avons vérifié la présence de paramétrages de routage spécifique, propre aux serveurs. Et il s’est avéré qu’une route statique avait été rajoutée sur chacun des noeuds.
Et c’est là que l’on pointe un sujet méconnu : l’adaptateur virtuel nommé Microsoft Failover Cluster Virtual Adapter.
La question est donc qu’est-ce que cet adaptateur et à quoi sert-il ?
En peu de mots, le code du cluster sous Windows Server 2008 a été en grande partie réécrite et la couche réseau en a bénéficié. Ce qui se traduit par l’apparition de cet adapateur qui a pour tâche de construire et de maintenir une structure de routage sur chacun des noeuds afin d’améliorer la connectivité réseau en cas de défaillance de l’un des adaptateur réseau.
C’est cette nouveauté qui permet de placer des noeuds d’un même cluster sur des sous-réseaux différents séparés par des routeurs, ce qui n’était pas possible avec Windows 2000 Server et Windows Server 2003.
Mais revenons à notre problème.
Sur ces deux serveurs, une route statique a été configurée, comme on peut le voir sur les captures d’écran ci-dessous :
LAB-WS08-SQL0 |
LAB-WS08-SQL1 |
On voit ici que cette route s’applique à tous les adaptateurs.
En rouge la route statique.
En bleu, l’adresse IP du noeud.
En vert l’adresse IP de la ressource IP Address du cluster.
Notez ce qui est entouré de jaune.
Lorsque l’on bascule la ressource IP Address ou que l’on passe offline cette ressource, la route statique du noeud disparait de la table de routage (du moins elle ne fait plus partie des routes actives) :
Ce qui rend impossible la connectivité vers et depuis le réseau 192.168.42.0 (le sous-réseau qui fait l’objet du routage statique).
Comment résoudre ce problème et utiliser tout de même un routage statique ? C’est simple, mettre en oeuvre le routage statique de manière recommandée, à savoir suivre la procédure suivante :
Supprimer la route statique :
ROUTE DELETE 192.168.42.0
Identifier l’adaptateur réseau qui doit bénéficier de ce routage statique :
NETSH INT IPV4 SHOW INT
Appliquer la route statique à cet adaptateur uniquement en exécutant la commande suivante :
ROUTE –P ADD 192.168.42.0 MASK 255.255.255.0 0.0.0.0 IF 15
où 15 correspond à l’adaptateur et 0.0.0.0 représente la route par défaut (en l’occurence la passerelle pour communiquer avec le réseau 192.168.42.0 sera l’adresse IP de l’adaptateur réseau du noeud)
On obtient ceci :
Table de routage avec la ressource IP Address online |
Table de routage avec la ressource IP Address offline |
On voit ici que la route statique reste active même lorsque la ressource IP Address est offline.
Meilleures pratiques
- Ne jamais modifier le paramétrage de l’adaptateur virtuel Microsoft Failover Cluster Virtual Adapter
- Ne jamais désactiver l’adaptateur virtuel Microsoft Failover Cluster Virtual Adapter
- Créer des routes statiques avec la méthode décrite ci-dessus
Ressources
Rendons à César ce qui appartient à César, le bulletin qui m’a permis de résoudre cet incident : Active Route gets removed on Windows Server 2008 offline Cluster IP Address – Blog Microsoft Enterprise Networking Team
What is a Microsoft Failover Cluster Virtual Adapter anyway? – Blog de l’équipe Core aux US
Multi-Site Failover Cluster Communications Connectivity – Blog de l’équipe Core aux US
Guillaume
Windows Core Support Escalation Engineer
Comments
Anonymous
January 01, 2003
Hey Bernouze! ça fait plaisir de te voir sur le blog de l'équipe Core FR et d'autant plus que ce post aura pu t'aider. Hope to see you soon!Anonymous
September 15, 2009
Well done Guilldu grâce à ce post j'ai évité de plastiquer mon cluster 2008 PS : Coucou aux équipes de support de la bernouze :)Anonymous
July 15, 2011
It's so great to see such an article. Thanks a lot for that. It's a real pity one has to discover this behaviour the hard way ! Lot of thanks. Luc