Une anomalie dans les couches réseau empêche la connexion à SQL Server. Pour cela, il faut que plusieurs conditions soient réunies :
- SQL Server est installé en cluster ;
- L’instance de SQL Server doit être nommée ;
- Le client doit disposer d’un pare-feu ;
- La connexion sur le client se fait en utilisant le nom de l’instance SQL Server.
Dans ces conditions, il est possible que la connexion ne se fasse pas.
En fait, il s’agit d’une limitation du protocole UDP. En voici une explication rapide : Le client lance une requête (via le protocole UDP) vers le service SQL Browser du serveur en utilisant l’adresse IP virtuelle telle que définit par le groupe cluster. SQL Browser fournit la réponse à la requête en utilisant l’adresse IP de l’hôte physique du cluster. Ceci est autorisé dans le cadre du protocole UDP car l’adresse d’appel n’est pas disponible lors du traitement de la requête. Le problème est que le pare-feu du client détecte que l’adresse de la demande et l’adresse de la réponse ne sont pas les mêmes et ne laisse donc pas passer la réponse.
Comment contourner cette anomalie ? Il y a plusieurs solutions : désactiver le pare-feu du client (attention aux risques de sécurité) ou bien en précisant lors de la connexion le numéro de port plutôt que le nom de l’instance. Il semble que ce problème soit partiellement corrigé avec SQL Server 2008.
Pour plus d’informations : Unable to connect to a SQL Server named instance on a cluster.
Bien à vous.