mercredi 7 mai 2014

Configuration des protocoles de routage IPV6

Maintenant que vous maitrisez la théorie de base qui entoure l’IPv6, passons aux choses sérieuses.
Nous allons voir comment configurer une interface, comment configurer les différents protocoles de routages, mais aussi comment fonctionne le Ping en IPv6, comment fonctionne Neighbor Discovery (le remplaçant d’ARP), etc…

1)     Présentation de la topologie

 Pour ces manipulations, nous allons utiliser une topologie unique.
La voici :
Nous avons trois grands réseaux. Chacun d’eux utilisent un protocole de routage différent.
Entre R1, R2 et R3, nous utiliserons des routes statiques.
Mais avant cela, attardons nous sur la configuration basique, c’est-à-dire les adresses IPv6.

 2)     Configuration d’interface
 Commençons par le plus important : les interfaces !
 Cela peut paraitre simple, mais en fait il y a plus de choses à maitriser qu’en IPv4.
Nous avons vu qu’il y a trois types d’adresse :
  • La Local Link
  • La Global
  • La Site Local
La site Local n’étant plus utilisée, il nous reste les deux autres.
Laquelle allons-nous mettre sur nos interfaces ?
Les deux !
Et oui, chaque interface de notre routeur aura deux IPv6.
La Global pour les communications standards, et la Link Local pour la découverte de voisin, l’échange d’infos pour les protocoles de routage, etc…
 Commençons par configurer la Global (en utilisant les IP de la topologie) :
R1(config)#interface fastEthernet 0/0
R1(config-if)#ipv6 address 2001:12::1/64
R1(config-if)#no shutdown
 Pour voir le résultat 

L’IP Global est bien configurée.
Mais vous pouvez voir que l’IP Link Local est aussi configurée.
 En fait, elle est auto configurée.
Pour auto configurer son IP, une interface prend le préfix (ici FE80::64) et y ajoute l’identifiant de l’interface.
Pour obtenir son identifiant unique (EUI-64), l’interface effectue une manipulation à partir de son adresse MAC, afin d’obtenir une adresse de 64 bits.
 Pour bien comprendre le processus, voyons comment R1 a pu trouver son IP Link Local au format EUI-64.
Sur la capture précédente, vous pouvez voir le fameux préfix FE80:: /64
La deuxième moitié de l’adresse est calculé automatiquement par le routeur.
Pour cela il a besoin de l’adresse MAC de l’interface :

L’adresse MAC est donc : C200.0B60.0000 
Il va ensuite ajouter la valeur FFFE au milieu de l’adresse
Ce qui nous donne : C200.0BFF.FE60.0000
Dernière étape : inverser le 7ème bit
Voici le début de l’adresse en binaire (C2) : 11000010
En inversant le 7ème bit, nous obtenons, 11000000, soit C0
L’adresse devient alors C000.0BFF.FE60.0000 
En y ajoutant le préfix FE80 ::/64 l’adresse Link Local complète devient :
FE80:0000:0000:0000:C000:0BF:FE60:0000
Cela correspond bien à l’IP donné par le routeur :
Voici donc comment en IPv6 nous pouvons auto configurer une IP au format EUI-64.
Il faut donc un préfix de 64 bits, plus l’identifiant de l’interface (le EUI-64).
Il est possible d’auto configurer une IP Link Local, mais aussi une IP Global.
 Pour résumer, nous avons configuré une IP Global (sur R1 fa0/0) à la main, et l’IP Link Local s’est auto configuré.
Faisons donc l’inverse sur R2 !
Nous allons configurer l’IP Link Local à la main, et laisser R2 déterminer l’IP Global.
Commençons par l’IP Link Local
R2(config-if)#no shutdown
R2(config-if)#ipv6 address FE80::2 link-local
 Passons à l’IP Global
Étant donné que R2 ne peut pas deviner le préfix, il faut que R1 l’annonce.
Il faut donc passer les commandes suivantes sur R1 :
R1(config)#ipv6 unicast-routing
R1(config)#interface fastEthernet 0/0
R1(config-if)#ipv6 nd prefix 2001:12::/64
 Maintenant que R1 annonce le préfix, il ne reste plus qu’à dire à R2 de le récupérer :
R2(config-if)#ipv6 address autoconfig
 Et voici le résultat :
Libre à vous de choisir la technique de votre choix pour configurer les IP sur les autres routeurs / interfaces.
 Mais avant de passer à la suite, voyons ce qui se passe quand nous configurons une IPv6.
