Couverture de l'article IPv6, 22 ans après…
Retour aux articles

L'agence

WanadevStudio

IPv6, 22 ans après…

Vingt-deux ans ! À la fois incroyable et saisissant en même temps. IPv6 est un terme qui parle à beaucoup mais dans les faits, on en en est où ? Digne successeur de l’IP v4, on peut dire que ce protocole créé dans les années 90 à du mal à s’affirmer.

Un coup d’œil dans le rétro

IP v4, c’est l’IP tel que tout le monde le connait. Créé en 1981, le protocole permet à des ressources de communiquer sur internet. Une adresse IP est une adresse permettant de recevoir et transmettre des données vers un ou plusieurs terminaux.

L’Internet Protocol est donc essentiel au bon fonctionnement du web. L'utilisation mondiale d’internet ne cesse d’augmenter avec une couverture ADSL et fibre de plus en plus importante ainsi qu'avec l’émergence massive d'objets connectés. Les conséquences directes sont une consommation très importante d'IPs.

@ Une adresse IPv4 est représentée sous 4 nombres entiers séparés par des points et compte 4 milliards d’adresses possibles. Les adresses IP sont gérées par l’IANA, une autorité internationale qui délivre des blocs d’IPs publiques aux autorités régionales RIR (RIPE par exemple) qui ensuite sont distribués aux entreprises et sociétés exploitantes (OVH, Orange….).

Depuis 2012, L’IANA a distribué tous les blocs disponibles. Depuis, les autorités régionales distribuent au compte-goutte les blocs bien conscients de cette pénurie.


source Wikipedia

Face à ce problème, le protocole v6 est la solution pour répondre à ce manque d’adresses en étendant la plage de 32 bits pour v4 à 128 bits pour la v6 (soit 3,4 × 10^38 adresses). De quoi être très confortable !

Cette nouvelle version a aussi apportée d’autres améliorations comme une simplification du routage, une meilleure sécurisation des échanges et par la même occasion une disparation du NAT. IPv6 propose aussi un découpage par autorité régionale beaucoup plus normé et transparent.

Une adresse IPv6 est composée de 8 groupes de 2octets (chiffres et lettres) séparés par un signe deux-points. Il est possible de raccourcir l'écriture en cas de zéro dans un groupe.

@ Par exemple, une adresse IP 2001:42d1:127:f800:0:0:0:0 fonctionne aussi sous cette forme 2001:42d1:127:f800: ou une adresse IP 2001:42d1:127:f800:0:0:0:1 peut devenir 2001:42d1:127:f800::1

@ Si vous utilisez votre navigateur pour consulter un serveur via son IP, vous serez obligé d'encadrer votre adresse par des crochets : http://[2001:41d0:127:f900:0:0:0:0\]

Enfin, il est bon de savoir que de nombreux mécanismes de transcription IPv4 vers IPv6 et inversement ont été mis en place pour faciliter le déploiement du protocole... Voir aussi NAT64 et DNS64.

2018, année IPv6 ?

@ Si on fait un état des lieux rapide, en France, 16% des échanges sur internet sont réalisés en IPv6… 22 ans après la création du protocole. Il reste donc du chemin à parcourir.


source Geekflare

Les raisons de cette inertie dans la mise en place de ce protocole résident dans l'obligation de mise à jour des matériels et des logiciels.

Tel un mille-feuilles, tous les acteurs d'internet sont touchés en commençant par les infrastructures réseaux (fournisseurs d’accès, opérateurs de télécommunication…), le matériel particulier (box, carte réseau, borne wifi…), les sociétés d'hébergement et enfin les différents programmes informatiques.

Mais pourquoi basculer aujourd’hui ?

L'environnement technique est maintenant prêt à accueillir ce protocole, le matériel réseau est compatible et les opérateurs sont à jour. Un autre point, et surement le plus important à prendre en compte réside dans le fait que de plus en plus de services imposent une compatibilité IPv6.

Par exemple, Apple le demande systématiquement sur les applications mobiles et il ne serait pas étonnant que Google en fasse de même. Bref, vous serez un jour ou l'autre "forcé" de migrer alors pourquoi pas l'anticiper maintenant ?

Mettre en place l’IPv6 facilement sur votre serveur

En prérequis, il est important d'avoir un accès à une connexion IPv6 pour pouvoir tester sur le bon protocole (souvent une activation à faire sur votre box internet).

Pour commencer, vous allez ajouter un IPv6 sur votre serveur. Contrôlez que votre offre d'hébergement est compatible et que votre serveur n'ait pas déjà un IPv6 de configuré avec la commande :

 ip a

Sinon, demandez un bloc IP à votre hébergeur (ou utilisez un bloc existant) et modifiez votre serveur pour qu’il prenne en compte cet IP. Avant cela, pour déterminer les IPs disponibles, vous pouvez utiliser cet outil.

Attention, chez certains hébergeurs, le réseau ÏPv6 est désactivé par défaut. Vous devez donc demander son activation. Configurez maintenant votre adresse IP manuellement sous cette forme:

 iface eth0 inet6 static
        address 2001:42d1:127:f800::1
        netmask 64
        gateway 2001:42d1:127:f800:ffff:ffff:ffff:ffff

(source Debian)

La gateway est souvent la dernière adresse de la plage d'IP allouée mais vous devez vous renseigner avant auprès de votre hébergeur.

Il faut maintenant configurer des vhosts Nginx ou Apache pour prendre en compte les requêtes IPv6 mais aussi IPv4 (si vous souhaitez fonctionner en dual stack ) :

  • Pour Nginx, il suffit en général de rajouter listen [::]:80 ipv6only=on; à votre vhost.
  • Pour Apache, c'est la directive suivante listen [::]80;

