Ipv6 nella Griglia Vincenzo Ciaschini (INFN) CCR/INFNGrid 2011 Some slides originally by Mario Reale, used with permission
Use Insert Header & Footer to set this field A Simple Question How far are we from having full IPv6 compliance? Use Insert Header & Footer to set this field Use Insert Header & Footer to set this field 2
Use Insert Header & Footer to set this field Current Status # of components: 297 # of non compliant: 25 # of uncertain: 2 Percentage of Compliance: 270/297 = 91% Use Insert Header & Footer to set this field Use Insert Header & Footer to set this field 3
LFC DPM BDII FTS LB-server CREAM CEmon VOMS glexec GridSite ARC0 lcgdm IPv6 compliance Compliant LFC DPM globus-url-copy/gridFTP BDII FTS LB-server CREAM CEmon VOMS Argus-client glexec GridSite ARC0 IPv6 compliance unknown ( but not aware of clear IPv6 non compliance ) lcgdm IPv6 compliance still an issue / porting not started ARC1 SCAS jobid DGAS lcg_utils AMGA dcache LB-client WMproxy/WMS Argus-server Unicore Use Insert Header & Footer to set this field Use Insert Header & Footer to set this field 4
Use Insert Header & Footer to set this field How to Test Https://twiki.cern.ch/twiki/pub/EGEE/IPv6FollwUp/IPv6_Code_Ch ecker_V1.0.zip Https://twiki.cern.ch/twiki/pub/EGEE/IPv6FollowUp/ipv6_metric.t ar.gz These two return slightly different reports The second has less false positives, but also returns false negatives They do a rough check of the code to spot potentia problems. Must be refined by hand: automate pass gave 63 failures, of which 34 were false positives Still, a very big sieve. Use Insert Header & Footer to set this field Use Insert Header & Footer to set this field 5
Use Insert Header & Footer to set this field IPv6Care Runtime detect and patch IPv6 issues Two modes: detect only and patch Detect: uses LD_PRELOAD to interpose itself between the application and the OS, and logs calls to problematic functions Patch: uses LD_PRELOAD to interpose itself between the application and the OS, and converts calls to problematic functions Use Insert Header & Footer to set this field Use Insert Header & Footer to set this field 6
Most Common Problems Calls to gethostbyname() Should be getaddrinfo() Hardcoded usage of 127.0.0.1 Should be “localhost” or both of “127.0.0.1” and “::1” Usage of sockaddr_in[6] Should be sockaddr_storage Usage of inet_hton*() and inet_ntoh*() Should be inet_pton() and inet_ntop()
Libraries? Some commonly used libraries do not support IPv6 by default gSoap – requires special compilation options OpenSSL – requires you to handle the socket yourself rather than trusting the library
How to Write IPv6 compliant code Two very good guides: Https://edms.cern.ch/document/971407 Https://twiki.cern.ch/twiki/pub/EGEE/IPv6Fo llowUp/Introduction_to_IPv6_programming_ C_Java_PHP_perl.pdf
Wealth of information Http://twiki.cern.ch/twiki/bin/view/EGEE /IPv6FollowUp No longer updated but very good. Source of all shown today.
Thanks Many thanks to Mario Reale for contributing his original slides plus a lot of help during the actual transition to IPv6.
Use Insert Header & Footer to set this field Thank you EMI is partially funded by the European Commission under Grant Agreement INFSO-RI-261611 Use Insert Header & Footer to set this field Use Insert Header & Footer to set this field 12