Pour cela, plaçons-nous sur R2 s0/0 et activons le debug ND (Neighbor Discovery) :
R2(config)#interface serial 0/0
R2(config-if)#no shutdown
R2(config-if)#do debug ipv6 nd
ICMP Neighbor Discovery events debugging is on
 Ensuite, configurez l’IP puis observez les Log :
Quand une IP est configurée en IPv6, le routeur s’assure que l’IP est unique. Il fait cela pour l’IP Link Local et pour la Global.
Tout d’abord, le routeur envoie un NS – Neighbor Solicitation. Cela permet de vérifier si quelqu’un utilise déjà cette IP.
Si personne ne répond, le log DAD – Detection Address Double indique que l’IP est libre.
Enfin, le routeur envoie un NA – Neighbor Advertisement pour indiquer qu’il prend cette IP.
 Vous pouvez voir que le même processus est utilisé pour l’IP Global.
Quand vous avez fini, n’oubliez pas désactiver le débug
R2#undebug all
 Si toutes les IP sont configurées, vous pouvez passer à la suite.
 3)     Le Ping en IPv6
 Afin de tester les IP, quoi de mieux qu’un Ping
Pour lancer un Ping, la commande est presque là même :
Mais que se passe-t-il en coulisse ?
Que se passe-t-il quand on ne connait pas encore l’adresse MAC du voisin ?
En IPv4, il faut d’abord envoyer une requête ARP.
Et en IPv6 ?
Nous en avons déjà parlé. Le protocole ND – Neighbor Discovery est utilisé.
Concrètement, avant de pouvoir lancer un Ping, il faut connaitre l’adresse MAC de la destination.
Pour connaitre celle-ci, le routeur va envoyer une requête NS – Neighbor Solicitation en multicast, sur une adresse à laquelle la destination est abonnée.
 Prenons un exemple, ce sera bien plus simple.
Nous souhaitons faire un Ping de R1 vers R2.
R1 a pour IPv6 2001:12::1 et R2 2001:12::2
Nous allons donc envoyer un Ping vers 2001:12::2
C’est ici que NS entre en jeu.
Avant d’envoyer le Ping, R1 va envoyer un NS sur l’IP FF02::1:FF00:2
Cette IP est du type Local Link.
Vous pouvez voir que R2 y est abonné :

Mais comment R1 a deviné cette IP ?
Et bien simplement que cette IP respecte un schéma bien précis.
Elle est constituée du préfix FF02 ::/64 suivi de 0001:FFxx:xxxx (où les « x » correspondent aux 24 derniers bits de l’IP Global).
Donc pour résumer, R1 veut envoyer un Ping à R2 sur 2001:12::2
Il commence par envoyer un NS sur FF02::1:FF002
R2 va recevoir ce message, et va y répondre (NA – Neighbor Advertisement) car il y est abonné.
En répondant, il donne son adresse MAC à R1.
Après quoi, R1 peut envoyer un Ping à R2.
 Au passage, si deux routeurs ont les mêmes 24 derniers bits dans leur IP, ils recevront tous les deux le message NS. Par contre, seul le routeur concerné y répondra.
 Si vous souhaitez une petite démonstration, voici les étapes :
  • Vider la table de voisinage IPv6 : « clear ipv6 neighbors »
  • Lancer une capture WireShark : Clic droit sur le lien R1 -> R2, puis « Start Capturing »
  • Lancer le Ping : « ping ipv6 2001:12::2 repeat 1 »
  • Ouvrir WireShark : Clic Droit sur le lien, « Open WireShark »

Et voici les 4 étapes d’un Ping (seulement quand le routeur ne connait pas l’adresse MAC du voisin)
Une fois l’adresse connue, plus besoin de NS et NA.
 Il faut donc retenir
NS – Neighbor Solicitation : permet de déterminer l’adresse de niveau 2 d’un routeur voisin, ou de vérifier si l’adresse est utilisée.
NA – Neighbor Advertisement : permet de répondre à un NS, ou d’annoncer un changement d’adresse.
 4)     Configuration de routes statiques
 Il n’est pas nécessaire de tergiverser, les routes statiques n’ont rien de spécial.
Avant de pouvoir effectuer du routage IPv6, il faut entrer la commande suivant sur tous les routeurs
R1(config)#ipv6 unicast-routing
R2(config)#ipv6 unicast-routing
Etc…
Pour créer une route statique, rien de plus simple :
R2(config)#ipv6 route 2001:36::/64 serial 0/0
R2(config)#ipv6 route 2001:45::/64 2001:24::4
R2(config)#ipv6 route 2001:34::/64 serial 0/1
 Les commandes se passent d’explication !
 Faites de même pour R3 et R4 :
