Vous êtes sur la page 1sur 21

École nationale supérieur d’informatique

et d’analyse des systèmes

Rapport du Projet

Compte Rendu des TPs IPv6 et La


Réalisation d’un Tunnel IPv4 to IPv6 sous
GNS3

Réalisé par : Encadré par :


BELCAID Mohammed Dr. kobbane Abdellatif
TARFAS Nouhe

Année universitaire 2018 - 2019


Chapitre 1

TP 1

1.0.1 Objectif

Le but de ce TP est de prendre en main les protocoles de gestion de réseau : IPv6et ICMPv6, puis
comprendre le principe d’auto-configuration dans IPv6. On étudiera surtout les paquets ICMPv6 avec
leurs options suivant leur utilité.

1.0.2 Pourquoi IPv6 ?

Les adresses IPv4 sont codées sur 32 bits, autrement dit 4 octets dont les valeur soscillent entre
0 et 255. Cela nous fait 232= 2564= 4 294 967 296 adresses possibles théoriques. Théorique dans
le sens que ce nombre représente pratiquement tous les addresses IPv4 possibles sauf qu’il faut bien
noter que chaque adresse IP ne corresond pas forcément à une machine, tout simplement car il y a les
adresses Broadcasts et les adresses Réseaux qui, elles, ne définissent pas une machine. Au par avant,
Ce nombreparaissait enorme vue que Internet a etait destinée qu’aux scientifiques, et les gens n’avait
pas pensé que celle-là aura un essort tel que nous l’avons connu aujourd’hui, du coup ils se disent
qu’il va falloir définir des tranches du réseaux pour éviter qu’onse marge dessus d’ou la naissance des
classes.

2
CHAPITRE 1. TP 1

Figure 1 : Classes Réseaux


Au début des années 90, les classes se commencent à se tarir, notamment la classe B.On passe
alors en classeless Inter-Domain Routing (CIDR). On abandonne les claseset on passe par une partie
réseau en fonction d’un masque d’un masque de sous-réseaux. Même en ayant limité le gaspillage
des addresses IP en adoptant la dernière technique (CIDR), celles là commencent a s’épuiser. Le pool
d’adresses IP est géré parl’IANA (Internet Assigned Numbers Authority) et par 5 autorités Internet
régionales(RIR). Le graphe suivant montre la disponibilité des adresses IPv4 par l’IANA et lesRIR.
En 2011, l’APNIC, l’un des RIR de la région Asie-Pacifique, a épuisé presquetoutes les adresses IPv4
y attribuées.
Plusieurs moyens ont été implémentés afin de ralentir l’attribution des adresses IP,parmis eux on
peut citer :
— Les réseaux privés non routables sur internet
— L’utilisation des NAT (une seule adresse publique routable sur internet)
— L’allocation dynamique d’addresses IP (DHCP ce qui fait moin d’adresses IPfixes)

Ces téchniques sont fiables et font en quelque sorte répondre au besoin actuel des utili-sateurs
d’internet, mais en réalité elles restent fragiles et non éfficasses devant la crois-sance exponentielle
en terme de connectivité (plus en plus des appareils connectéeschaque année) D’ou l’apparition
duIPv6en tant qu’un nouveau protocole internetpour remédier essentiellement aux problèmes liés
à son antécedent l’IPv4.
Les adresses IPv6 se codent sur 128 bits soit 16 octets. On a donc 2128= 34x1037.La terre a
une surface de 510 300 000 km2, soit 5.1x1020mm2. Cela représente donc 667 millions de milliards
d’adresses IPv6 possible pour chaque millimètre carré de lasurface de la terre. Une question : le but
est-il juste d’en avoir plus ?
IPv6 a apporté beaucoup des améliorations sur plusieures niveaux :
— Implémentation de base de IPsec (Internet Protocol Security) permet de luttercontre les attaques
MIM (Man in the middle).
— Implémentation de NDP (Neighbor Discovery Protocol) qui fournit des servicessimilaires à ARP,
ICMP Router Discovery et Router Redirect et une version desecurisée( SEND : Secure Neighbor Dis-
covery Protocol) Rend plus compliquél’ARP Poisonning.
— En IPv6, c’est la machine émettrice qui fractionne les packets et non les rou-teurs en fonction ds
MTU. Le MTU minimal autorisé est d’ailleurs passé à1280 octets(face à 68 pour l’IPv4).
— Plus de vérification de l’intégrité des paquets lors du transit, on laisse TCP ouUDP s’en charge.
— Avec NDP, on connait mieux son réseau et gagne en performance lors de re-quêtes multicast et
anycast.
— Lorsqu’on change de réseau, passant par exemple d’un réseau 3G à du Wi-Fi,on peut conserver sa
"home address" ce qui évite le routage triangulaire.

