0% ont trouvé ce document utile (0 vote)
37 vues32 pages

Exercice

Le document est un guide détaillé sur la configuration et la vérification des solutions IPv6, comprenant des instructions sur l'activation du routage IPv6, la configuration de DNS, SLAAC, et DHCPv6. Il fournit des étapes précises pour configurer des adresses IPv6 sur des routeurs et des hôtes, ainsi que des vérifications de connectivité. Les sections incluent également des exemples de commandes pour faciliter la mise en œuvre des configurations nécessaires.

Transféré par

moukhtarousmanb
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
37 vues32 pages

Exercice

Le document est un guide détaillé sur la configuration et la vérification des solutions IPv6, comprenant des instructions sur l'activation du routage IPv6, la configuration de DNS, SLAAC, et DHCPv6. Il fournit des étapes précises pour configurer des adresses IPv6 sur des routeurs et des hôtes, ainsi que des vérifications de connectivité. Les sections incluent également des exemples de commandes pour faciliter la mise en œuvre des configurations nécessaires.

Transféré par

moukhtarousmanb
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Guide de solutions

des Exercices du banc


d’essai IPv6

Behou Brice ABBA| Olatunde AWOBULUYI | Musa Stephen HONLUE


TABLE DES MATIÈRES

Activer le routage IPv6 et configurer manuellement des adresses IPv6 2

Configurer et vérifier DNS pour IPv6 5

Configurer et vérifier SLAAC 6

Configurer et vérifier “Stateless” DHCPv6 9

Configurer et vérifier “stateful” DHCPv6 10

Vérifier la sélection d’adresse 14

Configurer et vérifier la délégation de préfixe IPv6 15

Configurer et vérifier des listes de contrôle d'accès de base sous IPv6 19

Configurer le routage intra-domaine OSPF 24

Configurer MP-BGPv4 pour échanger des préfixes IPv6 27

Configurer des tunnels manuels 28

1
1|Activer le routage IPv6 et configurer manuellement des
adresses IPv6

(a)Vérifiez que le routage IPv6 est activé sur le routeur, sinon, activez le.
● Un routeur dont le routage IPv6 est activé affiche une table de routage même vide. Pour voir la
table de routage, utiliser la commande :

#show ipv6 route

● Si vous obtenez un résultat de la commande ci-dessus c’est que le routage IPv6 est activé
● Pour activer le routage IPv6 utiliser la les commandes ci-dessous : (vérifiez avec la commande ci-
dessus)
● Par ailleurs, CEF(CISCO Express Forwarding) permet sur les routeurs CISCO d'accélérer le routage.

(config) # ipv6 unicast-routing


(config) # ipv6 cef

(b)Vérifiez que IPv6 est activé sur chaque hôte et serveur; Sinon, activez le.
● Les hôtes du banc d’essaie utilisent Linux et on peut utiliser la commande:

$ ifconfig

● Si IPv6 est activé, toutes interfaces connectées auront une Adresse Lien locale (LLA). Ci-dessous
un exemple de ce que vous pourriez avoir :

$ ifconfig

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,Multicast> mtu 1500


éther B8:E8:56:4a:ec:fe
inet6 fe80::bae8:56ff:fe4a:ecfe%en0 prefixlen 64 scopeid 0x4
***** LLA a été généré automatiquement, ainsi IPv6 est activé et actif ******

(c) Sans y configurer des adresses, activez IPv6 sur toutes les interfaces de votre routeur.
● Configurer une adresse IPv6 sur une interface active automatiquement IPv6 sur celle-ci. Pour
activer IPv6 sur une interface sans y configurer une adresse, utilisez la commande suivantes :

(config-if) # ipv6 enable

● Vérifiez à l’aide de cette commande

#show interface ipv6 <nom_interface>

● Ci-dessous un exemple de ce que vous pourriez avoir :

r01.mru1#show ipv6 interface vlan 14


Vlan14 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::CA9C:1DFF:FE6B:D023
***** un LLA a été généré automatiquement ******
No global unicast address is configured
*** ** aucune adresse a été configurée ******
2
Joined group address(es):
FF02::1
FF02::1:FF6B:D023

(d)Toujours sans configurer aucune adresse, testez la connectivité IPv6 à tous les autres périphériques
de votre pod (sur chaque lien).

● Lorsque IPv6 est activé sur une interface, elle génère automatiquement et s’assigne une adresse
Lien Locale (LLA). Pour “pinger” la LLA d'un routeur nous devons spécifier l'interface de sortie
(comme dans un ping étendu).

● Le format général d’un ping sur Cisco IOS est: ping {ipv6-address}

● Le système vous demandera de spécifier l'interface de sortie, puis appuyez sur Entrée

# ping fe80::6aa8:6dff:fe42:ba10
Output Interface: vlan14

● Depuis les hôtes, utiliser le nom de l’interface comme ZoneID

$ ping6 fe80::e6d3:f1ff:fe89:da83%eth1

(e) Configurez les adresses IPv6 sur vos périphériques en fonction du plan d'adressage fourni. (NE PAS
modifier les interfaces de maintenance - vlan99)
● Sur Cisco IOS la commande générale pour configurer une adresses est:

(config-if)#ipv6 address { ipv6-prefix/prefix-length }

● Par exemple l’interface G0/0 sur R01 sur le banc d’essaie de Maurice est:

(config-if)#ipv6 address 2001:db8:10:12::2/127

● Sur linux, pour configurer façon permanente une adresse IPv6 sur une interface, nous devons
modifier le fichier de configuration. Pour Ubuntu, il s’agit de :
“/etc/network/interfaces.d/eth1.ipv6”.

● Arrêter d'abord l'interface:

$ sudo ifdown <nom-interface>

● Dans notre cas :

$ sudo ifdown eth1

● Faire une copie du le fichier de configuration original à l’aide de la commande « cp ». Vous aurez
besoin des privilèges root.

$ Sudo cp <location-fichier-origine/nom> <nouvelle-location-fichier/nouveau-nom>

● Dans notre cas:

$ sudo cp /etc/network/interfaces.d/eth1.ipv6
/etc/network/interfaces.d/eth1.ipv6.orig

● Utiliser l'éditeur “nano” ou tout autre éditeur pour ouvrir le fichier « eth1.ipv6 » en mode édition.

$ Sudo nano <location-fichier-origine/nom>

3
● Dans notre cas, ouvrir et éditer le fichier « /etc/network/interfaces.d/eth1.ipv6 »

nano $ sudo /etc/network/interfaces.d/eth1.ipv6

● Modifier le contenu du fichier comme suit :

iface <nom d'interface> inet6 static


******* Tourner l'interface spécifiée en mode statique*******

adresse <adresse-ipv6>/<longueur du préfixe>


***** ** attribuer l’adresse IPv6 et une longueur de préfixe *******

******* assurer suffisamment d’espace avant la prochaine déclaration appuyez sur


Entrée 3 fois*******

● Voici un exemple du fichier de configuration


iface eth1 inet6 static


address 2001:db8:10:555::1/64

● Enregistrer le fichier en appuyant sur Ctrl + O puis ENTRER

● Quitter le fichier en appuyant sur Ctrl + X, puis ENTRER

● Enfin, réactiver l'interface avec la commande suivante en tant que root.


$ Sudo ifup <nom d'interface>

● Dans notre cas


$ sudo ifup eth1

(f) Configurer les routeurs par défaut appropriés sur chacun des hôtes et serveur.

i. Arrêter l'interface désirée comme expliqué dans la question (e) ci-dessus


ii. Ouvrir le fichier «/etc/network/interfaces.d/eth1.ipv6» en mode édition comme expliqué dans la
question (e) ci-dessus
iii. Spécifier le routeur par défaut en ajoutant la déclaration “gateway” comme suit

gateway <adresse-ipv6>
******* pour attribuer routeur IPv6 par défaut à une interface*******

● Pour spécifier par exemple “2001:DB8:10:555::2” comme passerelle on saisie:

gateway 2001:db8:10:555::2

● Enregistrer le fichier de configuration des interfaces et redémarrez l'interface comme indiqué


dans la question (e) ci-dessus

(g)Vérifiez que tous les équipements sont accessibles avec les nouvelles adresses configurées en la
section (e) ci-dessus.

4
● Depuis le routeur. Le format général de la commande ping sur IOS est :

Ping {adresse-ipv6}

# ping 2001:db8:10:555::2

