# TP TCOM Protocole IPv6 et routage dynamique

## Préambule
L'IPv6 est un protocole standard de niveau 3 (couche Réseau) défini dans la RFC 2460, et considéré comme le successeur du protocole IPv4 afin de résoudre les problèmes que ce dernier embarque tel que l'épuisement des adresses IPv4, le NAT qu'il induit et la mauvaise gestion de la fragmentation.
## Cours: Notions importantes sur IPv6
### Généralités
- L'IPv6 octroie un nombre d’adresses plus important qu'en IPv4 (**2^128** soit 3,4.10^38 adresses et 2^96 fois plus qu'en IPv4).
- Support accru pour la mobilité (roaming).
- Il y a une implémentation native du multicast (optionnel et défini à postériori en IPv4) et d'IPsec en IPv6.
- Support natif des extensions d'entête (pour l'ajout de « fonctionnalités » au protocole)
- Il existe trois types de communications IPv6:
- Unicast (adressé à une unique interface)
- Multicast (adressé à tous les membres d'un groupe)
- Anycast (adressé à un unique membre d'un groupe)
- Les principes fondateurs d'IPv4 sont également présents en IPv6 :
- Encapsulation des données dans des paquets ;
- Présence des adresses source et destination dans l'entête ;
- Transfert en mode datagramme (non connecté) ;
- Routage paquet par paquet ;
- Réseaux intermédiaires simples et agnostiques du type des données transportées au-dessus d'IP ;
- Pas de contrôle ni reprise sur erreur, laissés aux protocoles de couches supérieures ;
- Adressage hiérarchique.
> Remarque: La notion de broadcast n'existe plus en IPv6 ! Elle est remplacée par une prise en charge native du multicast.
- L'en-tête IPv6 est simplifié, mieux structuré et supporte nativement des « [extensions](http://livre.g6.asso.fr/index.php/Les_extensions) »

### Notions d'adressage IPv6
#### Adresses IPv6 et notation
Une adresse IPv6 est un mot de 128 bits, usuellement représenté sous la forme d'une chaîne hexadécimale de 8 groupes de 4 caractères séparés par des « **:** ». Ainsi, `2001:0db8:0f02:e2f0:0000:0560:0000:ff4f` représente une adresse IPv6 valide.
La **RFC 5952** définit un certain nombre de recommandations relatives à l'affichage d'adresses IPv6 sous forme canonique, parmi lesquelles :
- l'omission des bits « **0** » de poids fort en tête de champ : `2001:0db8:0f02:e2f0:0000:0560:0000:ff4f` peut être abrégé en `2001:db8:f02:e2f0:0:560:0:ff4f`) ;
- l'abréviation par `::` de plusieurs champs nuls consécutifs, une seule foix maximum et (de préférence) sur la première des plus longues occurrences :
- `2001:db8:f02:e2f0:0:560:0:ff4f` -> `2001:db8:f02:e2f0::560:0:ff4f`
- `2001:db8:0:560:0:0:0:ff4f` -> `2001:db8:0:560::ff4f`
- `2001:db8:0:0:560:0:0:ff4f` -> `2001:db8::560:0:0:ff4f`
- l'usage de lettres minuscules.
> Une adresse IPv6 peut donc avoir plusieurs représentations valides
L'usage de crochets pour entourer l'adresse IPv6 est nécessaire lors de l'écriture d'une URL :
- (IPv4) `http://142.250.179.99/` ou `http://142.250.179.99:80/`
- (IPv6) `http://[2a00:1450:4007:80d::2003]/` ou `http://[2a00:1450:4007:80d::2003]:80/`
Un équipement peut avoir plusieurs interfaces réseau, et chacune de ses interfaces supporte l'attribution de plusieurs adresses IPv6. Chaque adresse IPv6 associée à une interface passe par quatre états entre son ajout et sa suppression de l'interface :
| État | Description | Usabilité de l'adresse |
|------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| test (tentative) | le système effectue un test d'unicité de l'adresse sur le LAN (« Duplicate Address Detection, DAD ») via l'envoi de paquets ICMPv6 « Neighbor Sollicitation » | l'adresse ne peut pas être utilisée pour communiquer |
| préféré (preferred) | état « classique » d'une adresse | usage non restreint |
| déprécié (deprecated) | état pris par une adresse peu avant son invalidation (généralement lorsque son flag « preffered lifetime » descend à 0) | usage déconseillé ; l'adresse ne **doit** plus être utilisée comme adresse source pour l'établissement de **nouvelles** connexions applicatives, mais peut servir d'adressr source pour l'achèvement des connexions existantes. |
| invalide (unavailable) | | |
De même qu'en IPv4, les adresses IPv6 sont structurés en deux parties : le préfixe, et l'« identifiant d'interface ». La préconisation actuelle (qui n'a pas évolué depuis 20 ans) est d'utiliser des préfixes et identifiants d'interface de 64 bits chacun, séparant l'adresse en deux parties de même longueur.
#### Familles et portée des adresses IPv6
Il existe trois familles d'adresses IPv6, comme évoqué en introduction :
- Unicast :
- Ce sont les plus simples et les plus courantes
- Elles désignent une interface parmi toutes les interfaces du réseau (local ou Internet)
- Les paquets sont remis à l’interface identifiée de manière unique par l’adresse de destination
- La portée peut être :
- Globale (**GUA**) : unicité de l’identifiant alors valide sur l’ensemble de l’Internet
- Localement restreinte (**ULA**) : unicité de l’identifiant alors valide sur un espace privatif limité à un site ou à un campus
- Restreinte au lien (**LLA**) : réduite au seul lien ou domaine de diffusion auquel est attaché l’interface
- Multicast :
- Elles désignent un groupe d'interfaces appartenant à différents noeuds situés n'importe où sur le réseau (local ou Internet)
- Lorsqu’un paquet a pour adresse de destination une addresse multicast, il est acheminé par le réseau à toutes les adresses appartenant au groupe
- Anycast :
- Groupe d’interface (comme en multicast)
- Le réseau remet le paquet anycast à **un seul membre** du groupe
- La sélection du destinataire est à la charge du réseau
Chaque interface pouvant disposer de plusieurs adresses, il est courant d'avoir au moins une adresse IPv6 unicast de chaque portée (globale, locale, link-local) par interface.
La distribution des adresses se fait en fonction des besoins et de la localisation géographique, via différentes méthodes d'attribution :
- Configuration statique
- Autoconfiguration avec état (« statefull autoconfiguration » = DHCPv6, fonctionnant sur le même modèle que DHCP en IPv4).
- Autoconfiguration sans état (« **S**tate**L**ess **A**ddress **A**uto**C**onfiguration, SLAAC » = auto‐configuration de l’interface selon le prefixe et les options annoncés par le routeur. *Seules les options sont fournies par l'équipement émettant les annonces*).
Ces trois méthodes sont applicables quelle que soit la portée de l'adresse à configurer (LLA, ULA, GUA).
#### Identifiant d'interface
Le champ d'adresse unicast ID 64 bits peut être attribué de différentes manières :
- Configuré manuellement (généralement sur des routeurs / serveurs)
- Numéro pseudo aléatoire généré automatiquement (pour résoudre les problèmes de confidentialité)
- CGA ( Cryptographically Generated Adresses) (hachage avec clé publique RFC 3972)
- Assigné via DHCP
- Format EUI-64 pour la configuration automatique sans état qui étend l'adresse MAC de 48 bits à 64 bits en insérant ffee dans les 16 bits du milieu
EUI-64 pour « Extended Unique Identifier » ou « identifiant unique étendu » est une façon de former les adresses IPv6 de type unicast. On dit de cette méthode de formation des adresses qu'elle est unique car elle se base, pour se former, de l'adresse MAC de la carte réseau qu'elle utilise. Processus de formation:
- Adresse MAC de base: 0001:ace1:000c 48bits
- Ajout de 16bits(ff:fe): 0001:acff:fee1:000c 64bits
- Inversion du 7e bit( bit U = 1 = étendue globale, 0 = étendue locale): 0201:acff:fee1:000c EUI‐64
#### Adresses Réservées
Parmi les adresses réservées, certaines sont particulières et se distinguent des autres par leur rôle :
- **::/0** : toute la plage d’adresses IPv6, utilisé pour la configuration d’une route par défaut, par exemple
- **::/128** : il s’agit d’une adresse non spécifiée qui ne doit jamais être la destination d'un paquet, mais peut être utilisée comme adresse source en acquisition d’adresse IPv6 (ex: requête DHCP)
- **::1/128** : c’est l’adresse de loopback équivalent à l’adresse 127.0.0.1 du protocole IPv4
- **64:ff9b::/96** : il s’agit d’adresses réservées pour les traducteurs de protocoles définit dans la RFC6052 (RFC 6052)
- **::ffff:0:0/96** : il s’agit d’une représentation d’adresses IPv4 dans une structure particulière d’IPv6. Ces adresses sont utilisées par des logiciels, mais elles ne doivent pas être présentes sur le réseau
- **::ffff:0:0:0/96** : ce sont des adresses IPv4 traduites pour un usage particulier (le SIIT décrit par la RFC2765)
#### Adresses Globales Unicast (GUA)
Ces adresses sont équivalentes aux adresses publiques IPv4, routables aussi bien dans un réseau privé que sur Internet. La plage d’adresses 2000::/3 est réservée par l’IANA pour l’adressage publique (toutes les adresses commençant par les valeurs 2 et 3).
- Format d'adresse globale unicast:

- Processus d'allocation des adresses

#### Adresses Uniques Locales Unicast (ULA, RFC 4193)
Ces adresses sont équivalentes aux adresses privées IPv4 (RFC1918), routables uniquement au sein de réseaux privés, mais jamais globalement sur Internet.
La logique de subnetting est la même que pour les adresses globales, mais le préfixe « unique local » n’est pas géré globalement. Les adresses « unique local » doivent appartenir à la plage fd00::/8, et les normes les régissant recommandent de choisir un préfixe (de 32 à 48 bits en fonction des besoins) pseudo-aléatoire dans cette plage pour qu'il reste globalement unique, bien qu'il ne soit pas globalement routable, afin d'éviter les conflits en cas d'interconnexion de réseaux privés distincts.
Contrairement aux adresses privées en IPv4, les ULA IPv6 sont destinées à joindre les ressources des réseaux locaux, pas d'Internet ; il est donc (très très) fortement recommandé d'utiliser des GUA pour sortir sur Internet plutôt que de NATter des ULA.
- Format d'adresses uniques locales:

#### Adresses de Lien Local Unicast (LLA)
La portée de ces adresses est limitée au réseau local (au sens strict du terme, à savoir les interfaces partageant une même liaison ou un même domaine de diffusion) ; elles ne sont pas routables entre les réseaux locaux et sur Internet.
Elles sont obligatoire sur les interfaces pour la communication entre deux périphériques IPv6. Elles sont utilisés par des mécanismes importants pour le bon fonctionnement d'IPv6 (calcul du saut suivant dans les protocoles de routage, rendre la configuration du voisin BGP indépendante de ULA / GUA, Neighbor Discovery, par exemple).
- Format d'adresses locales de lien:

Les adresses « link-local » appartiennent au préfixe fe80::/10, les 54 bits restants pouvant être nuls ou configurés manuellement.
> Une interface pour laquelle on active IPv6 se génère automatiquement une adresse link‐local, soit en générant les 64bits hôte aléatoirement, soit en utilisant la méthode EUI‐64 (par défaut).
#### Adresses Multicast
En IPv6, il n’existe aucune adresse de broadcast. Cette notion est remplacée par des adresses multicast, propres à l’application associée.
Ces adresses sont préfixées par la plage ff00::/8.
Contrairement aux autres familles d'adresses, les adresses multicast ne sont pas attribuées à des interfaces, mais représentent un groupe d’interfaces cibles, dans un réseau local ou en dehors selon la portée de l’adresse (pas de différence avec le fonctionnement en IPv4 ici).
- Format des adresses multicast:

Le deuxième octet définit la durée de vie et la portée de l'adresse.
Quelques adresses multicast particulières :
- Les adresses **ff01::/16** de portée noeud local:
- **ff01::1** Tous les noeuds
- **ff01::2** Tous les routeurs
- Les adresses **ff02::/16** de portée lien local:
- **ff02::1** Toutes les machines du réseau local (remplaçant du broadcast). Toute interface fonctionnant en IPv6 rejoint ce groupe. (Son utilisation par les applications est dépréciée, voire même découragée)
- **ff02::2** Tous les routeurs du réseau local.
- **ff02::5** Tous les routeurs OSPFv3 du réseau local
- **ff02::6** Tous les routeurs OSPFv3 DR/BDR du réseau local
- **ff02::9** Tous les routeurs RIPng du réseau local
- **ff02::a** Tous les routeurs EIGRP du réseau local
- **ff02::1:ff00:0/104** « Sollicited Node multicast address » adresse multicast dérivée d’une adresse configurée sur l’interface concernée dont les 24 bits inférieurs proviennent de l'ID d'interface IPv6 Unicast, utilisé dans les messages de sollicitation de voisin.
- Les adresses basées sur unicast où chaque préfixe unicast est livré avec 2^32 adresses multicast, et fait partie la gamme SSM(Source-Specific Multicast) ff3x::/96, exemple:

> Remarque: Une trame ethernet qui véhicule un paquet IPv6 multicast aura généralement une adresse MAC destination multicast IPv6 sous la forme 3333.xxxx.xxxx(adresse MAC IPv6 multicast) avec les x qui sont mappés sur les 32 bits inférieurs de l'adresse IPv6 multicast.
#### Adresses Anycast
Ces adresses sont des adresses unicast attribuées à plusieurs noeuds/routeurs et ne dispose d'aucune plage spéciale.
Les adresses d'ordre élevé (dernières 128 adresses) d'un sous réseau sont réservées à Anycast.

Avec l'ID d'interface EUI-64, le 7ème bit (universel / local) est défini sur 0 pour indiquer que l'ID d'interface n'est pas unique.
###### Exemple: MIPv6 (Mobile IPv6) Home Agent utilise un ID Anycast = 7E
### NDP (Neighbor Discovery Protocol)
C'est un protocole de couche 3 utilisé par IPv6 servant principalement à la découverte des autres hôtes sur le même lien, à la résolution des adresses physiques en fonction d’une adresse IPv6 et à l'identification des routeurs présents. Il repose sur des messages ICMPv6.
NDP fournit à IPv6 des services similaires à ARP, mais fonctionne en multicast plutôt qu'en broadcast, et est moins dépendant du media qu'ARP, qui fonctionne essentiellement sur un media Broadcast.
NDP définit cinq types de paquets ICMPv6 :
- **Router Solicitation (RS)** (Type 133) : permet à un hôte de demander à tous les routeurs présents de lui envoyer un « Router Advertisement »
- **Router Advertisement (RA)** (Type 134): permet au routeur d'avertir de sa présence tous les nœuds du même L2. Il émettra ce paquet de manière périodique, ou en réponse à un paquet « Router Solicitation ».
- **Neighbor Solicitation (NS)** (Type 135): de même que les « ARP Request » en IPv4, ce message permet à un hôte de demander à (**quasiment**) tous les équipements du même L2 de se manifester s'ils possèdent une certaine adresse IPv6 afin qu'il l'enregistre dans sa liste de voisins.
- **Neighbor Advertisement (NA)** (Type 136): Ce message est utilisé en réponse à un paquet de type « Neighbor Solicitation ».
- **Redirect** (Type 137): permet aux routeurs de signaler aux hôtes qu'un meilleur chemin existe pour une destination précise que celle empruntée d'habitude.
NDP est utilisé pour les tâches suivantes:
- SLAAC (**S**tate**L**ess **A**ddress **A**uto **C**onfiguration) :obtention du préfixe et de sa longueur auprès du routeur via l'émission de paquets **Router Solicitation** et **Router Advertisement**
- Router Discovery : Découverte des routeurs présents dans le même réseau local
- Duplicate Address Detection : Détection de duplication d’adresse dans le réseau local via l'émission de messages **Neighbor Solicitation** demandant à résoudre sa propre adresse
- Neighbor Discovery : Obtention d’une adresse MAC en fonction d’une adresse IPv6 (équivalent ARP) via l'émission de messages **Neighbor Solicitation**
#### ICMPv6
**Internet Control Message Protocol version 6** est un protocole générique qui combine plusieurs fonctions IPv4 (ICMPv4, IGMP et ARP), avec des messages catégorisés en deux classes : error messages (type 1 à 127) et information messages. Il est utilisé pour rapporter des erreurs trouvées dans le traitement de paquets, effectuer des diagnostics, effectuer une découverte de voisinage, et rapporter l'appartenance à un multicast.
Il est **primordial** de ne pas filtrer les paquets ICMPv6 de type 1 à 127 sur un réseau (local et Internet) ; ce sont en effet eux qui permettent de connaître l'état du réseau et de signaler des défaillances de transmission.
Les datagrammes ICMPv6 sont transportés à l'intérieur de datagrammes IPv6 dans lequel un en-tête d'extension peut aussi être présent. Un message ICMPv6 est identifié par sa valeur 58 (0x3A) positionnée dans le champ Next Header de l'en-tête IPv6.
Les types de message sont similaires à ICMPv4:
- Destination inaccessible (type 1)
- Paquet trop gros (type 2)
- Temps dépassé (type 3)
- Problème de paramètre (type 4)
- Demande / réponse d'écho (type 128 et 129)
- Group Membership Query/Report/Reduction (type 130/131/132)
- Solicitation/Annonce de routeur (type 133 et 134)
- Solicitation/Annonce de voisin (type 135 et 136)
- Redirection (type 137)
#### SLAAC
StateLess Address Auto Configuration est l'un des deux moyens permettant l'allocation automatique d'adresses IPv6 aux hôtes du LAN. Il s'appuie sur les messages ICMPv6 **Router Advertisement**, qui contiennent toutes les informations nécessaires (préfixes CIDR, durée de vie des préfixes, serveur DNS, route par défaut).

### DHCPv6
DHCPv6 est l'autre protocole de configuration dynamique (Dynamic Host Configuration Protocol version 6) pour IPv6.
DHCPv6 est un mécanisme d'attribution des adresses IPv6 et de paramétrage de la connexion au réseau qui fonctionne comme DHCP, son équivalent en IPv4.
Contrairement à SLAAC, DHCPv6 est par défaut **avec état** : il assigne des adresses aux hôtes et en conserve une trace en mémoire. Il peut cependant être utilisé en complément de SLAAC pour ne fournir que des options de configuration (l'adresse du serveur DNS, par exemple) mais pas d'adresse IPv6.
Le message ICMPv6 de type **Router Advertisement** contient deux options permettant d'indiquer aux hôtes la présence d'un serveur DHCPv6 :
- **M** (Managed Address COnfiguration) : Indique à l'hôte de demander au serveur DHCPv6 « avec état » les options du réseau ET une adresse IPv6 ;
- **O** (Other Stateful Configuration) : Indique à l'hôte de ne demander au serveur DHCPv6 **que** les options du réseau
Les adresses Multicast utilisées par le client sont :
- ff02::1:2 = Tous les agents DHCP (serveurs ou relais, étendue de liaison locale
- ff05::1:3 = Tous les serveurs DHCP (étendue locale du site
Les clients écoutent sur le port UDP 546; les serveurs et les agents de relais écoutent sur le port UDP 547.
Le types de messages utilisés dans le handshake sont:

> Le serveur maintient une base de données des liens (des baux) en 4 échanges (Solicit -> Advertise -> Request -> Reply) ou en 2 échanges (rapid commit: Solicit -> Reply)
## Partie TP
### Introduction
#### Objectif
Le but de ce TP est de configurer des LANs adressés en IPv6 par SLAAC et DHCP, de mettre en place du routage dynamique avec de l'OSPF à un niveau local et du BGP au niveau de l'interconnexion avec les assistants, votre « fournisseur d'accès ».
Vous serez par groupe de 2, donc répartissez vous les taches.
#### Matériel à disposition
Pour ce TP, le matériel suivant vous est fourni :
- 2 routeurs Cisco 1841
- 1 câbles console
- 4 câbles droits
#### Support nécessaire
Avoir une machine par personne avec Linux ou Windows et un terminal console :
- sous linux, nous recommandons d'utiliser Minicom
- sous Windows, le plus simple est d'utiliser Putty
#### Schema d'architecture cible

#### Ressources IP
Chaque groupe dispose d'un préfixe /61 globalement unique, dont il devra déterminer le plan d'adressage, et d'un prefixe d'interconnexion avec les assistants.
| **Groupe** | **Préfixe** | **Préfixe d’interconnexion** | **ASN** | **IP d’interconnexion** |
|------------|--------------------------|------------------------------|---------|--------------------------|
| 1 | 2a0f:9240:2000:240::/61 | 2a0f:9240:2000:210::/64 | 64501 | 2a0f:9240:2000:210::2/64 |
| 2 | 2a0f:9240:2000:248::/61 | 2a0f:9240:2000:211::/64 | 64502 | 2a0f:9240:2000:211::2/64 |
| 3 | 2a0f:9240:2000:250::/61 | 2a0f:9240:2000:212::/64 | 64503 | 2a0f:9240:2000:212::2/64 |
| 4 | 2a0f:9240:2000:258::/61 | 2a0f:9240:2000:213::/64 | 64504 | 2a0f:9240:2000:213::2/64 |
| 5 | 2a0f:9240:2000:260::/61 | 2a0f:9240:2000:214::/64 | 64505 | 2a0f:9240:2000:214::2/64 |
| 6 | 2a0f:9240:2000:268::/61 | 2a0f:9240:2000:215::/64 | 64506 | 2a0f:9240:2000:215::2/64 |
| 7 | 2a0f:9240:2000:270::/61 | 2a0f:9240:2000:216::/64 | 64507 | 2a0f:9240:2000:216::2/64 |
| 8 | 2a0f:9240:2000:278::/61 | 2a0f:9240:2000:217::/64 | 64508 | 2a0f:9240:2000:217::2/64 |
### Méthodes et commandes de configuration des routeur
Les cartes d'extension 4xRJ45 insérées dans les routeurs ne prennent pas en charge les fonctions L3 (ajout d'adresses IP[v6]) ; il faut donc créer un Vlan, y ajouter l'adresse souhaitée, puis passer l'interface en mode Access sur le Vlan configuré.
Exemple pour ajouter l'adresse IPv6 `2001:db8::1/64` à l'interface `FastEthernet 0/0/0` :
> Routeur#vlan database
> Routeur(vlan)#vlan 10
> Routeur(vlan)#exit
> Routeur#conf t
> Routeur(config)#interface vlan 10
> Routeur(config-if)#ipv6 address 2001:db8::1/64
> Routeur(config)#exit
> Routeur(config)#interface f0/0/0
> Routeur(config-if)#switchport mode access
> Routeur(config-if)#switchport access vlan 10
> Routeur(config-if)#no shutdown
Attention, les interfaces de ces cartes d'extension sont numérotées de droite à gauche.
Le support d'IPv6 doit être activé explicitement sur les interfaces des routeurs Cisco contrairement aux systèmes d’exploitation courants comme Windows ou Linux (pour lesquels IPv6 est activé par défaut).
L'activation d'IPv6 sur chaque interface d'un routeur Cisco peut se faire soit via l'ajout d'une adresse IPv6 à l'interface, soit via la commande `ipv6 enable` :
> Routeur(config)#interface fastEthernet 0/0
> Routeur(config-if)# **ipv6 enable**
> Routeur(config-if)# **ipv6 address X\:X\:X\:X\::X/<0-128>**
> Routeur(config-if)#no shutdown
Cela provoque également la génération d’une adresse link‐local sur l'interface concernée.
Configuration manuelle:
- Configuration d’une adresse unicast IPv6 manuelle (hors link‐local ou anycast)
> Routeur(config-if)#ipv6 address 2001\:db8::1/64
- Configuration d’une adresse unicast IPv6 EUI‐64 (hors link‐local ou anycast)
> Routeur(config-if)#ipv6 address 2001\:db8::/64 eui-64
Configure l’adresse unicast globale selon la méthode EUI‐64, 2001\:db8::, suivi de l’identifiant EUI‐64 dérivé de l’adresse MAC de l’interface.
Affichage de la table des voisins IPv6 (équivalent table ARP en IPv4)
> Routeur# show ipv6 neighbors
Affichage sommaire des interfaces et adresses IPv6
> Routeur# show ipv6 interface brief
Activation des fonctionnalités de routage unicast IPv6, les interfaces actives en IPv6 rejoindront également le groupe multicast ff02::2 (tous les routeurs du réseau):
>Routeur(config)# ipv6 unicast-routing
Sans cette commande le routeur se comporte comme un simple hôte IPv6.
Désactivation de l'émission de paquets ICMPv6 de type « Router Advertisement » sur une interface (utile pour les liaisons p2p, par exemple) :
> Routeur(config-if)# ipv6 nd ra suppress
Activation de la session BGP :
> Routeur(config-router)# address-family ipv6
Routeur(config-router-af)# neighbor 2001:db8::17 activate
Routeur(config-router)# exit
Activation du SLAAC:
> Router(config-if)#ipv6 address 2001:db8::1/64
> Router(config-if)#no ipv6 nd ra suppress
> Router(config-if)#no ipv6 nd other-config-flag
> Router(config-if)#no ipv6 nd managed-config-flag
Les deux dernières commandes permettent de s'assurer que le routeur n'indique pas aux hôtes d'aller chercher des options/adresses en DHCPv6.
Ajout de l'option RDNSS aux Routers Advertisement :
> Router(config-if)#ipv6 nd ra dns server \<dns-server>
Configuration de « stateless DHCPv6 » (en complément de l'activation de SLAAC) :
> Router(config)#ipv6 dhcp pool my-pool
> Router(config-dhcpv6)#dns-server \<dns-server>
> Router(config-if)#ipv6 nd other-config-flag
> Router(config-if)#ipv6 dhcp server my-pool
Il faut au prealable que les fonctionnalités de routage unicast IPv6 soient activées pour que les routeurs Cisco envoient des paquets ICMPv6 « Router Advertisement ».
Pour que le routeur accepte d'annoncer votre préfixe en BGP, il doit disposer d'une route vers celui-ci :
> Router(config)#interface null0
> Router(config-if)#exit
> Router(config)#ipv6 route \<your-/61-prefix> null0
Configuration de l'adresse IP du résolveur DNS :
> Router(config)# ip domain lookup
> Router(config)# ip name-server **dns-server-address**
### Déroulé du TP
#### Plan d'adressage
Vous avez normalement 3 sous-réseaux physiques distincts à adresser. Il vous revient de déterminer la taille des préfixes dans votre réseau, le préfixe alloué à chacun des 3 sous-réseaux physiques et l'adresse IPv6 de chaque patte de vos routeurs.
#### Configuration des équipements
1. Configurez les adresses IPv6 des trois interfaces du routeur de bordure et des deux interfaces du routeur de coeur.
Vous devriez être capable :
- de « ping » le routeur de coeur depuis le routeur de bordure ;
- de « ping » le routeur des assistants (dont l'IP s'obtient en remplaçant `::2` par `::1` dans l'adresse d'interconnexion)
2. Activez le routage IPv6 unicast sur les deux routeurs.
**Configurez ensuite OSPFv3 entre les routeurs de coeur et de bordure, de sorte que le routeur de coeur annonce une route vers le préfixe associé à son interface `FastEthernet 0/1`, et que le routeur de bordure annonce une route par défaut.**
3. Configurez sur le routeur de borduhttps://hedgedoc.cri.epita.fr/s/x7FJDwdbZ#re une session BGP avec le routeur des assistants (IP d'interconnexion mentionnée précédemment, et AS 64496).
Vous devez annoncez au routeur des assistants le préfixe qui vous a été assigné (cf. tableau) en utilisant votre ASN (cf. tableau).
Sur le routeur edge, vous devez annocez la route vers votre préfixe <your-/61-prefix> en BGP.
Sur les routeurs edge et coeur, configurez l'adresse IP du résolveur DNS qui est : 2A0F:9240:2000:202::1
#### Autoconfiguration sur les interfaces f0/1 des routeurs
Il vous reste désormais à configurer les protocoles d'autoconfiguration sur vos deux routeurs pour que les équipements que vous y connecterez puissent avoir accès à Internet sans action préalable.
Vous devez configurer vos routeurs avec du Stateless DHCPv6 --> SLAAC + DHCPv6 stateless (adresses construites à partir des annonces SLAAC, et options obtenues en DHCPv6).
###### Remarque: Il est théoriquement possible de faire du DHCPv6 statefull (adresses et options obtenues en DHCPv6) mais les routeurs dont nous disposons n'offrent pas cette possibilité
Pour le routeur de bordure, la seule option à renseigner dans le serveur DHCPv6 est l'adresse du serveur DNS : `2A0F:9240:2000:202::1`
---
# Crédits
La partie cours de ce document est largement inspirée du MOOC [Objectif IPv6](https://www.fun-mooc.fr/fr/cours/objectif-ipv6/) produit par l'[Institut Mines Télécom](https://www.imt.fr/).