1.0.3 Différence entre IPv4 et IPv6

Les addresses IPv6 se distinguent de celles IPv4 essentiellement sur deux niveaux :
Nombres d’adresses :
En IPV6, les adresses ne seront plus codées sur 32 bits mais sur 128 bits. On passe donc de 4,3 mil-
liards d’adresses utilisables, à 2128adresses utilisables.
Représentation : IPV4 regroupe son adresse de 32 bits en groupes de 8 bits. Ces groupes de 8 bits
(11000000 10101000 00000001 01000001) sont ensuite convertis endécimal puis sont séparés par un

Septembre 2018 3 ENSIAS


CHAPITRE 1. TP 1

point (192.168.1.65).

IPV6 étant composée de 128 bits, est découpée en 8 groupes de 16 bits (0101111100000110101101010000000
1000100111000010 1010000100000000 000000000000000000000100000000000 0010000000001010
0011111111110111). Ces groupes sont ensuite convertis en hexadécimal puis sont séparés par un
deux points(5f06 :b500 :89c2 :a100 :0000 :0800 :200a :3ff7).

1.0.4 Comment sont construites les adresses IPv6 ?

Le grand nombre d’adresse IPv6 a permis de hiérarchiser les adresses pour permettrede plus
grands agrégats et une réduction de la taille des tables de routage des routeurs.Voici le schéma d’une
adresse IPv6 unicast global :Chaque partie est réservée à un usage précis. Il est à noter que la partie
publique de ’adresse peut être encore amenée à certaines modifications. La partie privée quant àelle
gardera définitivement cette structure.
—Le préfixe global de routage : est le préfixe réseau assigné à un site.
—L’ID Site : est la partie réservée aux sites pour permettre de hiérarchiser leréseau en créant d’éven-
tuels sous-réseaux.
—Interface ID : est la partie permettant d’identifier une interface sur un lien.

Figure 2 : Architecture d’une addresse IPv6

1.0.5 A quoi sert /longueur de préfixe ?

Le préfixe d’une addresse réseau IPv6 permet d’identifier le nombre de bits consacréaux addresses
IPv6 de type "Globl Unicast"que peut contenir ce réseau.

1.0.6 ICMPv6

L’Internet Protocol, version 6 (IPv6) est une nouvelle version d’IP. IPv6 utilise leprotocole ICMP
comme défini pour IPv4, avec quelques changements. Le protocole résultant est appelé ICMPv6.
ICMPv6 est un protocole générique ; par exemple, il est utilisé pour rapporter deserreurs trouvées

Septembre 2018 4 ENSIAS


CHAPITRE 1. TP 1

dans le traitement de paquets, effectuer des diagnostics, effectuer une découverte de voisinage, et
rapporter l’appartenance à un multicast. Pour cette raison, les messages ICMPv6 sont catégorisés en
deux classes : error messages etinformation messages.
Les datagrammes ICMP sont transportés à l’intérieur de datagrammes IPv6 danslequel un en-tête
d’extension peut aussi être présent. Un message ICMP est identifiépar sa valeur 58 (0x3A) positionnée
dans le champ Next Header de l’en-tête IPv6.

1.0.7 Quelle sont les nouveaux protocoles utilisés par IPv6 ?

Le protocole IPv6 implémente l’utilisation d’autres protocoles pour des raisons desécurité et
d’amélioration des performences comme il est déja mentionné dans la première partie de ce rap-
port ; on peut citer par exemple :
— Implémentation de base deIPsec(Internet Protocol Security) qui permet delutter contre les attaques
MIM (Man in the middle).
— implémentation deNDP(Neighbor Discovery Protocol) qui fournit des servi-cessimilaires à ARP,
ICMP Router Discovery et Router Redirect et une versiondesecurisée( SEND : Secure Neighbor Dis-
covery Protocol) Rend plus compli-quél’ARP Poisonning.

