Carlotronics
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # TP TCOM Protocole IPv6 et routage dynamique ![](https://s3.cri.epita.fr/hedgedoc-data.cri.epita.fr/uploads/4cfc1cc7-169d-4818-b86d-354953f15ac1.png) ## 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) » ![](https://s3.cri.epita.fr/hedgedoc-data.cri.epita.fr/uploads/1f2ef180-bb73-41f1-a7b6-6485e15aa08a.png) ### 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: ![](https://s3.cri.epita.fr/hedgedoc-data.cri.epita.fr/uploads/9b07db32-1c29-47f1-96c1-fa6898f9cd81.png) - Processus d'allocation des adresses ![](https://s3.cri.epita.fr/hedgedoc-data.cri.epita.fr/uploads/d023238c-1bba-4299-affa-b7bae3433365.png) #### 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: ![](https://s3.cri.epita.fr/hedgedoc-data.cri.epita.fr/uploads/fe56c204-8456-4f37-87dc-189cf6ee26b9.png) #### 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: ![](https://s3.cri.epita.fr/hedgedoc-data.cri.epita.fr/uploads/5928b438-b0cf-4e95-ac73-66aac23916c3.png) 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: ![](https://s3.cri.epita.fr/hedgedoc-data.cri.epita.fr/uploads/fc19042b-bd2c-48ab-954b-1ed5fcf73c6c.png) 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: ![](https://s3.cri.epita.fr/hedgedoc-data.cri.epita.fr/uploads/bb5d44c1-c5ea-42f9-8ee1-da60f4bfb199.png) > 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. ![](https://s3.cri.epita.fr/hedgedoc-data.cri.epita.fr/uploads/5f463e5f-d154-43db-9fb1-c0ef4bf718de.png) 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). ![](https://s3.cri.epita.fr/hedgedoc-data.cri.epita.fr/uploads/cef1b5c5-93a3-406a-94fd-41f87528cc87.png) ### 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: ![](https://s3.cri.epita.fr/hedgedoc-data.cri.epita.fr/uploads/61da9bf6-b7b8-4820-8722-4f78c4ae1a3c.png) > 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 ![](https://s3.cri.epita.fr/hedgedoc-data.cri.epita.fr/uploads/2347cf58-9e6e-4ea9-906e-08cf274d09b5.png) #### 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/).

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully