IPv6 CARE

Aller à la navigation Aller à la recherche
IPv6 CARE
Description de l'image Logo ipv6 care.jpg.

Informations
Développé par Etienne DUBLE
Dernière version 3.2b ()
Environnement UNIX
Licence Licence Apache
Site web ipv6-care.sf.net

IPv6 CARE, "IPv6 Compliant Automatic Runtime Environment", est un logiciel pour déceler et corriger les applications non compatibles IPv6. Il peut fournir un environnement dans lequel les applications deviennent compatibles IPv6. Il permet également de diagnostiquer la compatibilité IPv6 des programmes pendant qu'ils s'exécutent.

L'outil est libre et open-source, et fonctionne sur les systèmes de type UNIX (Linux, FreeBSD, OpenSolaris). Il a été développé initialement au sein du projet EGEE, par l'UREC, dans le cadre de la migration vers IPv6 du middleware gLite.

Caractéristiques et Utilisation

Patch mode

Dans ce mode IPv6 CARE va détecter les comportements non-compatibles IPv6 lorsqu'un programme s'exécute, et corriger ces comportements pour rendre le programme compatible IPv6. Cette correction suit le mécanisme indiqué dans le RFC 3338 ("Bump in the API"), à quelques adaptations près.

Par exemple si le programme appelle la primitive 'accept()' sur une socket TCP IPv4, on sait que ce programme serveur n'acceptera que les clients IPv4. En conséquence, IPv6 CARE va modifier ce comportement à la volée, en ouvrant une socket IPv6 sur le même port TCP, en effectuant un 'select()' pour attendre une connexion sur l'une ou l'autre de ces 2 sockets, et enfin en appelant la primitive 'accept()' sur la socket 'réveillée'. Au final ce programme serveur sera donc capable de recevoir des connexions de clients IPv4 et IPv6.

Check mode

Dans ce mode IPv6 CARE va détecter les appels de fonction non-compatibles IPv6 effectués par le programme, par exemple gethostbyname(). Pour chaque problème détecté :

  • Il génère une description du problème
  • Il émet un conseil sur la manière d'éviter ce problème
  • Il établit la pile d'appels de fonctions, ce qui est utile pour identifier où dans le programme les appels ont été effectués.

IPv6 CARE génère également un fichier traçant les appels de fonctions relatifs au réseau.

Fonctionnement

IPv6 CARE fonctionne comme une bibliothèque partagée chargée par la variable d'environnement LD PRELOAD, et redirige ainsi les appels de fonctions relatifs au réseau, de la bibliothèque C standard vers lui-même. En cas de besoin, l'utilisation de dlsym (...RTLD_NEXT) permet de retrouver la localisation de l'implémentation standard.

IPv6 CARE Mechanism.PNG

Références et Liens

Article publié sur Wikimonde Plus

  • icône décorative Portail des logiciels libres