1.0.8 Manipulation Pratique

Tout au long du reste de ce travail et pour toute tache de test et de manipulation on utilisera le
système d’exploitation Ubuntu Server qui est une distribution GNU/Linux.

1.0.9 Test de l’adressage IPv6 sur la machine

on utilisant la comande ifconfig-aon peut observer dans l’output du terminalque la machine pos-
sède deux adresses IPv6 ; une adresse locale et autre globale.

Septembre 2018 5 ENSIAS


CHAPITRE 1. TP 1

Figure 3 : Configuration réseau

1.0.10 Vérification de IPv6 comme module de noyau Linux

Les distributions contemporaines de Linux comportent déjà un noyau prêt pourIPv6, les capa-
cités IPv6 sont en général compilées dans un module, mais il est possible que ce module ne soit
pas chargé automatiquement au démarrage. Afin de vérifier sile module IPv6 est chargé on utilise la
commande «dmesg |grep IPv6» et pour charger ces modules on utilise la commande «modprobe ipv6»

Figure 4 : Vérification de IPv6 comme module de noyau Linux

1.0.11 Visualisation et analyse des adresses IPv6 d’interfaces

Aprés avoir exécuter la commande ifconfig on remarque que la machine possèdeen, plus de son
addresse IPv4, une addresse IPv6 (Link Local) ; qui commence par FE80 c’est une addresse attribué
automatiquement à la machine et qui n’est pasroutable vers des réseaux exterieurs, elle sert unique-
ment à la communication locale.cette addresse est construite de la manière suivante :

Figure 5 : Visualisation et analyse des adresses IPv6 d’interfaces


Une interface Local Loopback est aussi créée qui possède l’addresse IPv6 : :1/128 - Test de la
connectivité à l’aide de la comande ping6 on peut utiliser la commande «ping6 –n ff02 :
:1

Septembre 2018 6 ENSIAS


CHAPITRE 1. TP 1

Figure 6 : Test de la connectivité

1.0.12 Test des commandes usuelles d’administration réseau v6

La commande netstat permet d’afficher les statistiques sur les interfaces réseau ac-tives. C’est
utile pour voir les paquets perdus, les engorgements :

Figure 6 : Test des commandes usuelles d’administration réseau v6

1.0.13 Configuration d’une adresse globale manuellement

Figure 7 : Configuration d’une adresse globale manuellement

Septembre 2018 7 ENSIAS


CHAPITRE 1. TP 1

1.0.14 Test de la connectivité avec un hote voisin

Afin de réaliser cette étape on a créér une nouvelle Machine Virtuelle et en a configurél’inter-
faceeth1avec l’addresse IPv62001 : :2/64 puis on a vérifier la connectivitéentre celle-ci et l’autre
interface eth0 ayant l’addresse IPv62001 : :1/64 voilà en ce qui suit la simulation dans le terminal :

Figure 8 : Test de la connectivité avec un hote voisin

1.0.15 Test de la connectivité avec ff02 : : 1 et ff02 : : 2

Si on éxécute la commande suivante :ping6 -I eth0 ff02 : :1 on aura réponse detoutes les interfaces
du réseaux ayant une addresse IPv6. Ce résultat est vrai semblable vue que ff02 : :1 est une adresses
de multicast prédéfinie et qui désigne toutes lesnœuds du lien. de meme ff02 : :2 désigne tous les
routeurs du lien.

Figure 9 : Test de la connectivité avec ff02 : : 1 et ff02 : : 2

Septembre 2018 8 ENSIAS


CHAPITRE 1. TP 1

1.0.16 Test de la commande ping6 -I eth0 ip6-localhost

Figure 11 : Test de la commande ping6 -I eth0 ip6-localhost

1.0.17 Test de la connectivité avec les stations distantes

Figure 12 : Test de la connectivité avec les stations distantes

1.0.18 Analyse du ping6 par tcpdump