R3(config)#ipv6 route 2001:12::/64 serial 1/0
R3(config)#ipv6 route 2001:45::/64 serial 0/1
R3(config)#ipv6 route 2001:24::/64 serial 0/1
 R4(config)#ipv6 route 2001:12::/64 serial 0/0
R4(config)#ipv6 route 2001:36::/64 serial 0/1
R4(config)#ipv6 route 2001:23::/64 serial 0/0
 Très simple n’est-ce pas ?
 5)     Configuration de RIPng
 RIPng est la version IPv6 de RIP v2.
Il fonctionne de la même manière, possède les mêmes attributs, etc…
Les MAJ sont envoyées en multicast sur l’IP FF02 ::9 en UDP (port 521)
Pour ce qui est de l’authentification, elle n’est plus gérée par RIP, mais directement par IPv6.
 L’activation de RIP se fait directement sur les interfaces :
R1(config)#interface fastEthernet 0/0
R1(config-if)#ipv6 rip IPV6LAB enable
 R2(config)#interface fastEthernet 0/0
R2(config-if)#ipv6 rip IPV6LAB enable
R2(config)#interface serial 0/0
R2(config-if)#ipv6 rip IPV6LAB enable
R2(config)#interface serial 0/1
R2(config-if)#ipv6 rip IPV6LAB enable
 R2(config)#ipv6 router rip IPV6LAB
R2(config-rtr)#redistribute static
 Voyons si cela a fonctionné :
En effet, R1 connait toutes les routes !
Un petit Ping pour tester :
La commande « Debug ipv6 rip » permet d’observer le fonctionnement des MAJ RIPng :
Vous pouvez constater que ce sont les IP Link Local qui sont utilisées pour l’envoie de MAJ.
Quant à la version du protocole, il ne s’agit pas de RIP v1, mais de RIPng v1.
 6)     Configuration d’OSPF V3
 La version 3 d’OSPF apporte quelques changements par rapport à la version 2.
Nous laisserons la théorie de côté pour cette fois.
Concentrons-nous sur la pratique, qui elle n’a rien de difficile.
R5(config)#ipv6 router ospf 1
R5(config-rtr)#router-id 5.5.5.5
 R5(config)#interface fastEthernet 0/0
R5(config-if)#ipv6 ospf 1 area 0
 R4(config)#ipv6 router ospf 1
R4(config-rtr)#router-id 4.4.4.4
R4(config-rtr)#redistribute static
R4(config-rtr)#passive-interface serial 0/0
R4(config-rtr)#passive-interface serial 0/1
 R4(config)#interface fastEthernet 0/0
R4(config-if)#ipv6 ospf 1 area 0
R4(config)#interface serial 0/0
R4(config-if)#ipv6 ospf 1 area 0
R4(config)#interface serial 0/1
R4(config-if)#ipv6 ospf 1 area 0
 Voyons la table de routage
Pour le reste, les commandes sont très semblables à la version 2.
 7)     Configuration d’EIGRP en IPv6
 Finissons par une configuration basique d’EIGRP en IPv6.
Voyons quelques commandes de bases pour le mettre en place.
 Premièrement, il faut activer le processus EIGRP :
R3(config)#ipv6 router eigrp 1
R3(config-rtr)#eigrp router-id 3.3.3.3 (l’ID est obligatoire si aucune IPV4 n’est configurée sur le routeur)
R3(config-rtr)#passive-interface serial 1/0
R3(config-rtr)#passive-interface serial 1/1
R3(config-rtr)#redistribute static
R3(config)#interface serial 1/0
R3(config-if)#ipv6 eigrp 1
R3(config)#interface serial 1/1
R3(config-if)#ipv6 eigrp 1
R3(config)#interface fastEthernet 0/0
R3(config-if)#ipv6 eigrp 1

R6(config)#ipv6 router eigrp 1
R6(config-rtr)#eigrp router-id 6.6.6.6
R6(config)#interface fastEthernet 0/0
R6(config-if)#ipv6 eigrp 1
 Constatons le résultat :

8)     Conclusion

 Et voilà, nous sommes arrivés au terme de notre configuration basique d’IPv6 !
Nous avons vu comment configurer des IP, des routes statiques, des protocoles de routage, etc…