Depuis les hôtes/Serveurs. Le format général de la commande ping pour un hôte IPv6 sur un système
ubuntu est
ping6 {adresse-ipv6|nom-hoôte}

$ ping6 2001:db8:10:555::2

2|Configurer et vérifier DNS pour IPv6

(a) Configurez les hôtes et le serveur pour utiliser le serveur comme serveur DNS.
● Les adresses IP du serveur DNS et la liste des noms de domaines sont configurées dans le fichier
« /etc/resolv.conf », comme suit :

nameserver <addresse IPv4 ou IPv6 du serveur DNS>


search <nom de domaine>

Exemple :

nameserver 2001:DB8:C001:10::2
search podX.local

(b) Depuis un hôte, vérifiez que le service DNS existe sur le serveur et qu’il est prêt à recevoir de requêtes
DNS.
Si le service DNS fonctionne sur un serveur, celui-ci écoute sur le port 53 pour IPv4 et IPv6. On peut
vérifier cela avec un telnet sur l’adresse IP du serveur DNS et le numéro de port. Si le service DNS
fonctionne sur le serveur distant, vous devriez avoir un message “connecté”.

telnet <IPv4 addresse du serveur DNS> 53


telnet <addresse IPv6 du serveur DNS> 53

Exemple:

$ telnet 2001:db8:c001:10::2 53
Trying 2001:db8:c001:10::2…
Connected to 2001:db8:c001:10::2.
Escape character is '^]'.

(c) Depuis un hôte, assurez-vous que le serveur peut résoudre les adresses IPv4 de l'autre hôte et du serveur
● Vous pouvez utiliser une de ces 3 commandes:

$ host <nom d'hôte>


$ dig a <nom de domaine complet><.>
$ nslookup <nom de domaine complet><.>
5
● Par exemple pour trouver l'adresse IP de H21 en utilisant la première approche nous aurons :

$ host h21
h21 has address 10.10.21.2

(d) Insérez des enregistrements AAAA pour les adresses IPv6 statiques des hôtes et du server dans le fichier
de zone direct du serveur. Ledit fichier de zone se trouve sur le serveur </etc/bind/db.podX>
● Dans un server DNS utilisant BIND, le format d’un enregistrement “AAAA” dans le fichier de zone
direct est :

<nom hôte> IN AAAA <adresse IPv6 de l'hôte>

● Par exemple :

h21 IN AAAA 2001:db8:c001:10::2

(e) Rechargez le service “Bind” pour s’assurer que les modifications du fichier de zone sont correctes et
ont été prises en compte (corriger les erreurs au besoin)
● Utilisez la commande “service” pour recharger “BIND”

$ sudo service <nom de service> start | reload | status

● Dans notre cas :

$ sudo service bind9 reload

(f) Vérifiez que vous pouvez résoudre par leur noms host1, host2 et le serveur en vous connectant sur
chacun d’eux.

● Nous pouvons utiliser l’une de ces trois commandes :

$ host <nom d'hôte>


$ dig a <nom de domaine complet><.>
$ nslookup <nom de domaine complet><.>

● Par exemple, pour trouver les adresse IP de l’hôte h21

$ host h21
h21 has address 10.10.21.2
H21 has IPv6 address 2001:db8:10:221::2

(g) testez la connectivité entre les hôtes avec leurs noms


● Utilisez la commande “ping6”

$ ping6 h21

3|Configurer et vérifier SLAAC


(a) Configurez le routeur pour annoncer un préfixe sur chacune des interfaces où sont connectés les hôtes
comme suit :

6
● prefix fdX:c001:51ac:hh::/64 où :
● X = est tel que défini dans la section ii (page 4)
● hh est le numéro d'hôte par exemple l’hôte avec le nom h51 aura hh = 51
Générons le préfixe à configurer sur le routeur pour qu’il l’annonce en utilisant le “Préfix Informations
Option” de son “RA”. Considérons host11 de Cape Town par exemple, X = 40 hh = 11 Notre préfixe
sera fd40:c001:51ac:11::/64.

Sur un routeur Cisco, il existe deux façons d’annoncer un préfixe :


a) configurer une adresse IPv6 avec une longueur de préfixe de /64 sur l'interface comme dans
l’exercice 1.
b) Utiliser la commande ND comme suit :

ipv6 nd prefix { ipv6-prefix/prefix-length | default } [options]]

● Dans notre cas

ipv6 nd prefix fd40:c001:51ac::/64

● L’hôte ne doit pas avoir besoin d’une passerelle par défaut pour atteindre tout autre hôte du
même sous-réseau.

Ce point fait référence à l’usage de l’option “L”. Heureusement sur Cisco IOS, l’option “L” est activée
par défaut lorsqu’une des méthodes ci-dessus est utilisée. Elle peut être désactivée en utilisant les
options “no-advertise” ou “offlink”.

(b) Configurez les hôtes pour générer automatiquement une adresse à partir des informations envoyées
par le routeur.

● Arrêter l'interface comme expliqué dans la section 1 (e)

$ sudo ifdown eth1

● Utiliser la procédure décrite dans la section 1 (e) pour modifier le fichier “


/etc/network/interfaces.d/eth1.ipv6 “ et mettez eth1 en mode automatique comme suit

iface eth1 inet6 auto

● Utiliser la méthode décrite dans la section 1 (e) ci-dessus pour réactiver eth1

$ sudo ifup eth1

(c) Afficher sur chaque hôte les informations IPv6 de l’interface eth1

● pour afficher les adresses IPv6 configurées et/ou générées sur une interface sur Ubuntu nous
pouvons utiliser les commandes “ifconfig” ou ”ip”.

$ ifconfig <nom-interface>
--ou--
$ ip -6 addr show <nom-interface>

● Dans notre cas, nous utilisons “ifconfig” sur l’interface “eth1”, donc nous aurons sur h11:

$ ifconfig eth1
eth1 Link encap:Ethernet HWaddr 32:db:42:08:ea:4f
inet addr:10.20.11.2 Bcast:10.20.11.255 Mask:255.255.255.0

7
inet6 addr: 2001:db8:20:111:30db:42ff:fe08:ea4f/64 Scope:Global
inet6 addr: fe80::30db:42ff:fe08:ea4f/64 Scope:Link
inet6 addr: 2001:db8:20:111::2/64 Scope:Global
inet6 addr: fd20:c001:d4c:11:30db:42ff:fe08:ea4f/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6704 errors:0 dropped:0 overruns:0 frame:0
TX packets:237 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:999128 (999.1 KB) TX bytes:21306 (21.3 KB)

(d) configurez le routeur pour ne pas annoncer le préfixe de l'adresse configurée manuellement en 2.1
dans son “RA”.
● Sur Cisco IOS, lorsqu'une adresse IPv6 /64 est affectée à une interface comme dans l'exercice 1
(e) ci-dessus, le préfixe est automatiquement annoncé par le routeur. Pour éviter cela, nous
devons dire au routeur à ne pas annoncer le préfixe correspondant comme suit:

# ipv6 nd prefix <prefix>/64 no-advertise

● Exemple:

# ipv6 nd prefix fd40:c001:51ac:41::/64 no-advertise

(e) Redémarrez le service réseau sur les hôtes


● Sur ubuntu, nous pouvons redémarrer le service réseau avec la commande “service” comme
indiqué.

$ Sudo service <Le service à redémarrer> restart

● Pour le service réseau, nous aurons :

$ sudo service networking restart

(f) Répétez l’étape (c) et notez les différences.

● Affichons à nouveau les informations IPv6 de l’interface “eth1”, de h11, en utilisant une des
commandes expliquées sur la question (c) ci-dessus

$ ifconfig eth1
eth1 Link encap:Ethernet HWaddr 32:db:42:08:ea:4f
inet addr:10.20.11.2 Bcast:10.20.11.255 Mask:255.255.255.0
inet6 addr: fe80::30db:42ff:fe08:ea4f/64 Scope:Link
inet6 addr: 2001:db8:20:111::2/64 Scope:Global
inet6 addr: fd20:c001:d4c:11:30db:42ff:fe08:ea4f/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6704 errors:0 dropped:0 overruns:0 frame:0
TX packets:237 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:999128 (999.1 KB) TX bytes:21306 (21.3 KB)

Dans la question (c) ci-dessus nous avions deux adresses IPv6 commençant par le même préfixe
“2001: DB8:20:111::/64”:
● l'adresse IPv6 qui a été configuré manuellement
● une autre générée à partir tu “RA” envoyé par le routeur

8
mais sur ce résultat, nous n’avons que le préfixe configuré manuellement; en effet, l'objectif de la
question (g) était d'empêcher le routeurs d’annoncer le préfixe de l'adresse IPv6 qui a été configuré
manuellement.

4|Configurer et vérifier “Stateless” DHCPv6

(a) connectez vous a l’un des hotes, et “pingez” les 2 autres hôtes par leur nom de domaine
complet. Le ping a t-il réussie?

Dans l'extrait ci-dessous nous faisons un ping vers h22.pod2.local depuis H21

# ping6 h22.pod2.local
PING h22.pod2.local (h22.pod2.local) 56 octets de données
64 octets de h22.pod2.local: icmp_seq = 1 = ttl 63 temps = 0,533 ms
64 octets de h22.pod2.local: icmp_seq = 2 ttl = 63 temps = 0,768 ms
64 octets de h22.pod2.local: icmp_seq = 3 ttl = 63 temps = 0.702 ms

(b) sur le serveur, configurer le service DHCPv6 comme suit:

● le serveur DNS doit être l'adresse IPv6 du serveur dans votre pod

Allez dans le répertoire approprié et ouvrez en modification le fichier “dhcpd6.conf” comme indiqué
ci-dessous:

#(nano or vi) /etc/dhcp/dhcpd6.conf

authoritative;
log-facility local6;
default-lease-time 2592000;
preferred-lifetime 604800;
option dhcp-renewal-time 3600;
option dhcp-rebinding-time 7200;
allow leasequery;
#option dhcp6.rapid-commit;
option dhcp6.name-servers 2001:DB8:20:251::2; [Ceci est votre adresse du serveur
de pod]
option dhcp6.domain-search "pod2.local";
option dhcp6.info-refresh-time 21600;

● La liste des noms de domaine doit être “pod<R>.local”, où “R” est le numéro de routeur de
votre pod

Allez dans le même répertoire que ci-dessus, ouvrez et modifiez le fichier “dhcpd6.conf” comme suit:

#(nano or vi) /etc/dhcp/dhcpd6.conf

authoritative;
log-facility local6;
default-lease-time 2592000;
preferred-lifetime 604800;
option dhcp-renewal-time 3600;
option dhcp-rebinding-time 7200;
allow leasequery;
#option dhcp6.rapid-commit;
option dhcp6.name-servers 2001:DB8:20:251::2;

9
option dhcp6.domain-search "pod2.local";
option dhcp6.info-refresh-time 21600;

(c) Configurez le routeur comme suit

● Configurer le routeur pour informer les hôtes que les informations de configuration
supplémentaires doivent être obtenu par DHCPv6.

Sur le routeur, nous devons activer l’option de configuration “Other” dans son RA. Cette configuration
se fait en mode interface:

(config)#ipv6 unicast-routing
(config)#interface gigabitethernet 0/0
(config-if)#ipv6 nd other-config-flag

● Configurer le routeur pour transférer tous messages DHCPv6 au serveur


Utiliser la commande “relay dhcp” IPv6 comme indiqué dans la configuration c-idessous

(config)#interface gigabitethernet 0/0


(config-if)#ipv6 nd other-config-flag
(config-if)#ipv6 dhcp relay destination 2001:db8:20:351::2

● Vérifier avec la commande ”show ipv6 interface”

#show interface ipv6 gigabitethernet0/0

******************** Ce resultat est partiel *********************************

ND DAD is enabled, number of DAD attempts: 1


ND reachable time is 30000 milliseconds (using 30000)
ND advertised reachable time is 0 (unspecified)
ND advertised retransmit interval is 0 (unspecified)
ND router advertisements are sent every 200 seconds
ND router advertisements live for 1800 seconds
ND advertised default router preference is Medium
Hosts use stateless autoconfig for addresses.
Hosts use DHCP to obtain other configuration.

5|Configurer et vérifier “stateful” DHCPv6


(a) Sur le serveur, configurez deux plages d’adresses DHCPv6 comme suit:
○ Les adresses doivent être distribués à partir du préfixe fdX:c001:d4c:hh::/64 (où les variables “X”
et “hh” sont tels que définis précédemment).
○ Le serveur DNS doit être l'adresse IPv6 du serveur
○ Le nom de domaine doit être “pod<r>.local” où “r” est le numéro de routeur.

Générons d'abord le préfixe à utiliser; Utilisons le banc d’essai de Cap Town comme exemple
● Sur le banc d’essai de Cap Town: X = 40
● Pour le POD4 par exemple, nous avons R = 4
Ainsi notre serveur doit avoir les plages d’adresses suivantes:
● fd40:c001:dc4:41::/64 pour tous les hôtes du même sous réseau que H41

10
● fd40:c001:dc4:42::/64 64 pour tous les hôtes sur le même sous réseau que H42

Ensuite nous configurons les préfixes ci-dessus en ajoutant une entrée “subnet6” pour chaque plage
d’adresse dans la fichier de configuration DHCP “/etc/dhcp/dhcpd6.conf”. La syntaxe générale est
la suivante.

subnet6 <préfixe-local>/<longueur-préfixe> {
***** L'interface par laquelle les adresses IP doivent être didtribué doivent
avoir une adresse IP du préfixe ci-dessus ******
range6 <début-plage> <fin-plage>;
}

Exemple:

#Si nous avons configuré eth1 avec l’adresse 2001:DB8:20:10::a, Le but de la


#ligne suivante est de dire au serveur d’écouter et de distribuer des adresses
#par eth1.

subnet6 2001:DB8:20:10::/64 { }

#-- scope for hosts off vlan 411 interface


subnet6 fd40:c001:dc4:41::/64 {
range6 fd40:c001:dc4:41::10 fd40:c001:dc4:41::20;
}

#-- scope for hosts off vlan 412 interface


subnet6 fd40:c001:dc4:42::/64 {
range6 fd40:c001:dc4:42::10 fd40:c001:dc4:42::20;
}

Enregistrer le fichier de configuration et redémarrer le serveur dhcp

6deploy@s41:~$ sudo dhcpd -6 -cf /etc/dhcp/dhcpd6.conf

Vous pouvez également démarrer le serveur en mode débogage pour afficher les échanges entre
les clients et le serveur.

sixdeploy@s41:~$ sudo dhcpd -6 -d -cf /etc/dhcp/dhcpd6.conf

(b) Sur le routeur, configurez l'interface connectée aux hôtes comme suit:
○ le routeur doit envoyer l’option “M” dans son message RA afin que les hôtes utilisent DHCPv6
○ Assurez-vous que les communications entre hôtes du même préfixe soient directes et ne passe
pas par le routeur par défaut.
○ le routeur doit transférer les messages DHCP des hôtes au serveur.

Chacune des interfaces du routeur connecté aux différents sous-réseaux doit avoir une adresse IPv6
du même préfixe que celui qui sera annoncé par le serveur DHCP sur ledit sous-réseaux. L’exemple
ci-dessous illustre comment le serveur DHCP donnera des adresses différentes en fonction des sous-
réseaux :

r04.cpt(config-if)#int vlan 411


r04.cpt(config-if)#ipv6 address fd40:c001:dc4:41::1/64
r04.cpt(config-if)#int vlan 412
r04.cpt(config-if)#ipv6 address fd40:c001:dc4:42::1/64

11
Puisque vous ne voulez pas que les hôtes obtiennent les adresses via SLAAC à partir des préfixes que
vous venez de configurer sur les interfaces, vous devez configurer le routeur pour ne pas annoncer
ces préfixes (mettre l’option A = 0 dans PIO). Ceci est similaire à exercice 3 (c) ci-dessus.

r04.cpt(config-if)#int vlan 441


r04.cpt(config-if)#ipv6 nd prefix fd40:c001:dc4:41::/64 no-advertise
r04.cpt(config-if)#int vlan 442
r04.cpt(config-if)#ipv6 nd prefix fd40:c001:dc4:41::/64 no-advertise

L’option “M” dans les messages RA est défini comme suit:

(config-if)#ipv6 nd managed-config-flag

Exemple vlan 411 et vlan 442

r04.cpt(config-if)#int vlan 441


r04.cpt(config-if)#ipv6 nd managed-config-flag
r04.cpt(config-if)#int vlan 442
r04.cpt(config-if)#ipv6 nd managed-config-flag

Configurer maintenant le routeur comme un agent relais DHCPv6 (Relayer les messages multicats
DHCPv6):

(config)#interface <nom-interface>
r04.cpt(config-if)#ipv6 dhcp relay destination <adresse-ip-server-dhcpv6>