tcpdump est un outil de capture et d’analyse réseau. Il permet d’avoir une analyse endirect du ré-
seau ou d’enregistrer la capture dans un fichier afin de l’analyser pour plus tard. Il permet d’écrire des
filtres afin de sélectionner les paquets à capturer/analyser.Il est basé sur la libpcap pour la capture, ce
qui permet à ses sauvegardes d’être com-patible avec d’autres analyseurs réseaux, comme Wireshark
(anciennement Ethereal). Cette bibliothèque étant multiplateforme, tcpdump est lui aussi porté sur la
plupartdes architectures. C’est un outil indispensable à l’administration et au débugage d’applications
réseaux. Dans la demonstartion suivante, on a lancer la commande «ping6 2001 : :2» vers ladeuxième

Septembre 2018 9 ENSIAS


CHAPITRE 1. TP 1

machine virtuelle, suite à elle on a exécuté l’outil «tcpdump», le résultat est un ensemble des lignes,
chaque ligne représente une transmission d’un paquet IP Heure d’arrivée du paquet sur l’interface
réseau. Voici le détail d’une transmission : L’heure
le type de protocole (ici, ICMP)
l’IP source.ports ource > l 0 IPdestination.portd estinationles f lagsTCP
ack numéro : le numéro de séquence que l’on attend de la part de l’autre interlocu-teur à son prochain
envoie de paquets
win numéro : le numéro représente la taille de la fenêtre TCP
<des options> : les options TCP portées par le paquet, ici, on n’a que le timestamp

Figure 13 : Analyse du ping6 par tcpdump


1.0.19 Explication de transmission de packets ICMP

Ping s’appuie sur le protocole ICMP, permettant de diagnostiquer les conditions de transmission.
Il utilise ainsi deux types de messages du protocole (sur les 18 proposés par ICMP) :
Le type 0 correspondant à une commande "echo request", émis par la machine source
Le type 8 correspondant à une commande "echo reply", émis par la machine distante. A des intervalles
réguliers (par défaut chaque seconde), la machine source (celle surlaquelle la commande ping est
exécutée) envoie une commande "echo request" à lamachine cible. Dès réception du paquet "echo
reply", la machine source affiche uneligne contenant un certain nombre d’informations. En cas de non
réception de la réponse, une ligne indiquant "délai dépassé" s’affichera. On peut voir la simulation de
ce processus dans la figure précédente (Encadré enrouge).

Septembre 2018 10 ENSIAS


CHAPITRE 1. TP 1

1.0.20 Test de la commande «ping6 -I eth0 ff02 : :1»

Si on éxécute la commande suivante :ping6 -I eth0 ff02 : :1on aura réponse detoutes les interfaces
du réseaux ayant une addresse IPv6. Ce résultat est vraisemblablevue queff02 : :1est une adresses de
multicast prédéfinie et qui désigne toutes lesnœuds du lien. de memeff02 : :2désigne tous les routeurs
du lien.

Figure 14 : Test de la commande «ping6 -I eth0 ff02 : :1»

1.0.21 Table de routage IPv6

Figure 15 : Table de routage IPv6

1.0.22 L’ajout d’une route IPv6

Pour ajouter une route IPv6, la commande suivante est utilisée : ip -6 route add <réseauipv6>/<longueurdup
via <adresseipv6> [dev<périphérique>] ou bien : route -A inet6 add <réseauipv6>/<longueurdupréfixe>
gw <adresseipv6> [dev<périphérique>] Pour vérifier s’il existe des routes IPv6 configurées on doit
lancer la commande suivante :

Figure 16 : L’ajout d’une route IPv6

Septembre 2018 11 ENSIAS


CHAPITRE 1. TP 1

1.0.23 L’ajout d’une route IPv6 traversant une passrelle

Figure 17 : L’ajout d’une route IPv6 traversant une passrelle

1.0.24 Affichage de voisinage

Figure 18 : Affichage de voisinage

1.0.25 Ajouter/déduire manuellement une entrée dans la table de voisi-


nage

Figure 19 : Ajouter manuellement une entrée dans la table de voisinage

Septembre 2018 12 ENSIAS


CHAPITRE 1. TP 1

Figure 20 : Déduire manuellement une entrée dans la table de voisinage

1.0.26 Table de routage

Figure 21 : Table de routage

1.0.27 Observation de paquets IPv6

Dans cette partie on a utilisé deux machines directement liée et le logiciel wireshark qui est un
analyseur de paquets libre et gratuit. Il est utilisé dans le dépannage et l’analyse deréseaux informa-
tiques, le développement de protocoles, l’éducation et la rétro-ingénierie.

