J'en ai rien à déployer 2010 - Chapitre Windows 7

BranchCache

Article réalisé par Aslam GANGAT - SUPINFO

Dans le cadre des mes diverses expériences professionnelles, j'ai eu l'occasion de travailler dans le domaine de la messagerie et des communications unifiées. J'ai ainsi pu implémenter Exchange Server 2007 et Office Communications Server 2007.
Par ailleurs, j’ai été confronté, lors de la mise en place de SharePoint Server 2007, au fait que les sites distants soient dépendants de la qualité de leur bande passante avec leur siège pour pouvoir travailler correctement.

C'est alors que j'ai découvert une nouvelle fonctionnalité de Windows Server 2008 R2 qui pourrait améliorer la qualité des services au niveau de ces sites : BranchCache.

L’objectif de cet article est d’expliquer le fonctionnement de cette nouvelle technologie.

Vous pouvez me contacter à l’adresse suivante : "aslamATgangatPOINTcom".
Bonne lecture,

Découvrez les autres articles des auteurs de SUPINFO

Sommaire de l'article

  • Introduction
  • Fonctionnement
  • Mode cache hébergé
  • Mode cache distribué
  • Conclusion

Introduction

Afin de faciliter la maintenance des infrastructures informatiques et d’en réduire les coûts, les entreprises centralisent de plus en plus leurs serveurs et applications. Pour pouvoir se connecter et travailler sur l’Intranet les filiales doivent alors utiliser leurs liaisons Internet, elles dépendent alors de la qualité de ces liaisons. De plus on en observe une utilisation plus intensive, qui peut conduire à une baisse de réactivité réseau au niveau des applications distantes.

Windows Server 2008 R2 et Windows 7 implémentent une nouvelle fonctionnalité BranchCache. Celle-ci met en cache les contenus des serveurs web (HTTP ou HTTPS) ou des serveurs de fichiers (SMB) fréquemment interrogés sur le réseau entre les filiales et le siège. Dès lors une fois que BranchCache sera activé sur le réseau, les données consultées seront mis en cache localement, le prochain utilisateur qui tentera d’accéder à ces mêmes données ne passera donc pas la liaison Internet mais par le réseau interne à la filiale.

Ainsi BranchCache permettra d’améliorer la réactivité réseau des applications et d’alléger les liaisons Internet.

Haut de pageHaut de page

Fonctionnement

Afin de pouvoir utiliser BranchCache, les postes clients doivent utiliser la version Entreprise ou Ultimate de Windows 7 avec BranchCache activée. Les serveurs Web et les serveurs de fichier doivent avoir Windows Server 2008 R2 et la fonctionnalité BranchCache d’activée. BranchCache supporte l’IPv4, l’IPv6 et les méthodes de chiffrements tels que SSL ou IPsec.

Pour faciliter la recherche de contenu, BranchCache utilise un système de métadonnée. Le contenu est séparé sous forme de blocs, puis après être passé dans un algorithme de hachage, un hash est généré qui forme alors la métadonnée. Ainsi la taille de la métadonnée est en général 2000 fois plus petite que celle du fichier original. Un contenu n’est mis en cache que si sa taille est supérieure à 64Kb, autrement les postes utilisent directement la liaison Internet pour récupérer ces petites données.

BranchCache n’entrave pas le processus d’authentification et d’autorisation d’accès aux fichiers. En effet les utilisateurs ont besoin des métadonnées du fichier pour pouvoir le récupérer sur le cache. Pour les avoir, ils doivent obligatoirement passer par le serveur de contenu qui en fonction de leurs droits fournira à ces utilisateurs ces métadonnées. Ces derniers étant basés sur des hash du fichier, ils sont donc uniques à chaque fois. Ainsi les utilisateurs ne pourront télécharger sur le cache que la version proposée par le serveur de contenu, ce qui permet d’avoir la version la plus à jour chaque fois et d’éviter les fichiers corrompus ou vérolés qui pourraient éventuellement exister sur le serveur de cache.

Il existe deux modes de fonctionnement de BranchCache, le mode cache hébergé (Hosted Cache mode) et le mode cache distribué (Distributed Cache mode).

