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 :

image

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 ?

image image

 

 

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 :

image image

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) :

image

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 :

  1. Supprimer la route statique :

    ROUTE DELETE 192.168.42.0

  2. Identifier l’adaptateur réseau qui doit bénéficier de ce routage statique :

    NETSH INT IPV4 SHOW INT

    image

  3. 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

    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 :

image image

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