Provided by: manpages-fr_3.32d0.2p4-1_all bug

NOM

       ipv6, AF_INET6 - Implementation Linux du protocole IPv6

SYNOPSIS

       #include <sys/socket.h>
       #include <netinet/in.h>

       tcp6_socket = socket(AF_INET6, SOCK_STREAM, 0);
       raw6_socket = socket(AF_INET6, SOCK_RAW, protocole);
       udp6_socket = socket(AF_INET6, SOCK_DGRAM, protocole);

DESCRIPTION

       Linux 2.2  implemente en option le protocole internet version 6 (IPv6).
       Cette page de manuel contient la description de  l'API  IPv6  de  base,
       telle  qu'implementee  dans  le noyau Linux et la glibc 2.1 L'interface
       est basee sur l'interface des sockets BSD. Consultez socket(7).

       L'API IPv6 est concue pour etre essentiellement compatible  avec  l'API
       IPv4 (consultez ip(7)). Seules les differences sont decrites dans cette
       page de manuel.

       Pour attacher une socket AF_INET6, l'adresse locale  doit  etre  copiee
       dans  une  variable  in6addr_any  qui  a  le  type  in6_addr.  Dans les
       initialisations statiques, IN6ADDR_ANY_INIT peut  servir  aussi  et  se
       developpe  en  une  expression  constante. Toutes les valeurs sont dans
       l'ordre des octets du reseau.

       L'adresse de boucle IPv6 (::1) est disponible dans la variable  globale
       in6addr_loopback.   Pour   les   initialisations,   on   doit  utiliser
       IN6ADDR_LOOPBACK_INIT.

       Les connexions IPv4 peuvent etre traitees avec l'API v6 en utilisant le
       type  d'adresse  v4-projete-dans-v6.  Ainsi un programme n'a qu'un seul
       type d'API a utiliser pour prendre en charge les deux protocoles.  Ceci
       est  gere  de  maniere transparente par les fonctions d'adressage de la
       bibliotheque C.

       IPv4 et IPv6 partagent l'espace des ports locaux. Lorsqu'une  connexion
       ou  un  paquet  IPv4 est obtenu sur une socket IPv6, son adresse source
       sera projetee en v6.

   Format d'adresse
           struct sockaddr_in6 {
               sa_family_t     sin6_family;   /* AF_INET6 */
               in_port_t       sin6_port;     /* numero de port */
               uint32_t        sin6_flowinfo; /* information de flux IPv6 */
               struct in6_addr sin6_addr;     /* adresse IPv6 */
               uint32_t        sin6_scope_id; /* Scope ID (nouveaute 2.4) */
           };

           struct in6_addr {
               unsigned char   s6_addr[16];   /* adresse IPv6 */
           };

       sin6_family est toujours rempli avec AF_INET6 ; sin6_port est  le  port
       du  protocole  (consultez  sin_port  dans  ip(7)) ;  sin6_flowinfo  est
       l'identificateur  de  flux  IPv6,  sin6_addr  est  l'adresse  IPv6  sur
       128 bits.  sin6_scope_id  est un identificateur qui depend de la portee
       de l'adresse. C'est une nouveaute  Linux 2.4.  Linux  ne  le  prend  en
       charge  que  pour  les  adresses  ayant une portee liaison, dans ce cas
       sin6_scope_id contient le numero d'interface (consultez netdevice(7)).

       IPv6  prend  en  charge  plusieurs  types  d'adresses :  unicast   pour
       representer  un  hote unique, multicast pour un groupe d'hotes, anycast
       pour indiquer le  membre  le  plus  proche  d'un  groupe  d'hotes  (non
       implemente  sous  Linux),  IPv4-on-IPv6  pour un hote IPv4, et d'autres
       types d'adresse reserves.

       La  notation  d'adresse  pour  l'IPv6  est  un  groupe  de   16 nombres
       hexadecimaux  sur  2 chiffres,  separes  par un deux-points << : >>. Un
       << :: >>  represente  une  chaine  de  zeros.  Les  adresses  speciales
       sont ::1  pour  le  bouclage loopback et ::FFFF:<adresse IPv4> pour les
       projections d'adresses IPv4 sur l'IPv6.

       L'espace des ports de l'IPv6 est partage avec l'IPv4.

   Options de sockets
       IPv6 accepte quelques options des sockets specifiques du protocole, qui
       peuvent   etre   fixees   avec   setsockopt(2)   et   consultees   avec
       getsockopt(2).  Le  niveau  d'option  de   socket   pour   l'IPv6   est
       IPPROTO_IPV6.  Un  entier  booleen  est  faux  quand il est nul et vrai
       sinon.

       IPV6_ADDRFORM
              Transformer une socket AF_INET6  en  une  socket  d'une  famille
              d'adresse  differente.  Seul  AF_INET  est  actuellement pris en
              charge pour cela. Cela n'est autorise que pour les sockets  IPv6
              connectees  et attachees a une adresse v4-sur-v6. L'argument est
              un pointeur sur un entier contenant AF_INET. Cela est utile pour
              passer  des  sockets  projetees  en  v4 comme descripteurs a des
              programmes ne sachant pas manipuler l'API IPv6.

       IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP
              Determine l'appartenance aux groupes multicast.  L'argument  est
              un pointeur sur une structure struct ipv6_mreq.

       IPV6_MTU
              Fixe  le  MTU  a  utiliser pour la socket. Le MTU est limite par
              celui du peripherique ou celui du chemin lorsque la recherche du
              MTU  par  chemin  est activee. L'argument est un pointeur sur un
              entier.

       IPV6_MTU_DISCOVER
              Commander  la  recherche  du  MTU  par  chemin  sur  la  socket.
              Consultez  l'option  IP_MTU_DISCOVER  dans  ip(7)  pour  plus de
              precisions.

       IPV6_MULTICAST_HOPS
              Fixe la limite du nombre de sauts (hops)  multicast.  L'argument
              est  un  pointeur  sur  un  entier. La valeur -1 correspond a la
              valeur par defaut de routage, sinon il doit s'agir  d'un  entier
              entre 0 et 255.

       IPV6_MULTICAST_IF
              Fixe  le  peripherique pour les paquets multicast sortants de la
              socket. Ceci n'est permis que pour  les  sockets  SOCK_DGRAM  et
              SOCK_RAW.  L'argument  est un pointeur sur un numero d'interface
              (consultez netdevice(7)) dans un entier.

       IPV6_MULTICAST_LOOP
              Determine si la socket voit  les  paquets  multicast  qu'elle  a
              elle-meme  emis.  L'argument  est  un  pointeur  sur  une valeur
              booleenne.

       IPV6_PKTINFO
              Fixe la distribution des messages de controle  IPV6_PKTINFO  des
              datagrammes  entrants.  Uniquement  autorise  pour  les  sockets
              SOCK_DGRAM ou SOCK_RAW.  L'argument  est  un  pointeur  sur  une
              valeur booleenne dans un entier.

       IPV6_RTHDR, IPV6_AUTHHDR, IPV6_DSTOPTS, IPV6_HOPOPTS, IPV6_FLOWINFO,
              IPV6_HOPLIMIT  Fixe la distribution des messages de contr^ole des
              datagrammes entrants  contenant  les  en-t^etes  d'extensions  du
              paquet   re,cu.   IPV6_RTHDR   d'elivre   l'en-t^ete   de  routage,
              IPV6_AUTHHDR d'elivre l'en-t^ete d'authentification,  IPV6_DSTOPTS
              d'elivre  les  options  de  destination, IPV6_HOPOPTS d'elivre les
              options de  saut,  IPV6_FLOWINFO  d'elivre  un  entier  contenant
              l'identificateur   de  flux,  IPV6_HOPLIMIT  d'elivre  un  entier
              contenant le nombre de sauts du paquet. Les messages de contr^ole
              ont  le  m^eme  type  que  l'option de socket. Toutes ces options
              d'en-t^ete peuvent aussi ^etre fix'ees pour les paquets sortants en
              mettant  le  message  de  contr^ole  appropri'e  dans le tampon de
              sendmsg(2). Uniquement autoris'e pour les sockets  SOCK_DGRAM  ou
              SOCK_RAW. L'argument est un pointeur sur une valeur bool'eenne.

       IPV6_RECVERR
              Commande   la   reception  des  erreurs  asynchrones.  Consultez
              IP_RECVERR dans ip(7) pour plus de precisions. L'argument est un
              pointeur sur un booleen.

       IPV6_ROUTER_ALERT
              Passer  sur  cette socket tous les paquets rediriges (forwarded)
              contenant  une  option  << hop-by-hop >>  d'alerte  du  routeur.
              Uniquement  autorise  pour  les  sockets  SOCK_RAW.  Les paquets
              exploites ne sont pas rediriges par  le  noyau,  il  est  de  la
              responsabilite  de l'utilisateur de les renvoyer. L'argument est
              un pointeur vers un entier. Un entier positif indique une valeur
              option  d'alerte  du  routeur a intercepter. Les paquets portant
              une option d'alerte du routeur avec un champ de valeur contenant
              cet entier sera delivre a la socket. Un entier negatif desactive
              la delivrance de packets avec des options d'alerte du routeur  a
              cette socket.

       IPV6_UNICAST_HOPS
              Fixe la limite du nombre de sauts (hops) unicast. L'argument est
              un pointeur sur un entier. La valeur -1 correspond a  la  valeur
              par  defaut de routage, sinon il doit s'agir d'un entier entre 0
              et 255.

       IPV6_V6ONLY (depuis Linux 2.4.21 et 2.6)
              Quand cet attribut est positionne (different de zero), alors  la
              socket est limitee a l'emission et la reception de paquets IPv6.
              Dans ce cas, une application IPv4 et IPv6 peuvent  s'associer  a
              un meme port en meme temps.

              Si  cet  attribut  n'est  pas positionne (zero), alors la socket
              peut etre utilise pour emettre ou recevoir des paquets depuis et
              vers  une  adresse  IPv6  ou  une projections d'adresse IPv4 sur
              IPv6.

              Le parametre est un pointeur vers un booleen dans un entier.

              La valeur par defaut de cet attribut est defini par  le  contenu
              du  fichier  /proc/sys/net/ipv6/bindv6only. La valeur par defaut
              de ce fichier est 0 (desactive).