Testez maintenant que votre serveur répond avec un ping (ping6) :

ping6 votre_host.fr

Maintenant que votre serveur est prêt à recevoir des requêtes IPv6, vous allez devoir configurer votre serveur DNS et mettre en place une entrée AAAA (au lieu de classique A) de votre domaine vers l’IPv6 de votre serveur.

Évidement, pour que cela fonctionne votre serveur DNS doit être accessible via ce protocole (attention à l'anycast d'OVH par exemple).

Dernière vérification pour contrôler que cette nouvelle entrée de votre zone DNS fonctionne :

host -t AAAA votre_host.fr

Vos retours et améliorations

Merci pour votre lecture, nous vous invitons avec plaisir à réagir en commentaire ou sur les réseaux pour discuter de ce sujet !

Commentaires

Il n'y a actuellement aucun commentaire. Soyez le premier !

  • Couverture de l'article Event Bus : Le secret d'une architecture Symfony réellement découplée
    Event Bus : Le secret d'une architecture Symfony réellement découplée

    Il y a 3 semaines

    Imaginez : votre utilisateur clique sur "Commander". En coulisses, le domaine Stock doit décrémenter les quantités, le domaine Facturation doit générer une facture, et le domaine Notification doit envoyer un email de confirmation. Trois domaines, une seule action... et un spaghetti de dépendances en perspective. 🍝

    Et si ces domaines pouvaient collaborer sans jamais se connaître ?

    C'est exactement ce que permet l'Event Bus. Mais avant de foncer tête baissée, une question se pose : Symfony propose déjà l'EventDispatcher pour gérer les événements. Alors pourquoi introduire un nouveau concept ?

    Spoiler : ce ne sont pas les mêmes outils, et les confondre peut vous coûter cher.

    Dans cet article, nous allons démystifier leurs différences et découvrir comment l'Event Bus de Symfony Messenger vous permet de construire une architecture réellement découplée.

    Ce que vous allez apprendre :

    • Les différences fondamentales entre EventDispatcher et Event Bus
    • Quand utiliser l'un plutôt que l'autre
    • Comment configurer un Event Bus avec Symfony Messenger
    • Créer une architecture événementielle découplée
  • Couverture de l'article CQRS avec Symfony Messenger : Domptez la complexité de vos applications
    CQRS avec Symfony Messenger : Domptez la complexité de vos applications

    Il y a 1 mois

    Vous êtes-vous déjà retrouvé face à un controller Symfony surchargé qui gère à la fois la validation, la logique métier, la persistence et les réponses HTTP ? Si oui, le CQRS est fait pour vous !

    Le CQRS (Command Query Responsibility Segregation) est un pattern architectural qui sépare clairement les opérations d'écriture (Commands) et de lecture (Queries). Combiné avec Symfony Messenger, il vous permet de :

    • Organiser votre code de manière claire et maintenable
    • Séparer les responsabilités pour respecter les principes SOLID
    • Valider vos données avant même qu'elles n'atteignent votre logique métier
    • Gérer les transactions de base de données de manière élégante
    • Préparer votre application pour l'asynchrone sans effort

    Dans cet article, nous allons explorer les Commands (écriture) et les Queries (lecture) à travers un exemple concret de gestion de bibliothèque.

  • Couverture de l'article Créez votre assistant personnel grâce à Gmail et ChatGPT 4
    Créez votre assistant personnel grâce à Gmail et ChatGPT 4

    Il y a 2 ans

    Les LLMs, ou Large Language Models, comme ChatGPT, Llama2, Claude ou encore Mistral nous donne un avant-goût du futur des assistants virtuels tels que nous les connaissons avec Google, Siri ou Alexa. Pourtant, il manque une sacrée touche personnelle avec ces assistants nouvelle génération. Même si OpenAI a mis en place un système permettant d’à peu près personnaliser son expérience avec ChatGPT, nous sommes loin d’avoir des IA qui nous connaissent réellement. La raison est assez simple : ceux-ci n’ont pas accès à vos données. Et si on aidait ces LLMs si puissant en leur donnant des données pour qu’ils sachent répondre à des requêtes très personnalisées ?

  • Couverture de l'article Créer facilement une API REST avec Symfony & API Platform
    Créer facilement une API REST avec Symfony & API Platform

    Il y a 5 ans

    Au menu aujourd'hui, je vous ai concocté un petit article gourmand croquant, sur un framework devenu très populaire au sein de la communauté Symfony dans la mise en place d'API, j’ai nommé le fameux API Platform.

  • Couverture de l'article Symfony Messenger  : Gestion des Messages en file d’attente
    Symfony Messenger : Gestion des Messages en file d’attente

    Il y a 6 ans

    Messenger, apparu au printemps 2018 avec la version 4.1 de Symfony est devenu aujourd’hui un composant majeur du framework français. Et pour cause, Messenger répond parfaitement aux problématiques de performance que nos applications peuvent rencontrer. Comment ? Et bien c’est ce que nous allons découvrir à travers cet article qui couvrira les principales spécificités du composant Messenger.

  • Couverture de l'article Pontoon : s'authentifier avec Gitlab
    Pontoon : s'authentifier avec Gitlab

    Il y a 6 ans

    Afin de faciliter la traduction de nos applications, nous avions besoin d'une interface web pour permettre aux différents traducteurs de faire leur travail dans de bonnes conditions. Il n'était en effet pas question de leur imposer l'utilisation d'un gestionnaire de versions comme Git, et les échanges de fichiers par e-mail ou dossiers partagés montrent vite leurs limites, surtout lorsque le nombre de projets et de langues augmente.