You are on page 1of 26

I - Introduction IPv6

1.1 - IPv6: historique, contexte et objectifs


Le rseau Internet actuel, bas sur le protocole IPv4 a t initialement prvu pour relier au Maximum une centaine de machines. Hors on connat tous le succs actuel dInternet, et on a Vu le nombre dutilisateurs augmenter de manire exponentielle. Les plus pessimistes avaient prvu la saturation du rseau IPv4 ds 1994. Cette prvision ne sest pas ralise, car des mesures durgence ont t prises, comme par exemple le CIDR (Classless Interrompais Routing, RFC 1519), ladressage priv (RFC 1918) ou encore lutilisation du NAT (translation dadresses). Cependant, la situation nen est pas moins proccupante, et la pnurie dadresse IPv4 se fait sentir, particulirement en Asie et en Afrique. Un autre problme du protocole IPv4 concerne le routage : les noeuds du rseau IPv4 ont vu leur table de routage exploser ces dernires annes. Cette augmentation des tables dues une mauvaise hirarchisation des adresses, rend la gestion du rseau IPv4 de plus en plus complexe pour les routeurs, et il tait urgent de rsoudre ce problme en agrgeant les adresses IP au maximum. Pour ces raisons, lIETF a travaill sur une nouvelle version du protocole IP, permettant De pallier aux limites dIPv4. Cette nouvelle version est la version 6 du protocole. IPv6 est conu pour saffranchir des limitations dIPv4, mais aussi pour prendre en compte les avances issues des recherches sur les rseaux, comme lauto-configuration, la mobilit, le multicast ou encore la scurit. Lobjectif terme est de remplacer tous les systmes IPv4 par des systmes IPv6. Les routeurs prenant en charge la fois IPv4 et IPv6 peuvent tre utiliss pour relayer des informations entre les rseaux excutant le protocole IPv4 et dautres utilisant dj IPv6.

1.2 - IPv4 : certaines limites \ IPv6 : des atouts pour un relais de croissance
IPv4 : un espace dadressage gographique ingale restreint avec une rpartition

Le protocole IPv4, finalis en 1983 sadressait alors une communaut restreinte. Ainsi, ladressage dIPv4 est-il prvu sur 32 bits, ce qui permet de disposer dun "stock" de 4,3 milliards dadresses IP environ. A cette poque et avec la vision quavaient alors les responsables, savoir un rseau destin aux militaires et scientifiques (donc assez loigne de ce quallait devenir lInternet que nous connaissons aujourdhui), le stock paraissait plus que suffisant.

Aujourdhui, ce stock dadresses IPv4 est trs entam et si prs de 47% des adresses ne sont pas attribues (parmi le stock total dadresses), la rpartition gographique en est trs ingale. Les adresses alloues (destines tre utilises par un registre rgional ou par des organisations pre-RIR) reprsentent la majorit du stock et sont destines essentiellement la zone amricaine aux dpens de lAsie qui prsente pourtant un important potentiel de dveloppement (Chine, Inde). Il est galement noter, que parmi le total des adresses IPv4 disponibles, 53% ont t attribues directement des organisations (amricaines pour la plupart), avant lapparition des RIR qui ne les contrlent donc pas. Ainsi, en tenant compte de ces organisations pre-RIR, on peut estimer, fin 2001, que 74% des adresses alloues le sont pour lAmrique du Nord, 17% pour lEurope et 9% pour lAsie. IPv4 est face une explosion des besoins Outre la croissance organique encore forte dInternet dans le monde entier (particulirement en Asie o le potentiel de croissance est trs lev et les ressources en adresses trs faibles), bon nombre dapplications nouvelles, consommatrices dadresses IP devraient se dvelopper : larrive des services mobiles autour du GPRS. les accs haut dbit et le mode "always on". llectronique connecte et les vhicules communicants, les applications domotiques et rseaux de capteurs IPv4 : un protocole non pens pour un usage commercial dInternet Prvu lorigine pour des usages non commerciaux, IPv4 na pas t conu pour assurer les fonctions de QoS attendues aujourdhui, ni pour assurer les fonctions dauto-configuration ou Multicast, ou encore la scurit, essentielles dans lInternet commercial moderne. Des solutions ont t trouves pour assurer ces fonctions, alourdissant le protocole de couches supplmentaires, ou pour doper artificiellement la dure de vie du stock dadresses (NAT), faisant notamment exploser la complexit des tables de routage. Nous sommes ds prsent dans une priode de gestion de la pnurie dadresses IP Cette gestion de la pnurie dadresses se traduit par des politiques drastiques dattribution dadresses IPv4 pratiques par les RIR. De plus, lemploi gnralis des NAT permet de retarder la pnurie, mais cela alourdit la gestion des rseaux et constitue un frein au dveloppement dapplications temps rel et P2P. Ainsi, toutes choses gales par ailleurs, on peut estimer un puisement du stock dadresses IPv4 dici 2010. Limmense capacit dadressage dIPv6 justifie elle seule, le passage au nouveau protocole Malgr les divers avantages techniques dIPv6 dcrits ci-aprs, lessentiel, de lavis gnral des experts, reste lespace dadressage large, qui permettra de faire face aux besoins engendrs par le dveloppement des nouvelles applications always on et de rtablir lusage du mode end-to-end qui est le principal apport dIPv6 au niveau des applicatifs. Les

autres avantages techniques, bien que rels, ne prsentent pour lheure que des potentiels intressants, mais ne sont pas latout premier dIPv6 : Adressage hirarchique pour optimiser le routage, Autoconfiguration, IPSec natif, Multicast, Mobile IPv6. IPv6 prsente galement plusieurs avantages permettant de mieux grer la QoS mais qui ne sont pas encore significatifs. De manire gnrale, on considre que dans un premier temps, la QoS sera gre de la mme faon sous IPv6 que ce que lon connat aujourdhui sous IPv4.

1.3 - Convention de notation de l'adressage IPv6