VERSIONS

       L'ancienne implementation IPv6 pour Linux  basee  sur  libinet6  de  la
       LibC5 n'est pas decrite ici, et peut etre legerement differente.

       Linux 2.4 rompt la compatibilite binaire pour la structure sockaddr_in6
       des hotes sur 64 bits, en modifiant  l'alignement  de  in6_addr  et  en
       ajoutant un champ sin6_scope_id supplementaire. Les interfaces du noyau
       restent compatible, mais un programme contenant des sockaddr_in6 ou des
       in6_addr  dans d'autres structures ne l'est peut etre pas. Ce n'est pas
       un probleme pour les hotes sur 32 bits comme les i386.

       Le champ sin6_flowinfo est une nouveaute Linux 2.4. Il est ecrit/lu  de
       maniere transparente par le noyau quand la longueur de l'adresse passee
       le contient. Certains programmes qui passent un tampon  d'adresse  plus
       long  et  verifient  ensuite  la longueur de l'adresse renvoyee peuvent
       echouer.

NOTES

       La structure sockaddr_in6 est plus grande  que  la  structure  sockaddr
       generique.  Les  programmes qui supposent que tous les types d'adresses
       peuvent etre stockes dans une struct  sockaddr  doivent  etre  modifies
       pour utiliser struct sockaddr_storage a la place.

