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

Projet Implémentation du protocole MMT sous Linux

Présentations similaires


Présentation au sujet: "Projet Implémentation du protocole MMT sous Linux"— Transcription de la présentation:

1 Projet Implémentation du protocole MMT sous Linux
BELUCHE Jérémy, LE NORCY Arnaud, LIGNON Rodolphe, ROBEZ-MASSON Vincent Master Professionnel Ingénierie des Réseaux, Université de RENNES1, IFSIC, 17 février 2005 Encadrant : BOUDANI Ali

2 Plan Présentation de MMT Présentation du Projet Partie Réseau
Partie Traitement Tests de l’implémentation Planning Bilan

3 Présentation de MMT 6ème draft (octobre 2004) Objectifs
M. BOUDANI, M. BONNIN, M. COUSIN Objectifs Routage MPLS multicast Diminuer le nombre d’états multicast

4 Fonctionnement de MMT Serveur centrale : NIMS
Reçoit les demandes d’adhésion Gère les arbres multicast Envoie les contextes aux routeurs Crée et maintient les contextes Paquets multicast ne passent que par les routeurs concernés

5 Principe de fonctionnement de MMT
Topologie du réseau

6 Principe de fonctionnement de MMT
Adhésion d’un client

7 Principe de fonctionnement de MMT
Du routeur de bordure vers le NIMS

8 Principe de fonctionnement de MMT
Mise en place du chemin

9 Principe de fonctionnement de MMT
Le chemin MPLS

10 Principe de fonctionnement de MMT
Adhésion d’un nouveau client

11 Principe de fonctionnement de MMT
Du routeur de bordure vers le NIMS

12 Principe de fonctionnement de MMT
Mise en place des nouveaux chemins

13 Principe de fonctionnement de MMT
Les nouveaux chemins MPLS

14 Présentation du projet
Étude des travaux précédents MPLS Fast Reroute Première implémentation de MMT Problèmes de MMT Plate-forme expérimentale Site Internet Contexte Stations Linux installées et configurées pour MPLS

15 Contraintes de réalisation
Hypothèses Un seul groupe multicast Topologie connue du NIMS Chemins MPLS existant Compatible environnement Linux

16 Architecture générale
Mémoire partagée Synchronisation par sémaphore

17 Partie Réseau : Topologie
Au départ, nous avions 8 machines pour faire notre réseau. Or, une d’entre elle ne démarre pas, 2 autres ont été réinstallées ce qui à pour conséquence qu’une ne démarre plus et l’autre n’as plus de noyaux MPLS. De plus, les interfaces réseaux des machines fonctionnent bizarrement, c’est pourquoi nous sommes passés par un switch configurer avec des VLAN. Cette topologie reste tout de même intéressante pour le projet, car un routeur duplique les paquets et un ou deux routeurs peuvent être sur le chemin du transfert des données, toutefois sans appartenir à l’arbre Multicast et donc avoir un contexte Multicast à sauvegarder.

18 Partie Réseau : Implémentation (1/2)
Fichier de configuration Configuration des chemins MPLS Duplication des paquets avec "smcroute" Besoin d’une station source du groupe Un fichier de configuration est a exécuter sur chaque machine afin d’assigner les adresses IP et de remplir correctement la table de routage IP. Ce fichier exécute un second fichier qui établie tous les tunnels MPLS. Donc un routeur peut joindre n’importe quel autre routeur par le biais de ces tunnels qui sont reconnue comme des interfaces virtuelles. Afin de nommé différemment les interfaces virtuelles, nous avons pris comme convention de l’es appelé comme l’adresse de destination sauf que les . Sont remplacé par des _. Smcroute permet de créer un contexte multicast dans un routeur. Donc le routeur ne détruit plus le paquet quand il le reçoit. De plus smcroute permet de modifier la table de routage multicast de Linux. C’est grâce à cette table que nous transférons un paquet multicast et cela sur plusieurs interfaces si besoin d’où la duplication. Smcroute impose d’avoir une interface d’entrée pour pouvoir transférer les paquets. Pour résoudre ce problème, nous ajoutons un ordinateur portable dans notre topologie. Pour plus de simplicité, nous la mettons en dessous de Popy. De cette manière Popy se comporte comme un vrai routeur de bordure. Alors que les autres routeurs jouent sot le rôle de routeur de cœur et de station, soit le rôle le routeur de bordure et de station.

19 Partie Réseau : Implémentation (2/2)
Communication par socket en UDP Usage de structures définies Émulation des messages JOIN NIMS sur un routeur précis Nous communiquons par le biais de socket programmé en C. Nous nous appuyons sur la couche UDP, car nous n’avons pas besoin d’acquittement. Puisque l’acquittement peut être la réponse du NIMS. Pour l’envoie de donnée, nous utilisons des structures que nous avons élaboré nous même. Cela évite de faire plusieurs envoie successif pour transférer les données. Nous émulons les messages JOIN sur les routeurs de bordure, afin de pouvoir connaître les adhésions. Suite à la réception de ce message, le routeur de bordure le transfert directement au NIMS. Le NIMS a été volontairement placé sur un routeur pour simplifier la recherche de ce dernier. Donc l’adresse du NIMS est à fournir lors du lancement du programme sur le routeur de bordure.

20 Partie Réseau : Problèmes
Machines instables Quelques bug dans "smcroute" smcroute eth eth2 eth3 eth3 Certaines machines sont instables, notamment Rigel qui fini souvent en "kernel panic" La commande smcroute contient un petit bug qui est la répétition de la 2ème et des interfaces suivantes.

21 Partie traitement Que réalise t’elle? Comment faire?
Fichier de topologie Intro Que realise t’elle : doit en fonction des messages d’adhésions voir par où passer selon les plus courts chemins et donner les elts à la partie réseau pour créer ces chemins. Comment faire? : tronconner le pb en deux un recuperer la topologie deux calculer le chemin + faire les chemins. d’où decoule trois partie Gestion de l’arbre multicast Calcul des plus courts chemins Récupération de la topologie

22 Partie traitement Comment faire la correspondance? Et les labels?
=>adresse unique. Et les labels? Comment les attribuer? Comment les réutiliser? Mais! Comment faire la correspondance : entre toutes les parties car il n’y a que le nims qui connaît tout Labels : pool de label voir si des chemins existent deja sur la route que va emprunter les paquets alors pas de creation sinon oui. Mais changement du groupe reseau demander a vincent

23 Partie traitement Comment prolonger l’information? Comment coder?
=>notion de routeur de branchement Comment coder? =>indépendance des modules. 5 S 2 3 4 6 Comment : on ne peut pas créer directement un tunnel entre la source et l’abonner. On doit regrouper l’info Demo ex Routeur de branchement etape importante Chaque lien aura sa liste de routeur de branchement Comment coder : en tete plusieurs groupe, plusieurs source

24 Partie traitement Comment prolonger l’information? Comment coder?
=>notion de routeur de branchement Comment coder? =>indépendance des modules. abonnement 5 S 2 3 4 6 Comment : on ne peut pas créer directement un tunnel entre la source et l’abonner. On doit regrouper l’info Demo ex Routeur de branchement etape importante Chaque lien aura sa liste de routeur de branchement Comment coder : en tete plusieurs groupe, plusieurs source

25 Partie traitement Comment prolonger l’information? Comment coder?
=>notion de routeur de branchement Comment coder? =>indépendance des modules. tunnel 5 S 2 3 4 6 Comment : on ne peut pas créer directement un tunnel entre la source et l’abonner. On doit regrouper l’info Demo ex Routeur de branchement etape importante Chaque lien aura sa liste de routeur de branchement Comment coder : en tete plusieurs groupe, plusieurs source

26 Partie traitement Comment prolonger l’information? Comment coder?
=>notion de routeur de branchement Comment coder? =>indépendance des modules. tunnel A S 2 3 4 6 Comment : on ne peut pas créer directement un tunnel entre la source et l’abonner. On doit regrouper l’info Demo ex Routeur de branchement etape importante Chaque lien aura sa liste de routeur de branchement Comment coder : en tete plusieurs groupe, plusieurs source