Même si il ne s’agit là que d’un aperçu de ce qu’il est possible de faire, cela constitue une bonne base pour la suite.
Vous aurez pu constater que même si les commandes changent un peu, le principe reste le même.

samedi 3 mai 2014

IPv6 pour les Nuls : Théorie

Dans cette article nous allons revenir sur la théorie de base à connaitre sur l’IPv6.

1)     Introduction à IPv6

 Le protocole IP a été conçu, il y a plus d’une vingtaine d’années, pour connecter des millions d’ordinateurs. Depuis quelques années, IP est victime de son succès et ne permet plus de répondre à la demande de connexion de milliards de machines informatisées dont disposeront les internautes de demain.  Même si ce nombre peut paraitre très élevé, cela ne suffit pas à assigner une adresse à toutes les machines existantes. S’en est suivit la séparation entre IP privées et publiques, et l’arrivé du NAT.
Mais aujourd’hui, cela  ne suffit plus.
Presque toutes les IPv4 ont été assignées.
L’arrivée d’IPv6 va permettre de corriger ce problème, tout en apportant certaines nouveautés.
 Savez-vous combien d’IPv6 différentes il est possible de générer ?
Voici une représentation de ce chiffre : environ 67 milliards de milliards d’adresses … par mm² de surface terrestre !
Autant dire qu’il sera difficile d’atteindre la pénurie !
Le nombre est si grand, que seul 15% des IP seront exploitées dans un premier temps (ce qui ne veut pas dire que les 15% seront assignées).
 Mais l’augmentation du nombre d’adresse n’est pas le seul avantage de l’IPv6.
Plusieurs autres innovations sont de la partie :
  • Fin du NAT : plus d’IP privée (chaque machine aura sa propre IP)
  • IPSEC supporté de base
  • IP mobile : une machine peut garder sont IP quand elle se déplace
  • Un Header plus simple
  • Adresse auto configurée
  • Disparition du Broadcast
  • Disparition d’ARP (mais remplacée par Neighbor Discovery)

2)     Structure d’une IPv6

 Une IPv6 est codée sur 128 bits (contre 32 pour une IPv4).
Elle est composée de 8 groupes de 16 bits.
En voici un exemple : 
2001:0048:0000:0000:1D00:1111:0B48:1111
L’adresse n’est plus en décimale, mais en hexadécimal.
Etant donné qu’une IPv6 est bien plus compliquée à écrire qu’une IPv4, il est possible de la résumer.
La première chose à faire est de supprimer les groupes de « 0 » consécutifs.
L’adresse précédente devient donc :
2001:0048::1D00:1111:0B48:1111
Les groupes de « 0 » supprimés sont remplacés par un « :: »
Attention tout de même, il n’est pas possible de réaliser cette opération plusieurs fois.
Par exemple, il n’est pas possible de résumer l’adresse suivante de cette manière :
2001:AAAA:0000:0000: BBBB:0000:0000:1111 -> 2001:AAAA::BBBB::1111
Il faut donc choisir le plus grand groupe de « 0 », et le supprimer.
 Ensuite, il faut supprimer tous les « 0 » en début de groupe :
L’adresse précédente (2001:0048::1D00:1111:0B48:1111) devient alors :
2001:48::1D00:1111:B48:1111
Les « 0 » en fin de groupes doivent être conservés.
Nous sommes donc passés de ça :
                                         2001:0048 :0000:0000:1D00:1111:0B48:1111
A ça :                                       2001:48::1D00:1111:B48:1111
Bien plus simple à écrie n’est-ce pas ?

3)     Entête IPv6

 Voici à quoi ressemble l'entête IPv6 :
Vous remarquerez qu’il est bien plus simple que celui d’IPv4.
Le nombre de champs a été largement réduit.
Voici le détail :
  • Version : version d’IPv6, toujours à 6
  • Traffic Class : utile pour la QOS. Permet de distinguer les sources qui doivent disposer de contrôle de flux, par rapport aux autres. Une valeur de 0 à 7 est donnée aux sources capables de ralentir leur débit. Une valeur de 8 à 15 est donnée aux sources qui doivent disposer d’un débit constant (VOIP, vidéo, etc…). Ainsi, en cas de congestion, le routeur pourra prioriser le trafic des sources ayant le Traffic Class le plus faible.
  • Flow Label (optionnel) : permet de traiter un flux différemment dans le réseau. Un numéro aléatoire est choisi par la source, et sera gardé pour tous les paquets allant à une certaine application de la destination. Les routeurs pourront alors traiter ces données-là de manière différente. Exemple : temps réelle.
  • Payload Length : taille de la charge utile (permet au routeur de reconnaitre la fin du paquet)
  • Next Header : identifie le type du Header suivant  (TCP, UDP, ICMP, ou simple extension IPv6)
  • Hop Limit : similaire au TTL de l’IPv4
  • Source Address : Adresse IP source du paquet
  • Destination Address : Adresse de destination du paquet