BOGUES

       L'API  IPv6  etendue,  telle  que  dans  la  RFC 2292, n'est encore que
       partiellement implementee. Bien que les noyaux 2.2 ont  une  prise   en
       charge  pratiquement  complete  des  options  de  reception, les macros
       declarant les options IPv6 manquent dans la glibc 2.1.

       La prise en charge IPSec pour les en-tetes EH et AH manque.

       La gestion des etiquettes de flux n'est  pas  complete,  ni  documentee
       ici.

       Cette page de manuel n'est pas complete.

VOIR AUSSI

       cmsg(3), ip(7)

       RFC 2553:   API  IPv6  de  base,  avec  laquelle  Linux  essaye  d'etre
       compatible.

       RFC 2460: Specifications IPv6.

COLOPHON

       Cette page fait partie de  la  publication  3.32  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      etre       trouvees       a       l'adresse
       <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis  2010,  cette  traduction est maintenue a l'aide de l'outil po4a
       <URL:http://po4a.alioth.debian.org/>   par   l'equipe   de   traduction
       francophone        au        sein        du       projet       perkamon
       <URL:http://perkamon.alioth.debian.org/>.

       Christophe Blaess  <URL:http://www.blaess.fr/christophe/>  (1996-2003),
       Alain   Portal  <URL:http://manpagesfr.free.fr/>  (2003-2006).   Julien
       Cristau et l'equipe francophone de traduction de Debian (2006-2009).

       Veuillez  signaler  toute  erreur   de   traduction   en   ecrivant   a
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous pouvez toujours avoir acces a la version anglaise de  ce  document
       en utilisant la commande << man -L C <section> <page_de_man> >>.

Linux                           28 fevrier 2009                        IPV6(7)