La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Le Peer-to-Peer IPv6 en environnement Windows

Présentations similaires


Présentation au sujet: "Le Peer-to-Peer IPv6 en environnement Windows"— Transcription de la présentation:

1 Le Peer-to-Peer IPv6 en environnement Windows
Bernard Ourghanlian – Chief Technology & Security Officer Microsoft France

2 Sommaire Le panorama du Peer-to-Peer
Le Peer-to-Peer en environnement Windows : les principes fondateurs Les technologies requises NAT traversal Résolution des noms Graphes, groupes et groupements Stockage répliqué Recherche distribuée La mise à jour Peer-to-Peer pour Windows XP Résumé Démonstration : 3 degrees

3 Le Peer-to-Peer Le Web correspond fondamentalement un modèle de type client-serveur : l’utilisateur demande une page Web et le serveur Web lui répond Le Peer-to-Peer, popularisé initialement par Napster ou Gnutella, fonctionne différemment puisque pratiquement toutes les interactions ont lieu entre les clients On peut définir le Peer-to-Peer comme « un modèle de traitement dans lequel les périphériques client communiquent directement » Par rapport au traditionnel modèle du client-serveur, le Peer-to-Peer présente les avantages suivants : Le contenu et les ressources peuvent être partagés à la fois depuis le centre et la bordure du réseau Un réseau de « pairs » peut être facilement étendu et être plus fiable qu’un seul serveur Un réseau de « pairs » peut partager sa capacité de calcul, afin de consolider des ressources de traitement pour des tâches de traitement distribuées, plutôt que de se reposer sur un seul calculateur (un supercalculateur, par exemple) Les ressources partagées des ordinateurs « pairs » peuvent être accédées directement

4 Le Peer-to-Peer Le Peer-to-Peer autorise la résolution des problèmes suivants : Permettre l’utilisation des ressources de calcul des ordinateurs situés aux extrémités du réseau pour des tâches de calcul distribuées Permettre le partage des ressources locales directement sans avoir le besoin de serveurs intermédiaires Permettre une communication multipoint efficace sans avoir à reposer sur une infrastructure de type IP multicast

5 Le panorama du Peer-To-Peer
Communications temps réel (RTC) Messagerie instantanée, voix, vidéo Cela existe aujourd’hui mais la plupart des programmes existants ainsi que leurs protocoles de communication reposent sur l’existence de serveurs Jeu temps réel / collaboration La plupart des environnements de jeu distribués reposent sur l’existence d’un site Web permettant aux joueurs de s’affronter Collaboration Espace de travail projet permettant d’atteindre un objectif commun Partage de fichiers avec d’autres personnes Ce type de partage existe mais n’est pas toujours aisé car les adresses des machines d’extrémité ne sont pas toujours publiées Distribution de contenu Concert, réunion de société, classe en ligne, audio, vidéo Bien souvent, la diffusion « organisée » de fichiers audio et vidéo repose sur l’existence de gros serveurs Distribution de mise à jour de produits C’est une méthode efficace pour distribuer les mises à jour de logiciels

6 Le panorama du Peer-To-Peer
Traitement distribué Dissection et distribution d’une tâche de calcul Nécessite que les algorithmes soient parallélisés Agrégation de ressources machines Popularisé par le grid computing Amélioration des technologies de l’Internet Nouveaux protocoles pour l’Internet Historiquement, l’Internet a été conçu pour permettre une connectivité de bout en bout ; force est de constater qu’en raison de la raréfaction des adresses et de la prolifération des NAT, on a perdu cette connectivité de bout en bout IPv6 est la promesse du retour de l’Internet à ses principes de conception originels

7 Pourquoi du nouveau ? Limitation du nombre d’adresses publiques
La présence des NATs limite les possibilités de partage Limitation du système de résolution de noms Ne gère pas (assez) les adresses dynamiques Ne fonctionne pas en environnement ad hoc Ne facilite pas une utilisation aisée « à la maison » Communication multipoint inefficace Chacun a une certaine tendance à reconstruire l’infrastructure en fonction de ses besoins

8 Prolifération des NAT Network Address Translators
NAT « résoud » le problème d’adresses MAIS Les applications sont souvent « cassées » La sécurité est faible Difficile à gérer, pas de standards Complique le sans-fil et la mobilité Limite l’innovation dans les nouveaux scénarios : Mobile IP, VoIP, QoS, Peer-to-Peer… Rompt le modèle Internet « de bout en bout »

9 Scénario 1 : Jeu à plusieurs (Exemple : Age of Empires II en Direct Play)
LAN Maison Internet LAN Maison NAT NAT P3 Avec NAT, logiciel complexe et fragile : 2 adresses, à l’intérieur et à l’extérieur P1 fournit « l’adresse interne » à P3, « l’adresse externe » à P2 Besoin de reconnaître l’interne de l’externe P1 ne connaît pas l’adresse externe de P3 pour l’indiquer à P2

10 Scénario 2: Peer-To-Peer (Exemple: RTC ou récupération de fichiers)
LAN Maison Internet LAN Maison NAT NAT Avec NAT Besoin d’apprendre l’adresse « en dehors du NAT » Fournir cette adresse à l’application « paire » Besoin de disposer d’une application « compatible NAT » On peut avoir besoin d’un serveurs d’enregistrement tiers pour faciliter la recherche des pairs

