TP IPv6

heatanklesΛογισμικό & κατασκευή λογ/κού

2 Ιουλ 2012 (πριν από 5 χρόνια και 2 μήνες)

317 εμφανίσεις

TP IPv6
Hakim Badis
IGM, Université de Paris-Est Marne la vallée
1- Contrôler si IPv6 est déjà chargé

Les distributions contemporaines de Linux comportent déjà un noyau prêt pour IPv6, les capacité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 si le module IPv6 est chargé :

#

dmesg |grep IPv6

Commenter le résultat

Jetez un coup d'œil dans votre système de fichiers /proc.

/proc/net/if_inet6
Commenter le résultat

2- Vérifier si IPV6 est compilé dans le kernel
#

grep CONFIG_IPV6 /boot/config-$(uname -r)
Commenter le résultat
Que doit-on faire si on veut démarrer le kernal san s IPV6
3- Contrôler la présence de la première ligne dans dmesg
#
dmesg |grep IPv6

IPv6 over IPv4 tunneling driver

eth0: no IPv6 routers present
Expliquer la ligne "eth0: no IPv6 routers present"

4- Visualiser et analyser les adresses IPv6 de l'interface réseau:

#
ifconfig

Expliquer la construction des adresses lien local des
interfaces eth0 et eth1. Quelle est l'adresse correspondante
au localhost.
5- Vérifier le fichier protocols et le commenter:

De nouveaux protocoles ont été définis avec IPv6. C'est le cas d'ICMPv6. Pour que notre IPv6
fonctionne il faut aussi l'incontournable protocole ICMPv6. Sans lui, pas de sollicitation ni découverte
des voisins et donc pas de résolution d'adresse (IPv6 -> Mac) possible, et bien sûr encore moins de
ping6 (echo-requet/echo-reply).

Il faut par conséquent vérifier si ces nouveaux pro tocoles et extensions sont bien mentionnés dans le
fichier services et notamment la ligne concernant ICMPv6.
#
vi /etc/protocols

Expliquer le résultat
6- Le fichier hosts:

Il n'est pas obligatoire de compléter le fichier hosts pour l'IPv6. D'ailleurs, la distribution Mandrake
ne renseigne nullement ce fichier, contrairement à la distribution Knoppix ou Debian. Toutefois dans
les manuels de référence, il est conseillé de le faire avec les valeurs ci-dessous.

La première ligne concerne l'adresse de loopback IPv4, et doit déjà être présente dans votre fichier.
N'y toucher pas si IPv4 fonctionne sur votre machine.

Rajoutez les six lignes suivantes (si elles n'existent pas) et éventuellement des lignes supplémentaires
pour la machine elle même ainsi que les machines distantes à joindre en prenant modèle sur la
huitième ligne.
127.0.0.1 localhost.localdomain localhost

::1 ip6-localhost ip6-loopback

fe00::0 ip6-localnet

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

ff02::3 ip6-allhosts

……
Si vous n'avez pas de DNS, ce qui est probablement le cas pour vos premiers essais, vous allez
apprécier par la suite d'appeler les machines par l eur nom plutôt que par leur adresse IPv6.
7- Tester la machine en local :

Là encore, il est possible de réaliser ces tests soit en mentionnant les adresses IPv6, soit en
mentionnant les noms de la machine locale.

La première commande consiste à tester avec l'adresse de boucle (loopback).
La seconde commande consiste à tester avec sa propre adresse IPv6.

La troisième et quatrième commande consiste à tester avec le nom de la machine IPv6 selon les
renseignements fournis au fichier hosts.

Par adresse:

#

ping6 ::1

Le même résultat peut être obtenu avec la commande:
#

ping6 -I eth0 @lien local de ta propre adresse


Par nom:

#
ping6 -I eth0 ip6-localhost

8- Analyse du ping6 par wireshark :

Lancez dans une console l'analyseur de réseau wires hark

Puis, dans une autre console, lancez le ping6 par la commande suivante (nous l'avons déjà vu):
#

ping6 -c 1 -I eth1 @lien local d’une machine distante

i) Pourquoi doit-on spécifier l’interface de sortie

ii) Expliquer le déroulement d'un ping6 par un sché ma bien
détaillé entre la source et la destination en préci sant le
type et le contenu des en-têtes Ethernet, IPV6 (les adresses
utilisées), options, ICMP6, etc., à partir de wires hark

iii) La même chose que (i) en utilisant la commande
#

ping6 -c 1 -s 2000 -I eth1 @lien local d’une machine distante


9- Ping6 et les adresses multicasts:

Expliquer et commenter le résultat de cette command e par un
schéma bien détaillé
#
ping6 -I eth0 ff02::1
Expliquer l’option DUP! qui apparait dans le résult at

Expliquer et commenter le résultat de cette command e par un
schéma bien détaillé
#
ping6 -I eth0 ff02::2

10- Ajouter une adresse globale manuellement: prefixe 2001::1/64 +
ident_interface et la tester par ping6:

#
ip -6 addr add 2001::1:ident_interface/64 dev eth1

ou
#
ifconfig eth1 inet6 add 2001::1:ident_interface/64

Tester les ping6 vers ces adresses
11- Regarder le contenu de la table de routage Ipv6 et le commenter

