Réseaux
Transcription
Réseaux
M1 Informatique Réseaux Cours 5 – Le Futur d’Internet - IPv6 Notes de Cours D EPUIS PLUS DE DIX ANS , LA VERSION AMELIOREE DU PROTOCOLE IP A ETE standardisée. Le déploiement de cet Internet version 6 est en cours. Cependant, sa diffusion est loin d’être complète, et par un "effet réseau" bien connu, de nombreuses entités préfèrent attendre que tout le monde ait basculé avant de le faire elles-mêmes. 1 Introduction 1.a 1.b "Vous êtes Ici" OSI TCP/IP 7 Application Application 6 Presentation 5 Session 4 Transport Transport 3 Network Internet 2 Data link Host-to-network 1 Physical Not present in the model Limitations de IPv4 Malgré le succès d’internet, certains problèmes demeurent — sécurité — trop peu d’adresses (épuisées chez l’IANA depuis 2011) E. Godard http://www.lif.univ-mrs.fr/~egodard/ens/reseaux/ M1 Informatique R ÉSEAUX Réseaux : Cours 5 — => adresses privées et NAT => rupture du pair-à-pair 1.c NAT/PAT Problème du nombre limité d’adresses => adresse privée + NAT (Network Adresse Translation) Packet before translation Company LAN Packet after translation 1 2 10.0.0.1 198.60.42.12 3 4 5 Company router 6 7 PC NAT box/firewall Leased line ISP's router Server Boundary of company premises translation d’adresses (NAT) un nombre limité d’adresse est partagé par un ensemble de stations le routeur NAT modifie l’adresse de source (pour y mettre une des IP publique partagée). Pour les paquets entrants, la modification inverse est effectuée. translation de port (PAT) une seule adresse est partagée par un ensemble de stations. Les connexions sont distinguées au niveau Transport par utilisation de numéro de ports spécifiques pour chaque station. Cette association peut être dynamique. 1.d Inconvénients du NAT On appelle en général (et incorrectement) NAT les deux techniques. 1. Casse la structure pair-à-pair d’Internet Une station peut se connecter à Internet mais on ne peut la joindre depuis Internet. Très problématique pour certaines applications (VoIP, ...) 2. Donne une fausse impression de sécurité : une station avec une adresse (privée ou non) n’est pas adressable derrière un NAT. Donc ne peut être "attaquée". Pas besoin de la protéger (parefeu, mise à jour, veille ...). Certaines attaques sont possibles même dans cette configuration. 2 Réseaux : Cours 5 R ÉSEAUX M1 Informatique 3. Semble être une des (mauvaises) raisons du ralentissement de passage à IPv6 4. Carrier-grade NAT (CGN) : l’internet mobile est principalement proposé par les opérateurs sous ce mode dégradé. 1.e Historique — — — — 1.f dès les années 90, la pénurie d’adresses menace 1993 début d’un groupe de travail IETF 1995 première version IPv6 (RFC 1883) 1998 finalisation (RFC 2460) IPv6 en (Très) Bref 1. IPv6 (RFC 2373 et 2460) : pourquoi ? — attribuer plus d’adresses 128 bits au lieu de 32 en IPv4 — => meilleure organisation => routage facilité — sécurité — mobilité — transition ?... 2. Points clefs : — adresses et allocation des préfixes (id interface) — découverte des voisins (attribution d’adresse + routage) — format de datagramme simplifié 2 Espace de Noms IPv6 2.a Adressage Beaucoup plus d’adresse disponibles : 2128 => 667 millions de milliards d’adresses IP disponibles par mm2 de la surface de la Terre ; 2.b Notation Plus de notation pointée mais uniquement de l’hexadécimal — exemple 2001:0db8:0000:85a3:0000:0000:ac1f:8001 — possibilité de supprimer les 0 non significatifs par groupes de 1 à 3 2001:db8:0:85a3:0:0:ac1f:8001 — voire par blocs entiers de 4 2001:db8:0:85a3::ac1f:8001 3 R ÉSEAUX Réseaux : Cours 5 2.c M1 Informatique Particularités — Cohabitation avec les ports de TCP/UDP — http://[2002:400:2A41:378::34A2:36]:8080 2.d Notation CIDR On conserve la notation CIDR : — adresse/taille <=> préfixe de l’ensemble d’adresses considérées — exemple 2001:db8:1f89::/48 — en salle de TP : 2001:660:5402:100::/64 2.e Type d’adresses IPv6 Préfixe ::/8 2000::/3 fc00::/7 fe80::/10 ff00::/8 2.f Description Adresses réservées Adresses unicast routables sur Internet Adresses locales uniques Adresses liens locaux Adresses multicast Adresses Réservées — :: adresse non spécifiée (début de configuration...) — ::1/128 adresse localhost (comme 127.0.0.1 en IPv4) — adresses permanentes 2001::/16 — adresses réservables par blocs /12 à /23 depuis 1999. — 2001::/32 est utilisé pour le protocole de tunnel Teredo — 2002::/16 est utilisé par 6to4 2.g Fonctionnement "Rien de changé" (juste 96 bits de plus) — Entête simplifié — taille fixe — routage et aggrégation de routes simplifié — auto-configuration simplifié (plusieurs adresses par interfaces) 4 R ÉSEAUX Réseaux : Cours 5 2.h M1 Informatique Entête IPv6 32 Bits Version Traffic class Flow label Payload length Next header Hop limit Source address (16 bytes) Destination address (16 bytes) 2.i Entête IPv6 La signification des champs est la suivante : Version (4 bits) : fixé à la valeur du numéro de protocole internet, 6 Traffic Class (8 bits) : utilisé dans la qualité de service. Flow Label (20 bits) : permet le marquage d’un flux pour un traitement différencié dans le réseau. Payload length (16 bits) : taille de la charge utile en octets. Next Header (8 bits) : identifie le type de header qui suit immédiatement selon la même convention qu’IPv4. Hop Limit (8 bits) : décrémenté de 1 par chaque routeur, le paquet est détruit si ce champ atteint 0 en transit. Source Address (128 bits) : adresse source Destination Address (128 bits) : adresse destination. pas de CRC 2.j Fragmentation 1. Problèmes de la fragmentation — coûteuse pour les routeurs 5 Réseaux : Cours 5 R ÉSEAUX M1 Informatique — limites les taux de transfert — problème de la perte d’un seul fragment 2. En IPv6, pas de fragmentation => moins de travail pour les routeurs — les routeurs intermédiaires renvoient un paquet ICMPv6 Packet Too Big — l’émetteur doit fragmenter lui même — utilisation du Path MTU discovery recommandé 2.k Taille des Paquets — MTU minimale autorisée 1 280 octets (contre 68 pour l’IPv4) — taille maximale d’un paquet (hors en-tête) 65535 octets comme IPv4 — option jumbogram (RFC 2675) => taille maximale d’un paquet 4 Go 2.l Neighbor Discovery Protocol. Ce protocole agrège les propriétés de ARP et ICMP pour IPv4 Permet de découvrir 1. les adresses MAC des hôtes voisins 2. les routeurs voisins pour une route donnée — automatiquement — redirection 3. des paramètres utiles comme le MTU 2.m ICMPv6 Toute la gestion est réalisé grâce à ce type de paquet. — Destination Unreachable — Packet Too Big — Time Exceeded — Echo Request — Echo Reply — Router Solicitation — Router Advertisement — Neighbor Solicitation — Neighbor Advertisement — Redirect ... 6 Réseaux : Cours 5 2.n R ÉSEAUX M1 Informatique Attribution des adresses IPv6 1. Manuellement — adresse + longueur du préfixe de sous-réseau — (facultatif) passerelle par défaut 2.o Attribution Automatique 1. Automatiquement ! — autoconfiguration sans état basée sur l’adresse MAC et NDP prefix64:adresseMAC => problème de protection de la vie privée car le 64 derniers bits seront les mêmes même en changeant de FAI... — autoconfiguration avec tirage pseudo aléatoire (RFC 4941), => vérification par Neighbor Solicitation pour savoir si l’adresse est déjà prise. — utilisation d’adresses générées cryptographiquement à partir de la clef publique du client (RFC 3972), — attribution par un serveur DHCPv6 (RFC 3315) 2.p Routage Le routage est similaire à IPv4 — commutation de paquets — => tables — l’amélioration est l’automaticité pour certains paramétrages des hôtes 2.q Détails pour le Routage 1. Recherche de l’adresse Mac d’un voisin (RFC 4861) — requête paquet ICMPv6 Neighbour Solicitation — réponse paquet ICMPv6 Neighbour Advertisement — les adresses utilisées sont les adresses locales : fe80::/10 ou de multicast, — comme ff00::1 pour l’ensemble des hôtes sur le réseau local — comme ff00::2 pour l’ensemble des routeurs sur le réseau local 2. Passerelle par défaut — un routeur peut publier les routes et ainsi permettre à un hôte de se configurer automatiquement. RFC 4862 — paquet ICMPv6 Router Solicitation et réponse 2.r Autoconfiguration vs DHCPv6 Lors de la rédaction du procotole IPv6, DHCP n’était pas aussi répandu (ni même complètement standardisé), par conséquent, le protocole SLAAC (RFC 4862) a été écrite. On a donc en général 7 Réseaux : Cours 5 R ÉSEAUX M1 Informatique — SLAAC : passerelle par défaut mais pas de DNS — DHCPv6 : DNS mais pas de passerelle par défaut => ajout RDNSS (Recursive DNS Solver) dans SLAAC. Il est clair que le DNS n’appartient pas vraiment à la couche Réseau mais c’est un service indispensable à la couche application, qui est en général configuré avec le réseau. A noter : — SLAAC : sans état — DHCPv6 : avec état (conservation des durée de validité des attributions ) 2.s Routage IPv6 Pas de changement de protocole. — OSPFv6 — BGPv6 2.t Mobilité : Principes Le but est de permettre à un hôte mobile de maintenir une connexion pendant ses déplacements de son réseau "initial" à un réseau "étranger". — adresse maison (home address) — adresse de mobilité (care of address) obtenue par la configuration automatique dans le réseau étranger. Le réseau "maison" — maintient une correspondance entre l’adresse "maison" et l’adresse de mobilité, — reroute les paquets destinés à l’adresse "maison" vers l’adresse de mobilité. 8 3 M1 Informatique R ÉSEAUX Réseaux : Cours 5 Déploiement 3.a Etendue du Déploiement à comparer aux 43000 AS sur l’internet IPv4 3.b Prise en charge d’IPv6 par le DNS — pas de changement de l’espace de noms => champs d’enregistrement supplémentaire www.ipv6.ripe.net. IN AAAA 2001:610:240:22::c100:68b — Evolution — 2004 : possibilité d’intégrer des serveurs de noms en IPv6 — 2008 : la moitié des serveurs racines ont une adresse IPv6 — 2010 : 228/283 des domaines de premier niveau ont un serveur en IPv6 — problème de la taille des paquets UDP (seulement 512 octets max pour le DNS) 3.c Double Pile et Résolution DNS En cas de double pile, la connexion UDP pour la résolution DNS se fait en général en IPv4. De plus, l’appel getaddrinfo() va retourner une liste d’adresses avec qui peut comporter des adresses IPv4, mais en général les IPv6 sont en tête. 3.d Prise en Charge d’IPv6 — Système d’exploitation tous les systèmes disposent d’une double pile 9 Réseaux : Cours 5 R ÉSEAUX M1 Informatique — Logiciels la plupart des logiciels orientés Internet sont prêts 3.e Et en France ?... 1. Renater a commencé à expérimenter IPv6 depuis 1996 — IPv6 effectif depuis 2002 2. FAI — mars 2003 nerim — décembre 2007 free — novembre 2008 FDN — 2009 SFR et Orange (pour les professionnels seulement) => prévu pour 2013 2015 pour l’ensemble de leurs clients — OVH : 2012 3.f Freins au Déploiement — Bénéfices surévalués ? — Pas de contenus nouveaux sur Internetv6 — pas tout-à-fait vrai : l’accès en NAT pour les terminaux mobiles est limité — Problème de l’accès en cas de double pile : 1. tentative en IPv6 2. échec ! car pas de connectivité IPv6 de bout-en-bout. 3. connexion en IPv4 => grande lenteur => désactivation d’IPv6 4 4.a Sécurité Architectures Sécurisées architecture fermées peu d’acteurs (banques) ou structure autonome (une entreprise) — chiffrement symétrique + distribution des clés “à la main” => Kerberos, IPSec architecture hiérarchisée de nombreux acteurs avec des autorités de confiance peu nombreuses => PKI à base d’authentification X509 : IPSec, SSL architecture décentralisée de nombreux acteurs certifiants leurs “connaissances” de proche en proche => PGP/GnuPG, réseau P2P/F2F crypté, ... 4.b Références IPSec RFCs : 2401 (IPSec), 2402 (AH), 2403, 2404, 2405 (détails des algorithmes cryptographiques d’IPSec), 2406 (ESP), 2408 (ISAKMP), 2409 (IKE). 10 4.c M1 Informatique R ÉSEAUX Réseaux : Cours 5 Aperçu IPSec est un ensemble de protocoles permettant de mettre en oeuvre une ou plusieurs des propriétés cryptographiques précédentes pour des datagrammes IP. — AH : intégrité et authentification (sans confidentialité). — ESP : confidentialité (+authentification) Ces mécanismes sont — compatibles IPv4 — intégrés à IPv6 4.d Configurations d’Utilisation 4.e Mécanisme AH (Authentication Header) Ce mécanisme a vocation d’authentifier un datagramme IP sans le chiffrer. Authenticated IP header AH TCP header Payload + padding 32 Bits Next header Payload len (Reserved) Security parameters index Sequence number Authentication data (HMAC) 4.f Mécanisme ESP (Encapsulating Security Payload) Ce mécanisme a vocation à chiffrer un datagramme IP. Deux modes : — mode transport 11 M1 Informatique R ÉSEAUX Réseaux : Cours 5 — mode tunnel (typiquement entre deux passerelles de sécurité) Authenticated (a) IP header ESP header TCP header Payload + padding Authentication (HMAC) Encrypted Authenticated (b) New IP header ESP header Old IP header TCP header Payload + padding Authentication (HMAC) Encrypted 5 Transition 5.a Avertissement Les adresses IPv4 et IPv6 ne sont pas compatibles Toute transition technologique est délicate, la transition complète de IPv4 à IPv6 sera très délicate. 5.b Technologies de transition — technique de double pile pour pouvoir utiliser IPv4 et IPv6 simultanément — puisque IPv6 n’est souvent pas utilisable nativement => tunnels en IPv4 — statiques — automatiques — passerelles applicatives Il est toujours préférable d’avoir un accès natif. 5.c Tunnels Statiques 12 Réseaux : Cours 5 5.d R ÉSEAUX M1 Informatique Tunnels Automatiques : 6to4 6to4 est le principal protocole de tunnel sur IPv4 pour les IPs publiques IPv6. Le protocole 6to4 se situe au niveau 3 OSI (et possède le code 41). Une correspondance est établi entre adresses IPv4 et IPv6 : 5.e Adresses relais l’adresse 192.88.99.1 est une adresse anycast — comme du multicast => ensemble d’adresses — mais la diffusion s’arrête dès qu’un membre de l’ensemble a reçu le messages 5.f Un protocole de Transition Le protocole 6to4 est un protocole de transition permettant à un hôte IPv6 de communiquer à un autre hôte IPv6 via le nuage IPv4. 1. Assignation d’un bloc d’adresses IPv6 à tout hôte ou réseau qui dispose d’une adresse IPv4 2. Encapsulation des paquets IPv6 à l’intérieur de paquets IPv4 Un entête IPv4 (avec protocole 41) est ajouté 3. Gère le transit du trafic entre 6to4 et les réseaux IPv6 « natifs » 5.g Tunnels Automatiques : 6to4 13 Réseaux : Cours 5 R ÉSEAUX M1 Informatique Pour permettre la communication vers des hôtes IPv6 « natifs », on utilise des routeurs relais. Ceux-ci apparaissent sur Internet v4 avec l’adresse anycast 192.88.99.1. Lorsqu’un hôte 6to4 envoie un paquet vers un hôte IPv6 « natif », celui-ci est d’abord routé jusqu’au routeur 6to4. Puis — soit la destination est une autre "île IPv6" dont l’adresse IPv4 est connue via le mécanisme de correspondance. Alors le paquet est encapsulé en IPv4 puis transmis à ce routeur. — soit la destination est dans Internet v6, alors le paquet est transmis en anycast jusqu’à un relai 6to4 d’adresse IPv4 192.88.99.1. En sens inverse, un paquet peut ne pas utiliser le même relai. Dans tous les cas, la correspondance avec les octets 3 à 6 est utilisée pour router le paquet au travers d’IPv4. 5.h Des Limitations Certaines On rencontre cependant quelques problèmes avec cette architecture : — les adresses IPv4 doivent être publiques — en terme de routage IPv6 : il est difficile de contrôle qui utilise un relai donné — en terme de qualité d’accès : si le relai est loin du routeur 6to4 alors la qualité de la connexion peut être très mauvaise. De même, sur le chemin retour. — en terme de compatibilité avec d’éventuels parefeux avec une FAIbox typique. 5.i De 6to4 à 6rd Il a effectivement été constaté en 2010 qu’environ 15% des connexions IPv6 qui échouent sont des connexions 6to4. Il a donc été proposé à l’IETF une extension le protocole 6rd (IPv6 rapid deployment) sous l’impulsion du français Rémi Desprès. La principale, et importante différente, est que le relai se situe désormais nécessairement dans le réseau du fournisseur d’accès. 5.j Protocole 6rd Dans 6rd (rapid deployment), les relais 6to4 se situent à proximité du routeur 6to4, chez le fournisseur d’accès. La correspondance s’effectue vers des adresses IPv6 appartenant bien à celui-ci (en général des réseaux /32, avec un encodage qui peut utiliser moins de 32 bits car le routeur appartient nécessairement au réseau IPv4 du FAI). 14 Réseaux : Cours 5 5.k R ÉSEAUX M1 Informatique Tunnels Automatiques et NAT : Teredo La méthode précédente fonctionne mal avec les NATs : un autre protocole est proposé 1. Teredo (vers) RFC 4380 2. un protocole utilisable dans un réseau d’adresses IPv4 privées, relié à Internet via un routeur assurant une traduction d’adresses NAT. 3. implémentation — windows — UNIX : miredo 6 Crédits — Figures Wikimedia Commons (c) CC-SA 15