Figure 22 : Schema de TP

Figure 23 : Test de la connectivité

Septembre 2018 13 ENSIAS


CHAPITRE 1. TP 1

Figure 24 : tcpdump

1.0.28 Inspecter les différents identificateurs du flux

•Version•header length•source IP•destination IP•Differentiated Services•UpperLayer Protocol•Version•header


length•source IP•destination IP•DifferentiatedServices•Upper Layer Protocol•Identification•Time to
live•Header checksum.

1.0.29 Applications de Source Routing

Lors de l’envoi d’un paquet sur Internet la route est d’habitude choisie à la volée par les routeurs
traitant le paquet. Dans le cas du source routing, à l’inverse, les étapes suivies parle paquet jusqu’à
sa destination sont fixées par l’expéditeur.Dans le cas d’un source routing strict, la route devra définir
tout les routeurs entre la sourceet la destination. Cette méthode est très peu utilisée, car très lourde.
Le source routing relatif, quant à lui, consiste à fixer certaines étapes, sans pour autant définir la route
entière. Un source routing relatif prendra cette forme :
- Expéditeur : A
- Destinataire : B
- Via : C
- L’IP source routing a diverses applications :
- Cartographie du réseau : Traceroute repose sur le Source Routing.
- Diagnostique réseau : Le source routing permet de tester un lien entre deux machines depuis une
troisieme machine distante.
- Optimisation de l’utilisation du réseau : Il peut parfois être judicieux de router une partie du trafic
non urgent à travers un lien de moins bonne qualité, de facon à dégager de la bandepassante sur un
lien de meilleure qualité pour le reste du traffic.
- Hacking / Piratage : Le source routing peut permettre à un pirate d’accéder à un réseauprivé en
utilisant une machine connectée à la fois à internet et au réseau interne commepasserelle.

1.0.30 Application de fragmentation des paquets

Lors de l’envoi d’un paquet via internet, il se transmet d’un ordinateur (ou routeur) à unautre afin
d’atteindre sa destination. C’est ainsi qu’un système de commutation de paquetsfonctionne. Ce n’est

Septembre 2018 14 ENSIAS


CHAPITRE 1. TP 1

pas comme s’il y avait un câble directement connecté entre l’adresse IPsource et de destination la
dans la plupart des cas.Chaque ordinateur (ou routeur) traversé impose une taille maximale de paquet
appelée MTU. Et si un routeur reçoit un paquet plus grand que son MTU, il a le choix de :
• fragmenter le paquet au niveau de la couche IP et le transférer.
• abandonner ce paquet.
Il y a des utilisation malicieuses qui utilise cette Technique de fragmentation, parmis les-quelles
on peut citer l’attaquePing de la mort, Le principe du ping de la mort consistetout simplement à
fragmenter un Datagram IP et d’en créer un autre datagramme IP dontla taille totale excède la taille
maximum autorisée (65536 octets). Un tel paquet envoyé à un système possédant une pile TCP/IP
vulnérable, provoquera un plantage (attaque DoS).

Septembre 2018 15 ENSIAS


Chapitre 2

TP 2

2.0.1 Objectif

L’objectif de cet atelier est de comprendre le principe d’auto-configuration dans IPv6, et comment
ce mécanisme permet l’attribution d’adresse par découverte des voisins ainsi quede mettre en oeuvre
les différents éléments nécessaires à la mobilité IPv6 et à la cohabitation entre IPv4 et IPv6.

2.0.2 Autoconfiguration sans état avec un routeur

Dans cette partie on a utilisé deux machines reliées entre-elles. Une machine qui joue le rôle du
routeur (et est connecté au LAN) et l’autre du client.

2.0.3 Configuration d’un routeur IPv6

l’adresse obtenue est 2001 :470 :1F01 :190x : :/64 . Cette addresse permettra par la suite de
configurer automatiquement les postes du réseau local en IPv6 en utilisant de démon radvd.

Figure 25 : Schéma global

16
CHAPITRE 2. TP 2

2.0.4 Activer les options de routage

