![]() |
Licence Creative Commons by-nc-nd
(Attribution-Noncommercial-No Derivative Works 2.0 France) Development from the higher education and the research communities
|
IPv6 CARE, “IPv6 Compliance Automatic Runtime Experiment”, is a Linux tool able to diagnose the IPv6 compliance of programs at run time.
Mainly, it detects non IPv6 compliant function calls performed by the running program, for example gethostbyname().
For each problem detected, it generates :
Moreover it generates a log file of all network related function calls.
IPv6 CARE works with all programs linked to the standard shared library (libc), which means:
$ ipv6_care check -v telnet localhost 7777
IPV6 CARE detected: getaddrinfo() with [ ai_family=AF_UNSPEC ai_socktype=SOCK_STREAM nodename=localhost servname=7777 ]
IPV6 CARE detected: getnameinfo() with [ sa.ip=127.0.0.1 sa.port=7777 ]
Trying 127.0.0.1…
IPV6 CARE detected: socket() with [ domain=AF_INET type=SOCK_STREAM protocol=ip ]
IPV6 CARE detected: connect() with [ socket=3 address.ip=127.0.0.1 address.port=7777 ]
IPV6 CARE detected: getnameinfo() with [ sa.ip=::1 sa.port=7777 ]
Trying ::1…
IPV6 CARE detected: close() with [ fd=3 ]
IPV6 CARE detected: socket() with [ domain=AF_INET6 type=SOCK_STREAM protocol=ip ]
IPV6 CARE detected: connect() with [ socket=3 address.ip=::1 address.port=7777 ]
telnet: Unable to connect to remote host: Connection refused
IPV6 CARE detected: close() with [ fd=3 ]
——————————————————————————————————————————————————————————
IPv6 diagnosis for ‘telnet localhost 7777’ was generated in: /tmp/ipv6_diagnosis/telnet/by_pid/pid_16537
——————————————————————————————————————————————————————————
$
The generated messages show that telnet has an IPv6 compliant behavior (mainly because it uses getaddrinfo).
For more information, we can check the details of the diagnosis in the directory indicated.
Interoperability:
Until now IPv6 CARE has only been tested on Linux systems.
It should also work on other UNIX-like systems if they allow dynamic loading of shared libraries (defined by the environment variable LD_PRELOAD) and if they have the program “addr2line”.
Limits:
In the case of "interpreted" langages (in the sense that they are not compiled into machine code), the tool interacts between the interpreter and the standard library (libc). For this reason IPv6 CARE diagnoses the behavior of the interpreter and not directly the script's behavior, which makes the diagnosis harder to be understood. Please refer to the documentation for further information on this issue.
Durability indicators:
IPv6 CARE is open source software and it is published on the sourceforge server in order to extend its audience and to allow a continuation of the development, even after the end of the EGEE project.
Downloads statistics:
http://sourceforge.net/project/stats/detail.php?gr...
Help and documentation
Forum: http://sourceforge.net/forum/forum.php?forum_id=89...
User guide: https://sourceforge.net/project/showfiles.php?grou...
Wikipedia article (in french) : http://fr.wikipedia.org/wiki/IPv6_CARE
Article explaining how to use IPv6 CARE (french, early version) : http://www.g6.asso.fr/blog/?p=33
Examples of IPv6 compliance reports using IPv6 CARE: https://edms.cern.ch/document/980424, https://edms.cern.ch/document/980820.
Contribution:
For contributions to IPv6 CARE please contact the author of this card.
I developped this program for the EGEE project, in order to ease the IPV6 compliance tests of the middleware (gLite).
Source URL: https://projet-plume.org/en/relier/ipv6-care-0