Une adresse IPv6 est longue de 16 octets, soit 128 bits, contre 4 octets (32 bits) pour IPv4. On dispose ainsi d'environ 3,4 1038 adresses, soit 340 282 366 920 938 463 374 607 431 768 211 456, soit encore, pour reprendre l'image usuelle, plus de 667 132 000 milliards (6,67 1017) d'adresses par millimtre carr de surface terrestre. On abandonne la notation dcimale pointe employe pour les adresses IPv4 (par exemple 172.31.128.1) au profit d'une criture hexadcimale, o les 8 groupes de 16 bits sont spars par un signe deux-points :

Fedc: 0482: cafe: ba05:a200:e8ff:fe65:000a.

La notation canonique complte ci-dessus comprend exactement 39 caractres.

Les 64 premiers bits de l'adresse IPv6 (prfixe) servent gnralement l'adresse de sous rseau, tandis que les 64 bits suivants identifient l'hte l'intrieur du sous rseau : ce dcoupage joue un rle un peu similaire aux masques de sous rseau d'IPv4. Les "0" les plus gauche des mots de 16 bits ne se figurent pas dans l'criture.

Fedc: 0482: cafe: ba05:a200:e8ff:fe65:000a deviant ba05:a200:e8ff:fe65: a

fedc: 482: cafe:

La machine a200:e8ff:fe65:a sur le rseau Fed:6482:cafe:ba05

Fedc: 6482: cafe: ba05:a200:e8ff:fe65:df9a /64 L'adresse de boucle :1 a le mme rle qu'une adresse IPv4 127.0.0.1. Lorsqu'une machine utilise cette adresse, elle s'envoie des paquets IPv6 elle mme. L'adresse indtermine, cette adresse 0:0:0:0:0:0:0:0 (ou encore note "::") est utilise pendant l'initialisation de l'adresse IPv6 d'une machine. C'est une phase transitoire. Un ou plusieurs groupes de 4 zros conscutifs peuvent tre remplacs par un double deux-points : . C'est ainsi que l'adresse 8000:0000:0000:0000:0123:4567:89ab: cdef deviant: cdef 8000: 123:4567:89ab:

Il est pourtant parfois ncessaire de manipuler littralement des adresses IPv6. Le caractre ":" utilis pour sparer les mots peut crer des ambiguts. C'est le cas avec les URL o il est aussi utilis pour indiquer le numro de port. Ainsi l'URL http://2001:1234:12::1:8000/, peut aussi bien indiquer le port 8000 sur la machine Ayant l'adresse IPv6 2001:1234:12:1, que la machine 2001:1234:12:1:8000 en utilisant Le port par dfaut. Pour lever cette ambigut, le RFC 2732 propose d'inclure l'adresse IPv6 entre "[ ]". L'adresse prcdente s'crirait : http://[2001:1234:12::1:8000]/

1.4 - Les types\Porte dadresses IPv6


IPv6 supporte 3 types d'adresses: Unicast, Multicast et Anycast. Les adresses Unicast : Elles dsignent une et une seule machine. Elles comportent une partie rseau "prfixe" et une partie hte "suffixe" La partie rseau ou prfixe est code sur 64 bits : les 48 bits publics "Global Routing Prefix" et les 16 bits de site dfinissant le sous rseau La partie hte ou suffixe est code aussi sur 64 bits, fabrique partir de l'adresse MAC de l'interface, elle permet d'identifier la machine dans un rseau donn. Prenons par exemple cette adresse fe80:20d:61ff:fe22:3476

Les adresses Multicast : Le protocole IPv6 gnralise l'utilisation des adresses Multicast qui remplacent les adresses de type "broadcast" (diffusion) qui n'existent plus en IPv6. La raison de cette disparition est que l'mission d'un paquet broadcast tait trs pnalisante pour toutes les machines se trouvant sur un mme lien. Une adresse Multicast est une adresse dsignant un groupe d'interfaces donn. Une interface est libre de s'abonner un groupe ou de le quitter tout moment, c'est donc moins pnalisant qu'en IPv4. Le format des adresses Multicast est le suivant : ff01 : noeud local, les paquets ne quittent pas l'interface. ff02 : lien local, les paquets ne quittent pas le lien. ff05 : site local, les paquets ne quittent pas le site. Voici un exemple intressant d'utilisation d'adresse Multicast qui vous permet de dtecter les htes actifs sur le lien local :
# ping6 -I eth0 ff02::1 PING ff02::1(ff02::1) from fe80::20e:35ff:fe8f:6c99 eth2: 56 data bytes 64 bytes from ::1: icmp_seq=1 ttl=64 time=0.048 ms 64 bytes from fe80::20d:61ff:fe22:3476: icmp_seq=1 ttl=64 time=9.05 ms (DUP!) 64 bytes from ::1: icmp_seq=2 ttl=64 time=0.045 ms 64 bytes from fe80::20d:61ff:fe22:3476 icmp_seq=2 ttl=64 time=3.33 ms (DUP!)