L’activation et la désactivation de l’IP forwarding, en IPv4 comme en IPv6, se gère dans les fi-
chiers /proc. Il s’agit de "/proc/sys/net/ipv4/ip f orward” pour l’IPv4 et "/proc/sys/net/ipv6/conf/all/forwarding
pour IPv6. Si l’on fait un "cat" sur ces fichiers, nous verrons qu’ils sont par défaut à 0, pour activer
l’IP forwarding de façon temporaire, il suffit de les mettre à 1. Aussi on met le contenu du fichier
/proc/sys/net/ipv6/conf/eth0/acceptr edirects à 1 pour la redirection des messages ICMP pour faire
céla on éxécute les commandes suivantes en terminal :

Figure 26 : Activer les options de routage

2.0.5 Ajout de l’adresse /64 a l’interface eth0

Figure 27 : Ajout de l’adresse /64 a l’interface eth0

Septembre 2018 17 ENSIAS


CHAPITRE 2. TP 2

2.0.6 Configurer le démon radvd

radvd (Router Advertisement Daemon, démon d’annonce de routeurs) est un logiciel Open
Source qui implémente les annonces lien-local des adresses de routeurs IPv6 et des préfixes de réseau
IPv6 au moyen du protocole Neighbor Discovery Protocol (NDP) conformément à la RFC 24613.
Le démon d’annonce de routeurs est utilisé par les administrateurs système dans le cadre de l’auto-
configuration sans état des hôtes des réseaux Internet Protocol version 6. – Wikipedia
2.0.7 Installation et configuration

Figure 28 : Installation de radvd

Figure 29 : Configuration de radvd

Septembre 2018 18 ENSIAS


CHAPITRE 2. TP 2

Figure 30 : Redémmarage de service radvd

2.0.8 Configuration des machines clients du réseau

Figure 31 : Configuration des machines clients du réseau

2.0.9 Observation du traffic a l’aide du tcpdump

Aprés avoir configuré la machine VM2 en tant que client On redémarré celle-ci et on lancé tcp-
dump afin d’observer le traffic entre les deux machines en d’autre terme le processus d’obtention
d’une addresse IPv6 de la part du routeur (Machine VM1). Voilà en ce qui suit le résultat du traffic.

Septembre 2018 19 ENSIAS


CHAPITRE 2. TP 2

Figure 32 : Observation du traffic a l’aide du tcpdump

2.0.10 Vérification de l’adressage au niveau du client

Si on exécute la commande «ifconfig» au niveau de la machine cliente (VM2) on remarque que


celle-ci à obtenu automatiquement une addresse IPv6 qu’on a déja vu à l’aide de tcpdump.

Figure 33 : Vérification de l’adressage au niveau du client


Explication de la démarche découverte des voisins La démarche de découverte se figure dans la
capture de suivie faite par wireshark ou tcpdump ; Avant de pouvoir émettre un paquet ICMPv6 de
demande d’écho, l’émetteur a besoin de connaître l’adresse physique de l’équipement destinataire. Il
utilise le protocole de découverte des voisins et émet une trame desollicitation d’un voisin. Dans l’en-
tête IPv6, l’adresse de la source est l’adresse globale de l’interface d’émission. On aurait pu penser
que l’émetteur utilisait l’adresse locale au lien comme adresse de la source, l’adresse de destination
est l’adresse de multicast sollicité associée à l’adresse recherchée et l’adresse Ethernet de destination
est l’adresse associée.
La machine VM1 (le routeur), qui écoute sur tous les groupes multicast sollicité associés à ses
adresses, reçoit le message de sollicitation de voisin et répond. L’adresse source utilisée est locale
au lien. Le bit R indique que l’équipement qui répond a une fonction de routeur.L’émetteur envoie

Septembre 2018 20 ENSIAS


CHAPITRE 2. TP 2

un message ICMPv6 Demande d’écho. Le destinataire acquitte en retournant un message ICMPv6


Réponse d’écho. Il n’est pasnécessaire de relancer une phase de résolution d’adresse puisque la pré-
cédente a permis de remplir le cache. Ces échanges ICMP Demande d’écho et Réponse d’écho conti-
nuent ensuite toutes les secondes. Si les échanges continuent assez longtemps, les deux machines
vérifieront périodiquement que le correspondant est toujours correct (il a pu tomber en panne ou être
remplacé avec changement d’adresse Ethernet) en utilisant le protocole NUD.

Septembre 2018 21 ENSIAS

Vous aimerez peut-être aussi