Ainsi, pour les interfaces vlan 441 et 442, nous aurons:

r04.cpt(config-if)#int vlan 441


r04.cpt(config-if)#ipv6 dhcp relay destination 2001:db8:40:451::2
r04.cpt(config-if)#int vlan 442
r04.cpt(config-if)#ipv6 dhcp relay destination 2001:db8:40:451::2

(c) Configurez les hôtes pour recevoir leurs adresses via DHCPv6
Modifions le fichier “/etc/network/interfaces.d/ipv6.eth1” comme suit :

sixdeploy@h41:~$ sudo nano /etc/network/interfaces.d/ipv6.eth1

insérer ensuite une ligne avec la syntaxe suivante :

iface <nom-interface> inet6 dhcp ;met l'interface en mode client dhcpv6


accept_ra 1|0 ;Voir note
autoconf 1|0 ;Voir note

*** note ***


dans un systèmes Ubuntu, lorsqu'une interface est configuré en client DHCPv6, il
cesse d’envoyer messages RS et ignore les messages RA. Nous ne voulons recevoir
au moins les RA pour obtenir une passerelle par défaut. Cela se fait par les deux
dernières lignes

Dans notre cas, nous utilisons interface “eth1”, nous aurons donc :

iface eth1 inet6 dhcp


accept_ra 1
autoconf 1

Maintenant, redémarrer le service réseau, vous pouvez également redémarrer l'hôte.


12
sixdeploy@h41:~$ sudo service networking restart
networking stop/waiting
networking start/running

Répétez les étapes précédentes pour l’hôte H42

(d) De votre hôte, trouvez et écrivez les adresses qui ont été attribuees aux autres hôtes dans votre pod
Utilisons l’une de ces commandes “ifconfig” ou “ip”

$ ifconfig <interface-name>
--ou--
$ ip -6 addr show <interface-name>

Dans notre cas, nous utilisons “ ifconfig” sur l’interface “eth1”, donc sur H11 nous aurons:

$ ifconfig eth1
eth1 Link encap:Ethernet HWaddr 32:db:42:08:ea:4f
inet addr:10.20.11.2 Bcast:10.20.11.255 Mask:255.255.255.0
inet6 addr: fe80::30db:42ff:fe08:ea4f/64 Scope:Link
inet6 addr: fd20:c001:d4c:11::20/64 Scope:Global
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:614 (614.0 B) TX bytes:1440 (1.4 KB)

(e) Affichez la base de données DHCP du serveur. Quelles adresses a t-il distribué aux hôtes? Sont elles les
mêmes que ci-dessus?
Pour afficher la base de données, nous pouvons ouvrir le fichier de bail (lease) DHCPv6 en mode
lecture seule. Ce fichier se trouve dans: “/var/lib/dhcp/dhcpd6.leases”

$ sudo view /var/lib/dhcp/dhcpd6.leases


# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.3.3

server-duid "\000\001\000\001!\015\370\263\226\353\354\201;%";

server-duid "\000\001\000\001!\015\370\263\226\353\354\201;%";

ia-na "O\352\010B\000\001\000\001!\015\373:2\333B\010\352O" {
cltt 5 2017/07/28 13:40:12;
iaaddr fd20:c001:d4c:11::20 {
binding state active;
preferred-life 604800;
max-life 2592000;
ends 0 2017/08/27 13:40:12;
}
}

(f) Notez toutes les adresses de l'interface de l'hôte.

13
6|Vérifier la sélection d’adresse
Objectif: Observer la logique de sélection d'adresses dans IPv6 lorsque plusieurs adresses existent sur une
interface.
(a) Depuis votre premier hôte, faites un ping vers :
○ L’adresse lien locale (LLA)du routeur.
○ L’adresses globale du routeur directement connecté.
○ L’autre hôte dans votre pod.

La syntaxe de commande ping6 est :

ping6 <adresse>

● Depuis H11 vers la “LLA” de R01 du banc d'essai MRU1 :

sixdeploy@h11:~$ ping6 FE80::CA9C:1DFF:FE6B:D023%eth1

● Depuis H11 vers la GUA #1 de R01 du banc d'essai de MRU2 :

sixdeploy@h11:~$ ping6 2001:db8:20:111::1


PING 2001:db8:20:111::1(2001:db8:20:111::1) 56 data bytes
64 bytes from 2001:db8:20:111::1: icmp_seq=1 ttl=64 time=2.49 ms
64 bytes from 2001:db8:20:111::1: icmp_seq=2 ttl=64 time=0.458 ms

● Depuis H11 vers la GUA #2 de R01 du banc d'essai de MRU2 :

sixdeploy@h11:~$ ping6 fd10:c001:51ac:11::1


PING fd10:c001:51ac:11::1(fd10:c001:51ac:11::1) 56 data bytes
64 bytes from fd10:c001:51ac:11::1: icmp_seq=1 ttl=64 time=5.46 ms
64 bytes from fd10:c001:51ac:11::1: icmp_seq=2 ttl=64 time=0.474 ms

● Depuis H11 vers la GUA #3 de R01 du banc d'essai de MRU2 :

sixdeploy@h11:~$ ping6 fd10:c001:d4c:11::1


PING fd10:c001:d4c:11::1(fd10:c001:d4c:11::1) 56 data bytes
64 bytes from fd10:c001:d4c:11::1: icmp_seq=1 ttl=64 time=1.87 ms
64 bytes from fd10:c001:d4c:11::1: icmp_seq=2 ttl=64 time=0.460 ms

(b) Examinez la table de “forwarding” de l’un des hôtes et notez quelle adresse a été utilisé pour
chacune des destinations ci-dessus.

● Nous pouvons utiliser “netstat” ou “route” pour afficher la table de routage comme suit :

netstat -6 -rn
route -6 -n

● La colonne “use” indique le nombre de fois qu’une adresse spécifique a été utilisé comme
source d'un paquet.
● Pour vérifier quelle adresse est utilisée, exécutez la commande “route” ou “netstat” avant le
ping et comparer les résultats.

Exemple:

-------------------------------- Avant les pings ----------- -----------------


$ netstat -6 -rn
Kernel IPv6 routing table

14
Destination Next Hop Flag Met Ref Use If
2001:db8:20:111::/64 :: U 256 0 1 eth1
fd10:c001:d4c:11::/64 :: U 256 0 0 eth1
fd10:c001:51ac:11::/64 :: U 256 0 0 eth1
RX bytes:614 (614.0 B) TX bytes:1440 (1.4 KB)
[Extrait]
----- Après le premier ping la route 2001:DB8:20:111::/64 a été utilisé--------
$ route -6 -n
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
2001:db8:20:111::/64 :: U 256 1 4 eth1
fd10:c001:d4c:11::/64 :: U 256 0 0 eth1
fd10:c001:51ac:11::/64 :: U 256 0 0 eth1
------ Après le second ping la route FD10:C001:51ac:11::/64 a été utilisé-------
$ route -6 -n
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
2001:db8:20:111::/64 :: U 256 1 4 eth1
fd10:c001:d4c:11::/64 :: U 256 0 0 eth1
fd10:c001:51ac:11::/64 :: U 256 1 4 eth1
------Après le troisieme ping la route FD10:C001:d4c:11::/64 a été utilisé------
$ route -6 -n
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
2001:db8:20:111::/64 :: U 256 1 4 eth1
fd10:c001:d4c:11::/64 :: U 256 1 6 eth1
fd10:c001:51ac:11::/64 :: U 256 1 4 eth1

7|Configurer et vérifier la délégation de préfixe IPv6

(a) Configurez le serveur pour distribuer des /56 du préfixe fdX:C00R:B10c::/48 (X et R sont tesl que définis
précédemment)

Générer d'abord le préfixe à utiliser pour le POD4 du banc d’essai Cape Town comme suit :
X = 40 et R = 4

Ainsi notre serveur donnera des /56s du préfixe FD40:C004:B10C::/48.

Configurer ce bloc comme un pool de préfixes sur le serveur en ajoutant la ligne suivante à la section
“subnet6” du fichier de configuration DHCP ”/etc/dhcpd/dhcpd6.conf”

prefix6 <début-préfixe> <Fin-préfixe> /<longueur-préfixe-déléguée>;

● Par exemple pour voir tous les préfixes /56 disponibles, vous pouvez utiliser tout utilitaire de
calcul d’adresse IPv6 pour trouver le premier et dernier bloc.
● Dans notre cas :