64 bytes from ::1: icmp_seq=3 ttl=64 time=0.037 ms Vous pouvez identifier 2 htes actifs fe80::20e:35ff:fe8f:6c99 (celui d'o est passe la commande) et fe80::20d:61ff:fe22:3476 (qui correspond un autre poste du rseau local). Les adresses Anycast : Anycast est un nouveau type d'adressage. Il identifie qu'un noeud, parmi un groupe de noeuds, doit recevoir l'information. Une adresse Anycast, comme une adresse Multicast, dsigne un groupe d'interfaces, la diffrence qu'un paquet mis avec comme destinataire une adresse Anycast ne sera remis qu' un seul membre du groupe, par exemple le plus proche au sens de la mtrique des protocoles de routage, mme si

Plusieurs interfaces ont rpondu au message. L'interface de destination doit spcifiquement tre configure pour savoir qu'elle est Anycast.

Pour l'instant, une seule adresse Anycast est utilise, elle est rserve au routeur mais dans l'avenir, d'autres pourraient tre dfinies. La porte ou "scope" des adresses, est une nouvelle notion qui n'existait pas en IPv4. En fait une interface ne possde pas une seule adresse IPv6 mais peut en avoir plusieurs. Les quatre portes d'adresses sont : Nud local : il s'agit de l'adresse de loopback. Elle est note : 1/128. Lien local : adressage commun aux machines d'un mme lien physique relies entre elles sans routeur intermdiaire .Ces adresses ont comme prfixe fe80:/64. Seuls les quipements de la couche 2 du modle OSI peuvent utiliser ces adresses pour communiquer entre eux. Cette adresse est obtenue par auto configuration "sans tat". Site local : adressage commun des machines d'un mme site.Par exemple, un site qui n'est pas encore reli Internet peut utiliser ce type d'adresse. C'est un peu le concept des adresses prives en IPv4 (192.168.x.x ou 10.x.x.x). Une adresse site local a comme prfixe fec0:/48 suivi d'un champ de 16 bits permettant de dfinir des sous rseaux. Globale : ce sont des adresses dont le routage est effectu sans restriction. Leur prfixe est 2000:/3, ce qui signifie qu'elles commencent par 001 en binaire. Concrtement, on utilise 2xxx ou 3xxx. Par exemple 2001:7a8:4b09:1bff:feb1:defa est une adresse globale.

1.5 - Description du format de tte dIPv6

Figure 1 : Format dentte IPv4 /IPv6

Grce aux schmas, nous nous apercevons tout d'abord qu'il existe certaines similitudes entre IPv4 et IPv6. La premire constatation est de voir que l'en-tte IPv6 a t simplifi. Certains en-ttes IPv4 ont t supprims ou rendus optionnels pour rduire dans les situations classiques le cot en

ressources de traitement de la gestion des paquets et pour limiter le surcot en bande passante de l'en-tte IPv6. Champ version : indique la version du protocole utilis, IPv4 ou IPv6. Il sert vrifier que le paquet est bien trait par la bonne couche rseau. Champ priorit : ce champ permet d'indiquer aux routeurs la priorit relative des diffrents datagrammes transmis. Il peut prendre les valeurs allant de 0 15. Champ tiquette de flot : permet de dfinir diffrents flots, que les noeuds du rseau peuvent alors traiter avec un comportement particulier (en termes de gestion des files dattente par exemple). Champ longueur de charge utile : ce champ indique le nombre d'octets d'information qui suivent les en-ttes de base et d'extension. Ce champ contient 16 bits, ce qui permet d'avoir jusqu' 64 Ko de donnes utiles par datagramme.

Champ en-tte suivant : ce champ indique le type du prochain en-tte d'extension. Champ nombre maximum de sauts : ce champ a comme fonction d'viter qu'un Datagramme ne circule indfiniment dans un rseau. La valeur contenue dans ce champ reprsente le nombre de routeurs que Le datagramme peut traverser avant d'tre dtruit.

IPv6 avanc
3.1 - Exploitation de DNS avec IPv6
Le service de noms, qui permet la rsolution d'adresses vers des noms (et vice-versa), est une partie trs importante de la migration d'un site vers IPv6. Les adresses IPv6 sont difficiles retenir du fait de leur notation et de leur longueur. Le systme de gestion des noms de domaines, DNS (Domain Name System), est en partie l pour pallier ce problme. De plus, il est souvent ncessaire dtre enregistr dans un serveur DNS pour accder certaine services qui effectuent un test de correspondance DNS inverse (adresse IP vers nom DNS) afin de sassurer de lauthenticit dun hte. Un noeud IPv6 peut sauto-configurer sans laide dun systme plus coteux quest DHCP. La difficult est alors de savoir comment grer les enregistrements DNS de noeuds dans le cas o ils sont autoriss grer eux-mmes leurs adresses. Cependant, afin de supporter le nouveau schma d'adressage d'IPv6 (adresses sur 128 bits, hirarchie d'adressage...), deux extensions au DNS ont t apportes (RFC 1886) : Un nouveau type d'enregistrement a t cr, AAAA (lenregistrement des adresses Ipv4 tant de type A).

De mme, deux nouveaux domaines ont t crs, le domaine ip6.int et ip6.arpa pour la rsolution inverse Avec la configuration automatique des clients, le maintien de bases de donnes DNS devient trs complexe et fastidieux. A ces fins, il parat trs avantageux dutiliser un service de mises jour dynamiques du DNS. Aprs avoir implment et test notre service de nom, nous avons donc dcid de modifier notre serveur DNS pour rajouter ce module de mises jour. DNS dynamique : un client met jour ladresse associe son nom Le protocole de mises jour dynamique du DNS, appel DNS Update permet de supprimer ou de rajouter des enregistrements en utilisant des formats de messages DNS prvus cet effet [RFC 2136]. Deux types de messages sont utiliss, updateQuery, qui permet au client de rajouter un champ, en donnant sil le souhaite une liste de pr requis, et updateResponse envoy par le serveur sur le rsultat de lopration. Il existe deux modes dutilisation pour mettre jour le DNS : La mise jour est ralise directement par le serveur DHCP. Lorsque celui-ci attribue une adresse et un nom, il va lui mme envoyer les messages DNSUpdate au serveur de noms pour rajouter les enregistrements.

La mise jour est effectue par un utilisateur (administrateur ou autre), en utilisant un outil spcifique appel nsupdate, qui possde des commandes permettant de modifier les enregistrements DNS. Il est ncessaire de spcifier au moins une zone pour la rsolution directe et une pour la rsolution inverse.
Format :

Le format textuel d'un enregistrement AAAA tel qu'il apparat dans le fichier de zone DNS est le suivant : <nom> IN AAAA <adresse> L'adresse est crite suivant la reprsentation classique des adresses IPv6 (RFC 4291). Par exemple, l'adresse IPv6 de la machine Pc1.cnss.ma est publie dans le fichier de zone cnss.ma comme suit : Pc1.cnss.ma. IN AAAA 2001:660:3006:1::1:1 Il est important de noter que toutes les adresses IPv4 et/ou IPv6 correspondant un quipement donn, doivent cohabiter dans le mme fichier de zone renseignant le nom de l'quipement en question. Ainsi, les adresses de ns3.nic.fr sont publies dans le fichier de zone cnss.ma comme suit :

Pc1 IN A 192.134.1.49 IN AAAA 2001:660:3006:1::1:1 Une adresse IPv6 est transforme en un nom de domaine publi sous l'arborescence inverse ip6.arpa de la manire suivante : les 32 demi-octets formant l'adresse IPv6 sont spars par le caractre `.' et concatns dans l'ordre inverse au suffixe ip6.arpa. Par exemple l'adresse 2001:660:3006:1::1:1 (adresse de Pc1.cnss.ma) est transforme en le nom de domaine inverse suivant : 1.0.0.0.1.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.6.0.0.3.0.6.6.0.1.0.0.2.ip6.arpa. Voici un extrait du fichier de zone DNS inverse :

6.0.0.3.0.6.6.0.1.0.0.2.ip6.arpa. 1.0.0.0.1.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0 IN PTR Pc1.ntic.ma

3.2 - Exploitation DHCP avec IPv6


DHCP (Dynamic Host Configuration Protocol) est un protocole permettant de configurer les paramtres rseaux de machines clientes (adresse IP, adresse des serveurs DNS, de la passerelle,). Comme nous lavons vu prcdemment dans la prsentation dIPv6, il est possible de configurer automatiquement les machines partir du prfixe rseau annonc par le routeur du lien. Toutefois, cette solution ne permet pas un contrle total de la distribution des adresses par ladministrateur rseau. Nous avons donc dcid dintgrer un serveur DHCP notre site. La diffrence majeure est que le serveur DHCPv6 nenvoie pas ladresse de la passerelle aux clients. Ceux-ci lobtiennent automatiquement grce aux messages dannonce des routeurs. Le protocole DHCPv6 met en jeu 12 messages DHCP diffrents :
DHCP Solicit (Sollicitation DHCP) :

Message d'interrogation de prsence de serveurs DHCP. Il est mis vers un serveur ou un relais DHCP. Un client met un tel message pour localiser les serveurs DHCP. Elle envoie sa requte en mode multicast vers tous les agents DHCP du lien (adresse FF02::1:2).

DHCP Advertise (Annonce DHCP) :

Message de prsence de serveurs DHCP. Il est mis en rponse un message sollicitation DHCP afin de communiquer l'adresse IP d'un serveur DHCP. Le destinataire est le client s'il est sur le mme lien que le serveur sinon ce message est adress au relais du client
DHCP Request (Requte DHCP) :

Message de demande de paramtres de configuration de la part d'un client sans adresse.


DHCP Reply (Rponse DHCP) :

Message mis par le serveur suite une demande du client. Il contient les valeurs des paramtres de configuration demands.
DHCP Confirm (Confirmation DHCP) :

Message de demande de confirmation de validit des paramtres allous au client.


DHCP Renew (Renouvellement DHCP) :

Message de demande de prolongation de l'adresse IP affecte


DHCP Rebind (R affectation DHCP) :

Identique au prcdent message mais un autre serveur DHCP peut rpondre, pas obligatoirement celui qui a allou l'adresse IP.
DHCP Release (Libration DHCP) :

Message d'indication du client de libration des adresses IP pralablement alloues par le serveur.
DHCP Decline (Refus DHCP) :

Message d'indication du client qu'une ou plusieurs adresses affectes sont dj utilises sur son lien.
DHCP Reconfigure-init (Notification de reconfiguration DHCP) :

Message mis par le serveur pour informer le client qu'il a de nouvelles valeurs pour les paramtres de configuration. Le client doit alors commencer une nouvelle transaction pour acqurir ces informations

DHCP Relay-Forward (Encapsulation relais DHCP) :

Message du relais pour vhiculer les messages du client vers le serveur. Le message du client est encapsul dans ce message.

DHCP Relay-Reply (Encapsulation serveur DHCP) :

Message gnr par le serveur contenant un message pour le client. Ce message est destination du relais qui extraira un message pour le client afin de le transmettre sur le lien du client
La configuration du routeur DHCP

Router> enable Router# configure terminal Router(config)# ipv6 dhcp pool ntic Router(config-dhcp)# prefix-delegation 2001:0DB8:1263::/48 Router(config-dhcp)# domain-name ntic.ma Router(config-dhcp)# dns-server 2001:0DB8:3000:1263::42 Router(config-dhcp)# exit Router(config)# interface serial 3 Router(config-if)# ipv6 dhcp server dhcp-pool
La configuration du relay DHCP

Cette configuration est ncessaire si votre serveur DHCP se situe sur un autre segment de votre rseau que celle du client DHCP

Router> enable Router# configure terminal Router(config)# interface Ethernet 4/2 Router(config-if) ipv6 dhcp relay destination FE80::250:A2FF:FEBF:A056 Ethernet 1

DHCP Solicit DHCP Advertise DHCP Request DHCP Reply DHCP Confirm DHCP Renew DHCP Rebind
Client DHCP v 6

DHCP Release DHCP Decline DHCP Reconfigure-init DHCP Relay-Forward DHCP Relay-Reply

Serveur DHCP v 6

Figure 6 : Les messages DHCP v6

3.3 - La scurit dans IPv6


IPsec par dfaut

IPv6 supporte par dfaut les deux architectures classiques d'IPsec : AH et ESP. L'extension d'authentification, ou AH, assure l'authentification et l'intgrit des donnes. L'metteur calcule une signature sur un datagramme et l'met avec le datagramme sur lequel elle porte. Le rcepteur rcupre cette valeur et vrifie qu'elle est correcte. Cette signature peut s'appuyer sur des cls asymtriques et ventuellement des certificats. L'extension ESP (pour Encryption Security Payload) complte la prcdente pour offrir la confidentialit des donnes. Elle permet de chiffrer l'ensemble des paquets (entte IPv6 comprise) ou seulement leur partie transport (tout ce qui se trouve aprs l'entte IP), selon les modes dits repectivement tunnel et transport. Avant l'authentification ou le chiffrement de donnes IP, l'metteur et le receveur doivent convenir des algorithmes et des cls utiliser. Ceci se fait par le protocole IKE (pour Internet Key Exchange, [RFC2409]). Sans dcrire les dtails de ce dernier, il est important de se souvenir que ce protocole ne convient pas, dans l'tat actuel, aux changes multicast. Le trafic multicast passe donc en clair, pour la majorit des cas, dans le rseau.

SEND : Scuriser la dcouverte du voisinage NDP

SEND propose de scuriser NDP, le protocole de voisinage d'IPv6 . La premire proposition est l'utilisation de CGA (Cryptographically Generated Addresses), qui cre des identifiants d'adresses partir d'une cl publique. Ce mcanisme permet de vrifier l'identit de la machine mettrice du paquet NDP.
Pare-feux et filtrage

Plusieurs outils de filtrage existent, et sont mis disposition dans les systmes d'exploitation avec la couche IPv6. Parmi ceux-ci :

Sous Linux, il existe ip6tables, dont l'usage est trs similaire celui de son prdcesseur iptables pour IPv4. Dans les versions BSD, pf permet de filtrer IPv6 de manire assez simple Mac OS s'appuie sur l'utilitaire ipfw (ip6fw) pour offrir le filtrage IPv6. Microsoft fournit galement un pare-feu partir de la version XP SP1, nomm Internet Connexion Firewall puis Windows Firewall. L'utilisateur dfinit une seule configuration, qui s'applique pour IPv4 et IPv6.

Routage en IPv6 Configuration du Routage


Une fois les interfaces configures (adresses, tunnels, annonce de prfixe), une connectivit de niveau 3 existe uniquement entre les routeurs directement connects. Pour tendre cette connectivit, il faut mettre en oeuvre le routage IP. Il existe 3 types de routage : le routage statique : les routes sont configures manuellement et ne ncessitent pas la mise en oeuvre d'un protocole de routage OmnisSwitch Alcatel Cisco Juniper

le routage interne : cantonn un domaine administratif (ou systme autonome, AS), il permet de distribuer des prfixes du domaine des routeurs du domaine. On trouvera ci-dessous des exemples pour les protocoles de routage internes (IGP): RIP OmnisSwitch Alcatel Cisco ISIS Cisco

Juniper OSPF Cisco Juniper

le routage externe : il permet un AS d'changer des prfixes rseaux avec des AS voisins. Ces prfixes, une fois redistribus l'intrieur de l'AS, permettent d'avoir la connectivit vers l'Internet mondial. On trouvera ci-dessous des exemples pour le protocole EGP le plus rpandu aujourd'hui : BGP4. Cisco Juniper

Utilisation d'un ordinateur comme routeur


En IPv6 les fonctions de machine simple (node) et de routeur ont t nettement spares. Il est donc courant d'utiliser de matriels spcialiss comme routeurs, et de configurer les machines normales comme des noeuds simples, sans fonction de routage (cf. Installation d'un quipement), et ce d'autant plus qu'un routeur ddi peut devenir complexe (plusieurs protocoles de routage, filtrage des paquets, interfaces spcialises, VLANs, MPLS...). Il est malgr cela toujours possible d'utiliser un ordinateur universel comme routeur, en configurant des routes la main ou en lanant des logiciels de routage. Il ne faut pas oublier que dans ce cas l'auto-configuration sans tat ne peut plus tre utilise, et qu'il faut donner explicitement des adresses aux diffrentes interfaces. Routeur Solaris Routeur Linux Routeur FreeBSD Routeur NetBSD

Quagga :
Gnralits
Rappelons que la fonction de routage peut tre dcompose en deux temps : le routage effectif des paquets (forwarding) et la construction des tables de routage (routing). Tout routeur IP fait du forwarding mais le routage pouvant tre statique, tous ne font pas du routing. Ces deux fonctions sont typiquement mises en oeuvre par des parties trs distinctes du routeur.

Sur Unix, le noyau effectue le forwarding, alors que le routing est confi un programme extrieur comme Zebra\Quagga, outil qui regroupe un ensemble de systmes de gestion de protocoles de routage. Il offre via un systme unique la possibilit de grer RIP, OSPF, BGP... En pratique, Zebra\Quagga se charge de mettre jour les tables de routage de la machine, sous les ordres des dmons de routage utiliss (cf. schema ci-dessous).

Les dmons que sont Zebra et Quagga sont donc des intermdiaires entre le noyau de Linux et les dmons de routage dynamique. Pour autant, il peuvent rcuprer les routes statiques dfinies directement sous Linux afin de les diffuser via le routage dynamique. Ils permettent

eux-mme de dfinir des routes statiques. Les routages statique et dynamique peuvent donc cohabiter sans problme avec Zebra ou Quagga. L'un des intrts de tels programmes est qu'ils offrent un ensemble d'outils permettant d'inspecter distance d'autres machines sous Zebra\Quagga et d'tudier les actions en cours et les tables de routage. Ils permettent galement de dfinir des routes statiques, des rgles de filtrage ou encore le contrle des changes entre protocoles diffrents. Le dveloppement de Zebra est plus ou moins arrt depuis novembre 2003, mois de sortie de la dernire version de ce logiciel. Il reste nanmoins que c'est un systme pratique, car il regroupe, sous un mme principe, un grand nombre de mthodes de routage dynamique; c'est pourquoi il demeure un outil important pour la gestion de routage dynamique dans des rseaux de type moyen-grand sous Linux. Quagga est le digne successeur du programme Zebra. Il se veut plus ouvert, et surtout plus actif que son prdcesseur. Il est compos, tout comme Zebra, de plusieurs dmons qui acceptent chacun des connexions TCP. Il semble donc facile d'effectuer la configuration de chaque dmon via une connexion telnet.

Programme encore en cours d'volution, Quagga permet la gestion de systmes de routage comme RIPv1, RIPv2, RIPng, OSPFv2, OSPFv3, BGP-4... Si cette connexion aux dmons est trs pratique pour dboguer ou surveiller un routeur, elle n'est pas forcment la plus efficace pour crire ou modifier la configuration du routeur. Le mieux serait plutt de modifier les fichiers de configuration via un diteur, ce qui permet d'utiliser un bon outil d'dition et de prserver les commentaires. L'emplacement des fichiers de configuration de Zebra ou de Quagga dpend du systme Unix utilis et de la manire dont Quagga a t compil. En gnral, les fichiers sont dans /etc/zebra ou dans /etc/quagga. On trouve notamment :

zebra.conf, la configuration gnrale ; ospfd.conf, la configuration du protocole OSPF ; ripd.conf, la configuration du protocole RIP ; ospf6d.conf, la configuration du protocole OSPFv6 ; bgpd.conf, la configuration du protocole BGP.

Venons en maintenant la console d'administration du dmon. On l'atteint en faisant un telnet routeur dmon. Comme on vient de le voir, le nom du dmon est zebra, ospfd, ospf6d ou bien bgp. Certaines commandes ncessiteronnt plus de privilge, ce sont celles qui modifieront l'tat du routeur. La commande enable permet de passer dans cet tat privilgi. Par exemple, pour changer la configuration du routeur ou bien pour rinitialiser une session BGP, vous devrez tre en mode enable.

Avantages de Zebra et Quagga


Logiciel libre sous licence GNU Interface de configuration interactive accessible via telnet Philosophie d'un langage de configuration proche d'IOS de Cisco Supporte les principaux protocoles de routage Il fonctionne avec IPv6.

Installation
Avant d'installer, on doit vrifier le contenue des fichiers des interfaces utiliss durant le routage. Les fichiers en question se trouve:

/etc/sysconfig/network-scripts

Les fichiers sont nomm : ifcfg-eth(chiffre de l'interface)

On doit s'assur que les lignes IPADDR et NETMASK ne si trouve pas et que BOOTPROTO soit gale static (BOOTPROTO=static).

On doit vrifier l'inexistance de variable GATEWAY ou GATEWAYDEV.

/etc/sysconfig/network

On voit la modification des fichiers effectue on redmarrer le service de rseau.


service network restart

Il y a plusieurs rpm tlcharger avec Quagga, le mieux et d'installer le tout pour son bon fonctionnement.

yum -y install quagga*

Ceci permettra d'installer tous les rpms destin au bon fonctionnement du routage. Il suffira d'activ l'auto-dmarrage du routage lors de l'allumage de la machine.

chkconfig zebra on chkconfig ripd on

On active le routage RIP pour activ le routage dynamique des routes. Une fois que l'on s'est dbrouiller pour le dmarrage des services l'allumage de la machine, maintenant il faut s'assurer que les services dmarront adquatement.

cp /etc/quagga/zebra.conf.sample /etc/quagga/zebra.conf cp /etc/quagga/ripd.conf.sample /etc/quagga/ripd.conf

Voil que des fichiers de configuration prt l'emploi son plac, le problme est qu'il ne sont peut-tre pas tous attribus l'utilisateur Quagga qui dmarre les services de routage.

chown quagga: /etc/quagga/*

Maintenant nous avons remdier se problme. Activons les services de Quagga.

service zebra start service ripd start

Il est temps de passer sa configuration.

Configuration
Il y a divers mthode pour configurer le routage de quagga, soit en ditant les fichiers de configuration de chaque service, soit en passant par telnet ou en passant par le shell de quagga (vtysh). Pour accder individuellement chaque fonction de routage en passant par telnet, il faut connatre les ports de communication auxquels ils sont reli.
zebra: ripd: ripng: ospfd: bgpd: ospf6d: telnet localhost 2601 telnet localhost 2602 telnet localhost 2603 telnet localhost 2604 telnet localhost 2605 telnet localhost 2606

En utilisant le shell du logiciel, on est plus l'aise pour faire sa configuration et on peut configurer tout les services en quelque commande et d'autant plus que si on connait la configuration d'un routeur Cisco tout devient facile dans les commandes qui sont similaire. Afin d'accder au shell:
root@localhost~# vtysh

Maintenant, passons la configuration du routage qui doit s'effectuer

vtysh ! Hello, this is Quagga (version 0.99.3). Copyright 1996-2005 Kunihiro Ishiguro, et al. ! localhost# localhost# conf t localhost(config)# hostname fedosrv fedosrv(config)# interface eth0 fedosrv(config interface)# ip address 10.17.0.2/16 fedosrv(config interface)# exit fedosrv(config)# interface eth1 fedosrv(config interface)# ip address 172.168.1.2/24 fedosrv(config interface)# exit fedosrv(config)# interface eth2 fedosrv(config interface)# ip address 192.168.1.2/24 fedosrv(config interface)# exit fedosrv(config)# router rip fedosrv(config router)# version 2 fedosrv(config router)# redistribute connected fedosrv(config router)# network 10.17.0.0/16 fedosrv(config router)# network 172.168.1.0/24 fedosrv(config router)# network 192.168.1.0/24 fedosrv(config router)# exit fedosrv(config)# exit fedosrv # wr fedosrv # exit root@localhost~#

Contenu du fichier zebra.conf :

! Zebra configuration saved from vty ! 2009/01/30 12:49:30 ! hostname fedosrv ! interface eth0 ip address 10.17.0.2/16 ipv6 nd suppress-ra ! interface eth1 ip address 172.168.1.2/24 ipv6 nd suppress-ra ! interface eth1 ip address 192.168.1.2/24 ipv6 nd suppress-ra ! interface lo ! interface sit0 ipv6 nd suppress-ra ! ip forwarding !line vty

Le contenue du fichier ripd.conf

! Zebra configuration saved from vty ! 2009/01/30 12:49:30 ! hostname ripd password zebra log stdout ! router rip version 2 redistribute connected network 10.17.0.0/16 network 172.168.1.0/24 network 192.168.1.0/24 ! line vty

Ethernet 0 2000 :1:2:: 1

Serial 0 2000 :1:1:: 1

Ethernet 0 2000 :1:3:: 1 Serial 0 2000 :1:1:: 2

Routeur A Serial 1 2000 :1:5::1

Routeur B Serial 1 2000 :1:6:: 1

Serial 1 2000 :1:5:: 2

Serial 0 2000 :1:6::2

Routeur C Ethernet 0 2000 :1:4:: 2

Configuration de ladressage IPv6


La premire chose avant de configurer IPv6 sur le routeur est de sassurer que la version adquate dIOS est installe sur le routeur. IPv6 a t introduit dans la version IOS 12.2 (2) T et cest donc la version la plus ancienne que lon peut utiliser. La version de Cisco IOS peut tre vrifie par la commande show version. Voici quelques commandes du routeur qui donnent un aperu des commandes varies que lon peut configurer rien que pour IPv6. La premire liste est en mode de configuration globale. La seconde est en mode interface et dans ce cas prcis une interface ethernet.

Router(config)#ipv6 ? access-list Configure access lists hop-limit Configure hop count limit host Configure static hostnames icmp Configure ICMP parameters neighbor Neighbor prefix-list Build a prefix list route Configure static routes router Enable an IPv6 routing process unicast-routing Enable unicast routing

Router(config-if)#ipv6 ? IPv6 interface subcommands: address Configure IPv6 address on interface enable Enable IPv6 on interface mtu Set IPv6 Maximum Transmission Unit nd IPv6 interface Neighbor Discovery redirects Enable sending of ICMP Redirect messages rip Configure RIP routing protocol traffic-filter Access control list for packets unnumbered Configure IPv6 interface as unnumbered

La premire tape est maintenant dactiver globalement IPv6 sur le routeur. On peut le faire mode de configuration avec la commande ipv6 unicast-routing Cette commande active IPv6 pour tout le routeur. Si cette commande nest pas active globalement, le reste des commandes sur les interfaces seront inoprantes. Router#conf t Enter configuration commands, one per line. End with CNTL/Z. Router(config)#ipv6 unicast-routing Router(config)# Ltape suivante est dactiver IPv6 sur les interfaces dsires. On peut configurer une adresse IPv6 sur une interface LAN ou WAN et nous prendrons comme exemple une interface LAN. Il y a quelques tapes pour configurer une adresse LAN. En considrant que le routage IPv6 global est dj activ, la premire tape est de configurer linterface actuelle. Dans la plupart des cas, cela peut tre une interface Ethernet bien quil soit possible de configurer IPv6 aussi bien du Token Ring ou FDDI. Nous nous concentrerons sur les interfaces ethernet. Il y a trois types dadresses que lon peut attribuer des adresses LAN. Les trois types sont

link-local , site-local et les adresses dites globales. Ladresse globale et ladresse sitelocal sont attribues en mme temps. SI une adresse globale est dj attribue par larchitecture du rseau, alors ladresse complte sera tape pendant la configuration. Si seulement les 64 premiers bits sont spcifis, alors la commande EUI (Extended Unique Identifier) la fin de ladresse globale va avoir un identifiant dinterface attribu pour ladresse globale. Pour entrer une adresse dans le routeur, il faut passer en mode de configuration et slectionner linterface dsire. LEUI fonctionne de manire similaire pour les adresses link-local . Si lEUI est utilis, alors seuls les 64 premiers bits de ladresse ont besoin dtre spcifis ; le reste de ladresse tant remplis automatiquement en utilisant ladresse MAC du routeur. Si on a des interfaces multiples utilisant le paramtre EUI, on aura alors des adresses qui finiront toutes par les mme 64 derniers bits. Router configuration for predetermined global address RouterA#conf t Enter configuration commands, one per line. End with CNTL/Z. RouterA(config)#int s0 RouterA(config-if)#ipv6 address 2000:1:1::1/64 RouterA(config-if)# Router configuration for global address to be assigned interface identifier RouterA#conf t Enter configuration commands, one per line. End with CNTL/Z. RouterA(config)#int s0 RouterA(config-if)#ipv6 address 2000:1:1:1::/64 eui-64 RouterA(config-if)#

Quand le paramtre EUI est utilis, les 64 bits restants de ladresse sont automatiquement remplis par le routeur. On peut voir ladresse ainsi produite par la commande ci-dessous. Notons que seulement les 64 premiers bits ont t dfinis. Notons galement que ladresse link-local possde les mme 64 derniers bits que ladresse globale. Router#show ipv6 int s0 Serial1 is down, line protocol is down IPv6 is enabled, link-local address is FE80::2E0:B0FF:FE5A:D998 Global unicast address(es): 2001:1:1:1:2E0:B0FF:FE5A:D998, subnet is 2001:1:1:1::/64

Vrification de la configuration dadressage

Cette section montre beaucoup des commandes ncessaires pour vrifier que la configuration est en place et quelle fonctionne telle que prvu. La liste suivante montre les commandes show disponibles qui sont spcifiques lIPv6

router#show ipv6 ? access-list interface mtu neighbors prefix-list protocols rip route routers traffic tunnel Summary of access lists IPv6 interface status and configuration MTU per destination cache Show IPv6 neighbor cache entries List IPv6 prefix lists IPv6 Routing Protocols RIP routing protocol status Show IPv6 route table entries Show local IPv6 routers IPv6 protocol statistics Summary of IPv6 tunnels

La premire commande montre si IPv6 est configur pour fonctionner est show runningconfig. Pour vrifier quune adresse LAN est configure correctement, utilisons la commande show ipv6 interfaces <type> . Cette commande est trs utile pour obtenir des informations de bases sur linterface

4.2 - Routage statique IPv6


Pour mettre en place un routage statique IPv6 sur un routeur Cisco, il est ncessaire de disposer d'IOS 12.2 minimum. La configuration d'un routage statique IPv6 est similaire la configuration d'une route statique IPv4. La diffrence rside dans le fait que l'on utilise la commande ipv6 route . Router> enable Router# configure terminal Router(config)# ipv6 route 2000:1:3::0 /64 2000:1:1::2

4.3 - Routage avec le protocole RIPng


Bien que RIP IPv6 soit trs similaire son prdcesseur, certaines diffrences existent entre les deux protocoles. La premire de ces diffrences est apparente quand on active le processus de routage RIP. Dans la version prcdente, on dmarrait le processus RIP par un commande router rip en mode de configuration globale suivie de la spcification des rseaux que lon voulait inclure dans le domaine de routage RIP en tapant la commande network. La configuration de RIP IPv6 est similaire mais pas identique. Pour activer le processus RIP pour IPv6, on utilise la commande ipv6 router rip <word> . La commande <word> dsigne un identifiant de processus qui est une srie de chiffres ou lettres dfinis pas lutilisateur pour identifier

le processus RIP en question. Cela permet au routeur de lancer sparment de multiples processus RIP sur le mme routeur. Pour ajouter des rseaux particuliers au domaine de routage RIP IPv6, on utilise la commande ipv6 rip <word> enable. Cette commande place cette interface IPv6 dans le domaine de routage RIP IPv6. Router>enable Password: RouterA#config terminal Enter configuration commands, one per line. End with CNTL/Z. RouterA(config)#ipv6 router rip cisco RouterA(config-rtr)#exit RouterA(config)#interface ethernet 0 RouterA(config-if)#ipv6 rip cisco enable RouterA(config-if)#exit RouterA(config)#interface serial 0 RouterA(config-if)#ipv6 rip cisco enable RouterA(config-if)#exit RouterA(config)#interface serial 1 RouterA(config-if)#ipv6 rip cisco enable RouterA(config-if)#exit Dans lexemple qui figure ci-dessus, nous avons cre un domaine de routage RIP avec 6 sous rseaux spars, 2000:1:1::/64, qui est le rseau qui relie les interfaces sries des deux routeurs A , B et le sous rseau 2000:1:5::/64 relie les interfaces sries des deux routeurs A , B, 2000:1:1::/64, qui est le rseau qui relie les interfaces sries des deux routeurs A et B et nous avons 3 rseaux sur les interface Ethernet 0 de chaque routeur, 2000:1:2::/64 et 2000:1:3::/64 respectivement. En tapant la commande show ipv6 protocol , on peut voir tous les protocoles de routage IPv6 qui tournent actuellement sur le routeur. Dans le listing cidessous, nous voyons deux rseaux connects, des routes statiques et, bien sur le RIP qui tourne sur le Routeur A.

Vrification du fonctionnement de RIP IPv6

Nous avons peu de commandes utiliser pour vrifier que RIP IPv6 fonctionne correctement :

commande
show ipv6 rip

utilit
-Information sur le dlai -Information de Port -Frquence de mise jour -Type de mise jour -Information sur la route par dfaut -Protocoles de routage utiliss -Interfaces utilises par les protocoles de routage -Information sur la Redistribution

show ipv6 protocols

4.4 - Routage par dfaut IPv6


Une route par dfaut est, simplement, une route que le routeur ou le protocole de routage utilise pour transfrer les paquets dont il na pas actuellement dadresse de destination dans ses tables de routage. Les routes par dfaut ont t utilises largement par tous protocoles de routage IPv4. RIP IPv6 supporte galement lutilisation et la configuration des routes par dfaut. A la diffrence de RIP IPv4, par contre, la ou lon configurait les routes par dfaut en mode de configuration globale, on configure RIP IPv6 pour les routes par dfaut en mode dinterface en utilisant la commande default-information . Cette commande indique au routeur dinjecter une route ::/0 dans le domaine de routage RIP comme la route par dfaut (ou connue comme la passerelle de la dernire chance). La commande default-information nous donne un ou deux paramtres : originate et only . - originate indique au routeur dinjecter une route ::/0 dans le domaine de routage RIP et annonce cette route accompagne de toutes les autres routes dans ses messages de mises jour de routage. - only demande au routeur dannoncer seulement cette route par dfaut et de supprimer des mises jour de routage toute autre route. RouterA#conf t Enter configuration commands, one per line. End with CNTL/Z. RouterA(config)#interface serial0 RouterA(config-if)#ipv6 rip cisco default-information ? only Advertise only the default route originate Originate the default route RouterA(config-if)#ipv6 rip cisco default-information originate RouterA(config-if)#exit

Dans lexemple prcdent, nous sommes all en mode de configuration dinterface et tap la commande ipv6 rip cisco default-information originate , ce qui a indiqu au routeur dutiliser le rseau connect linterface serial 0 comme la route par dfaut. Si nous regardons dans la table de routage du routeur voisin RouteurB, on voit que le RouteurA a inject en fait cette route par dfaut dans le domaine de routage RIP. Si nous regardons la table de routage prcdente, nous voyons une entre RIP supplmentaire pour le rseau ::/0 via serial 0. Notons que ces entres RIP sont suivies de la mention R . Cest la route par dfaut.

4.5 - Utilisation Telnet IPv6


Le client et le serveur Telnet de Cisco IOS supportent les connections IPv6. Un utilisateur peu directement tablir une connexion IPv6 sur le routeur ou bien une session Telnet peut tre initialise partir du routeur. Une interface vty et un mot de passe doivent d'abord tre crs pour activer la fonction Telnet du routeur IPv6.

Session Telnet IPv6

Figure 8 : Session Telnet

La configuration du service Telnet v6

Router> enable Router# configure terminal Router# enable password torino Router(config)# ipv6 host cisco-sj 2001:0db8:20:1::12 Router(config)# line vty 0 4 Router(config)# password hostword Router(config-line)# login Router(config-line)# exit Router(config)# telnet cisco-sj ou Router(config)# telnet 2001:0db8:20:1::12 Router(config)# exit

You might also like