Le nombre réduit de champs par rapport à l’IPv4 allège le travail des routeurs, car ils ont moins d’informations à traiter. 
Cela améliore aussi la sécurité (moins d’informations vitales qui transitent).
Autre nouveauté dans IPv6, il est possible d’utiliser des extensions. Ce sont en fait des Header qui sont placés après le Header IPv6, et avant le Header de la couche 4 (TCP, UDP, etc…)
Le champ Next Header permet de les identifier.
Voici la liste des extensions possibles :

Ces extensions peuvent se combiner entre elles.
Par exemple, pour de l’IPSec : Destination Option, AH et ESP. 

4)     Les 3 types de communication

 Voyons maintenant les trois types de communications en IPv6.
Vous le savez, en IPv4 nous avions ces trois types là :

  • Unicast
  • Broadcast
  • Multicast

En IPv6, le Broadcast a disparu. 
Nous avons alors les trois types de communication suivants :

  • Unicast : One To One
  • Multicast : On To Many
  • Anycast : One To Nearest (ou One to One Of Many)

 Pas de changement pour les deux premiers par rapport à IPv4.
L’Anycast fonctionne un peu comme le Multicast.
Une IP unique représente plusieurs interfaces.
Par contre, quand un paquet est envoyé sur une IP Anycast, il est en réalité envoyé à l’interface la plus proche.
Au passage, voici certains ranges Multicast en IPv6 :
  • FFx2 ::/16 : Ne peut pas être routé (équivalent de 224.0.0.0 /24) Utile pour les MAJ de routage
  • FF02 ::5 : OSPF
  • FF02 ::9 : RIP
  • FF02 ::a EIGRP
 5)     Les 3 types d’adresses
  •   Link-Local Address :

Ce type d’adresse est valide uniquement pour les interfaces connectées sur le même lien (c’est-à-dire sans passer par un routeur).
Exemple : lien PPP, Ethernet etc…
Il n’est donc pas possible de router un paquet ayant ce type d’adresse. 
Ce type d’adresse est utilisé pour la découverte de voisin (Neighbor Discovery en remplacement d’ARP), la configuration automatique d’adresse globale, l’échange d’infos pour les protocoles de routage, etc…
Ces IP doivent bien sûr être uniques. 
Le préfix d’une telle IP est : FE80 ::/64 (soit FE80:0000:0000:0000) jusqu’à FEBF ::/64 
En général, elle est auto-configurée (grâce à une combinaison du préfix et de l’adresse MAC) 

  • Site-Local Address :

Ce type d’adresse n’est plus utilisée.
Il s’agissait plus ou moins d’une IPv6 privée.
Mais comme nous l’avons dit, l’IPv6 a fait disparaitre cette notion de privé / publique.
Donc finalement, ce type d’adresse n’a plus vraiment d’intérêt. Le préfix est va de FEC0::/64 à FECF::/64 

  • Global Address :

C’est le type d’adresse qui nous intéresse le plus.
Celle-ci est routable sur internet. 
Elle est découpée en plusieurs parties : 
Les premiers 48 bits correspondent au préfix global. Il vous est attribué par votre FAI.
Les prochains 16 bits correspondent au Subnet ID, ce qui vous permet de créer des sous réseaux.
Les derniers 64 bits représentent l’interface 
Il est donc simple pour une interface de configurer cette IP automatiquement.
Pour cela, elle récupère le préfix global avec le Subnet ID, puis elle y ajoute l’interface ID (calculé à partir de l’adresse MAC). Le préfix va de 2000 à 3FFF.
 6)     Transition vers IPv6
 L’IPv6 est de plus en plus présente. Mais comment se fait la transition ?
Il n’est malheureusement pas possible de passer tous les réseaux à l’IPv6 en un jour.
 Vous l’aurez donc deviné, il est nécessaire de faire cohabiter l’IPv4 et l’IPv6.
 Aussi, pour assurer la cohabitation, différentes technologies existent.
Voyons trois d’entre elles. 

  • Le Dual-Stack