prefix6 fd40:c004:b10c:: fd40:c004:b10c:ff00:: /56;

● Enregistrer le fichier, et redémarrer le serveur dhcp

15
sixdeploy@s41:~$ sudo dhcpd -6 -cf /etc/dhcp/dhcpd6.conf

● Vous pouvez également démarrer le serveur en mode débogage pour voir les échanges
entre les clients et le serveurs.

sixdeploy@s41:~$ sudo dhcpd -6 -d -cf /etc/dhcp/dhcpd6.conf

(b) Configurer le routeur (CE) pour demander un préfixe qui sera stocké dans la variable “DelegatedPrefix”
● pour configurer le CPE pour demander un préfixe au serveur, nous utilisons les commandes
suivantes sur l'interface WAN du CE :

(config)#interface <nom-interface>
(config-if)#ipv6 dhcp client pd <nom-prefixe>

● demandons un préfixe délégué sur l’interface vlan 451 et stockons le dans une variable
appelée: ”DelegatedPrefix”

r04.cpt(config)#int vlan451
r04.cpt(config-if)#ipv6 dhcp client pd DelegatedPrefix

(c) Sur le serveur, vérifier quel préfixe a été alloué au routeur.

● Les préfixes Alloués sont stockés dans le fichier “/var/lib/dhcp/dhcpd6.leases” ,nous allons
utiliser la commande “cat” pour afficher le contenu du fichier.

sixdeploy@s41:~$ cat /var/lib/dhcp/dhcpd6.leases

Dans notre cas, nous aurons:

sixdeploy@s41:~$ cat /var/lib/dhcp/dhcpd6.leases


[output omitted]

server-duid "\000\001\000\001\036i\242\261\000PV\252v\316";

ia-pd "\001\000\032\000\000\003\000\001l V\340\312 " {


cltt 3 2016/04/13 17:44:48;
iaprefix fd40:c004:b10c:ff00::/56 {

***** FD40:C004:B10c:FF0::/56 est alloué au routeur *****

binding state active;


preferred-life 375;
max-life 600;
ends 3 2016/04/13 17:54:48;
}
}
[ceci est un extrait]

(d) Sur le routeur, vérifiez quel préfixe a été alloué par le serveur. Est-il différent du préfixe de l’exercice (c)
ci-dessus?

● Pour vérifier le préfixe que le routeur a reçu par DHCPv6, utilisez la commande suivante:

#show ipv6 dhcp interface


16
● Ceci est un extrait du résultat de la commande ci-dessus :

r04.cpt#show ipv6 dhcp interface


Vlan451 is in client mode
Prefix State is OPEN
[extrait]
Preference: 0
Configuration parameters:
IA PD: IA ID 0x001A0001, T1 187, T2 300
Prefix: FD40:C004:B10C:FF00::/56
preferred lifetime 375, valid lifetime 600
expires at Apr 13 2016 05:29 PM (485 seconds)

**** fd40:c004:b10c:FF0::/56 est le préfixe reçu comme dans l’exercice (c) *****
[extrait]

(e) configurer le routeur pour attribuer automatiquement deux /64 du préfixe délégué à chacun de ses
interfaces connectée aux hôtes.

● Attribuer une adresse du préfixe délégué utilisant les commandes suivantes :

(config)#interface <nom-interface>
(config-if)#ipv6 add <nom-prefixe-general> ::<IID>/64

● Configuration de l’interface vlan441


r04.cpt(config)#int vlan441
r04.cpt(config-if)#ipv6 address DelegatedPrefix ::41:0:0:0:1/64

● Configuration de l’Interface vlan441

r04.cpt(config)#int vlan442
r04.cpt(config-if)#ipv6 address DelegatedPrefix ::42:0:0:0:1/64

(f) Sur le routeur, affichez des adresses globales IPv6 des interfaces connectées aux hôtes, sont-elles liées
au préfixe délégué?

● Il suffit de faire un “show ipv6 interface” sur les interfaces connectées aux hôtes. Voici un
extrait du résultat de l’interface “vlan 441” sur le routeur 4.

r04.cpt#show ipv6 interface vlan 441


Vlan441 is up, line protocol is up
IPv6 is enabled, link-local address is FE80::6E20:56FF:FEE0:CA23
[extrait]
Global unicast address(es):
FD40:C004:B10C:FF41::1, subnet is FD40:C001:B10C:FF41::/64 [CAL/PRE]
** L’adresse ci-dessus n’est pas une LLA. Elle provient du préfixe delegué **
[extrait]

17
(g) Configurer deux hôtes afin d’utiliser SLAAC.
● Pour configurer SLAAC sur les hôtes, nous allons éditer le fichier
“/etc/network/interfaces.d/eth1.ipv6” comme suit :

sixdeploy@h41:~$ sudo nano /etc/network/interfaces.d/eth1.ipv6

● ensuite insérer une ligne avec la syntaxe suivante :

iface <nom-interface> inet6 auto

● Dans notre cas, nous utilisons l’interface “eth1”, donc nous aurons

iface eth1 inet6 auto

● Redémarrez le service réseau :

sixdeploy@h41:~$ sudo service networking restart


networking stop/waiting
networking start/running

Répétez les étapes précédentes pour l’hôte H42

(h) Afficher les adresses que les hôtes ont maintenant


● Utilisez la commande “ifconfig” sur l'interface approprié comme suit:

$ ifconfig <nom-interface>

● Dans notre cas, nous utilisons l’interface “eth1” ; Sur sur H41 nous aurons

6deploy@h41:~$ ifconfig eth1


eth1 Link encap:Ethernet HWaddr 00:0c:29:6c:ff:4e
inet addr:10.40.41.2 Bcast:10.40.41.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe6c:ff4e/64 Scope:Link
inet6 addr: fd40:c004:b10c:ff41:20c:29ff:fe6c:ff4e/64 Scope:Global
inet6 addr: fd40:c004:b10c:ff41:b022:fc53:6283:5445/64 Scope:Global
*Les 2 dernières adresses sont générées via SLAAC et utilise le préfixe délégué*

[extrait]

● Sur H42

6deploy@h42:~$ ifconfig eth1


eth1 Link encap:Ethernet HWaddr 00:0c:29:e5:88:92
inet addr:10.40.42.2 Bcast:10.40.42.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fee5:8892/64 Scope:Link
inet6 addr: fd40:c004:b10c:ff42:292a:cef5:25b9:ca56/64 Scope:Global
inet6 addr: fd40:c004:b10c:ff42:20c:29ff:fee5:8892/64 Scope:Global
*Les 2 dernières adresses sont générées via SLAAC et utilise le préfixe délégué*

[extrait]

(i) Sur chaque hôte, trouvez et écrivez les adresses qui ont été allouées aux autres hôtes.
(j) Vérifiez la connectivité IP entre tous les hôtes en utilisant leurs adresses venant du préfixes délégués

● PD-Nous émettrons la commande de H41 à H42 ciblant le délégué PD- adresses

6deploy@h41:~$ ping6 fd40:c004:b10c:ff42:292a:cef5:25b9:ca56

18
PING
fd40:c004:b10c:ff42:292a:cef5:25b9:ca56(fd40:c004:b10c:ff42:292a:cef5:25b9:ca56)
56 data bytes
64 bytes from fd40:c004:b10c:ff42:292a:cef5:25b9:ca56: icmp_seq=1 ttl=63
time=7.11 ms
64 bytes from fd40:c004:b10c:ff42:292a:cef5:25b9:ca56: icmp_seq=2 ttl=63
time=0.606 ms

***** le resultat ci-dessus montre que H41 peut atteindre H42 *****

● De H42 à H41 sur la deuxième adresse

6deploy@h42:~$ ping6 fd40:c004:b10c:ff41:b022:fc53:6283:5445


PING
fd40:c004:b10c:ff41:b022:fc53:6283:5445(fd40:c001:b10c:ff41:b022:fc53:6283:5445)
56 data bytes
64 bytes from fd40:c004:b10c:ff41:b022:fc53:6283:5445: icmp_seq=1 ttl=63
time=0.553 ms
64 bytes from fd40:c004:b10c:ff41:b022:fc53:6283:5445: icmp_seq=2 ttl=63
time=0.546 ms

***** meme conclusion. *****

8|Configurer et vérifier des listes de contrôle d'accès de base