27 Partie traitement Comment prolonger l’information? Comment coder?
=>notion de routeur de branchement Comment coder? =>indépendance des modules. tunnel A S 2 3 4 6 abonnement Comment : on ne peut pas créer directement un tunnel entre la source et l’abonner. On doit regrouper l’info Demo ex Routeur de branchement etape importante Chaque lien aura sa liste de routeur de branchement Comment coder : en tete plusieurs groupe, plusieurs source

28 Partie traitement Comment prolonger l’information? Comment coder?
=>notion de routeur de branchement Comment coder? =>indépendance des modules. tunnel A S 2 3 4 6 Comment : on ne peut pas créer directement un tunnel entre la source et l’abonner. On doit regrouper l’info Demo ex Routeur de branchement etape importante Chaque lien aura sa liste de routeur de branchement Comment coder : en tete plusieurs groupe, plusieurs source

29 Partie traitement Comment prolonger l’information? Comment coder?
=>notion de routeur de branchement Comment coder? =>indépendance des modules. A S 2 3 4 6 Comment : on ne peut pas créer directement un tunnel entre la source et l’abonner. On doit regrouper l’info Demo ex Routeur de branchement etape importante Chaque lien aura sa liste de routeur de branchement Comment coder : en tete plusieurs groupe, plusieurs source

30 Partie traitement Comment prolonger l’information? Comment coder?
=>notion de routeur de branchement Comment coder? =>indépendance des modules. tunnel A S 2 3 4 6 Comment : on ne peut pas créer directement un tunnel entre la source et l’abonner. On doit regrouper l’info Demo ex Routeur de branchement etape importante Chaque lien aura sa liste de routeur de branchement Comment coder : en tete plusieurs groupe, plusieurs source

31 Partie traitement Comment prolonger l’information? Comment coder?
=>notion de routeur de branchement Comment coder? =>indépendance des modules. tunnel A S 2 3 4 6 Comment : on ne peut pas créer directement un tunnel entre la source et l’abonner. On doit regrouper l’info Demo ex Routeur de branchement etape importante Chaque lien aura sa liste de routeur de branchement Comment coder : en tete plusieurs groupe, plusieurs source

32 Partie traitement Comment prolonger l’information? Comment coder?
=>notion de routeur de branchement Comment coder? =>indépendance des modules. tunnel A S 2 3 4 6 Comment : on ne peut pas créer directement un tunnel entre la source et l’abonner. On doit regrouper l’info Demo ex Routeur de branchement etape importante Chaque lien aura sa liste de routeur de branchement Comment coder : en tete plusieurs groupe, plusieurs source

33 Partie traitement Comment prolonger l’information? Comment coder?
=>notion de routeur de branchement Comment coder? =>indépendance des modules. tunnel A S 2 3 4 A Comment : on ne peut pas créer directement un tunnel entre la source et l’abonner. On doit regrouper l’info Demo ex Routeur de branchement etape importante Chaque lien aura sa liste de routeur de branchement Comment coder : en tete plusieurs groupe, plusieurs source

34 Tests de l’implémentation
Conception en spirale Tests au fur et à mesure Mise en commun en local Condition réelle Conception en spiral: commence par un noyau puis au fur et a mesure on rajoute test au fur => par des affichages de ce qu’on a (ex calcul des plus courts chemin …) mise en commun => sur une seule machine Reel ?

35 Planning Répartition des tâches Ce qui nous a ralenti :
Mise en place de la plate-forme Accès aux ressources Changements dans les objectifs

36 Rapport de projet / Mise à jour du site Internet
Planning Décembre Janvier Février Bibliographies. Travaux de recherches : MMT Multicast / MPLS La Thèse sur Fast Reroute Stage à l’IRISA Développement. Mise en place de la topologie. Tests locaux. Tests d’interopérabilités sur la plate-forme. Rapport de projet / Mise à jour du site Internet

37 Bilan Ce que l’on a fait Évolutions possibles
Implémentation de MMT Site Internet Évolutions possibles Ce que le projet nous a apporté

38 Questions ? Site Internet : www.irisa.fr/armor/lesmembres/Boudani/
research/mmt/linux/MMT/


Télécharger ppt "Projet Implémentation du protocole MMT sous Linux"

Présentations similaires


Annonces Google