11 L’épuisement des adresses IP est réel !
Épuisement Total Épuisement pratique L’extrapolation du nombre d’adresses DNS enregistrées indique un épuisement total en 2009 Mais, en pratique, cela peut arriver bien avant ! En fait, ce n’est pas un problème d’adresses; c’est un problème lié à ce que peuvent faire les utilisateurs (scénarios)

12 2003 : la fin du P2P ? Avec la rareté des adresses, les ISP ne peuvent en avoir suffisamment, ils déploient de plus en plus de NAT et les applications peer-to-peer commencent d’avoir des problèmes !

13 Les principes fondateurs d’une solution Peer-to-Peer
L’objectif long terme de la mise à disposition d’un environnement Peer-to-Peer est le suivant Permettre aux utilisateurs de communiquer et de partager de l’information de manière sécurisée avec d’autres utilisateurs sans dépendre de serveurs centralisés mais en restant capable de fonctionner encore mieux si des serveurs sont présents Dans un premier temps, la cible de l’environnement Peer-to-Peer est la mise à disposition d’un environnement de développement permettant aux développeurs de créer des applications Peer-to-Peer Les applications seront certainement la clé du succès d’IPv6 !

14 Les principes fondateurs du design d’une solution Peer-to-Peer
Sécurité : robustesse en face d’une défaillance ou d’une attaque Scalable : capable d’évoluer depuis des réseaux ad hoc jusqu’à l’Internet Sans serveur : pas de point de défaillance central Self-tuning : s’adapte à des changements constants Self-repairing : se répare tout seul Sharing : permet à nouveau le partage des données et des applications depuis les frontières du réseau

15 Les problèmes techniques à résoudre en environnement Peer-to-Peer
Le DNS C’est un autre point de différence majeur entre l’environnement client-serveur et les réseaux Peer-to-Peer Les serveurs sont généralement enregistrés dans le DNS de telle façon que les clients puissent résoudre le nom de ces serveurs Les clients ne sont généralement pas enregistrés dans le DNS pour les raisons suivantes De nombreux clients ont des connectivités temporaires et on peut leur assigner un adresse différente à chaque connexion Les clients n’ont pas de ressources à partager et ne répondent donc pas aux demandes de ressources

16 Les problèmes techniques à résoudre en environnement Peer-to-Peer
Les participants d’un environnement Peer-to-Peer ont, par contre, des ressources à partager tout en continuant cependant d’avoir une connectivité temporaire Ils peuvent utiliser un DNS dynamique mais il n’y a que peu de serveurs DNS sur l’Internet qui supportent le dynamic DNS Pour avoir du succès, les ordinateurs en environnement Peer-to-Peer ne doivent donc pas reposer sur une infrastructure DNS existante ; il doit donc y avoir un mécanisme permettant de résoudre les noms des pairs qui ne repose pas sur le DNS Le mécanisme utilisé en environnement Windows Peer-to-Peer est le Peer Name Resolution Protocol (PNRP)

17 Les problèmes techniques à résoudre en environnement Peer-to-Peer
La sécurité Dans un environnement Peer-to-Peer, il n’y a pas de serveur centralisé avec des bases de données de sécurité qui peuvent assurer des services de sécurité typiques tels que l’authentification ou l’autorisation Dans cet environnement, les pairs doivent procurer leur propre authentification Dans l’environnement Windows Peer-to-Peer, l’authentification est assurée en utilisant des certificats auto-signés de type X.509 Ces certificats sont créés par chaque pair Chaque nœud agit comme une autorité de certification, ce qui permet de supprimer la nécessité de déposer le certificat racine dans chaque zone de stockage de confiance de chaque pair

18 Les problèmes techniques à résoudre en environnement Peer-to-Peer
Chaque pair génère la paire de clés privée/publique et le certificat qui est signé en utilisant la clé privée Le certificat auto-signé est utilisé pour l’authentification et fournit de l’information sur l’entité « pair » Comme l’authentification X.509, l’authentification en environnement Peer-to-Peer repose sur une chaîne de certificats qui permettent de remonter à une clé publique digne de confiance

19 L’architecture de l’implémentation Peer-to-Peer en environnement Windows

20 Les Technologies clés NAT Traversal Résolution des noms Graphes
Groupes et groupements Stockage répliqué Recherche distribuée

21 Les mécanismes du NAT Envoyer la requête pour une page web à la gateway 1 La gateway crée la correspondance pour et l’envoie au web 2 Machine B Machine A NAT Le web retourne les données vers le port mis en correspondance en environnement NAT 3 Le NAT parcourt la correspondance et envoie vers la Machine A 4

