- IPv6 CARE
-
IPv6 CARE Développeur Etienne DUBLE Dernière version 3.2 (21 septembre 2010) [+/−] Environnement Linux Langue Anglais Licence Licence Apache Site web ipv6-care.sf.net modifier IPv6 CARE, "IPv6 Compliant Automatic Runtime Environment", est un outil Linux open-source capable de rendre les programmes compatibles IPv6 sans les modifier ('patch mode'). Il est également capable de diagnostiquer la compatibilité IPv6 des programmes pendant qu'ils s'exécutent ('check mode').
L'outil a été développé initialement au sein du projet EGEE, par l'UREC, dans le cadre de la migration vers IPv6 du middleware gLite.
Sommaire
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.
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 librairie partagée chargée par la variable d'environnement LD_PRELOAD, et redirige ainsi les appels de fonctions relatifs au réseau, de la librairie C standard vers lui-même. Ces fonctions standards sont au final appelées (après le code de diagnostic ou de patch), en utilisant dlsym(...RTLD_NEXT).
Références et Liens
- (en) Site officiel
- (en) Accueil du projet IPv6 CARE sur SourceForge.net
- (fr) Article expliquant l'utilisation d'IPv6 CARE
- (fr) Article sur le site de l'UREC
- (en) Annonce sur le site EGEE
- (en) Wiki de l'équipe "IPv6 follow-up" d'EGEE
- (en) Accueil du projet IPv6 CARE sur Freshmeat
- (fr) Fiche descriptive PLUME
- (en) Exemples de rapports de tests de compatibilité IPv6 utilisant IPv6 CARE : https://edms.cern.ch/document/980424, https://edms.cern.ch/document/980820
Catégories :- Logiciel pour Linux
- Logiciel libre sous licence Apache
- Test logiciel
- Logiciel d'analyse du réseau informatique
Wikimedia Foundation. 2010.