Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 50 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
50
Dung lượng
1,62 MB
Nội dung
Définition du style : TM Institut de la Francophonie pour l'Informatique Mémoire de fin d’études du : DIPLOME D’ETUDES PROFESSIONNELLES APPROFONDIES par NGUYEN Phan Quang Gestion de l’Accès aux Réseaux MPLS-DiffServ par des Agents Intelligents Janvier, 2004 TIEU LUAN MOI download : skknchat@gmail.com Gestion de l’accès aux réseaux MPLS-DiffServ par des agents intelligents Remerciements Je tiens remercier Guy PUJOLLE et Dominique Gaïti de m’avoir accueilli dans leur équipe durant mon stage de DEPA, et d’avoir encadré et animé ce stage avec enthousiasme Grâce vos connaissances profondes et vastes j’ai été encouragé accomplir ce stage J’ai l’honneur d’adresser tous mes remerciements Kim Loan THAI pour ses aides et conseils dans la recherche et dans ma vie professionnelle durant mon stage Je remercie chaleureusement Hugues LECARPENTIER et Davor MALES de m’avoir encadré durant mon stage J’exprime avec enthousiasme ma gratitude Duc Minh NGUYEN et Huyen Trang VU pour leurs aides dans la recherche et ma vie quotidienne Je remercie amicalement Duy LE, mon collègue pour ses travaux, sa coopération et ses aides dans l’équipe et la vie quotidienne J’adresse mes remerciements tous les membres du projet IANET pour leurs conseils et leurs soutiens amicaux Je tiens aussi remercier chaleureusement les professeurs de l’IFI pour leurs renseignements qui ont été vraiment utiles durant mon stage En fin, un grand merci ma famille, mes amis pour leur encouragement TIEU LUAN MOI download : skknchat@gmail.com Gestion de l’accès aux réseaux MPLS-DiffServ par des agents intelligents Résumé : Certaines des applications d'Internet pourraient bénéficier des ressources du réseau comme la bande passante Une tendance réelle dans la gestion de réseau est l’agrégation des flots du trafic En outre, différents services exigent différentes ressources pour garantir une meilleure qualité de service (QoS) Ces travaux proposent une approche utilisant les systèmes multi-agents pour la gestion d'accès dans un réseau MPLSDiffServ Une analyse de simulation est donnée pour 1) la modélisation d’un réseau MPLS et 2) la gestion d'accès de réseau par les agents intelligents L'intelligence des agents est actionnée en fonction des comportements du QoS de trafic dans le réseau Mots clés : MPLS-DiffServ, Agent Intelligent, IP-QoS Mis en forme : Anglais (Royaume-Uni) TIEU LUAN MOI download : skknchat@gmail.com Gestion de l’accès aux réseaux MPLS-DiffServ par des agents intelligents Abstract : An increment of the Internet applications could benefit the network resources like bandwidth An actual trend in networking is aggregation of traffic streams In addition, with different services, it requires the different resources to guarantee the best quality of service (QoS) In this paper, we propose an approach using agent-based systems for access management in an MPLS-DiffServ network A simulation analysis is provided for 1) MPLS network modelling and 2) Network access management by intelligent agents The agent intelligence is operated by the behavior of the QoS of traffic in the network Keywords : MPLS, DiffServ, Intelligent Agent, IP-QoS TIEU LUAN MOI download : skknchat@gmail.com Gestion de l’accès aux réseaux MPLS-DiffServ par des agents intelligents Table des matières INTRODUCTION 1.1 LA GARANTIE DE LA QOS DANS LES RESEAUX IP 1.2 L’INGENIERIE DU TRAFIC DANS LES RESEAUX MPLS 1.2.1 L’ingénierie du trafic 1.2.2 MPLS et la TE 1.3 L’OBJECTIF DU PROJET 10 ETAT DE L’ART 12 2.1 L’AGENT INTELLIGENT DANS LES RESEAUX DE TELECOMMUNICATIONS 12 2.2 LES RESEAUX MPLS-DIFFSERV 13 2.3 L’ENVIRONNEMENT DE SIMULATION J-SIM 13 2.3.1 Introduction 13 2.3.2 Modélisation d’un réseau 14 2.3.3 Modélisation du réseau MPLS dans J-Sim 15 2.3.4 Les problématiques 16 DEROULEMENT DU STAGE 17 3.1 MODELISATION DU RESEAU MPLS-DIFFSERV 17 3.1.1 Fonctionnement du réseau 17 3.1.2 La conception d’un nœud MPLS 18 3.1.3 La modélisation des sources de trafic 19 3.2 MODELE DE L’AGENT 20 3.2.1 Introduction 20 3.2.2 Les critères utiliser 20 3.2.3 L’architecture de l’agent 21 ANALYSE DES RESULTATS 23 4.1 LA TOPOLOGIE DU RESEAU 23 4.2 METHODES D’EXPERIMENTATION ET D’EVALUATION 24 4.2.1 Réseau sans agents intelligents 24 4.2.2 Réseau avec agents intelligents 24 4.2.3 Interprétation et remarques 26 CONCLUSION 29 5.1 5.2 LES RESULTATS OBTENUS 29 AU FUTURE 29 RÉFÉRENCES 30 ANNEXE 32 7.1 LE PACKAGE INET DU SIMULATEUR J-SIM 32 7.1.1 Le CSL et les services 32 7.1.2 La décomposition du CSL 34 7.1.3 L’établissement d’un scénario de simulation d’un réseau 36 7.2 LA CONFIGURATION ET LE MANUSCRIT DE SIMULATION DE RESEAU MPLS 37 7.2.1 La configuration du composant de FT 37 7.2.2 L’établissement d’un nœud MPLS 38 7.3 GUIDE D'INSTALLATION DE LA SIMULATION DU RESEAU MPLS-DIFFSERV 38 7.3.1 L'Installation 38 7.3.2 L'affichage des résultats 39 7.3.3 Remarque 39 TIEU LUAN MOI download : skknchat@gmail.com Gestion de l’accès aux réseaux MPLS-DiffServ par des agents intelligents 7.3.4 Le fichiers de simulation ianet.tcl 39 7.4 LES RESULTATS OBTENUS 46 7.4.1 La simulation du réseau sans agent 46 7.4.2 La simulation du réseau avec agent intelligent 47 TIEU LUAN MOI download : skknchat@gmail.com Gestion de l’accès aux réseaux MPLS-DiffServ par des agents intelligents Les acronymes ACA AF AS ATM BA BE bps CAC CSL DiffServ DSCP EF FEC FT FTP IP LDP LSP LSR MPLS MTU PD PHB QoS RSVP RT SLA SLS TE TTL UPL Autonomous Component Architecture Assured Forwarding Autonomous System Asynchronous Transfer Mode Behaviour Aggregated Best Effort bit per second Call Admission Control Core Service Layer Differentiated Service DiffServ Code Point Expedited Forwarding Forwarding Equivalence Class Forwarding Table File Transfer Protocol Internet Protocol Label Distribution Protocol Label Switched Path Label Switch Router Multi-Protocol Label Switching Max Transfer Unit Packet Dispatcher Per-Hop Behaviour Quality of Service Reservation Protocol Routing Table Service Level Agreement Service Level Specification Traffic Engineering Time To Live Upper Protocol Layer TIEU LUAN MOI download : skknchat@gmail.com Gestion de l’accès aux réseaux MPLS-DiffServ par des agents intelligents INTRODUCTION Ce stage s’est déroulé dans l’équipe RESEAUX et PERFORMANCE du pole MSI (Modélisation des Systèmes d’Informatique) du LIP6 (Laboratoire d’Informatique de Paris 6) Aujourd’hui, les réseaux de télécommunications ont évolué vers une tendance fournir les divers services avec telle garantie de la qualité de service aux clients Il est possible de transférer des flots de données différents niveaux de débit, de délai et de taux de perte de paquets Dans le but de fournir certaines garanties de la QoS adéquate aux trafics sur un AS IP, les clients devront avoir des conventions SLA [7, 8, 26, 19] contractuelles avec des Fournisseurs des Services d’Internet (Internet Service Provider, ISP) Les ISP voudraient satisfaire des demandes du client qui sont décrites dans la part technique SLS [7, 8, 26] du SLA tandis qu’optimiser l’utilisation des ressources du La réalisation de ces deux objectifs n’est pas simple dans un environnement de réseaux multi-services L’intégration de DiffServ et MPLS est une approche très efficace pour résoudre ce problème DiffServ fournit des mécanismes normalisés de QoS [6] tandis que MPLS fournit des techniques de routage qui nous permettent d’optimiser l’utilisation de ressources et l’ingénierie du trafic [10] Deux aspects intéressants de cette tendance seront abordés rapidement dans les deux sections suivantes : la garantie de la QoS dans le monde IP et l’ingénierie du trafic (TE) dans les réseaux MPLS 1.1 La garantie de la QoS dans les réseaux IP Un point majeur dans la gestion de la performance de réseaux est la QoS Elle a été définie dans la recommandation E.800 de l’ITU-T (International Telecommunications Union – Telecommunication Standardization Sector) comme « un effet collectif des performances d’un service qui détermine le degré de satisfaction d’un client du service » Pour atteindre certaine garantie de la QoS, des mécanismes du plan de contrôle et du plan de gestion sont utilisés [26] Les mécanismes du plan de contrôle servent réserver des ressources la demande Ceux du plan de gestion fournissent la planification et la surveillance du réseau et la gestion des demandes d’inscription des services dépendant des ressources valables Normalement, les réseaux IP n’offrent pas de qualité de service l’origine En effet, l’objectif du monde IP est de partager de faỗon ộquitable lensemble des ressources du rộseau [25] Plusieurs solutions ont été proposées pour essayer d’introduire de la qualité de service dans les réseaux IP La première solution est de surdimensionner le réseau de telle sorte que tous les paquets IP voient le réseau comme étant fluide et puissent arriver dans un laps de temps court au récepteur La deuxième solution est de réserver des ressources du réseau pour des flots particuliers Pour cela, un protocole de signalisation RSVP a été proposé Associée ce protocole, une autre solution a été proposée avec la technique IntServ (Integrated Service) L’idée est d’introduire des classes de priorité aux trafics dans les réseaux IP Cependant, cette proposition bute contre le problème de passage l’échelle du contrôle de QoS C’est pour quoi la technique DiffServ a été proposée Cette technique est considérée une technologie clé pour l’obtenir la garantie de QoS Au lieu de maintenir des tables indiquant les caractéristiques des flots chaque routeur, les paquets sont classifiés, marqués et policés au bord d’un domaine DiffServ Les flots sont regroupés dans des flots plus importants appelés des agrégats Un ensemble fini des PHB différencie le traitement des agrégats dans le noyau du réseau en fonction de la priorité d’ordonnancement (scheduling priority), la capacité de transiter (forwarding capacity) et le tampon (buffering) Les trois types principaux de PHB sont: EF [RFC2598], AFxy [RFC2597] et BE Les SLS sont utilisés pour décrire TIEU LUAN MOI download : skknchat@gmail.com Gestion de l’accès aux réseaux MPLS-DiffServ par des agents intelligents des paramètres appropriés de la QoS dont un routeur DiffServ devrait tenir compte Le traitement des micro flots aura lieu au bord du réseau DiffServ tandis que les routeurs internes ne travaillent qu’avec des agrégats de flux selon le champ DSCP de l’entête de paquets IP Cette approche a pour avantage d’éviter le problème de passage l’échelle du contrôle de QoS Le cadre de QoS tels que IntServ et DiffServ ont bien concentré des mécanismes du plan de contrôle pour fournir la QoS Cependant, il ne semble que c’est possible fournir la QoS sans l’aide de la gestion du réseau et des services Considérons le cas de DiffServ, il ne suggère que les mécanismes nécessaires au traitement des paquets chaque nœud Il ne suggère aucune architecture pour délivrer la QoS de bout en bout (end-to-end QoS) L’objectif d’offrir une garantie de QoS quantitative de bout en bout sera réalisé grâce l’augmentation des mécanismes de DiffServ avec des fonctions de l’ingénierie du trafic intelligentes [26] Dans la partie suivante, nous allons présenter l’ingénierie du trafic dans les réseaux MPLS 1.2 L’ingénierie du trafic dans les réseaux MPLS Les réseaux MPLS sont de plus en plus utilisés dans le monde IP MPLS utilise l’approche d’intégration d’un cadre d’échanger des étiquettes (labels) avec le routage de la couche de réseau L’idée de base est d’assigner des étiquettes fixes et courtes des paquets IP l’entrée d’un réseau MPLS (basé sur le concept de transfert en avant des classes équivalentes FEC) Cette assignation n’est faite qu’une fois quand le paquet entre dans le réseau Tous les paquets qui appartiennent un FEC particulier et qui partent d’un nœud particulier traverseront le même chemin ou un des chemins associés ce FEC (dans le cas de routage multi chemins) [13] Les paquets seront pilotés par les routeurs internes grâce leur étiquette, aucune information additionnelle n’est nécessaire Ce type de réseau est vraiment adéquat des applications de multimédia comme la VoIP (Voix sur IP), VoD (Vidéo la demande)…qui demandent de transférer les paquets en ordre Une des applications les plus significatives initiales de l’implémentation de MPLS sera développée pour la TE [27] 1.2.1 L’ingénierie du trafic En général, l’ingénierie du trafic (TE) est un processus pour spộcifier la faỗon dont laquelle des trafics sont traités dans un réseau donné La TE concerne principalement l’optimisation de performance des réseaux opérationnels Elle renferme l’application des technologies et des principes scientifiques de la mesure, de la modélisation, de la caractérisation, et du contrôle du trafic d’Internet pour atteindre des objectifs de la performance spécifiques Les deux aspects d’intérêt de la TE dans les réseaux MPLS sont la mesure et le contrôle [27] Des objectifs principaux de la performance associés la TE devraient être classifiés en deux types : l’orientation du trafic ou celle des ressources [27] Les objectifs de la performance orientés au trafic se comprennent des aspects qui améliorent la QoS des flux du trafic Ils pourraient être la minimisation de perte de paquets, de délai, la maximisation de débit…Ceux orientés aux ressources concernent des aspects d’optimisation de l’utilisation de ressources, parmi lesquelles la gestion de bande passante (bandwith) est un facteur essentiel La minimisation de congestions et l’équilibrage de la charge (load balancing) sont ainsi les buts importants de la TE 1.2.2 MPLS et la TE MPLS est vraiment significatif pour la TE parce qu’il fournit potentiellement la plupart des fonctionnalités valables du modèle « overlay » tel que IP sur ATM, IP sur le relais de trame(IP over frame relay)de faỗon intộgrộe et coỷt bas par rapport aux autres Il nous offre la possibilité d’automatiser des fonctions de la TE [27] TIEU LUAN MOI download : skknchat@gmail.com Gestion de l’accès aux réseaux MPLS-DiffServ par des agents intelligents 10 MPLS, avec le concept de « traffic trunk » [RFC 2403], a quelques facteurs pour la TE [27]: (i) les LSP explicites qui n’ont pas de contraintes du paradigme de transfert basé sur des destinations pourraient être créés manuellement par des opérateurs du réseau ou automatiquement par des protocoles, (ii) les LSP pourraient être maintenus efficacement, (iii) les traffic trunks pourraient être instanciés (instantiated) et projetés (mapped) sur les LSP, (iv) un ensemble des attributs pourrait être associés aux traffic trunks qui modulent leurs caractéristiques comportementales, (v) un ensemble d’attributs pourrait être associés aux ressources qui contraignent le placement des LSP et les traffic trunks traversant ces LSP… Cependant, il y a des difficultés dans la réalisation de la TE sur MPLS Citons les trois problèmes fondamentaux de la TE sur MPLS Premièrement, comment projetons-nous les paquets sur les FEC? Deuxièmement, comment projetons-nous les FEC sur les traffic trunks? Troisièmement, comment projetons-nous les traffic trunks sur la topologie physique d’un réseau via les LSP? Plusieurs travaux ont été faits pour répondre ces questions Ces travaux concernent l’intégration de la technique DiffServ et l’infrastructure MPLS [26,31], le développement des protocoles de routage et de distribution des étiquettes… L’idée d’intégrer la technique DiffServ un réseau MPLS montre un avantage Il est possible de spécifier les chemins suivre et les comportements (PHB) des paquets dans les files d’attente des routeurs Pour cela, les FEC seront classifiés selon les classes de service de DiffServ (EF, AFxy, BE) Il y a deux faỗons de projeter le DSCP de DiffServ sur les ộtiquettes de MPLS : E-LSP (Exp-inferred LSP) et L-LSP (Label only inferred LSP) [28, 29] Les étiquettes seront assignés et distribuées aux routeurs grâce un LDP Un des travaux intéressants dans l’assurance de la TE sur MPLS est la gestion dynamique et automatique de l’accès un réseau MPLS-DiffServ Ce travail concerne l’affectation des flux provenant de l’extérieur du réseau dans les divers LSPs d’un réseau MPLS-DiffServ en fonction du SLS négocié par l’utilisateur, des caractéristiques de l’application et peut-être également du profil d’utilisateur Par exemple, s’il y a une application de téléphonie qui se présente, quel LSP affectera-t-on cette application pour que la garantie très forte soit réalisée? Normalement, les flux sont routés statiquement par l’opérateur ou bien par un protocole de routage et distribution des étiquettes Avant d’affecter un flot dans un tuyau, il faut avoir une procédure de l’appel du contrôle d’admission (Call Admission Control, CAC) [9] pour que la QoS soit respectée Dans le but d’introduire l’intelligence artificielle dans le domaine de la télécommunication, nous proposons une approche d’utilisation de l’agent intelligent dans la gestion de l’accès un réseau MPLS-DiffServ 1.3 L’objectif du projet L'objectif du projet est de concevoir et de développer des techniques et des logiciels de simulation des réseaux MPLS-DiffServ intégrant des agents intelligents Dans ce cadre j’ai travaillé avec un autre stagiaire qui a travaillé sur la modélisation et le développement d’un réseau MPLS-DiffServ Ce stage concerne la réalisation d’un modèle d’agent générique pour le choix des LSP et la mesure de son efficacité ainsi que ses inconvénients en terme de TE Nous voudrons essayer d’appliquer l’intelligence artificielle des agents la réalisation de la TE dans un réseau MPLSDiffServ Nous creusons l’aspect du choix des LSP en satisfaisant la QoS demandée et l’équilibrage de la charge du réseau Pour cela, on tente de répondre aux questions suivantes : (i) Pourquoi et comment introduit-on l’agent intelligent un réseau MPLS? (ii) Quels sont ses avantages et inconvénients ? (iii) Comment affecte-t-on les flux de paquets les divers LSP? (iv) Quels sont les paramètres avec lesquels l’agent peut jouer? (v) Quelle est l’architecture des TIEU LUAN MOI download : skknchat@gmail.com Gestion de l’accès aux réseaux MPLS-DiffServ par des agents intelligents Fig 13 La structure interne d’un routeur 36 Fig 14 La structure interne d’un host 7.1.3 L’établissement d’un scénario de simulation d’un réseau La construction d’un scénario de simulation de réseau dans le J-Sim est décrite dans le manuscrit suivant de TCL: Mis en forme : Franỗais (France) # Crộer un container pour tenir le scenario cd [mkdir drcl.comp.Component scene] # Etape 1: Créer la topologie # Etape 2: Bâtir des nodes # Etape 3: Configurer des nodes # Attacher le temps d’exécution de simulateur la "scene" attach_simulator # Lancer tous les composants actifs sous la "scene" s’il y en a run Exemple : Pour créer un scénario de simulation de réseau qui a la topologie montrée dans la figure[15], on pourrait décrire un manuscrit de TCL : Mis en forme : Anglais (Royaume-Uni) Mis en forme : Franỗais (France) Fig 15 Une topologie de réseau où h est le host, n est le nœud cd [mkdir drcl.comp.Component scene] # Create topology: set adjMatrix_ [java::new {int[][]} {{1 2} {3 4} {0 5} {0 2} 2}] Mis en forme : Anglais (Royaume-Uni) TIEU LUAN MOI download : skknchat@gmail.com Gestion de l’accès aux réseaux MPLS-DiffServ par des agents intelligents 37 java::call drcl.inet.InetUtil createTopology [! ] $adjMatrix_ # Build nodes: set routerBuilder_ [java::new drcl.inet.NodeBuilder routerBuilder] set hostBuilder_ [cp $routerBuilder_ hostBuilder] mkdir $hostBuilder_/20@up $routerBuilder_ build [! n*] 10 $hostBuilder_ build [! h*] 11 # Set up traffic source: 12 set packetSize_ 512 13 set period_ 1; # send a packet of size 512 bytes every second 14 set trafficModel_ [java::new drcl.net.traffic.traffic_PacketTrain $packetSize_ $period_] 15 java::call drcl.inet.InetUtil createTrafficSource $trafficModel_ "source" [! h4] [! h5] 20] 16 17 18 19 20 # Set up sink: set sink_ [mkdir drcl.comp.tool.DataCounter h5/sink] connect -c h5/csl/20@up -to $sink_/down@ # Set up static routes from h4 to h5 java::call drcl.inet.InetUtil setupRoutes [! h4] [! h5] 21 attach_simulator ; # attach simulation runtime 22 # start "active" component: the traffic source 23 run 7.2 Mis en forme : Franỗais (France) La configuration et le manuscrit de simulation de réseau MPLS 7.2.1 La configuration du composant de FT Avant d’envoyer des données, il est nécessaire d’ajouter des informations d’acheminement la FT On pourrait utiliser deux méthodes : utiliser des commandes de TCL dans le manuscrit de configuration de TCL générer un fichier de configuration qui sera chargé la FT La commande suivante rajoute une entrée la FT Cette entrée relie une étiquette d’entrée une interface de sortie et une liste d’opérations node/csl/ft addLabelEntry label outif timeout operation Description des arguments : Nom Description Type de donnée Note label l’étiquette d’entrée entier (integer) nul outif l’interface de sortie entier (integer) nul timeout le temps avant l’effacement de réel (double) la valeur 0.0 indique cette entrée une entrée permanante operation définir des opérations sur les Chne des « op1 lab1 : op2 étiquettes caractères lab2 :… : opN labN » Les opérateurs sont : SWAP, PUSH, POP SWAP : l’étiquette au sommet de la pile est modifié par la valeur donnée PUSH : rajouter une nouvelle valeur la pile POP : effacer la valeur au sommet de la pile Exemple : ! n1/csl/ft addLabelEntry 90.0 "POP 0" Mis en forme : Retrait : Première ligne : 0.13", Avec puces + Niveau : + Alignement : 0.25" + Tabulation après : 0.5" + Retrait : 0.5" Mis en forme : Anglais (Royaume-Uni) Mis en forme : Anglais (Royaume-Uni) TIEU LUAN MOI download : skknchat@gmail.com Gestion de l’accès aux réseaux MPLS-DiffServ par des agents intelligents 38 Pour relier un préfixe IP une interface de sortie et une liste d’opérations on peut utiliser la commande : node/csl/ft addPrefixEntry destIP destMask outif timeout operation Description des arguments : Nom Description Type de donnée Note destIP l’adresse IP de destination entier (long) nul destMask le masque de destionation entier (long) outif l’interface de sortie entier (integer) nul timeout le temps avant l’effacement de cette réel (double) la valeur 0.0 indique entrée une entrée permanante operation définir des opộrations sur les ộtiquettes Chaợne des ô op1 lab1 : op2 caractères lab2 :… : opN labN » Les opérateurs sont les mêmes que dans le cas ci-dessus Exemple : ! n2/csl/ft addPrefixEntry 0x05 0xFFFFFFFF 30.0 "PUSH 1:PUSH 1:PUSH 2" Dans le cas que l’on veut charger les entrées dans la FT partir d’un fichier, on pourrait utiliser la commande : node/csl/ft loadFromFile path path : Le chemin pour trouver le fichier Dans le fichier de configuration du FT, chaque ligne est une entrée On a deux type de ligne : L inlabel outif timeout {op label}+ I destIP destMask outif timeout {op label}+ où L indique une entrée d’étiquette, I présente celle d’adresse IP op = (PUSH) ; (POP) ; (SWAP) Exemple : !n3/csl/ft loadFromFile "./ft.content" Avec le contenu du fichier ft.content: I 00000005 FFFFFFFF 90.0 1 1 I 00000007 FFFFFFFF 90.0 1 1 L 90.0 Mis en forme : Anglais (Royaume-Uni) Mis en forme : Anglais (Royaume-Uni) Mis en forme : Anglais (Royaume-Uni) 7.2.2 L’établissement d’un nœud MPLS Créer un MPLSBuilder : set mpls [mkdir infonet.javasim.MPLS.MPLSBuilder mplsBuilder] Créer des nœuds MPLS : set nb [mkdir drcl.inet.NodeBuilder nodeBuilder] $nb build [! n?] $mpls Mis en forme : Anglais (Royaume-Uni) Exemple complet d’un scénario de simulation du réseau MPLS sera introduit dans la section suivante 7.3 Guide d'installation de la simulation du reseau MPLS-DiffServ 7.3.1 L'Installation - Lancer la fenetre de commande DOS - Changer le chemin (path) au repertoire C:\npquang\working\mpls\current - Etablir les variables d'environnement par le script run.bat - Faire marcher la simulation en utilisant le script r.bat, ou bien : java drcl.ruv.System ianet.tcl - Pour recompiler les fichiers *.java, utilisez le script c.bat TIEU LUAN MOI download : skknchat@gmail.com Gestion de l’accès aux réseaux MPLS-DiffServ par des agents intelligents 39 7.3.2 L'affichage des résultats Les résultats sont affichés de deux faỗons: visuelle et textuelle: - L'affichage visuel montre les valeurs moyennes et instantanées des paramètres de QoS selon chaque LSP du réseau comme : la gigue, le délai, la perte - L'affichage textuel montre le traitement et les critères utilisés de l'agent : Waiting for agent process Agent processing Agent process number : 20 lookup for : Alternative number : Mis en forme : Anglais (Royaume-Uni) Avarage : Mean parameters : delay :0.04011069242009149 jitter : 0.06244899598381361 loss : 0.0 wait :2.7843803056027165E-4 Variance parameters : delay :0.02251883567437416 jitter : 0.04886202120211075 loss : 0.0 wait :1.5353530580015497E-4 Agent return : End of agent process + Agent process number indique le nombre de flots de données a été traités de la simulation + lookup for : "type de service" (0 : EF, : AF, : BE) + Alternative number : "nombre de LSP" + Mean parameters : la somme des valeurs moyennes de tous les noeuds appartenant d'un LSP + Variance parameters : la variance des valeurs moyennes + Agent return : "la référence pour trouver un chemin dans FT( Forwarding Table) Mis en forme : Anglais (Royaume-Uni) 7.3.3 Remarque - La topologie du réseau est présentée dans le fichier ianet.tcl - L'agent se trouve noeud n0 et il ne traite que des flots de noeuds n0 la destination n2 - L'agent a deux ports communiquer : AGENT_SERVICE_PORT_ID pour le traitement de flots et AGENT_UPDATE_PORT_ID pour la mise jour des donnees - La période de mise jour des paramètres (le temps que les noeuds envoient leur état actuel l'agent): foreach i {0 3} { [! n$i/csl/mpls] setTimeUpdate "Update" 0.1 } - L'agent ne change pas le contenu des paquets, il ne donne qu'une reference au module MPLS pour faire "lookup" dans la FT Mis en forme : Anglais (Royaume-Uni) 7.3.4 Le fichiers de simulation ianet.tcl #LE Duy-NGUYEN Phan Quang cd [mkdir drcl.comp.Component /ianet] puts "\n-=Construire la topologie=-" puts "Construire les noeuds " cd [mkdir drcl.comp.Component net0] set link_ [java::new drcl.inet.Link] $link_ setPropDelay 0.1; # {5,9,13} # | # | # # / \ # / \ # / \ # {12,8,4} -0 -{6,10,14} 16 # \ / # \ / # \ / # # | # | # {7,11,15} Mis en forme : Franỗais (France) Mis en forme : Anglais (Royaume-Uni) TIEU LUAN MOI download : skknchat@gmail.com Gestion de l’accès aux réseaux MPLS-DiffServ par des agents intelligents 40 puts "Construire l'adress IP " set id_ [java::new {long[]} {0 }] set adjMatrix_ [java::new {int[][]} {{1 4} {0 5} {1 6} {0 7} {0} {1} {2} {3}}] java::call drcl.inet.InetUtil createTopology [! ] "n" "n" $adjMatrix_ $id_ $link_ set mplsBuilder [mkdir MPLSBuilder mplsBuilder] set nb [mkdir drcl.inet.NodeBuilder nodeBuilder] $nb setBandwidth 3.5e7; $nb build [! n0] $mplsBuilder #35Mbps #1.0e7 = 10Mbps $nb setBandwidth 7.0e6; $nb build [! n1] $mplsBuilder #7Mbps #1.0e7 = 10Mbps $nb setBandwidth 3.5e7; $nb build [! n2] $mplsBuilder #6.5Mbps #1.0e7 = 10Mbps $nb setBandwidth 7.0e6; $nb build [! n3] $mplsBuilder #7Mbps #1.0e7 = 10Mbps $nb setBandwidth 1.0e8; $nb build [! n4-7] $mplsBuilder #100Mbps #1.0e3=1Kbps [! n4] addAddress [! n4] addAddress 12 [! n5] addAddress [! n5] addAddress 13 [! n6] addAddress 10 [! n6] addAddress 14 #For testing only [! n6] addAddress 16 [! n7] addAddress 11 [! n7] addAddress 15 #Added by NGUYEN Phan Quang 12/09/03 puts "create and connect database" mkdir Database data #connect [! n?/csl/mpls/DATA_SERVICE_PORT_ID@] -to [! data/update@] puts "create and connect agent and n1" mkdir Agent agent ! agent setDatabase [ ! /ianet/net0/data] connect agent/AGENT_SERVICE_PORT_ID@ -and [! /ianet/net0/n0/csl/mpls/AGENT_SERVICE_PORT_ID@] foreach i {0 3} { connect [! n$i/csl/mpls/AGENT_UPDATE_PORT_ID@] -to [! agent/AGENT_UPDATE_PORT_ID@] } connect agent/DATA_PORT_ID@ -and data/update@ ! agent setActive true #! agent setActive false mkdir drcl.comp.tool.Plotter plot ! agent connect2Plot [ ! plot] #end of addition puts "Configuration des routeurs " java::call java::call java::call java::call java::call infonet.javasim.util.NetUtil infonet.javasim.util.NetUtil infonet.javasim.util.NetUtil infonet.javasim.util.NetUtil infonet.javasim.util.NetUtil setupBRoute setupBRoute setupBRoute setupBRoute setupBRoute [! [! [! [! [! Mis en forme : Franỗais (France) n0] n4] n1] n5] n2] [! [! [! [! [! n4] n0] n5] n1] n6] Mis en forme : Anglais (Royaume-Uni) TIEU LUAN MOI download : skknchat@gmail.com Gestion de l’accès aux réseaux MPLS-DiffServ par des agents intelligents 41 java::call infonet.javasim.util.NetUtil setupBRoute [! n6] [! n2] java::call infonet.javasim.util.NetUtil setupBRoute [! n3] [! n7] java::call infonet.javasim.util.NetUtil setupBRoute [! n7] [! n3] java::call java::call java::call java::call java::call java::call java::call java::call infonet.javasim.util.NetUtil infonet.javasim.util.NetUtil infonet.javasim.util.NetUtil infonet.javasim.util.NetUtil infonet.javasim.util.NetUtil infonet.javasim.util.NetUtil infonet.javasim.util.NetUtil infonet.javasim.util.NetUtil setupBRoute setupBRoute setupBRoute setupBRoute setupBRoute setupBRoute setupBRoute setupBRoute [! [! [! [! [! [! [! [! n0] n1] n1] n2] n2] n3] n3] n0] [! [! [! [! [! [! [! [! n1] n0] n2] n1] n3] n2] n0] n3] puts "Configuration des table d'acheminement " Mis en forme : Franỗais (France) foreach i {1 3} { ###### Flow 1: -> -> Label=1 => EF ###### Flow 2: -> -> 10 Label=2 => AFxy ###### Flow 3: 12 -> -> 14 Label=3 => BE # addPrefixEntry destIP destMask iface timeout operations ! n0/csl/ft addPrefixEntry [expr $i*4+2] 0xFFFFFFFF 90.0 "PUSH $i" Mis en forme : Anglais (Royaume-Uni) # N1 # addLabelEntry label iface timeout operations ! n1/csl/ft addLabelEntry $i 90.0 "SWAP $i" # N2 ! n2/csl/ft addLabelEntry $i 90.0 "POP 0" ####################### ###### Flow 4: -> -> ###### Flow 5: -> -> 11 ###### Flow 6: 13 -> -> 15 Label=4 => EF Label=5 => AFxy Label=6 => BE # N1 # addPrefixEntry destIP destMask iface timeout operations ! n1/csl/ft addPrefixEntry [expr $i*4+3] 0xFFFFFFFF 90.0 "PUSH [expr $i+3]" # N2 # addLabelEntry label iface timeout operations ! n2/csl/ft addLabelEntry [expr $i+3] 90.0 "SWAP [expr $i+3]" # N3 ! n3/csl/ft addLabelEntry [expr $i+3] 90.0 "POP 0" ####################### ###### Flow 7: -> -> ###### Flow 8: 10 -> -> ###### Flow 9: 14 -> -> 12 Label=7 => EF Label=8 => AFxy Label=9 => BE # N2 # addPrefixEntry destIP destMask iface timeout operations ! n2/csl/ft addPrefixEntry [expr $i*4] 0xFFFFFFFF 90.0 "PUSH [expr $i+6]" # N3 # addLabelEntry label iface timeout operations ! n3/csl/ft addLabelEntry [expr $i+6] 90.0 "SWAP [expr $i+6]" # N0 ! n0/csl/ft addLabelEntry [expr $i+6] 90.0 "POP 0" ####################### ###### Flow 10: -> -> Label=10 => EF TIEU LUAN MOI download : skknchat@gmail.com Gestion de l’accès aux réseaux MPLS-DiffServ par des agents intelligents ###### Flow 11: 11 -> -> ###### Flow 12: 15 -> -> 13 42 Label=11 => AFxy Label=12 => BE # N3 # addPrefixEntry destIP destMask iface timeout operations ! n3/csl/ft addPrefixEntry [expr $i*4+1] 0xFFFFFFFF 90.0 "PUSH [expr $i+9]" # N0 # addLabelEntry label iface timeout operations ! n0/csl/ft addLabelEntry [expr $i+9] 90.0 "SWAP [expr $i+9]" # N1 ! n1/csl/ft addLabelEntry [expr $i+9] 90.0 "POP 0" } # For testing only ###### Flow 13: -> -> 16 Label=13 => EF ###### Flow 14: -> -> 10 Label=14 => AFxy ###### Flow 15: 12 -> -> 14 Label=15 => BE # addPrefixEntry destIP destMask iface timeout operations ! n0/csl/ft addPrefixEntry 16 0xFFFFFFFF 90.0 "PUSH 13" # N3 # addLabelEntry label iface timeout operations ! n3/csl/ft addLabelEntry 13 90.0 "SWAP 13" # N2 ! n2/csl/ft addLabelEntry 13 90.0 "POP 0" ! n1/csl/ft addPrefixEntry 10 0xFFFFFFFF 90.0 "PUSH 13" ! n1/csl/ft addPrefixEntry 0xFFFFFFFF 90.0 "PUSH 3" # ! ! ! ! Added by Nguyen Phan Quang 25-09 n0/csl/ft addLabelEntry 90.0 "PUSH 1" n0/csl/ft addLabelEntry 90.0 "PUSH 2" n0/csl/ft addLabelEntry 90.0 "PUSH 3" n0/csl/ft addLabelEntry 55 90.0 "PUSH 55" ! n0/csl/ft addLabelEntry 15 90.0 "PUSH 15" ! n0/csl/ft addLabelEntry 40 90.0 "PUSH 40" ! n3/csl/ft addLabelEntry 55 90.0 "SWAP 1" ! n3/csl/ft addLabelEntry 15 90.0 "SWAP 3" ! n3/csl/ft addLabelEntry 40 90.0 "SWAP 2" #End of addition set EF set AF set BE puts "Des variables " foreach i {0 3} { set sourceF$i n[expr $i+4] # puts "sourceF$i ==> n[expr $i+4]" foreach j {0 2} { if {$i > 1} {set destF$i$j [expr $i+2+$j*4] } $i+4+2+$j*4]} # puts "==> destF$i$j" } set set set set {set destF$i$j [expr OnOff_$i [mkdir source_OnOff OnOff_$i] Poisson_$i [mkdir source_Poisson Poisson_$i] ParetoOnOff_$i [mkdir source_ParetoOnOff ParetoOnOff_$i] Trace_$i [mkdir source_Trace Trace_$i] TIEU LUAN MOI download : skknchat@gmail.com Gestion de l’accès aux réseaux MPLS-DiffServ par des agents intelligents 43 set timePeriodSource$i -1 } puts "Configuration des sources de trafic " # For testing only set Trace_n [mkdir source_Trace Trace_n] [! Trace_n] set [! n4] 16 "Verbose_Aladdin_duy2.dat" 256 false [! Trace_n] setParam 16 $timePeriodSource0 $BE set OnOff_n [mkdir source_OnOff OnOff_n] [! OnOff_n] set [! n4] 16 [! OnOff_n] setParam 17 $timePeriodSource0 $AF [! OnOff_n] setOnOffParam 56 221184 0.01 0.06 ###### Source [! OnOff_0] set [! $sourceF0] $destF00 [! OnOff_0] setParam $timePeriodSource0 $EF [! OnOff_0] setOnOffParam 128 13072 0.01 0.06 [! Poisson_0] set [! $sourceF0] $destF01 [! Poisson_0] setParam $timePeriodSource0 $BE [! Poisson_0] setPoissonParam 128 24576 [! ParetoOnOff_0] set [! $sourceF0] $destF02 [! ParetoOnOff_0] setParam $timePeriodSource0 $BE [! ParetoOnOff_0] setParetoOnOffParam 56 122880 0.01 0.06 [! Trace_0] set [! $sourceF0] $destF02 "Verbose_Jurassic_duy3.dat" 256 false [! Trace_0] setParam $timePeriodSource0 $EF ###################" [! OnOff_1] set [! $sourceF1] $destF10 [! OnOff_1] setParam $timePeriodSource1 $EF [! Poisson_1] set [! $sourceF1] $destF11 [! Poisson_1] setParam $timePeriodSource1 $AF [! ParetoOnOff_1] set [! $sourceF1] $destF12 [! ParetoOnOff_1] setParam $timePeriodSource1 $BE [! Trace_1] set [! $sourceF1] $destF12 "Verbose_Aladdin_duy2.dat" 128 false [! Trace_1] setParam $timePeriodSource1 $BE ###################### [! OnOff_2] set [! $sourceF2] $destF20 [! OnOff_2] setParam $timePeriodSource2 $EF [! Poisson_2] set [! $sourceF2] $destF21 [! Poisson_2] setParam $timePeriodSource2 $BE [! ParetoOnOff_2] set [! $sourceF2] $destF22 [! ParetoOnOff_2] setParam 10 $timePeriodSource2 $BE [! Trace_2] set [! $sourceF2] $destF22 "Verbose_Aladdin_duy3.dat" 128 false [! Trace_2] setParam 11 $timePeriodSource2 $AF ###################### [! OnOff_3] set [! $sourceF3] $destF30 [! OnOff_3] setParam 12 $timePeriodSource3 $AF [! Poisson_3] set [! $sourceF3] $destF31 [! Poisson_3] setParam 13 $timePeriodSource3 $BE TIEU LUAN MOI download : skknchat@gmail.com Gestion de l’accès aux réseaux MPLS-DiffServ par des agents intelligents 44 [! ParetoOnOff_3] set [! $sourceF3] $destF32 [! ParetoOnOff_3] setParam 14 $timePeriodSource3 $BE [! Trace_3] set [! $sourceF3] $destF32 "Verbose_Jurassic_duy2.dat" 128 false [! Trace_3] setParam 15 $timePeriodSource3 $EF puts "Configuration les plotteurs " foreach j {0 2} { foreach i {0 3} { set plot_$j$i [mkdir ianetPlotter p$j$i] } } for {set t 0} {$t