MINISTERE DE L’ENSEIGNEMENT SUPERIEUR DE LA RECHERCHE SCIENTIFIQUE ET DE LA TECHNOLOGIE
UNIVERSITE DE MANOUBAECOLE NATIONALE DES SCIENCES DE L’INFORMATIQUE
PROJET DE FIN D’ETUDESPrésenté en vue de l’obtention du
DIPLÔME D’INGENIEUR EN INFORMATIQUE
SujetModélisation et implémentation du protocole Neighbour
Discovery d’IPv6 dans le projet Open Source NS-3
Réalisé par : Mehdi Benamor.Encadré par : Dr. Nicolas Montavont.Supervisé par : Pr. Abdelfattah Belghith.
Année universitaire 2007/2008
Année universitaire 2007/2008 2
Ce travail a été effectué dans TELECOM Bretagne, centre de recherche international en sciences et technologies de l’information et membre privilégié des entreprises innovantes. Notre objectif était la préparation, en collaboration avec l’université de Strasbourg, d’une version de NS-3 qui supporte la totalité de la pile IPv6. La tâche spécifique à ce projet est la modélisation puis l’implémentation du protocole Neighbour Discovery dans le simulateur NS-3 avec le développement des techniques de routage.
Domaines touchés :
Protocole IPv6 Simulation à événements discrets Emulation Programmation avancée en C++ et Python
Présentation générale
Année universitaire 2007/2008 3
Plan
1.Introduction1.1. IPv61.2. Simulation à événements discrets1.3. NS-3
2.Problématique3.Analyse des besoins
3.1. Besoins fonctionnels et non fonctionnels3.2. Modèle et cas d’utilisations
4.Conception4.1. Vue d’ensemble4.2. Conception détaillée
5. Scénarios des tests7. Conclusion
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Introduction :• IPv6• Simulation à événements discrets• NS-3
4Année universitaire 2007/2008
Croissance des tables de routages des routeurs
Pénurie des réseaux des classes B et C
Epuisement des adresses des machines
Recherche d’un nouveau standard !
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Introduction :• IPv6• Simulation à événements discrets• NS-3
5Année universitaire 2007/2008
Définition d’un nouvel protocole internet IPv6 !
Plan d’adressage plus large. Sécurité renforcé. Confidentialité. Gestion des applications temps réel. Auto-configuration des machines.
Coexistence d’IPv4 et IPv6.Définition des techniques de migration vers la nouvelle version.
Actuellement, la majorité des backbones en union européenne et en Amérique utilisent le protocole IPv6.
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Introduction :• IPv6• Simulation à événements discrets• NS-3
6Année universitaire 2007/2008
Pas d’intervention humaine pour la mise au point des machines (IPv4).
Ce protocole est défini pour automatiser la configuration.
Le paramétrage des interfaces se fait à l’aide d’échange des messages ICMP. Découverte et mise en cache des équipement dans un même sous-réseau. Découverte des routeurs accessibles et configuration des adresses globales.
Protocole de découverte des voisins Neighbour Discovery
Configuration des adresses statiques Configuration des passerelles et des serveurs
nécessite l’intervention d’un spécialiste
ICMP Intervention humaine seulement au niveau des routeurs
Configuration automatique des interfaces par échange des messages
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Introduction :• IPv6• Simulation à événements discrets• NS-3
7Année universitaire 2007/2008
Protocole de découverte des voisins Neighbour Discovery
RSRS
RA
RARA
Application
NSNA
Mise à jour de la cache
Configurer adresse globale
Mise à jour de la cache
Configurer adresse globale
Mise à jour de la cache
Mise à jour de la cacheEnvoi des données
Ethernet
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Introduction :• IPv6• Simulation à événements discrets• NS-3
8Année universitaire 2007/2008
L’étude de performance d’un système est primordiale pour dégager des informations utiles liées à son fonctionnement.
Comportement avec l’environnement extérieurLimites par rapport aux objectifs conçus
Degré de complexité élevé Problèmes difficilement démontrables par expérience prévention parfois impossible de l’évolution du
comportement du système
Euh!! heureusement !
Etude par simulationPrésentation virtuelle du
système
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Introduction :• IPv6• Simulation à événements discrets• NS-3
9Année universitaire 2007/2008
Du système réel au modèle d’abstraction
Système
Modèle
Conserver les contraintes Conserver l’environnement d’exécution Même état global
Simulation
Emulation
Simulation conduite par trace
Simulation à événements discrets
Simulation Continue
Le système simulé est constitué d’un ensemble d’entités transitant dans un réseau au cours du temps Suite des événements suivis par le changement d’état global et qui sont traités par le Scheduler Chaque événement est lié à une durée de temps connu à son commencement qui défini son temps d’exécution réel mais ne signifie pas son délai de traitement dans le SchedulerA chaque événement, on associe un Handler qui est responsable à son exécution
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Introduction :• IPv6• Simulation à événements discrets• NS-3
10Année universitaire 2007/2008
NS-3 est un simulateur à événements discrets qui cible la recherche et l’utilisation éducative. Il offre les fonctionnalités suivantes :
• Construction des réseaux virtuels (nœuds, canaux applications,…) et le support d’ordonnancement des événements, la génération des topologies,…
• Un support pour l’émulation des réseaux.
• Un support pour une simulation distribuée.
• Animation de la simulation des réseaux.
• Traçage, suivi et statistiques sur les simulations.
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Introduction :• IPv6• Simulation à événements discrets• NS-3
11Année universitaire 2007/2008
Architecture d’un nœud dans NS-3
Support des deux piles protocolaires IPv4 et IPv6
Plusieurs applications peuvent coexister au même temps sur le même nœud.
Des entêtes sont ajoutés au paquet à chaque niveau protocolaire
Les nœuds sont connectés par les objets« Channel »
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Problématique :
Neighbour Discovery dans NS-3
12Année universitaire 2007/2008
Modéliser le protocole de découverte des voisins Neighbour Discovery par l’ajout des extensions au simulateur NS-3 au niveau des couches réseau, interface et application afin de mettre en œuvre la configuration automatique des machines.
Définir les messages de configuration Définir les algorithmes des traitements des messages Définir les techniques de routages associées Définir une application de test de configuration
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Analyse des besoins :• Besoins fonctionnels et non fonctionnels• Modèle et cas d’utilisations
13Année universitaire 2007/2008
Besoins fonctionnels :
Définir des topologies réseaux qui supportent simultanément IPv4 et IPv6.
Configurer les interfaces des routeurs afin de spécifier les paramètres d’envoi des RA.
Le processus de découverte des voisins va dépondre de cette configuration.
Générer des fichiers de trace et des statistiques.
Besoins non fonctionnels
Fiabilité et robustesse.
Souplesse et flexibilité.
Résistance au facteur d’échelle.
Conception orientée objet.
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Analyse des besoins :• Besoins fonctionnels et non fonctionnels• Modèle et cas d’utilisations
14Année universitaire 2007/2008
Vue globale de NS-3
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Analyse des besoins :• Besoins fonctionnels et non fonctionnels• Modèle et cas d’utilisations
15Année universitaire 2007/2008
Spécification des détails fonctionnels du « Neighbour Discovery »
Application
Transport
Réseau
NetDevice
Inte
rfac
es
Canal de transmission
Les acteurs de notre modèle sont situés dans plusieurs niveaux protocolaires.
Mise en œuvre des techniques utilisées dans le protocole IPv6.
Emulation par construction réelle et encapsulation des en-têtes des messages de configuration.
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Analyse des besoins :• Besoins fonctionnels et non fonctionnels• Modèle et cas d’utilisations
16Année universitaire 2007/2008
Spécification des détails fonctionnels du « Neighbour Discovery »
Application
Transport
Réseau
NetDevice
Inte
rfac
es
Canal de transmission
1 2
préfixe adresse routeur
p1 a1 A
préfixe adresse routeur
p2 a2 B
p1 p2
Gérer les adresses
Conserver des paramètres réseau
Assurer l’envoi du paquet au NetDevice
interface
Configuration des adresses globales
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Analyse des besoins :• Besoins fonctionnels et non fonctionnels• Modèle et cas d’utilisations
17Année universitaire 2007/2008
Spécification des détails fonctionnels du « Neighbour Discovery »
Application
Transport
Réseau
NetDevice
Inte
rfac
es
Canal de transmission
Résolution des adresses MAC
Paquet en attenteChercher une entrée dans la cache Pas d’entrée !
NS NA
Mise à jour de la cache
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Analyse des besoins :• Besoins fonctionnels et non fonctionnels• Modèle et cas d’utilisations
18Année universitaire 2007/2008
Spécification des détails fonctionnels du « Neighbour Discovery »
Application
Transport
Réseau
NetDevice
Inte
rfac
es
Canal de transmission
Gérer les interfaces
Gérer les préfixes
Gérer les routes
Transférer le paquet à une interface
Couche réseauRA
RARA
Destination Préfixe Interface
@r1 p1 1
Sauvegarder le préfixe et lancer un timer
Validité du préfixe expirée !
Suppression du préfixe, de l’adresse et de la route correspondante
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Analyse des besoins :• Besoins fonctionnels et non fonctionnels• Modèle et cas d’utilisations
19Année universitaire 2007/2008
Spécification des détails fonctionnels du « Neighbour Discovery »
Application
Transport
Réseau
NetDevice
Inte
rfac
es
Canal de transmission
Construire des messages ICMP
Traiter des messages ICMP
Configuration et mise à jour
Couche transport
Couche réseau
<extends>
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Analyse des besoins :• Besoins fonctionnels et non fonctionnels• Modèle et cas d’utilisations
20Année universitaire 2007/2008
Spécification des détails fonctionnels du « Neighbour Discovery »
Application
Transport
Réseau
NetDevice
Inte
rfac
es
Canal de transmission
Lancer et arrêter la simulation
Configurer les interfaces des routeurs
Préciser les options du traçage
Couche application
Modélisation du démon radvd au niveau de chaque interface : fréquence d’envoi des RA Options encapsulées dans les messages L’état de l’interface (active ou pas) Nombre de préfixes à envoyer Les paramètres de configuration d’adresse globale…
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
21Année universitaire 2007/2008
Conception:• Vue d’ensemble• Conception détaillée
Entités situées à plusieurs niveaux protocolaires
Mettre au point des interfaces capables d’accepter des messages de configuration
Emulation et traitement hiérarchique des paquets
22Année universitaire 2007/2008
Application
Transport
Réseau
NetDevice
Inte
rfac
es
Canal de transmission
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Conception:• Vue d’ensemble• Conception détaillée
NdiscIpv6Interface
Ipv6Interface
List<InterfaceAddress >NetDevice
m_addressListm_netDevice
NdiscCache
23Année universitaire 2007/2008
Application
Transport
Réseau
NetDevice
Inte
rfac
es
Canal de transmission
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Conception:• Vue d’ensemble• Conception détaillée
Ipv6L3Protocol
m_routes
List<pair <Ipv6Address, Ipv6Prefix>>
List<Ipv6Interface>
Ipv6StaticRouting List<Ipv6Route>
m_prefixList
m_interfaceList
24Année universitaire 2007/2008
Application
Transport
Réseau
NetDevice
Inte
rfac
es
Canal de transmission
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Conception:• Vue d’ensemble• Conception détaillée
Icmpv6L4Protocol
Header
Icmpv6Header
Ipv6L4Protocol
Icmpv6NS Icmpv6NA Icmpv6RS Icmpv6RA Icmpv6OptionHeader
25Année universitaire 2007/2008
Application
Transport
Réseau
NetDevice
Inte
rfac
es
Canal de transmission
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
Conception:• Vue d’ensemble• Conception détaillée
radvd
radvdHelper
List< InterfaceConfig >m_interfaces
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Réalisation et Scénarios de test6. Publication7. Conclusion et perspectives
26Année universitaire 2007/2008
Réalisation et Scénarios de test :• Routeurs uni-interfaces• Routeurs multi-interfaces
Plan de test :
Envoi et réception des messages de configuration en unicast Envoi et réception des messages de configuration en multicast Calcul et ajout d’une adresse globale à chaque réception d’un préfixe Mise à jour de la cache à chaque réception d’une adresse MAC Ajout des routes à la tables de routage Gestion des temporisateurs des préfixes sauvegardés Suppression d’une adresse, d’une route et d’un préfixe suite à l’expiration du temporisateur de ce dernier Gestion des préfixes au niveau des routeurs multi-interfaces
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Réalisation et Scénarios de test6. Publication7. Conclusion et perspectives
27Année universitaire 2007/2008
Réalisation et Scénarios de test :• Routeurs uni-interfaces• Routeurs multi-interfaces
Scénario 1 : Envoi non périodique en unicast des RS et RA
Configuration d’une adresse globale Ajout de l’adresse MAC du routeur à la cache de la machine Ajout de l’adresse MAC de la machine à la cache du routeur Ajout d’une route vers le routeur Mise à jour du MTU au niveau de l’interface
Table de routage (Host)
Destination NextHop Interface
:: fe80 : :0aff :00ff :fe00 :0001 1
::1 :: 0
2001:1:: :: 1
MAC 0a :ff :00 :00 :00 :01Préfixe 2001 :1 : :/64 MAC 0a :ff :00 :00 :00 :02
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Réalisation et Scénarios de test6. Publication7. Conclusion et perspectives
28Année universitaire 2007/2008
Réalisation et Scénarios de test :• Routeurs uni-interfaces• Routeurs multi-interfaces
Scénario 2 : Envoi périodique en multicast des RA et des RS
Table de routage (Host1/ Host2)
Destination NextHop Interface
:: fe80 : :0aff :00ff :fe00 :0001 1
::1 :: 0
fe80:: :: 1
2001:1:: :: 1
Configuration des adresses globales Ajout de l’adresse MAC du routeur aux caches des machines Ajout des adresses MAC des machines à la cache du routeur Ajout des routes vers le routeur Mise à jour du MTU au niveau des interfaces
MAC 0a :ff :00 :00 :00 :01Préfixe 2001 :1 : :/64
MAC 0a :ff :00 :00 :00 :02 MAC 0a :ff :00 :00 :00 :03
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Réalisation et Scénarios de test6. Publication7. Conclusion et perspectives
29Année universitaire 2007/2008
Réalisation et Scénarios de test :• Routeurs uni-interfaces• Routeurs multi-interfaces
Scénario 3 : Envoi périodique en multicast des RA et des RS
Table de routage (Host1)Destination NextHop Interface
:: fe80 : :0aff :00ff :fe00 :0001 1
::1 :: 0
fe80:: :: 1
2001:1:: :: 1
2001:3:: :: 1
Configuration des adresses globales Ajout de l’adresse MAC des routeurs aux caches des machines Ajout des adresses MAC des machines aux caches des routeurs Ajout des routes vers le routeur Mise à jour du MTU au niveau des interfaces
MAC 0a :ff :00 :00 :00 :01MAC 0a :ff :00 :00 :00 :03
MAC 0a :ff :00 :00 :00 :02MAC 0a :ff :00 :00 :00 :04
2001 :1 : :/64
2001 :2: :/64
2001 :3 : :/64
2001 :4 : :/64
1. Introduction2. Problématique3. Analyse des besoins4. Conception5. Scénarios de test6. Publication7. Conclusion et perspectives
30Année universitaire 2007/2008
Conclusion et perspectives :
Etudier le protocole IPv6
Etude de plate forme NS-3 (Code source pas facile à comprendre)
Modélisation et Implémentation du protocole de découverte des voisins Envoi et Traitement des messages de configuration Paramétrage des interfaces en fonction des informations reçues
Etendre le code du simulateur par l’ajout des algorithmes de routage au sein des backbones de routeurs pour étaler l’utilisation de NS-3 à des réseaux à grandes échelles
Soumission d’un papier au conférence WNS2 prévu en Octobre 2008 à Grèce
31Année universitaire 2007/2008