Cette technique est l’une des meilleures.
Le principe est simple. Le routeur fonctionne à la fois en IPv4 et en IPv6.
Il peut donc faire transiter du trafic en IPv4 ou en IPv6 selon la source / destination. 
Si possible, les machines utiliserons IPv6 pour communiquer, et sinon, l’IPv4. 
En pratique, voilà à quoi cela peut ressembler :
Vous pouvez voir que le routeur fonctionne en IPv4 ou en IPv6 selon la source.
Les interfaces posséderont donc 2 IP. 

  • Tunneling

Si vous êtes contraint de passer par un réseau IPv4 pour connecter des réseaux IPv6 (ou inversement), le tunneling est une solution envisageable. 
On parle de « 6 to 4 » quand des paquets IPv6 passent dans un tunnel à travers un réseau IPv4.
On parle de « 4 to 6 » quand des paquets IPv4 passent dans un tunnel à travers un réseau IPv6. 
Prenons l’exemple de 6 to 4.
Les paquets IPv6 seront encapsulés dans un paquet IPv4 le temps du passage dans le réseau IPv4.
Le protocole utilisé pour le tunnel est GRE. 
Voici un exemple d’implémentation :

  • NAT-PT (NAT Protocol Translation)

Dernière solution abordée, le NAT. 
Cette solution n’est pas à utiliser si l’une des deux autres solutions précédentes est possible. 
Le but du NAT-PT est de connecter un réseau IPv6 directement à un réseau IPv4 (ou inversement). 
Le routeur se charge de changer les IP sources et destinations des paquets.
Voici un exemple d’implémentation :
7) Routage 
Les principes des protocoles de routage n’ont pas changé avec IPv6. Les travaux ont consisté en 
l’adaptation des protocoles existants au format des adresses. Ces protocoles profitent des propriétés 
maintenant incluses dans IPv6 comme l’authentification ou le multicast. Comme dans IPv4, on distingue 
le routage interne et le routage externe.  
  •  Routage interne  

Les protocoles dits de routage interne permettent une configuration automatique des tables de routage. Les routeurs découvrent automatiquement la topologie du réseau et déterminent le plus court chemin pour atteindre un réseau distant. En plus protocoles propres aux constructeurs de routeurs, il existe deux  protocoles conçus par l’IETF : RIPng et OSPng. 
 RIPng est très proche de RIP utilisé dans IPv4. C’est un protocole de la famille “distant vector”. Dans ce protocole les routeurs s’échangent périodiquement leurs tables de routage. A la réception d’une table de routage, un routeur met à jour sa table sur la base des nouvelles données reçues. Si un routeur tombe en panne ou si une ligne tombe en panne, les autres routeurs ne recevant plus d’informations de ce routeur suppriment l’entrée correspondante à ce routeur de leur table de routage. 
 Le deuxième protocoles, OSPF (Open Shortest Path First), fait partie des protocoles dits “plus court 
chemin”. Il est plus efficace que le premier, mais il est difficile à mettre en œuvre. Ce protocole est fondé sur les principes suivants : 
- inondation fiable du réseau qui permet à chacun des routeurs de posséder une copie des configurations de tous les autres routeurs et peuvent alors calculer le plus court chemin entre deux points du réseau, 
- pour éviter le recalcul fréquent de toutes les tables de routage, OSPF offre la possibilité de découper le réseau en aires. Une aire principale (appelée backbone) doit pouvoir relier toutes les autres aires. Les modifications de tables de routage se limitent, le plus possible, à des aires  particulières
  • Routage externe 

 Le terme externe vient du fait qu’il s’agit d’un échange de tables de routage entre deux domaines  d’administration distincts, généralement entre un client et un fournisseur, un fournisseur et son  transporteur international ou entre fournisseurs et transporteurs internationaux. 
En IPv4, la notion de domaine d’administration est représentée par un numéro de système autonome (AS : Autonomous System). Il n’est pas clair que cette notion soit utile en IPv6 puisque dans un plan  d’adressage hiérarchique, le préfixe peut jouer une notion équivalente au numéro AS.  
Avec un protocole de routage externe, il ne s’agit pas de trouver la topologie du réseau, mais d’échanger des informations d’accessibilité explicite entre routeurs pour le faire. Toute annonce du réseau par un domaine implique qu’il accepte de router les paquets vers cette destination. Le protocole retenu pour IPv6 est BGP-4+ identique à BGP-4 utilisé dans IPv4.