sous IPv6
(a) Vérifiez que de chaque hôte, vous pouvez vous connecter aux routeurs et aux serveurs par telnet/ssh
Vérifions d'abord, que telnet est actuellement autorisé depuis les hôtes et du serveur vers le routeur.
Cette vérification peut être effectuée à l’aide de la commande "telnet":

$telnet <nom-hote | adresse-ip>

● De l’hôte H11 au router R01 :

sixdeploy@h11:~$ telnet 2001:db8:40:111::1


Trying 2001:db8:40:111::1...
Connected to 2001:db8:40:111::1.
Escape character is '^]'.

User Access Verification

Username: 6deploy
Password: ******

r01.cpt#

● De l’hôte H12 au router R01 :

sixdeploy@h42:~$ telnet 2001:db8:40:111::1


Trying 2001:db8:40:111::1...
Connected to 2001:db8:40:111::1.
Escape character is '^]'.

19
User Access Verification

Username: 6deploy
Password: ******

r01.cpt#

● De l'hôte H11 au serveur S11 (pour des mesures de sécurité, le port 23 IPv6 n’est pas ouvert sur
les systèmes Ubuntu, nous allons donc utiliser le port 22 que nous savons ouvert pour ssh):

sixdeploy@h11:~$ telnet 2001:db8:40:151::2 22


Trying 2001:db8:40:151::2...
Connected to 2001:db8:40:151::2.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.1

**Le résultat ci-dessus indique qu’une session Telnet a réussie sur le port 22**

● De l'hôte H12 au server S11 :

sixdeploy@h12:~$ telnet 2001:db8:40:151::2 22


Trying 2001:db8:40:151::2...
Connected to 2001:db8:40:151::2.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.1

**Le résultat ci-dessus indique qu’une session Telnet a réussie sur le port 22**

Vérifions maintenant que les hôtes et le serveur peuvent accéder au routeur via ssh.

● Cela peut être fait avec la commande "ssh” :

$ssh user@<name-hote | adresse-ip>

● De l'hôte H11 au router R01 :

sixdeploy@h11:~$ ssh 6deploy@2001:db8:40:111::1


The authenticity of host '2001:db8:40:111::1 (2001:db8:40:111::1)' can't be
established.
RSA key fingerprint is 34:87:ce:bf:9d:3b:b0:8e:7b:40:76:5e:d2:d2:27:8a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '2001:db8:40:111::1' (RSA) to the list of known hosts.
Password: *****
r01.cpt#

● De l'hôte H12 au router R01 :

sixdeploy@h12:~$ ssh 6deploy@2001:db8:40:111::1


The authenticity of host '2001:db8:40:111::1 (2001:db8:40:111::1)' can't be
established.
RSA key fingerprint is 34:87:ce:bf:9d:3b:b0:8e:7b:40:76:5e:d2:d2:27:8a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '2001:db8:40:111::1' (RSA) to the list of known hosts.
Password: *****
r01.cpt#

● De l'hôte H11 au server S11 :

20
sixdeploy@h41:~$ ssh 6deploy@2001:db8:40:151::2
The authenticity of host '2001:db8:40:151::2 (2001:db8:40:151::2)' can't be
established.
ECDSA key fingerprint is SHA256:D6XZlc0YyqioQmu8blRx40xyd1q8xnu9mjUi9HOuqa8.
Are you sure you want to continue connecting (yes/no)? Yes

***** Tapez “yes” to accepter le certificat *****

Warning: Permanently added '2001:db8:40:151::2' (ECDSA) to the list of known


hosts.
6deploy@2001:db8:40:151::2's password:

***** Entrez le mot de passe de connexion *****


Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-83-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

105 packages can be updated.


0 updates are security updates.

Last login: Tue Jul 18 18:26:12 2017 from 41.136.227.29


6deploy@s11:~$

**Le résultat ci-dessus indique qu’une session SSH a réussie sur le port 22**

● De l'hôte H12 au server :

sixdeploy@s42:~$ ssh 6deploy@2001:db8:40:151::2


The authenticity of host '2001:db8:40:151::2 (2001:db8:40:151::2)' can't be
established.
ECDSA key fingerprint is SHA256:D6XZlc0YyqioQmu8blRx40xyd1q8xnu9mjUi9HOuqa8.
Are you sure you want to continue connecting (yes/no)? Yes

***** Tapez “yes” to accepter le certificat *****

Warning: Permanently added '2001:db8:40:151::2' (ECDSA) to the list of known


hosts.
6deploy@2001:db8:40:151::2's password:

***** Entrez le mot de passe de connexion *****


Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-83-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

105 packages can be updated.


0 updates are security updates.

Last login: Tue Jul 18 18:26:12 2017 from 41.136.227.29


6deploy@s11:~$

**Le résultat ci-dessus indique qu’une session SSH a réussie sur le port 22**

21
(b) Configurez le routeur a n’accepter que des connections SSH vers l’adresse IPv6 statique du
serveur et uniquement à partir de l’adresse IPv6 statique de l'hôte #1.

● Pour créer une liste de contrôle d'accès “access lists”, les commandes suivantes peuvent être
utilisées :

configure terminal
ipv6 access-list access-list-name
deny | permit protocol <source-ipv6> [port] <destination-ipv6> [port]
interface interface-id
ipv6 traffic-filter access-list-name { in | out }

● Dans notre cas et sur le routeur R01 nous aurons :

r01.cpt#conf t
r01.cpt(config)#ipv6 access-list SSHONLY-TO-SERVER
r01.cpt(config-ipv6-acl)#permit tcp 2001:db8:40:111::2/128 2001:db8:40:151::2/128
eq 22 log
r01.cpt(config-ipv6-acl)#deny any 2001:db8:40:151::2/128 log
r01.cpt(config-ipv6-acl)#permit any any
r01.cpt(config-ipv6-acl)#exit
r01.cpt(config)#interface vlan 110
r01.cpt(config-if)#ipv6 traffic-filter SSHONLY-TO-SERVER out

● Testons la connexion SSH de l'hôte H11 au server S11 :

6deploy@h11:~$ ssh 6deploy@2001:db8:40:151::2