#
route -6

ou
#
route -A inet6

ou
#
ip -6 route show [dev <périphérique>]


Pour ajouter une route IPv6, la commande suivante est utilisée :
#
ip

-6 route add <réseauipv6>/<longueurdupréfixe> via
<adresseipv6> [dev <périphérique>]

ou
#
route -A inet6 add <réseauipv6>/<longueurdupréfixe> gw
<adresseipv6> [dev <périphérique>]
12- Afficher le voisinage

Avec la commande qui suit vous pouvez afficher les voisins IPv6 appris ou configurés
#
ip -6 neigh show [dev <périphérique>]

i) Lancer un ping6, afficher la table de voisinage et commenter.
Vérifier l'existence d'un temps d'expiration pour c haque entrée dans
la table de voisinage.
ii) Quels sont les états possibles d’une entrée dan s cette table
iii) Cette table remplace quelle table en IPv4
13- Ajouter et/ou détruire manuellement une entrée dans la table de voisinage

La commande suivante vous permet d'ajouter manuellement une entrée
#
ip -6 neigh add <adresseIPv6> lladdr <adressedelacouche-lien>
dev <périphérique>

La commande suivante vous permet d'effacer manuellement une entrée
#
ip -6 neigh del <adresseipv6> lladdr <adressedelacouche-lien>
dev <périphérique>

Rajouter une entrée qui n'existe pas et lancer un p ing6 vers
l'adresse IP lien local de cette machine. Vous remarquez quoi?

14- Les clients telnet et ssh
Tester les clients telnet et ssh en IPv6 entre deux machines.
N’oubliez pas d’installer un serveur telnet et de rajouter une
ligne dans le fichier de configuration pour supporter ipv6.
15- Configuration d'un routeur IPv6

￿ Vous pouvez obtenir auprès de votre fournisseur de tunnel Hurricane une
adresse 64 bits qui vous permettra de configurer automatiquement les postes de
votre réseau local en IPv6 en utilisant de démon ra dvd.

Les 64 bits fournis correspondront à la partie rése au de l'adresse, la partie hôte de
l'adresse sera fournie automatiquement au poste client grâce au service radvd.
Le démon radvd permet d'autoconfigurer toutes les i nterfaces du réseau avec un autre préfixe
(par exemple celui qui vous aura été fourni par vot re FAI ou celui que vous aurez choisi pour
vos tests) en utilisant un routeur IPv6 où le démon "radvd" ou "Router Advertisement demon"
est installé.
On suppose que le préfixe réseau obtenu est 2001:47 0:1F01:1908::/64
Pour la passerelle :
￿ Activer les options de routage
#
echo 1 >/proc/sys/net/ipv6/conf/all/forwarding
A quoi sert cette

commande

# echo 1 > /proc/sys/net/ipv6/conf/eth0/accept_redirects

A quoi sert cette

commande


￿ Ajout de l'adresse /64 à votre interface eth1
#
ip -6 addr add 2001:470:1F01:<mot-16-bits>:ID-Interface/64
dev eth1

Normalement votre poste/routeur a une nouvelle adresse IPv6.

￿ Configurer le démon radvd.
Ce démon doit être installé sur un des postes de vo tre réseau, celui qui servira plus tard de
passerelle IPv6. Si vous n'avez pas encore installé "radvd" sur votre poste qui fera office de
routeur, il faut faire "apt-get install radvd".
Créez ou modifiez le fichier /etc/radvd.conf en y m ettant
l'adresse 64 bits qui vous a été fournie
(A noter : le fichier radvd.conf
n'est pas créé lors de l'installation du paquet rad vd):
interface eth0 {
AdvSendAdvert on;
MaxRtrAdvInterval 10;
prefix 2001:470:1F01:<mot-16-bits>::/64 {
AdvOnLink on;
AdvAutonomous on;
AdvRouterAddr on;
};
};
Commenter chaque ligne de ce fichier
Lancer sur les postes clients l'analyseur de réseau wireshark
Relancer le demon radvd:
#
/etc/init.d/radvd start

Pour la configuration des autres postes du réseau :
#
echo 1 > /proc/sys/net/ipv6/conf/eth0/autoconf
A quoi sert cette

commande

#
echo 1 > /proc/sys/net/ipv6/conf/eth0/accept_ra
A quoi sert cette

commande

#
echo 1 > /proc/sys/net/ipv6/conf/eth0/accept_redirects
A quoi sert cette

commande

Il suffit maintenant de lancer la commande "dhclient eth1" sur cet autre poste pour récupérer
les nouveaux paramètres.
i) Expliquer le déroulement de l’auto-configuration par un
schéma bien détaillé entre la source et un poste cl ient en
précisant le type ainsi que le contenu des en-têtes Ethernet,
IPv6, options, ICMP6, etc. à partir de wireshark.
ii) Lancer la commande ifconfig et commenter
iii) Modifiez le fichier /etc/radvd.conf en y mettant
AdvRouterAddr off.
Quel est l’impact de cette option ?
iv) Positionner la périodicité des annonces à : min = 40s et
max =60s. La durée de vie d’une adresse à 20s. Expl iquer le
résultat (des capteurs sont nécessaires)