22 NAT Traversal L’implémentation d’IPv6 sur Windows admet essentiellement deux technologies de transition Intra-Site Tunnel Addressing Protocol (ISATAP) Technologie d’affectation et de tunneling automatique qui est utilisé pour fournir une connectivité unicast entre hôtes IPv6 au travers d’un Intranet IPv4 ISATAP est décrit dans le draft Internet : « Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) » (draft-ietf-ngtrans-isatap-0x.txt) 6to4 Technologie d’affectation et de tunelling automatique qui est utilisé pour fournir une connectivité unicast entre hôtes IPv6 au travers de l’Intranet IPv4 (RFC 3056) Pour plus d’information à propos d’ISATAP et de 6to4, on peut consulter avec profit le livre blanc : « IPv6/IPv4 Coexistence and Migration » (

23 NAT Traversal Pour une connectivité IPv6 au travers de l’Internet IPv4, 6to4 est la méthode privilégiée d’affectation d’adresse et de tunelling Toutefois, 6to4 dépend de l’affectation d’une adresse publique IP à un ordinateur connecté à un réseau privé qui fonctionne comme un routeur 6to4 Le protocole IPv6 pour Windows XP et Windows Server 2003 peut être utilisé comme routeur 6to4 automatiquement en mettant en service l’Internet Connecion Sharing (ICS) ou manuellement Malheureusement il reste quelques obstacles Peu des NAT utilisés aujourd’hui pour connecter la maison ou de petites entreprises disposent déjà d’une possibilité de routage 6to4 Il peut y avoir plusieurs NAT à traverser ; dans un tel cas, 6to4 ne fonctionne pas Le protocole utilisé par 6to4 est le protocole 41 ; or la plupart des NAT ne permettent que de retransmettre le trafic TCP ou UDP ; si ce type de trafic est ignoré par le NAT, il sera ignoré et donc non retransmis

24 NAT Traversal Pour adresser les besoins d’affectation d’adresses et de tunelling qui fonctionne aussi pour les systèmes hôtes situés à travers des NAT qui ne peuvent aussi être des routeurs 6to4, Microsoft travaille avec l’IETF pour définir Teredo également connu sous le nom de NAT Traversal Teredo est défini par le draft « Teredo: Tunneling IPv6 over UDP through NATs » (draft-ietf-ngtrans-shipworm-0x.txt, Teredo fonctionne en affectant des adresses globales IPv6 qui sont fondées sur l’adresse publique IPv4 de l’interface NAT qui est connectée à l’Internet et en encapsulant les paquets IPv4 dans, à la fois, une en-tête IPv4 et une en-tête UDP En utilisant à la fois des en-têtes IPv4 et UDP, la plupart des NAT peuvent traduire le trafic Teredo Pour plus d’information du Teredo, consulter le livre blanc « Teredo Overview » (

25 Teredo : NAT Traversal Envoi de la demande de service, obtention de l’adresse IPv6 (ex : XX:IPv4:port::/64) 1 Envoi de la « bulle » Teredo au relais pour délivrance à la destination 3 v6 Service La destination envoie alors sa propre « bulle » Teredo 4 Envoi d’une « bulle » Teredo vers l’adresse de destination pour ouvrir la correspondance NAT 2 Machine A XX::9D01:101:460:XX NAT Machine C XX::AC01:101:464:XX NAT Le futur trafic peut être envoyé directement aux nœuds 5

26 Résolution de noms et PNRP
Pour permettre la communication entre des pairs, ceux-ci doivent être capables de découvrir la présence des autres et d’en résoudre les emplacements réseau (adresses, protocoles, ports) à partir de leurs noms ou d’autres types d’identificateurs et tout ceci sans recourir au DNS L’environnement Windows Peer-to-Peer résout ce problème en utilisant un mécanisme qui a les attributs suivants : Résolution des noms distribuée et sans serveur Comme en environnement DNS, la liste complète des noms des ordinateurs est stockée dans le « nuage » Contrairement au DNS, il n’y a pas de serveur pour fournir la résolution des noms ; chaque pair stocke une portion de la liste dans son cache et peut se référer aux autres pairs en cas de besoin (il peut toutefois y avoir un nœud d’amorçage – seed node – pour faciliter l’initialisation mais cela n’est pas obligatoire)

27 Résolution de noms et PNRP
Utilisation d’identificateurs (ID) à la place de noms Plutôt que d’utiliser un nom comme un FQDN en environnement DNS, les ID sont utilisés pour identifier les pairs. Les ID sont juste des nombres et ne sont donc pas sujets à des problèmes de langue ou de marque déposée… Utilisation de plusieurs ID Chaque calculateur, utilisateur, groupe, périphérique, service ou autre type de pair peut avoir son propre peer ID Possibilité d’évoluer vers un très grand nombre d’ID La liste des ID qui est distribuée parmi les pairs utilise un cache à plusieurs niveaux et un système de référence qui permet au mécanisme de résolution de noms d’évoluer jusqu’à plusieurs milliards d’ID tout en requerrant des besoins minimums en ressources sur chacun des nœuds

28 Résolution de noms et PNRP
Le protocole utilisé pour envoyer des messages de résolution de noms et de découverte des pairs est appelé Peer Name Resolution Protocol PNRP utilise plusieurs types de « nuages »; un nuage est un groupement de machines qui utilisent des adresses dans un périmètre spécifique (scope) Un périmètre spécifique est une zone du réseau sur laquelle l’adresse est unique Les nuages PNRP sont fondés sur les address scopes des adresses IPv6 Il y a 3 types de nuages Le nuage global (global cloud) qui correspond au périmètre d’adressage global d’IPv6 et représente tous les calculateurs de l’Internet IPv6 ; il n’y a qu’un seul nuage global Le nuage spécifique au site correspond au périmètre d’adressage IPv6 du site (site-local adresses) ; il peut y avoir plusieurs nuages spécifiques au site Le nuage du lien local correspond au périmètre d’adressage IPv6 du lien local (link-local addresses) Un nuage de type « lien local » correspond a un lien spécifique, typiquement le même que le sous-réseau local Il peut y avoir plusieurs nuages de type « lien local »

29 Noms et PNRP ID Un nom de pair est un point terminal pour la communication, c’est-à-dire une machine, un utilisateur, un groupe, des services, etc. En fait n’importe quoi pour lequel on a besoin d’une résolution en adresse IPv6 Les noms de pairs peuvent être enregistrés de manière sécurisée ou non sécurisée Non sécurisé : chaîne de caractère qui peut être sujette au spoofing ou pour laquelle n’importe qui peut enregistrer un nom en double Sécurisé : enregistré uniquement par le propriétaire et qui est protégé par un certificat et une signature numérique

30 Noms et PNRP ID Les PNRP ID sont définis sur 256 bits et ont la composition suivante : 128 bits de poids fort : P2P ID, hash du nom de pair affecté au point terminal Format : Authority, Classifier Pour les noms sécurisés, Authority est le hash (SHA) de la clé publique du nom de pair en hexadécimal Pour les noms sécurisés, Authority est le caractère « 0 » Classifier est une chaîne de caractère qui identifie l’application et qui peut être n’importe quelle chaîne Unicode de jusqu’à 150 caractères de long 128 bits de poids faible : utilisés pour la localisation du service, nombre généré qui identifie de façon unique les différentes instances du même P2P ID dans le même nuage Les combinaisons 256 bits des P2P ID et des emplacements de service permettent à plusieurs PNRP ID d’être enregistrés pour la même machine

31 Noms et PNRP ID Pour chaque nuage, chaque nœud pair gère un cache de PNRP ID qui comprend à la fois ses propres PNRP ID ainsi que des entrées cachées au fur et à mesure L’ensemble complet des PNRP ID situés sur tous les nœuds pairs dans un nuage comprend un table de hash distribuée Il est possible d’avoir des entrées pour un PNRP ID situé sur plusieurs pairs Chaque entée dans le cache PNRP contient Le PNRP ID Une adresse de pair certifiée (CPA – Certified Pair Address) L’adresse IPv6 du nœud d’enregistrement Le CPA est un certificat auto-signé qui fournit une protection d’authentification pour le PNRP ID et contient les informations de point terminal pour l’application (adresses, numéros de protocole, numéros de port) Le processus de résolution de nom consiste donc en la résolution d’un PNRP ID en CPA ; une fois le CPA obtenu, la communication entre les points terminaux peut commencer

32 Résolution des noms PNRP
Quand un pair veut faire correspondre un nom de pair et son adresse, son protocole et son numéro de port, il construit le P2P ID en fonction du nom de pair Le pair examine les entrées dans son propre cache S’il trouve le P2P ID en question, le pair envoie une requête PNRP au pair concerné et attend une réponse Ceci permet d’assurer que le nœud pair vers lequel on cherche à communiquer est bien actif S’il ne le trouve pas, le pair envoie une requête PNRP vers le pair qui correspond à l’entrée dont P2P ID est le plus proche du P2P ID à résoudre Le nœud qui reçoit cette requête regarde dans son propre cache ; si l’entrée y est trouvée, il transfère le requête au nœud concerné et ce nœud envoie une réponse vers le nœud requérant en suivant le chemin de la requête Si l’entrée n’est pas trouvée, le nœud qui a reçu la requête envoie un message PNRP vers le pair qui correspond à l’entrée dont le P2P ID est le plus proche du P2P ID à résoudre et ainsi de suite, jusqu’à ce que l’on trouve le bon pair

33 Simple résolution de nom
5 450 transmet la requête à 800 6 800 envoie une réponse authoritative le long du chemin de la requête 4 200 transmet la requête au prochain plus proche voisin de 800 450 800 500 200 3 500 ne connaît pas la réponse, il rejette donc la requête de 200 Créer un identifier et se connecter au nuage 1 350 2 200 transmet la requête au voisin le plus proche de 800

34 Simple résolution de nom

35 Simple résolution de nom
Pour éviter les boucles dans le transfert des messages de requêtes PNRP, le message contient la liste des pairs qui ont déjà transmis la requête en question Alors que le message de requête PNRP est transmis, son contenu est utilisé pour peupler les caches des nœuds qui le transmettent Quand la réponse est envoyée à travers le chemin de retour, son contenu est également utilisé pour peupler les caches des nœuds traversés

36 Gestion du cache à plusieurs niveaux
Afin de permettre de garder une taille raisonnable au caches PNRP, les nœuds pairs utilisent un cache à plusieurs niveaux, chaque niveau contenant un nombre maximum d’entrées Chaque niveau du cache représente n/10m (0≤m<log10n) de l’espace des PNRP ID (2256) Le niveau le plus bas du cache contient les PNRP ID enregistrés localement et les autres PNRP ID qui sont numériquement proches Lors qu’un niveau du cache est rempli avec un maximum de 20 entrées, on crée un nouveau niveau de cache Le nombre maximum de niveaux de cache est de l’ordre de log10(nombre total de PNRP ID dans le nuage) Avec 100 millions de PNRP ID, on n’a pas plus de 8 = log10( ) niveaux dans le cache et un nombre comparable de hops pour résoudre les PNRP ID lors de la résolution de nom

37 Gestion du cache à plusieurs niveaux
Ce mécanisme permet la création d’une table de hash distribuée pour laquelle un PNRP ID arbitraire peut être résolu en transmettant les messages de requête PNRP au pair le plus proche jusqu’à ce que l’on trouve un pair dont le CPA corresponde L’exemple suivant montre un cache à plusieurs niveaux pour un espace de 1000 entrées où chaque niveau représente n/10m (0≤m<3) (1000, 100, 10) de l’espace total d’ID et ne peut stocker que 4 entrées

38 Cache dans N1000 Niveau 2 (bas) My ID = 249 Niveau 1 Niveau 0 (haut)
[Distance depuis my ID] (% de N) [100, 999] (100 %) 830 655 450 22 [10, 99] (10 %) 279 261 230 202 [0, 9] (1 %) 253 251 248 246 Niveau 0 (haut) Niveau 1 Niveau 2 (bas) Min ID = 0 Max ID = 999 My ID = 249

39 Initialisation du cache PNRP
Pour initialiser le cache PNRP quand un nœud pair démarre, on peut utiliser l’une des méthodes suivantes : Entrées persistantes dans le cache : des entrées précédentes étaient présentes quand le nœud a été arrêté et sont chargées depuis le disque Nœuds d’amorçage PNRP : PNRP permet aux administrateurs de spécifier des adresses ou des noms DNS qui contiennent les CPA des participants au nuage Simple Service Discovery Protocol : les nœuds PNRP doivent s’enregistrer eux-mêmes en utilisant le protocole Universal Plug & Play SSDP ; un nœud peut utiliser le message SSDP MSearch pour localiser les nœuds SSDP proches

40 Graphe Un graphe de pairs est un ensemble de nœuds qui sont connectés entre eux pour former un réseau de nœuds couplés dans le but de propager des données sous la forme d’enregistrements ou de flux de données point à point La construction de ce graphe est fondé sur le mécanisme d’irrigation (flooding) Ce mécanisme est le processus par lequel les enregistrements sont propagés à tous les utilisateurs connectés à un graphe Le protocole utilisé effectue les opérations suivantes : Propagation de l’addition des nouveaux enregistrements à tous les nœuds du graphe Propagation des mises à jours des enregistrements modifiés à tous les nœuds du graphe Propagation des suppressions des enregistrements supprimés à tous les nœuds du graphe Pour effectuer ces opérations, chaque enregistrement est identifié par un GUID, a un numéro de version croissante (ou un numéro de séquence) et est qualifié par un age ou un statut Un processus de synchronisation s’assure que les pairs ont tous les mêmes ensembles d’enregistrement

41 Graphe Un graphe a les propriétés suivantes :
Il est connecté : il y a un chemin entre n’importe quelle paire de nœuds Il a un petit diamètre : il y a un nombre relativement bas de sauts entre les nœuds situés sur le pourtour du graphe (afin de permettre des propagations rapides) Il est robuste : le graphe reste connecté même si certains nœuds ou certaines connexions disparaissent Un graphe est construit en se fondant sur la connexion des nœuds voisins (un voisin est un nœud sur le graphe qui est à la distance de un saut, c’est-à-dire connecté directement par une connexion TCP) Un node ID est un nombre aléatoire qu’un nœud du graphe choisit quand il se connecte au graphe Le node ID doit être unique au travers du graphe Un graphe est identifié par une signature du graphe qui est le plus petit node ID de tous les nœuds connectés au graphe Cette signature est utilisée pour détecter les cassures dans le graphe (partitions)

42 La maintenance du graphe
Le protocole d’irrigation définit comment circule l’information dans le graphe Le protocole de maintenance du graphe définit comment le groupe évolue pour maintenir une connectivité robuste et un diamètre réduit Un procédure de signature calcule la signature du groupe ; si le groupe subit une partition, chacune des partitions aura une signature différente Ceci permet de détecter si deux ou plusieurs partitions ont besoin d’être réparées Des nœuds désignés aléatoirement dans le graphe (appelés contacts) gardent la trace des enregistrements de signature Une procédure de reconnexion permet aux nœuds d’établir les connexions appropriées Une procédure de déconnexion permet aux nœuds de quitter le graphe sans y créer un trou

43 La maintenance du graphe
Quand de l’information est envoyée dans le graphe, un nœud qui a plusieurs connexions recevra plusieurs copies de cette information Pour décider quelles connexions garder et lesquelles supprimer, un nœud évalue l’information et calcule un index bidirectionnel qui est utilisé pour indiquer l’utilité de l’information qui est envoyée entre des pairs connectés donnés Cet index a une valeur faible quand l’information envoyée au travers de la connexion a été déjà reçue et n’a donc pas d’utilité De manière permanente, en fonction de la valeur courante de l’index et de l’information qui est reçue pendant le processus d’irrigation, les nœuds pairs font des ajustements dans la connexion avec les nœuds voisins Les connexions sont créées et supprimées afin de permettre la convergence du graphe vers une topologie optimale pour le trafic courant

44 Exemple de graphe 5 6 4 3 1 2 Les nœuds calculent un utility index
La forme finale est fondée sur la topologie et la bande passante 4 Les données d’irrigation atteindront chaque nœud plusieurs fois 450 800 500 200 3 Un noeud peut « irriguer » de données tous les autres nœuds du graphe Recherche d’un nom, si non trouvé, l’enregistrer 1 350 2 La deuxième recherche trouvera le nom et se connectera

45 Évolution du graphe Connexion à un graphe
Quand il se connecte initialement à un graphe, un nœud se connecte à un nœud qui est déjà connecté au graphe Ce nœud détermine l’adresse du nœud déjà connecté au graphe par l’une quelconque des méthodes permettant de résoudre l’adresse IP (DNS, PNRP) Si le nœud sélectionné pour cette connexion présente moins que le maximum de connexions à ses voisins, celui-ci acceptera la connexion Dans le cas contraire (il a déjà atteint son maximum de nombre de connexions), il enverra une réponse de rejet contenant une liste de référence (la liste des autres nœuds du graphe) Le nœud qui tente de se connecter et qui reçoit une réponse de rejet, choisira alors aléatoirement un autre nœud dans liste et tentera de s’y connecter Le processus pour choisir un nouveau voisin après s’être connecté au graphe est le même (un message de rejet contient une liste de référence)

46 Évolution du graphe Déconnection d’un graphe
Quand un nœud se déconnecte d’un graphe, il envoie un message de déconnexion Ceci peut potentiellement créer une partition du graphe Le message de déconnexion contient une liste de référence contenant tous les voisins excepté le nœud qui est en cours de déconnexion Quand un nœud reçoit un message de déconnexion, il doit essayer de se reconnecter à un pair de la liste de référence

47 Évolution du graphe Détection et réparation d’une partition du graphe
Au fur et à mesure des connexions et des déconnexions du graphe des partitions peuvent survenir Pour chaque graphe, il y a une signature et un ou plusieurs contacts Le nombre de contacts pour le graphe est proportionnel à la taille du graphe Les pairs peuvent appartenir à plusieurs graphes Les informations de contact et de signature sont envoyées à tous les nœuds du graphe et ces informations sont rafraîchies régulièrement Si ces informations deviennent obsolètes, une partition a eu lieu Dans ce cas, on tente de communiquer avec le nœud contact ; en cas de succès, on tente de reconnecter le graphe

48 Évolution du graphe La détection du partitionnement du graphe est fondée sur l’expiration de l’enregistrement signature La réparation de la partition est fondée sur les tentatives de correction des inconsistances entre la signature du graphe de l’enregistrement signature courant et celle contenue dans les enregistrements contact De nouvelles connexions sont tentées vers les contacts qui ont des signatures de graphe incorrectes dans leurs enregistrements signature Ces nouvelles connexions et la synchronisation des enregistrements du graphe assure la réparation du graphe Avec le temps, en utilisant ce processus de maintenance normal, on obtient automatiquement la topologie optimale

49 Exemple de partition et de réparation
Vérifier si le contact est encore actif 5 S’il y a une partition les données de contact deviennent obsolètes 4 Si oui, reconnecter le graphe 6 450 Nœud Adresse IP 800 XX::00…00 500 XX::00…01 Noeud Adresse IP 200 XX::00…00 XX::00…01 Un faible pourcentage de nœuds sont contacts 1 350 Les informations de contact seront rafraîchies au cours du temps 3 Les données de contact sont envoyées au reste du graphe 2

50 Sécurité du graphe Les graphes sont intrinsèquement non sécurisés
Le mécanisme de graphe fournir des moyens permettant d’instancier de la sécurité Contrôle qui peut se connecter et qui peut envoyer des données au graphe (authentification de connexion, confidentialité, intégrité) Fournit des moyens de chiffrer le trafic (confidentialité des enregistrements et des messages) Fournit des moyens de valider les données (intégrité des enregistrements et des messages) Le SDK est livré avec un Security Provider Pour plus d’information, consulter le chapitre Adding Security for a Peer Graph (

51 Groupement Le groupement est la combinaison de PNRP, du graphe des pairs et du graph security provider ; ce dernier permet La gestion des créances des membres d’un groupe La publication sécurisée des enregistrements dans un groupe Un identifiant unique (le Group ID) identifie chacun des groupes Le Group ID est utilisé par les membres des groupes pour différencier les différents groupes dont la machine locale est membre ainsi que pour différencier les groupes entre les différents pairs Les groupes utilisent des noms de pairs sécurisés comme Pair IDs Pour les groupes sécurisés, la participation est restreinte à un ensemble d’utilisateurs (les membres du groupe) Chaque membre d’un groupe a une identité et des créances qui prouvent la propriété de l’identité du membre du groupe Chaque membre du groupe a aussi des créances pour prouver qu’il est membre d’un groupe

52 Groupement Les informations sous la forme d’enregistrement sont envoyés à travers un groupe ; un enregistrement contient les informations suivantes L’identité du membre qui publie l’information Les données prouvant la validité de l’enregistrement Une durée de validité Les informations de l’enregistrement La sécurité fournie par la notion de groupement est la combinaison des éléments suivants Les noms de pairs Les certificats des membres du groupes (GMC – Group Membership Certificates) Les rôles (membre et administrateur) La publication sécurisée Les politiques de sécurité Les connexions sécurisées

53 Groupement – noms de pairs
Les noms de pairs sécurisés sont uniquement enregistrées par leur propriétaire et sont protégés par un chiffrement à base de clé publique Les noms de pairs non sécurisée peuvent n’avoir que 3 caractères Les noms de pairs sécurisés doivent avoir au moins 40 caractères Aucun nom de pair ne peut avoir plus de 191 caractères plus un caractère NULL Un nom de pair sécurisé est considéré comme la propriété du pair qui dispose de la clé privée La propriété peut être prouvée à travers le CPA qui est signé en utilisant la clé privée La sécurité d’un groupe utilise un nom de pair pour identifier chacun des membres du groupe Les noms de pairs sont statistiquement uniques Le sécurité du groupe utilise également un nom de pair pour identifier un groupe Quand un groupe est créé, une nouvelle paire de clés privée/publique est créée sur laquelle est fondée le nom du pair Le membre qui détient la clé privée correspondant au nom de pair du groupe est le propriétaire de ce groupe

54 Groupement – GMC Afin de participer à un groupe, chacun des membres doit avoir les créances qui sont utilisées pour prouver l’appartenance au groupe quand il effectue des opérations de groupe telles que se connecter à un groupe ou publier des enregistrements dans un groupe Ces créances sont des certificats X.509 connus sous le nom de Group Member Certificates (GMC) dont les caractéristiques sont les suivantes Le champ Subject est le nom du pair qui identifie le membre Pour qu’un certificat X.509 soit digne de confiance, la chaîne de certificats, doit amener à un certificat racine auto-signé dont l’autorité doit être digne de confiance Pour qu’un GMC soit validé, il doit être un certificat « fils » descendant d’une autorité digne de confiance Or, un groupe est identifié par le nom de pair du groupe ; ce nom de pair du groupe peut donc être digne de confiance et donc agir comme une autorité de confiance qui peut émettre des certificats X.509 Quand le nom de pair du groupe est utilisé comme autorité racine, il est facile de vérifier que la clé utilisée pour auto-signer le certificat racine est la clé privée du groupe Donc, toute chaîne de certificat qui conduit au certificat racine auto-signé du groupe est digne de confiance

55 Groupement – GMC Un tel certificat racine doit contenir :
Sujet : nom de pair du groupe Émetteur : nom de pair du groupe Signature : utilisation de la clé privée du groupe On appelle un tel certificat un Group Root Certificate ou GRC Dans les certificats X.509, l’autorité qui émet les certificats peut être déléguée aux sous-autorités dignes de confiance Il est possible de distribuer la charge d’émission des GMC des membres à d’autres membres du groupes connus sous le nom d’administrateurs du groupe Ces administrateurs peuvent encore déléguer cette responsabilité si cela est autorisé par la politique de sécurité du groupe Comme dans tous les autres certificats X.509, les GMC ont une période de validité

56 Droits et rôles extensibles
On donne au membres des groupes des rôles avec des droits Les droits déterminent ce que les membres peuvent faire Inviter les autres à joindre le groupe Créer, modifier ou supprimer les données du groupe Révoque les accès au groupe des autres personnes On peut définir de nouveaux droits et rôles La sécurité du groupe est intégrée au sein de Windows Membres, groupes et membres de groupes

57 Stockage répliqué Le stockage répliqué correspond à l’ensemble des enregistrements qui sont publiés de manière sécurisée et synchronisée entre tous les membres du groupe Les applications enregistrent un nouveau type d’enregistrement Les nouveaux enregistrements « irriguent » le graphe La communication (et le mécanisme de réplication) entre les nœuds utilise SSL afin d’assurer le chiffrement et l’intégrité des données Quand un nouveau membre rejoint un groupe, celui-ci reçoit automatiquement tous les enregistrements du groupe auquel il s’attache Après la synchronisation initiale, les membres du groupe synchronisent périodiquement leur stockage répliqué afin d’assurer que tous les membres du groupe ont une vue cohérente Après avoir joint le groupe, les applications peuvent enregistrer de nouveaux types d’enregistrement et commencer de publier de nouveaux types d’enregistrement en utilisant la sécurité du groupe Quand une application publie un nouveau enregistrement, les mécanismes de sécurité pour le groupe sont appliquées à l’enregistrement et celui-ci est publié de manière sécurisée Les applications peuvent aussi enregistrer leur intérêt pour le fait de recevoir tous les enregistrements d’un type donné (définition de handlers pour les enregistrements en question) L’enregistrement est validé et on invoque alors le handler correspondant afin de notifier l’application et lui passer les données

58 Recherche distribuée Mécanisme pour rechercher les données dans un groupe Support de deux modèles de recherche différents Recherche locale du stockage qui n’envoie pas de requête Recherche distribuée qui envoie des requêtes aux voisins (ceci n’est pas encore supporté dans la version actuelle) API commune pour le moteur de recherche Support d’opérateurs logiques : AND, OR, NOT Le schéma standard permet la recherche par mot-clé

59 La mise à jour Peer-to-Peer pour Windows XP

60 IPv6 et Windows aujourd’hui
IPv6 Developer Edition for Windows XP Intégré au sein du système d’exploitation, installation triviale Destiné aux développeurs d’applications, aux déploiements pilotes et aux enthousiastes Windows XP SP1 Toujours indiquée comme "Developer Preview" car nous ne voulions pas changer l’interface graphique pour un Service Pack mais la pile IPv6 est prête pour un déploiement et supportée IPv6 Tech Preview for Windows 2000 Disponible sur le site Web MSDN depuis mai 2000 Destiné aux développeurs d’applications et aux premières expérimentation ; pas d’évolution prévue

61 IPv6 et Windows aujourd’hui
Pile IPv6 Windows CE .NET 4.1 (disponible et supportée) .NET Server Pile IPv6 utilisable en production Testée pour la taille et les besoins de l’entreprise Pleinement supportée Comprend des services et des applications compatibles IPv6 Internet Explorer, RPC, telnet, ftp, etc. IIS, Windows Media Server, Terminal Server, … .NET Framework

62 Utiliser IPv6 avec Windows XP
C:\> ipv6 install C:\> ipv6 if Affiche la liste des interfaces et des adresses C:\> ping6 ::1 Adresse de bouclage Documentation complète au sein de l’aide en ligne Rechercher « ipv6 », voir aussi les livres blancs Important : voir aussi netsh

63 Commande Remarques IPv6 Arp arp –a arp –s arp -d - netsh interface ipv6 montre les voisins (ou ‘ipv6 nc’) - pas d’équivalent netsh - ‘netsh interface ipv6 delete neighbor’ (équivalent à ‘ipv6 ncf’ dans les bêtas) dsquery subnet Commande SQL Server. SQL Server n’est pas encore IPv6 finger Fonctionne tel quel ftp getmac Fonctionne tel quel (pas spécifique IPv4 ou v6) ipconfig Utiliser la commande netsh, ipconfig deviendra agnostique IPv6/4 pour .NET Server. nbtstat Fonctionne tel quel (pas de WINS ou NETBIOS spécial avec IPv6) netsh dhcp Pas de DHCP avec IPv6 netsh diag Spécifique IPv4, mais il est possible d’utiliser simplement des commandes IPv6 telles que ping, telnet, netstat, etc. netsh interface ip ‘netsh interface ipv6’ netsh interface portproxy Est une commande d’interopérabilité IPv6-IPv4 (genproxy avec les bêtas IPv6), fonctionne donc de la même façon netsh ras RRAS non encore disponible avec IPv6 netsh routing netsh wins N’existe plus; pas de WINS avec IPv6 netstat nslookup Liste les enregistrement IPv6 AAAA ainsi que les enregistrements IPv4 A, mais DNS n’utilise pas encore IPv6 comme transport pour la résolution des noms (disponible avec .NET Server). ping Fonctionnera avec .NET Server ; en attendant utiliser ping6 route Utiliser 'netsh interface ipv6 show routes’ (ou ‘ipv6 rt' dans les bêtas); fonctionnera avec .NET Server telnet tracert Fonctionnera avec .NET Server ; utiliser tracert6 en attendant

64 Liste des fonctionnalités
Win2K Tech Preview WinXP WinXP SP1 Win .NET Server IPv6 transport Oui Oui (caché) Oui (GUI indique "Preview") Winsock API Command line Utilities IE/WinInet (except literals)  Oui FTP Client 6to4 node/router Teredo Non Supprimé temporairement Persistent netsh config RPC (post-install reboot) DCOM Non [ignore IPv6] Non [mais IPv4 ok] IPHLPAPI Non [API de base ] DNS AAAA records over IPv4 DNS AAAA records over IPv6 Dynamic DNS Multicast DNS (aka LLMNR) Oui (RC2) File and Print sharing HTTP Server Media Server FTP Server Oui, à confirmer client Terminal Server Active Directory SNMP/v4 MIBs, Netmon .NET Framework

65 La mise à jour Peer-to-Peer pour Windows XP
Windows XP SP1 et Windows 2003 Server supportent IPv6 en standard Cette mise à jour permet le support du Peer-to-Peer en apportant les nouvelles fonctionnalités suivantes : Mise à jour de la pile IPv6 IPv6 Internet Connection Firewall (ICF) Fonctionne automatiquement – statefull filtering Peut être configuré en utilisant la commande netsh firewall Teredo Client Server Relay Teredo host-specific relay En téléchargement depuis

66 La mise à jour Peer-to-Peer pour Windows XP
Les fonctionnalités Peer-to-Peer Network Address Translator traversal Améliorations de l’implémentation d’IPv6 permettant au trafic Peer-to-Peer de traverser la plupart des NAT Name resolution Support du protocole Peer Name Resolution Protocol (PNRP), un mécanisme de résolution de nom spécifique au Peer-to-Peer qui ne repose pas sur le Domain Name System (DNS) Graphing and grouping Le graphing maintient un ensemble de nœuds connectés et procure un mécanisme d’irrigation (flooding) et de réplication de données à travers le graphe. Le grouping définit le modèle de sécurité pour créer et gérer des groupes Peer-to-Peer persistants Identity management Permet la création et la gestion d’identités Peer-to-Peer

67 Résumé Microsoft Windows XP Peer-to-Peer SDK
Solution universelle de NAT traversal Mécanisme de résolution de nom sécurisé et scalable Graphes permettant l’auto-tuning et l’auto-réparation Notion de security provider afin de permettre la création de groupes Stockage fiable et répliqué de messages Support d’une recherche locale et distribuée Ces fonctionnalités Peer-to-Peer seront intégrées en standard avec la prochaine version de Visual Studio .NET Une seule expérience pour les développeurs

68 Références Windows et IPv6 : Introduction au Peer-to-Peer : IPv6 et mise à jour Windows XP : Téléchargement de la bêta du Peer-to-Peer pour Windows XP : et Teredo :

69 Informations complémentaires
Microsoft IPv6 Technology Preview for Windows 2000 : Microsoft Research IPv6 : Windows CE .NET & IPv6 : Microsoft Windows—IPv6 : IPv6 Guide for Windows Sockets Applications :

70 Informations complémentaires
Microsoft's Objectives for IP version 6 : Introduction to IP Version 6 : IPv6/IPv4 Coexistence and Migration : IPv6 Configurations and Test Lab :

71 Démonstration : 3 degrees

72 3 degrees

73 3 degrees

74 3 degrees : aperçu de la solution
Mariage de Messenger & du Peer-to-Peer Problème Technologie Identité Messenger / Passport Transport multipoint Graphe P2P Stockage synchronisé Système de fichiers groupe Moteur de transfert de fichier Découverte du groupe PNRP (Peer Name Resolution Protocol) Présence dans le groupe Flux de type Messenger Presence Invitations Invitations aux sessions Messenger Connectivité de bout en bout IPV6/Teredo Sécurité SSP fondé sur des secrets partagés

75 3 degrees : architecture

76 Questions et Réponses


Télécharger ppt "Le Peer-to-Peer IPv6 en environnement Windows"

Présentations similaires


Annonces Google