6deploy@2001:db8:40:110::2's password:
Welcome to Ubuntu 16.04.1 LTS (GNU/Linux 4.4.0-83-generic x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage

105 packages can be updated.


0 updates are security updates.

Last login: Tue Jul 18 21:57:49 2017 from 2001:db8:40:112::2


6deploy@s11:~$

**Le résultat ci-dessus indique qu’une session SSH a réussie sur le port 22**

● Testons la connexion SSH de l'hôte H12 au server S11 :

6deploy@h12:~$ ssh 6deploy@2001:db8:40:151::2


ssh: connect to host 2001:db8:40:110::2 port 22: Permission denied
6deploy@h12:~$

***Le résultat ci-dessus indique que l'accès SSH n'est pas autorisé depuis H12***

(c) Configurez le routeur pour n’accepter que des connections FTP vers l’adresse IPv6 statique du
serveur et uniquement à partir de l’adresse IPv6 statique de l'hôte #2.

Maintenant, nous devons modifier la liste de contrôle d'accès et inclure l'accès FTP de H12 au serveur.

22
● Tout d'abord affichons les listes de contrôle d'accès pour voir quel numéro de séquence utiliser
:

sh access-lists
IPv6 access list SSHONLY-TO-SERVER
permit tcp host 2001:DB8:40:111::2 host 2001:DB8:40:110::2 eq 22 log (27
matches) sequence 10
deny ipv6 any host 2001:DB8:40:110::2 log sequence 20
permit ipv6 any any sequence 30

Dans notre cas, nous allons choisir un numéro de séquence entre 10 et 20 pour nous assurer que le “
FTP permit” vienne avant le “deny any”.

r01.cpt#conf t
r01.cpt(config)#IPv6 access-list SSHONLY-TO-SERVER
r01.cpt(config-ipv6-acl)#sequece 15 permit tcp 2001:db8:40:112::2/128
2001:db8:40:151::2/128 eq ftp log

23
9|Configurer le routage intra-domaine OSPF
(a) Configurez OSPFv3 selon la topologie ci-dessus. Les paquets OSPF ne doivent PAS être envoyés sur les
interfaces connectées aux hôtes et au serveur

N'oubliez pas d'utiliser la commande "IPv6-unicast-routing" pour activer le routage IPv6 sur le routeur. Les
identifiants des routeurs sont uniquement attribués en mode de configuration globale dans une instance
OSPF IPv6. Les ID des routeurs sont très importants et facilite la vie lors des dépannages.

Il existe plusieurs manières d’empêcher les mises à jour OSPF d'aller vers une ou plusieurs interfaces
spécifiques. L’une des méthodes recommandées est de rendre toutes les interfaces du routeur passives
par défaut, puis de rendre active celles qui doivent annoncer et recevoir les mises à jour OSPF.

(config)#ipv6 unicast-routing
(config)#ipv6 router ospf 1
(config-rtr)#router-id 1.1.1.1
(config-rtr)#passive-interface default
(config-rtr)#no passive-interface GigabitEthernet0/0
(config-rtr)#no passive-interface GigabitEthernet0/1
(config-rtr)#no passive-interface vlan14

OSPFv3 se configure en mode interface. Dans la syntaxe ci-dessous (cisco IOS), nous essayons de former
une relation entre R1 et R4 dans l’aire 14. Vous devez effectuer cette procédure pour toutes les interfaces
du routeur que vous souhaitez voir les préfixes dans les mises à jour d’OSPF.

(config)#int vlan 14
(config-if)#ipv6 ospf 1 area 14

● Vérifiez les voisins OPSF avec la commande suivante (Nous utilisons R4 dans l'exemple ci-dessous)
:

#sh ipv6 ospf neighbor

OSPFv3 Router with ID (4.4.4.4) (Process ID 4)

Neighbor ID Pri State Dead Time Interface ID Interface


1.1.1.1 1 FULL/DR 00:00:33 21 Vlan14

(b) Redistribuez les interfaces de loopback des routeurs dans OSPF

Les interfaces de loopback sont directement connectées au routeur, nous pouvons donc utiliser le mot clé
'connected' dans la commande “distribute”.

Si en plus des loopbacks 'il existe d'autres interfaces connectées sur le routeur que vous ne voulez pas
redistribuer, vous pouvez créer une liste de contrôle d'accès autorisant les interfaces à redistribuer et
appliquer cette liste avec une commande “route-map” par exemple.

Créez une liste d'accès correspondant à l'interface que vous souhaitez redistribuer. Dans notre cas

24
Loopback 1 sur R1

(config)#ipv6 access-list LOOPBK


(config-ipv6-acl)#permit ipv6 2001:db8:10:44::1/128 any
(config-ipv6-acl)#deny ipv6 any any log

● Créer la “route-map” pour appliquer la liste d'accès que vous avez créée

(config)#route-map FILTER-SUBNETS permit 10


(config-route-map)# match ipv6 address LOOPBK
(config-route-map)#exit

● Vous pouvez ensuite utiliser la route-map dans la commande “redistribute” sous le processus OSPF
IPv6

(config)#ipv6 router ospf 1


(config-rtr)#redistribute connected metric-type 1 route-map FILTER-SUBNETS
(config-rtr)#exit

(c) Combien de routes OSPFv3 (différentes) y a-t-il dans chaque routeur et quels sont leurs types?

Vérifier en affichant la table de routage IPv6

#sh ipv6 route


IPv6 Routing Table - default - 11 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
B - BGP, HA - Home Agent, MR - Mobile Router, R - RIP
H - NHRP, I1 - ISIS L1, I2 - ISIS L2, IA - ISIS interarea
IS - ISIS summary, D - EIGRP, EX - EIGRP external, NM - NEMO
ND - ND Default, NDp - ND Prefix, DCE - Destination, NDr - Redirect
l - LISP
O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
ON1 - OSPF NSSA ext 1, ON2 - OSPF NSSA ext 2
OE1 2001:DB8:30:11::1/128 [110/21]
via FE80::E6D3:F1FF:FE89:DB43, Vlan14
C 2001:DB8:30:14::2/127 [0/0]
via Vlan14, directly connected
L 2001:DB8:30:14::3/128 [0/0]
via Vlan14, receive
LC 2001:DB8:30:44::1/128 [0/0]
via Loopback1, receive
C 2001:DB8:30:441::/64 [0/0]
via Vlan411, directly connected

********************** extrait ******************************

(d) Vérifiez que vous pouvez “pinguez” les interfaces de loopback des autres routeurs du banc d’essai sur
IPv4 et IPv6.

Utiliser la commande "ping" ( sur les adresses IPv4 et IPv6 dans IOS) pour tester l'accessibilité de l'adresse
IPv6 de l’interface de loopback d'un routeur distant

#ping [adresse IPv6 de l'interface de loopback du routeur distant]


Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 2001:DB8:30:44::1, timeout is 2 seconds:
!!!!!
25
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms

(e) Enregistrez la configuration de votre routeur dans la flash avec le nom <ville>-r0x-ospf23.cfg (où <ville>
est le nom de la ville où a lieu la formation et "x" est le numéro du routeur). Vous aurez besoin de cette
configuration plus tard.

Utilisez la commande "copy running-config flash: [nom que vous voulez attribuer au fichier de
configuration]" pour réaliser cette tâche. Veuillez suivre la convention de nommage donnée dans
l'instruction ci-dessus pour éviter toute confusion.

Dans l'exemple ci-dessous la ville où se tient la formation est Detroit et nous sauvegardons la
configuration sur la mémoire flash du routeur R1

#copy running-config flash:detriot-r01-ospf23.cfg


Destination filename [detriot-r01-ospf23.cfg]?
6301 bytes copied in 2.912 secs (2164 bytes/sec)

(f) Désactiver la configuration OSPFv2 de votre routeur.

Utilisez la commande "show ip protocols" pour afficher l'ID de processus de la session OSPFv2 sur le
routeur

#sh ip protocols
*** Le routage IP est compatible NSF ***

Routing Protocol is "ospf 1"


Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Router ID 4.4.4.4

************************** Extrait *********************************

Ajouter le préfixe "no" à la commande de configuration globale initiale pour désactiver le processus de
routage comme suit:

(config)#no router ospf 1

26
10|Configurer MP-BGPv4 pour échanger des préfixes IPv6
(a) Sur votre routeur, chargez la configuration appelée “bgp-pre.cfg” à partir de flash

● Utiliser la commande “configure replace” de Cisco IOS

r01.mru1# configure replace flash:r01mru2-bgp-preconf.cfg

(b) Vérifiez que : Seuls les adresses de loopback du même ASN sont transportées dans OSPFv3

Tout d'abord, nous créons deux sessions BGP distinctes, l'une sur IPv4 et l'autre sur IPv6. Notez que les
adresses a.b.c.d et a:b:c:e:f:g:h appartiennent au même voisin qui est dual stack. Ces voisins sont ensuite
activés individuellement dans les familles d'adresses respectives. Pour les sessions iBGP, n'oubliez pas de
définir “next-hop-self”.

Dans cette section, nous créons des sessions BGP sur IPv4 et IPv6.

R1(config)#router bgp 200


R1(config-router)#bgp router-id 1.1.1.1
R1(config-router)#no bgp default ipv4-unicast
R1(config-router)#neighbor 10.1.0.9 remote-as 200
R1(config-router)#neighbor 2001:db8:1:14::2 remote-as 200

Vous devez passer sous les familles d'adresses respectives sous le processus BGP du routeur pour
configurer les paramètres liés aux familles d'adresses.

Ici, nous configurons les paramètres liés à IPv4

R1(config-router)#address-family ipv4 unicast


R1(config-router)#network [loopback IPv4 address] mask xxxx
R1(config-router-af)#neighbor 10.1.0.9 activate
R1(config-router-af)#neighbor 10.1.0.9 next-hop-self
R1(config-router-af)#exit

Ici, nous configurons les paramètres liés à IPv6

R1(config-router)#address-family ipv6 unicast


R1(config-router-af)#network 2001:1111:1111:1111::1/128 [loopbacks]
R1(config-router-af)#network 2001:baba:1:1::/64 [LAN subnets]
R1(config-router-af)#neighbor 2001:db8:1:14::2 activate
R1(config-router-af)#neighbor 2001:db8:1:14::2 next-hop-self
R1(config-router-af)#exit

27
11|Configurer des tunnels manuels

Objectif: Connectez des îlots IPv6 via un réseau uniquement IPv4 à l'aide de tunnels manuels 6in4 .
(a) Rétirer toutes les adresses IPv6 de tous les liens d'interconnexions entre votre pod et les pods voisins. (il
n'y a donc plus de connexions IPv6 natives entre les pods)
Vos précédentes sessions IPv6 OSPFv3 et IPv6 e-BGP devraient maintenant échouer. Vous avez
maintenant des îlots de pods dual-stack uniquement reliés via IPv4

Nous utiliserons la forme négative de la commande "ipv6 address" sur les interfaces inter-liens. La forme
générale est la suivante:

(config-if)#no ipv6 address

Par exemple sur le routeur "R01" nous aurons:

r02.cpt#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.

***** Pour l’interface Ge 0/0 entre R01 et R02 *****


r02.cpt(config)#int g 0/0
r02.cpt(config-if)#no ipv6 address

***** Pour l’interface Ge 0/1 entre R01 et R03 *****


r02.cpt(config)#int g 0/1
r02.cpt(config-if)#no ipv6 address

***** Pour l’interface vlan 14 entre R01 et R04 *****


r02.cpt(config)#int vlan 14
r02.cpt(config-if)#no ipv6 address

(b) Vérifiez que vous les hôtes et les serveurs sur les pods voisins ne sont plus accessibles sur IPv6.

Par exemple pour l'hôte “h11” nous obtenons :

***** De h11 sur pod1 à hôte h21 sur pod2*****


6deploy@h11:~$ ping6 2001:db8:40:221::2
PING 2001:db8:40:221::2(2001:db8:40:221::2) 56 data bytes
From 2001:db8:40:111::1 icmp_seq=1 Destination unreachable: No route
From 2001:db8:40:111::1 icmp_seq=2 Destination unreachable: No route
^C
--- 2001:db8:40:221::2 ping statistics ---
5 packets transmitted, 0 received, +5 errors, 100% packet loss, time 4026ms

***** De h11 sur pod1 à hôte h22 sur pod2 *****

6deploy@h11:~$ ping6 2001:db8:40:222::2


PING 2001:db8:40:222::2(2001:db8:40:222::2) 56 data bytes
From 2001:db8:40:111::1 icmp_seq=1 Destination unreachable: No route
From 2001:db8:40:111::1 icmp_seq=2 Destination unreachable: No route
^C
--- 2001:db8:40:222::2 ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 999ms

28
***** De h11 sur pod1 au serveur s21 sur pod2*****

6deploy@h11:~$ ping6 2001:db8:40:252::2


PING 2001:db8:40:252::2(2001:db8:40:252::2) 56 data bytes
From 2001:db8:40:111::1 icmp_seq=1 Destination unreachable: No route
From 2001:db8:40:111::1 icmp_seq=2 Destination unreachable: No route

(c) Créez un tunnel manuel 6in4 entre votre pod et les pods voisins. Ces tunnels doivent avoir des adresses
IPv6 pris du plan d'adresses donné en 1.2. Utilisez les interfaces de loopback comme source et
destination des tunnels.

● Les commandes suivantes sont utilisées pour configurer les tunnels manuels :

(config)#interface tunnel tunnel-number


(config-if)#ipv6 address x:x:x:x:x:x:x:x/length
(config-if)#tunnel source <iface-name>
(config-if)#tunnel destination wxyz
(config-if)#tunnel mode ipv6ip

● Par exemple sur "R01" du POD1 nous avons la configuration suivante :

r01.cpt#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.

*****Tunnel entre R01 du POD1 et R02 du POD2*****

r01.cpt(config)#interface tunnel 12
r01.cpt(config-if)#no ip address
r01.cpt(config-if)#ipv6 address 2001:db8:40:12::2/127
r01.cpt(config-if)#tunnel source loopback 1
r01.cpt(config-if)#tunnel destination 10.40.1.2
r01.cpt(config-if)#tunnel mode ipv6ip

***** Tunnel entre R01 du POD1 et R03 du POD3*****

r01.cpt(config-if)#interface tunnel 13
r01.cpt(config-if)#no ip address
r01.cpt(config-if)#ipv6 address 2001:db8:40:13::2/127
r01.cpt(config-if)#tunnel source loopback 1
r01.cpt(config-if)#tunnel destination 10.40.1.3
r01.cpt(config-if)#tunnel mode ipv6ip

*****Tunnel entre R01 du POD1 et R04 du POD4*****

r01.cpt(config)#interface tunnel 14
r01.cpt(config-if)#no ip address
r01.cpt(config-if)#ipv6 address 2001:db8:40:14::2/127
r01.cpt(config-if)#tunnel source loopback 1
r01.cpt(config-if)#tunnel destination 10.40.1.4
r01.cpt(config-if)#tunnel mode ipv6ip

**La configuration identique doit être faite sur les différents routeurs. Par
exemple le configuration du tunnel entre R02 du POD2 à R01 du POD1 est la
suivante**

r02.cpt(config)#interface tunnel 12
r02.cpt(config-if)#no ip address

29
r02.cpt(config-if)#ipv6 address 2001:db8:40:12::3/127
r02.cpt(config-if)#tunnel source loopback 1
r02.cpt(config-if)#tunnel destination 10.40.1.1
r02.cpt(config-if)#tunnel mode ipv6ip

(d) Modifiez la session OSPFv3 et eBGP pour utiliser les tunnels nouvellement créés pour leurs sessions IPv6.
(a) Commençons par construire la topologie du réseau avec OSPFv3

Pour OSPFv3, il suffit de l'activer sur les interfaces tunnel pour qu'il construise la topologie du réseau
avec la commande suivante:

(config-if)#ipv6 ospf <id-du-processus> area <id-aire>

● Par exemple sur "R01" du POD1 nous avons la configuration suivante :

*****Tunnel entre R01 du POD1 et R02 du POD2*****

r01.cpt(config)#interface tunnel 12
r01.cpt(config-if)#ipv6 ospf 1 area 0

*****Tunnel entre R01 du POD1 et R03 du POD3*****

r01.cpt(config-if)#interface tunnel 13
r01.cpt(config-if)#ipv6 ospf 1 area 0

*****Tunnel entre R01 du POD1 et R04 du POD4*****


r01.cpt(config)#interface tunnel 14
r01.cpt(config-if)#ipv6 ospf 1 area 0

*****La configuration identique doit être faite sur les différents routeurs, par
exemple la configuration du tunnel entre R02 du POD2 à R01 du POD1 est la
suivantes*****
r02.cpt(config)#interface tunnel 12
r02.cpt(config-if)#ipv6 ospf 1 area 0

(b) Configurons maintenant eBGP entre les divers routeurs de bordure

Puisque nous utilisons les mêmes adresses IPv6 que dans l'exercice 10, il n'y a rien à faire, les sessions
eBGP se ré-activeront d'elles-mêmes.

(e) Vérifiez que vous pouvez maintenant atteindre sur IPv6, tous les autres hôtes dans tous les autres
réseaux.

● Nous allons essayer un ping des hôtes sur pod1 :

$ping <nom-host | adresse-ip>

● Par exemple sur l'hôte "h11" nous aurons :

*****De h11 sur pod1 à hôte h21 sur pod2*****

6deploy@h11:~$ ping6 2001:db8:40:221::2


PING 2001:db8:40:221::2(2001:db8:40:221::2) 56 data bytes
64 bytes from 2001:db8:40:221::2: icmp_seq=1 ttl=62 time=1.98 ms
64 bytes from 2001:db8:40:221::2: icmp_seq=2 ttl=62 time=1.32 ms
64 bytes from 2001:db8:40:221::2: icmp_seq=3 ttl=62 time=1.33 ms

30
^C
--- 2001:db8:40:221::2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 1.327/1.546/1.981/0.307 ms

*****De h11 sur pod1 à hôte h22 sur pod2*****

6deploy@h11:~$ ping6 2001:db8:40:222::2


PING 2001:db8:40:222::2(2001:db8:40:222::2) 56 data bytes
64 bytes from 2001:db8:40:222::2: icmp_seq=1 ttl=62 time=1.98 ms
64 bytes from 2001:db8:40:222::2: icmp_seq=2 ttl=62 time=1.32 ms
64 bytes from 2001:db8:40:222::2: icmp_seq=3 ttl=62 time=1.33 ms
^C
--- 2001:db8:40:221::2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 1.327/1.546/1.981/0.307 ms

*****De h11 sur pod1 à serveur s21 sur pod2*****

6deploy@h11:~$ ping6 2001:db8:40:251::2


PING 2001:db8:40:251::2(2001:db8:40:251::2) 56 data bytes
64 bytes from 2001:db8:40:251::2: icmp_seq=1 ttl=62 time=1.78 ms
64 bytes from 2001:db8:40:251::2: icmp_seq=2 ttl=62 time=1.23 ms
^C
--- 2001:db8:40:251::2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 1.233/1.506/1.780/0.276 ms

31

Vous aimerez peut-être aussi