Haut de pageHaut de page

Mode cache hébergé

Dans ce mode on retrouve un répertoire central qui héberge toutes les données téléchargées par les postes ayant BranchCache activé. Ce rôle ne nécessite pas obligatoirement un serveur dédié. Il peut être hébergé sur des serveurs (Windows Server 2008 R2) possédant d’autres rôles.
Tout d’abord le poste client A (Windows 7) se connecte au serveur de contenu (Windows Server 2008 R2 avec BranchCache) pour récupérer un fichier (ou une partie de fichier). Si l’utilisateur a les droits d’accès au fichier, alors la fonctionnalité BranchCache intervient en lui envoyant les métadonnées du contenu demandé.

screenshot1

Le client A interroge le serveur hébergeant le cache, et compare les métadonnées du contenu avec ceux du serveur. Comme le fichier n’a jamais été récupéré, il ne se trouve pas sur le serveur de cache, le client A le récupère donc directement avec le serveur de contenu.

screenshot2

Une fois que le contenu a été téléchargé, ses métadonnées sont transmises vers le serveur de cache au travers d’une connexion SSL. Le serveur de cache récupère alors les blocs qu’il n’a pas dans son cache.

screenshot3

Ainsi lorsque le client B voudra à nouveau récupérer le même fichier sur le serveur de contenu, le client B transmettra les métadonnées reçues vers le serveur de cache. Ce dernier possédant le fichier, chiffrera les données et les renverra au client B (la clé de chiffrement sera générée à partir des métadonnées). Le client déchiffre les donnés reçues, calcul son hash et le compare avec ceux fournis par le serveur de contenu afin de contrôler l’intégrité du fichier.

screenshot4

Haut de pageHaut de page

Mode cache distribué

L’avantage de ce mode est qu’il ne nécessite pas de serveur hébergeant le cache, il convient mieux aux filiales avec moins de 50 utilisateurs. Avec le mode cache distribué implémenté, les utilisateurs récupèrent les fichiers en cache sur d’autres postes clients. Bien sûr, tous ces postes utilisent Windows 7 avec BranchCache.

Tout d’abord, le client A se connecte par la liaison Internet sur le serveur de contenu. BranchCache lui renvoie les métadonnées du fichier demandé après l’avoir authentifié. Le client fait alors une requête à partir des métadonnées sur son sous-réseau afin de déterminer si ce fichier est disponible localement en utilisant le protocole multicast Web Services Discovery (WS-Discovery). Sinon il le récupère sur le serveur et le conserve dans son cache local afin de devenir une source pour ce fichier.

screenshot5

Le client B qui souhaitera récupérer le même fichier se connectera au serveur de contenu qui lui enverra les métadonnées du fichier souhaité. Il fera alors lui aussi une requête sur son sous-réseau.

screenshot6

Le client A lui répond alors et lui envoie le fichier chiffré avec une clé générée à partir des métadonnées. Le client B réceptionne ce fichier, le déchiffre, calcul son hash et détermine si le fichier est bien identique à celui proposé par le serveur de contenu.

screenshot7

Ce mode permet donc aux petites filiales qui ne disposent pas de serveur en local de pouvoir utiliser le BranchCache. Par contre si un serveur est disponible localement, il serait plus intéressant de l’utiliser en tant que serveur de cache même s’il héberge d’autres rôles tels que serveur de fichier ou serveur d’impression. En effet le mode cache hébergé fournit une meilleure disponibilité du cache,  car dans le mode cache distribué le cache dépend du poste client qui peut-être éteint assez souvent. De plus l’étendue d’un mode cache distribué est limité uniquement au sous-réseau, alors qu’un serveur de cache peut couvrir plusieurs sous-réseau simultanément.

Haut de pageHaut de page

Conclusion

BranchCache va permettre d’alléger la charge de vos liaisons Internet en conservant une copie locale dans chaque filiale du contenu Intranet (HTTP, HTTPS, SMB) tout en préservant la sécurité (SSL, IPsec), de plus il peut-être facilement mit en place dans des filiales ne disposant pas de serveur.

Sup Info

Haut de pageHaut de page