Provided by: manpages-fr_4.23.1-1_all bug

NOM

       ip – Implémentation Linux du protocole IPv4

SYNOPSIS

       #include <sys/socket.h>
       #include <netinet/in.h>
       #include <netinet/ip.h> /* Surensemble des précédents */

       tcp_socket = socket(AF_INET, SOCK_STREAM, 0);
       udp_socket = socket(AF_INET, SOCK_DGRAM, 0);
       raw_socket = socket(AF_INET, SOCK_RAW, protocole);

DESCRIPTION

       Linux implémente le protocole Internet (IP) version 4 décrit dans les RFC 791 et RFC 1122.
       ip contient une implémentation de la diffusion multiple niveau 2 conforme à  la  RFC 1112.
       Cette implémentation inclut un routeur IP comprenant un filtre de paquets.

       L'interface de programmation est compatible avec les sockets BSD. Pour plus d'informations
       sur les sockets, consultez socket(7).

       Un socket IP est créé en utilisant socket(2) :

           socket(AF_INET, socket_type, protocol);

       Les sockets autorisés incluent SOCK_STREAM pour ouvrir un  socket  flux,  SOCK_DGRAM  pour
       ouvrir  un  socket  datagramme  et  SOCK_RAW  pour  ouvrir  un  socket raw(7) pour accéder
       directement au protocole IP.

       protocole est le protocole  IP  dans  les  en-têtes  IP  reçus  ou  envoyés.  Les  valeurs
       autorisées pour protocole incluent :

       -  0 et IPPROTO_TCP pour les sockets flux tcp(7) ;

       -  0 et IPPROTO_UDP pour les sockets datagramme udp(7) ;

       -  IPPROTO_SCTP pour les sockets flux sctp(7) ;

       -  IPPROTO_UDPLITE pour les sockets datagramme udplite(7).

       Pour  SOCK_RAW  un  protocole  IP  IANA  autorisé,  défini dans les numéros assignés de la
       RFC 1700, peut être indiqué.

       Lorsqu'un processus veut recevoir de nouveaux paquets entrants ou des connexions, il  doit
       attacher  un  socket à une adresse d'interface locale en utilisant bind(2). Un seul socket
       IP peut être attaché à une paire (adresse, port) locale  donnée.  Lorsque  INADDR_ANY  est
       indiqué  au  moment  de  l'attachement,  le  socket  sera  affecté à toutes les interfaces
       locales. Si listen(2) est appelée sur un socket non affecté, celui-ci est  automatiquement
       attaché  à  un  port  libre  aléatoire,  avec  l'adresse  locale  définie à INADDR_ANY. Si
       connect(2) est appelée sur un socket non affecté, celui-ci est automatiquement  attaché  à
       un  port  libre  aléatoire  ou  un port partagé utilisable avec l'adresse locale définie à
       INADDR_ANY.

       L'adresse locale d'un socket TCP qui a  été  attaché  est  indisponible  pendant  quelques
       instants  après  sa fermeture, à moins que l'attribut SO_REUSEADDR ait été activé. Il faut
       être prudent en utilisant cet attribut, car il rend le protocole TCP moins fiable.

   Formats d'adresse
       Une adresse de socket IP est définie comme la combinaison d'une adresse IP d'interface  et
       d'un numéro de port de 16 bits. Le protocole IP de base ne fournit pas de numéros de port,
       ils sont implémentés par les protocoles de plus haut niveau comme udp(7)  et  tcp(7).  Sur
       les sockets raw, le champ sin_port contient le protocole IP.

           struct sockaddr_in {
               sa_family_t    sin_family; /* address family: AF_INET */
               in_port_t      sin_port;   /* port in network byte order */
               struct in_addr sin_addr;   /* internet address */
           };

           /* Internet address */
           struct in_addr {
               uint32_t       s_addr;     /* address in network byte order */
           };

       sin_family est toujours défini à AF_INET. C'est indispensable : sous Linux 2.2, la plupart
       des fonctions réseau renvoient EINVAL  lorsque  cette  définition  est  absente.  sin_port
       contient  le  numéro  de  port,  dans  l'ordre  des octets du réseau. Les numéros de ports
       inférieurs à 1024 sont  dits  privilégiés  (ou  parfois  réservés).  Seuls  les  processus
       privilégiés  (sur  Linux,  ceux  qui ont la capacité CAP_NET_BIND_SERVICE dans l’espace de
       noms utilisateur gouvernant son espace de noms réseau) peuvent appeler  bind(2)  pour  ces
       sockets. Le protocole IPv4 brut en tant que tel n'a pas le concept de ports, ceux-ci étant
       seulement implémentés par des protocoles de plus haut niveau comme tcp(7) et udp(7).

       sin_addr est l'adresse IP de l'hôte. Le membre s_addr de  la  structure  in_addr  contient
       l'adresse  de  l'interface  de  l'hôte, dans l'ordre des octets du réseau. in_addr devrait
       recevoir l'une des valeurs INADDR_* (par exemple, INADDR_LOOPBACK) en  utilisant  htonl(3)
       ou  être  défini  à  l’aide  des  fonctions  de  bibliothèque  inet_aton(3), inet_addr(3),
       inet_makeaddr(3)  ou  directement  par  le  système  de  résolution  des  noms  (consultez
       gethostbyname(3)).

       Les  adresses  IPv4  sont  divisées  en  adresses  de diffusion individuelle (unicast), de
       diffusion générale (broadcast) et de  diffusion  multiple  (multicast).  Les  adresses  de
       diffusion individuelle décrivent une interface unique d'un hôte, les adresses de diffusion
       générale correspondent à tous les hôtes d'un réseau et les adresses de diffusion  multiple
       représentent  tous  les  hôtes d'un groupe de diffusion multiple. Les datagrammes vers des
       adresses de diffusion générale ne peuvent être émis et reçus que si l'attribut  de  socket
       SO_BROADCAST est activé. Dans l'implémentation actuelle, les sockets orientés connexion ne
       sont autorisés que sur des adresses de diffusion individuelle.

       Remarquez que l'adresse et le port sont  toujours  stockés  dans  l'ordre  des  octets  du
       réseau. Cela signifie en particulier qu'il faut invoquer htons(3) sur le numéro attribué à
       un port. Toutes les fonctions de manipulation d'adresses et de ports  de  la  bibliothèque
       standard fonctionnent dans l'ordre des octets du réseau.

   Special and reserved addresses
       There are several special addresses:

       INADDR_LOOPBACK (127.0.0.1)
              always refers to the local host via the loopback device;

       INADDR_ANY (0.0.0.0)
              means any address for socket binding;

       INADDR_BROADCAST (255.255.255.255)
              has  the  same  effect  on  bind(2)  as INADDR_ANY for historical reasons. A packet
              addressed to INADDR_BROADCAST through a socket which has SO_BROADCAST set  will  be
              broadcast  to  all  hosts  on  the  local  network  segment, as long as the link is
              broadcast-capable.

       Highest-numbered address
       Lowest-numbered address
              On any locally-attached non-point-to-point IP subnet with a link type that supports
              broadcasts,  the  highest-numbered address (e.g., the .255 address on a subnet with
              netmask 255.255.255.0)  is designated as a broadcast address. It cannot usefully be
              assigned  to  an  individual  interface, and can only be addressed with a socket on
              which the SO_BROADCAST option has been set. Internet  standards  have  historically
              also  reserved  the  lowest-numbered address (e.g., the .0 address on a subnet with
              netmask 255.255.255.0)  for broadcast, though they  call  it  "obsolete"  for  this
              purpose.  (Some  sources  also refer to this as the "network address.") Since Linux
              5.14, it is treated as an ordinary unicast  address  and  can  be  assigned  to  an
              interface.

       Internet standards have traditionally also reserved various addresses for particular uses,
       though Linux no longer treats some of these specially.

       [0.0.0.1, 0.255.255.255]
       [240.0.0.0, 255.255.255.254]
              Addresses in these ranges (0/8 and 240/4) are reserved globally.  Since  Linux  5.3
              and  Linux 2.6.25, respectively, the 0/8 and 240/4 addresses, other than INADDR_ANY
              and INADDR_BROADCAST, are treated  as  ordinary  unicast  addresses.  Systems  that
              follow  the  traditional  behaviors  may  not  interoperate with these historically
              reserved addresses.

       [127.0.0.1, 127.255.255.254]
              Addresses in this range (127/8) are treated  as  loopback  addresses  akin  to  the
              standardized local loopback address INADDR_LOOPBACK (127.0.0.1);

       [224.0.0.0, 239.255.255.255]
              Addresses in this range (224/4) are dedicated to multicast use.

   Options de socket
       IP  gère  quelques  options  de sockets spécifiques au protocole qui peuvent être définies
       avec setsockopt(2) et consultées avec getsockopt(2). Le niveau d'option de sockets pour IP
       est IPPROTO_IP. Un attribut entier booléen est faux quand il vaut zéro et vrai sinon.

       Quand  une  option  non  autorisée de socket est spécifiée, getsockopt(2) et setsockopt(2)
       échouent avec l’erreur ENOPROTOOPT.

       IP_ADD_MEMBERSHIP (depuis Linux 1.2)
              Rejoindre un groupe de diffusion multiple. L'argument est une structure ip_mreqn.

                  struct ip_mreqn {
                      struct in_addr imr_multiaddr; /* Adresse IP du groupe
                                                       de diffusion multiple */
                      struct in_addr imr_address;   /* Adresse IP de
                                                       l'interface locale */
                      int            imr_ifindex;   /* Numéro d'interface */
                  };

              imr_multiaddr contient l'adresse du groupe de diffusion multiple que  l'application
              veut  rejoindre  ou  quitter.  Il  doit  s'agir d'une adresse de diffusion multiple
              valable  (sinon  setsockopt(2)  échoue  avec  l'erreur  EINVAL).  imr_address   est
              l'adresse  de l'interface locale avec laquelle le système doit joindre le groupe de
              diffusion multiple. Si elle est égale à INADDR_ANY, une  interface  appropriée  est
              choisie par le système. imr_ifindex est le numéro de l'interface qui doit rejoindre
              ou quitter  le  groupe  imr_multiaddr,  ou  zéro  pour  indiquer  n'importe  quelle
              interface.

              La structure ip_mreqn n'est disponible que depuis Linux 2.2. Pour la compatibilité,
              l'ancienne structure ip_mreq (présente depuis Linux 1.2) est encore gérée. Elle  ne
              diffère  de  ip_mreqn  que  par  l'absence du champ imr_ifindex. Le noyau détermine
              quelle structure est passée en se basant sur la taille passée à optlen.

              IP_ADD_MEMBERSHIP est autorisé seulement pour setsockopt(2).

       IP_ADD_SOURCE_MEMBERSHIP (since Linux 2.4.22 / Linux 2.5.68)
              Rejoindre un groupe de diffusion multiple et  autoriser  la  réception  de  données
              uniquement depuis une source indiquée. L'argument est une structure ip_mreq_source.

                  struct ip_mreq_source {
                      struct in_addr imr_multiaddr;  /* Adresse IP du groupe
                                                        de diffusion multiple */
                      struct in_addr imr_interface;  /* Adresse IP de
                                                        l'interface locale */
                      struct in_addr imr_sourceaddr; /* Adresse IP de la source
                                                        de diffusion multiple */
                  };

              La structure ip_mreq_source est similaire à ip_mreqn décrite sous IP_ADD_MEMBERSIP.
              Le champ imr_multiaddr contient l'adresse  du  groupe  de  diffusion  multiple  que
              l'application  veut  rejoindre  ou quitter. Le champ imr_interface est l'adresse de
              l'interface locale avec laquelle le système doit rejoindre le groupe  de  diffusion
              multiple.  Le  champ imr_sourceaddr contient l'adresse de la source depuis laquelle
              l'application veut recevoir des données.

              Cette option peut être utilisée plusieurs fois pour autoriser la  réception  depuis
              plusieurs sources.

       IP_BIND_ADDRESS_NO_PORT (depuis Linux 4.2)
              Informer  le  noyau  de  ne  pas réserver un port éphémère lors de l’utilisation de
              bind(2) avec un numéro de  port  égal  à  zéro.  Le  port  sera  choisi  plus  tard
              automatiquement  au  moment  de connect(2) de façon à permettre de partager un port
              source aussi longtemps que le quadruplet est unique.

       IP_BLOCK_SOURCE (depuis Linux 2.4.22 et 2.5.68)
              Bloquer la réception de données en diffusion multiple depuis une source  spécifique
              pour  un groupe donné. Cela n'est possible qu'après que l'application s'est abonnée
              au   groupe   de   diffusion   multiple   en   utilisant    IP_ADD_MEMBERSHIP    ou
              IP_ADD_SOURCE_MEMBERSHIP.

              L'argument    est    une    structure    ip_mreq_source    comme    décrite    pour
              IP_ADD_SOURCE_MEMBERSHIP.

       IP_DROP_MEMBERSHIP (depuis Linux 1.2)
              Quitter un groupe de diffusion multiple. L'argument est une structure  ip_mreqn  ou
              ip_mreq similaire à IP_ADD_MEMBERSHIP.

       IP_DROP_SOURCE_MEMBERSHIP (since Linux 2.4.22 et 2.5.68)
              Leave  a  source-specific group—that is, stop receiving data from a given multicast
              group that come from a given source. If the application has subscribed to  multiple
              sources  within  the  same  group,  data  from  the remaining sources will still be
              delivered. To stop receiving data from all sources at once, use IP_DROP_MEMBERSHIP.

              L'argument    est    une    structure    ip_mreq_source    comme    décrite    pour
              IP_ADD_SOURCE_MEMBERSHIP.

       IP_FREEBIND (depuis Linux 2.4)
              Si  cette  option  est  activée,  cet  attribut  booléen permet l'attachement à une
              adresse IP non locale ou qui n'existe pas (encore). Cela permet  d'écouter  sur  un
              socket, sans que l'interface réseau sous-jacente ou l'adresse IP dynamique indiquée
              ne soit opérationnelle au moment où l'application essaie  de  s'y  attacher.  Cette
              option  est  l'équivalent  spécifique  au socket de l'interface ip_nonlocal_bind de
              /proc décrite plus bas.

       IP_HDRINCL (depuis Linux 2.0)
              Si cette option est activée, l'utilisateur fournit un en-tête IP avant les  données
              utilisateur.  Cette  option  n'est valable que pour les sockets SOCK_RAW. Consultez
              raw(7) pour plus de détails. Lorsque cet attribut est activé, les valeurs  définies
              pour IP_OPTIONS, IP_TTL et IP_TOS sont ignorées.

       IP_LOCAL_PORT_RANGE (since Linux 6.3)
              Set  or  get  the  per-socket  default local port range. This option can be used to
              clamp down the global local port range, defined by  the  ip_local_port_range  /proc
              interface described below, for a given socket.

              The  option  takes  an  uint32_t value with the high 16 bits set to the upper range
              bound, and the low 16  bits  set  to  the  lower  range  bound.  Range  bounds  are
              inclusive. The 16-bit values should be in host byte order.

              The  lower bound has to be less than the upper bound when both bounds are not zero.
              Otherwise, setting the option fails with EINVAL.

              If either bound is outside of the global local port range, or is  zero,  then  that
              bound has no effect.

              To reset the setting, pass zero as both the upper and the lower bound.

       IP_MSFILTER (depuis Linux 2.4.22 et 2.5.68)
              Cette  option  permet d'accéder à l'API de filtrage d’états avancée. L'argument est
              une structure ip_msfilter.

                  struct ip_msfilter {
                      struct in_addr imsf_multiaddr; /* IP multicast group
                                                        address */
                      struct in_addr imsf_interface; /* IP address of local
                                                        interface */
                      uint32_t       imsf_fmode;     /* Filter-mode */

                      uint32_t       imsf_numsrc;    /* Number of sources in
                                                        the following array */
                      struct in_addr imsf_slist[1];  /* Array of source
                                                        addresses */
                  };

              Les deux macros MCAST_INCLUDE et MCAST_EXCLUDE permettent d'identifier le  mode  de
              filtrage. De plus, la macro IP_MSFILTER_SIZE(n) permet de déterminer la quantité de
              mémoire nécessaire pour stocker une structure ip_msfilter contenant n sources.

              Pour une description complète  du  filtrage  des  sources  de  diffusion  multiple,
              consultez la RFC 3376.

       IP_MTU (depuis Linux 2.2)
              Récupérer  la  MTU  du  chemin  actuellement déterminée pour le socket. Renvoi d’un
              entier.

              IP_MTU est valable seulement pour getsockopt(2)  et  peut  être  seulement  employé
              quand le socket est connecté.

       IP_MTU_DISCOVER (depuis Linux 2.2)
              Définir  ou  récupérer  la  définition  de  découverte  de  MTU de chemin (Path MTU
              discovery — PMTUd) pour un socket. Lorsqu'elle est  activée,  Linux  effectuera  la
              découverte  de  la  MTU  d'un  chemin  conformément  à  la RFC 1191 sur les sockets
              SOCK_STREAM.  Pour  les  sockets  autres  que  SOCK_STREAM,  IP_PMTUDISC_DO   force
              l'activation  de  l'attribut  interdisant  la  fragmentation  sur  tous les paquets
              sortants (bit DF — Don't Fragment). L'utilisateur est responsable de  l'empaquetage
              des données dans des blocs inférieurs à la MTU et doit assurer la retransmission si
              besoin. Le noyau rejettera (avec l'erreur EMSGSIZE) les datagrammes qui  sont  plus
              gros que la MTU du chemin déterminée. IP_PMTUDISC_WANT fragmentera un datagramme si
              nécessaire d'après la MTU du chemin, ou sinon activera  l'attribut  interdisant  la
              fragmentation.

              Les  valeurs par défaut du système peuvent être basculées entre IP_PMTUDISC_WANT et
              IP_PMTUDISC_DONT  en  écrivant  (respectivement  la  valeur  zéro  et  une   valeur
              différente de zéro) dans le fichier /proc/sys/net/ipv4/ip_no_pmtu_disc.

              Valeur de découverte de MTU de chemin   Signification
              IP_PMTUDISC_WANT                        Utiliser une configuration par route
              IP_PMTUDISC_DONT                        Aucune découverte de MTU de chemin
              IP_PMTUDISC_DO                          Toujours découvrir la MTU de chemin
              IP_PMTUDISC_PROBE                       Activer DF mais ignorer la MTU de chemin

              Lorsque   la   découverte  de  la  MTU  de  chemin  est  activée,  le  noyau  garde
              automatiquement une trace des MTU de chemin par hôte de destination. Lorsqu'il  est
              connecté  à  un  correspondant  spécifique avec connect(2), la MTU du chemin actuel
              déterminée peut être consultée en utilisant l'option IP_MTU du socket (par exemple,
              si  une  erreur  EMSGSIZE  se  produit).  La MTU de chemin peut changer au cours du
              temps. Pour les sockets sans connexion avec plusieurs destinations, la nouvelle MTU
              pour  une  destination  donnée  peut  également  être  obtenue en utilisant la file
              d'erreurs (consultez IP_RECVERR). Une nouvelle erreur sera mise en  file  d'attente
              pour chaque mise à jour de la MTU.

              Durant  la recherche de la MTU, les paquets initiaux des sockets datagramme peuvent
              être perdus. Les applications utilisant UDP doivent en être informées et ne pas  en
              tenir compte dans leur stratégie de retransmission de paquet.

              Pour  démarrer  le  processus  de recherche de la MTU du chemin sur les sockets non
              connectés, il est possible  de  démarrer  avec  une  grande  taille  de  datagramme
              (jusqu'à 64 ko d'en-tête) et la diminuer au fur et à mesure des mises à jours de la
              MTU du chemin.

              Afin d'obtenir une estimation initiale de la MTU du chemin, il  faut  connecter  un
              socket  datagramme  à l'adresse de destination en utilisant connect(2) et consulter
              la MTU en appelant getsockopt(2) avec l'option IP_MTU.

              Il est possible d'implémenter la RFC 4821 pour  les  recherches  de  MTU  avec  des
              sockets SOCK_DGRAM ou SOCK_RAW en utilisant la valeur IP_PMTUDISC_PROBE (disponible
              depuis Linux 2.6.22).  C'est  aussi  particulièrement  utile  pour  les  outils  de
              diagnostic  comme  tracepath(8)  qui veulent délibérément envoyer des paquets sonde
              plus larges que la MTU observée du chemin.

       IP_MULTICAST_ALL (depuis Linux 2.6.31)
              This option can be used to modify the delivery policy of  multicast  messages.  The
              argument is a boolean integer (defaults to 1). If set to 1, the socket will receive
              messages from all the groups that have been joined globally on  the  whole  system.
              Otherwise,  it will deliver messages only from the groups that have been explicitly
              joined (for example via the IP_ADD_MEMBERSHIP option) on this particular socket.

       IP_MULTICAST_IF (depuis Linux 1.2)
              Régler le périphérique local pour un socket de diffusion multiple. L’argument  pour
              setsockopt(2)  est une structure ip_mreqn ou (depuis Linux 3.5) ip_mreq similaire à
              IP_ADD_MEMBERSHIP, ou une structure in_addr. Le noyau  détermine  quelle  structure
              est  passée  en  se  basant  sur  la taille passée dans optlen. Pour getsockopt(2),
              l’argument est une structure in_addr.

       IP_MULTICAST_LOOP (depuis Linux 1.2)
              Définir ou lire un entier booléen indiquant si les paquets  de  diffusion  multiple
              doivent être renvoyés aux sockets locaux.

       IP_MULTICAST_TTL (depuis Linux 1.2)
              Définir  ou  lire la valeur du champ Time-to-Live des paquets de diffusion multiple
              sortants sur ce socket. Il  est  très  important  pour  les  paquets  de  diffusion
              multiple de définir ce champ le plus petit possible. La valeur par défaut est 1, ce
              qui signifie que les paquets de diffusion multiple ne quittent pas le réseau  local
              à  moins  que le programme de l'utilisateur ne le réclame explicitement. L'argument
              est un entier.

       IP_NODEFRAG (depuis Linux 2.6.36)
              Si activé (argument différent de zéro), le réassemblage des  paquets  sortants  est
              désactivé dans la couche netfilter. L'argument est un entier.

              Cette option est valable seulement pour les sockets SOCK_RAW.

       IP_OPTIONS (depuis Linux 2.0)
              Définir  ou  lire  les  options  IP  à envoyer avec chaque paquet de ce socket. Les
              arguments sont un pointeur sur un  tampon  mémoire  contenant  les  options  et  la
              longueur des options. L'appel à setsockopt(2) définit les options IP associées à un
              socket. La taille maximale des options  pour  IPv4  vaut  40 octets.  Consultez  la
              RFC 791  pour  les  options  autorisées.  Lorsque le paquet de requête de connexion
              initiale  d'un  socket  SOCK_STREAM  contient  des  options  IP,  celles-ci  seront
              automatiquement  réglées aux options du paquet initial avec les en-têtes de routage
              inversés. Les paquets entrants ne peuvent pas modifier les  options  après  que  la
              connexion  a été établie. Le traitement des options de routage des paquets entrants
              est  désactivé  par  défaut  et  peut  être   activé   en   utilisant   l'interface
              accept_source_route  de  /proc.  Les  autres  options,  comme les horodatages, sont
              toujours traitées. Pour les sockets datagramme, les  options  IP  ne  peuvent  être
              définies  que  par  l'utilisateur  local.  L'appel de getsockopt(2) avec IP_OPTIONS
              remplit le tampon fourni avec les options IP actuelles.

       IP_PASSSEC (depuis Linux 2.6.17)
              Si Labeled IPsec ou si NetLabel est configuré sur les hôtes émetteur et  récepteur,
              cette  option  autorise la réception du contexte de sécurité du socket pair dans un
              message de service de type SCM_SECURITY récupéré  en  utilisant  recvmsg(2).  Cette
              option  est  uniquement  gérée  pour les sockets UDP. Pour les sockets TCP ou SCTP,
              consultez la description de l’option SO_PEERSEC ci-dessous.

              La valeur donnée comme argument pour setsockopt(2) et renvoyée  comme  résultat  de
              getsockopt(2) est un indicateur booléen entier.

              Le contexte de sécurité renvoyé dans le message de service SCM_SECURITY est du même
              format que celui décrit dans l’option SO_PEERSEC ci-dessous.

              Remarque : la réutilisation du type SCM_SECURITY de message pour l’option de socket
              IP_PASSSEC  était probablement une erreur, puisque d’autres messages de contrôle IP
              utilisent leur propre schéma de numérotation dans l’espace de noms IP et  utilisent
              la  valeur  d’option  de  socket  comme  type  de  message. Il n’y a pas de conflit
              actuellement  puisque  l’option  IP  avec  la  même  valeur  que  SCM_SECURITY  est
              IP_HDRINCL et cela n’est jamais utilisé pour un type de message de contrôle.

       IP_PKTINFO (depuis Linux 2.2)
              Fournir  un  message  IP_PKTINFO  de  service  qui  contient  une structure pktinfo
              fournissant quelques informations sur le paquet entrant.  Cela  ne  fonctionne  que
              pour  les  sockets  orientés  datagramme.  L'argument  est un attribut indiquant au
              socket si le message IP_PKTINFO doit être passé ou non. Le message lui-même ne peut
              être  écrit  ou  lu  que  comme  message  de  contrôle  avec un paquet en utilisant
              recvmsg(2) ou sendmsg(2).

                  struct in_pktinfo {
                      unsigned int   ipi_ifindex;   /* Numéro d'interface     */
                      struct in_addr ipi_spec_dst;  /* Adresse locale         */
                      struct in_addr ipi_addr;      /* Adresse de destination
                                                       dans l’en-tête*/
                  };

              ipi_ifindex est le numéro unique de l'interface sur laquelle le paquet a été  reçu.
              ipi_spec_dst   est  l'adresse  locale  du  paquet  et  ipi_addr  est  l'adresse  de
              destination dans l'en-tête du paquet. Si  IP_PKTINFO  est  passé  à  sendmsg(2)  et
              ipi_spec_dst est différent de zéro, alors il sera utilisé comme adresse source pour
              la recherche dans la table de routage et pour définir les options de routage IP. Si
              ipi_ifindex  est  différent  de  zéro,  l'adresse  locale principale de l'interface
              indiquée par ce numéro remplace ipi_spec_dst pour la recherche  dans  la  table  de
              routage.

              Not supported for SOCK_STREAM sockets.

       IP_RECVERR (depuis Linux 2.2)
              Activer le passage amélioré des messages d'erreur. Lorsque cette option est activée
              pour un socket datagramme, toutes les erreurs générées  seront  envoyées  dans  une
              file d'erreurs propre au socket. Quand l'utilisateur détecte une erreur d'opération
              sur le socket, celle-ci peut être examinée en invoquant recvmsg(2) avec  l'attribut
              MSG_ERRQUEUE  défini. La structure sock_extended_err décrivant l'erreur sera passée
              comme message de service ayant le type IP_RECVERR et  le  niveau  IPPROTO_IP.  Cela
              permet  une  gestion  d'erreur  fiable  sur  les  sockets  non connectés. La partie
              comprenant les données reçues  de  la  file  d'erreurs  contient  le  paquet  ayant
              rencontré un problème.

              Le message de contrôle IP_RECVERR contient une structure sock_extended_err :

                  #define SO_EE_ORIGIN_NONE    0
                  #define SO_EE_ORIGIN_LOCAL   1
                  #define SO_EE_ORIGIN_ICMP    2
                  #define SO_EE_ORIGIN_ICMP6   3

                  struct sock_extended_err {
                      uint32_t ee_errno;   /* error number */
                      uint8_t  ee_origin;  /* where the error originated */
                      uint8_t  ee_type;    /* type */
                      uint8_t  ee_code;    /* code */
                      uint8_t  ee_pad;
                      uint32_t ee_info;    /* additional information */
                      uint32_t ee_data;    /* other data */
                      /* More data may follow */
                  };

                  struct sockaddr *SO_EE_OFFENDER(struct sock_extended_err *);

              ee_errno contient le numéro de l'erreur errno mise en file d'attente. ee_origin est
              le code de l'origine de l'erreur. Les autres champs sont spécifiques au  protocole.
              La  macro  SO_EE_OFFENDER  renvoie un pointeur sur l'adresse d'un objet réseau d'où
              l'erreur provient en prenant en argument un pointeur sur le message de service.  Si
              cette  adresse  n'est  pas  connue,  le  membre  sa_family de la structure sockaddr
              contient AF_UNSPEC et les autres champs de sockaddr ne sont pas définis.

              IP  utilise  la  structure  sock_extended_err  comme  suit :   ee_origin   contient
              SO_EE_ORIGIN_ICMP   pour   les   erreurs  reçues  sous  forme  de  paquet  ICMP  ou
              SO_EE_ORIGIN_LOCAL pour les erreurs locales. Les  valeurs  inconnues  doivent  être
              ignorées.  ee_type  et  ee_code  sont  définis  à partir des champs type et code de
              l'en-tête ICMP. ee_info contient la MTU déterminée pour les  erreurs  EMSGSIZE.  Le
              message contient aussi l'adresse sockaddr_in du nœud ayant causé l'erreur, qui peut
              être obtenu avec la macro SO_EE_OFFENDER. Le champ sin_family de l'adresse  fournie
              par  SO_EE_OFFENDER vaut AF_UNSPEC si la source était inconnue. Lorsque les erreurs
              proviennent du réseau, toutes les options IP  (IP_OPTIONS,  IP_TTL, etc.)  valables
              pour  le socket et contenues dans le paquet d'erreur sont transmises comme messages
              de contrôle. La charge utile du paquet causant l'erreur est renvoyée  comme  charge
              normale.  TCP  n'a  pas  de file d'erreurs et MSG_ERRQUEUE n'est pas permis sur les
              sockets SOCK_STREAM. IP_RECVERR est valable pour TCP, mais toutes les erreurs  sont
              renvoyées par des fonctions de socket ou seulement SO_ERROR.

              Pour  les  sockets  raw,  IP_RECVERR  active  le passage de toutes les erreurs ICMP
              reçues à l'application, sinon les erreurs sont seulement renvoyées sur les  sockets
              connectés.

              Il  définit  ou  récupère un attribut booléen entier. IP_RECVERR est désactivée par
              défaut.

       IP_RECVOPTS (depuis Linux 2.2)
              Passer à l'utilisateur toutes les options IP entrantes dans un message de  contrôle
              IP_OPTIONS.  L'en-tête  de  routage  et  les autres options sont déjà remplies pour
              l'hôte local. Cela n'est pas géré pour les sockets SOCK_STREAM.

       IP_RECVORIGDSTADDR (depuis Linux 2.6.29)
              This boolean option enables the IP_ORIGDSTADDR ancillary message in recvmsg(2),  in
              which  the  kernel  returns  the original destination address of the datagram being
              received. The ancillary message contains a struct sockaddr_in.  Not  supported  for
              SOCK_STREAM sockets.

       IP_RECVTOS (depuis Linux 2.2)
              If  enabled,  the  IP_TOS  ancillary  message  is  passed with incoming packets. It
              contains a byte which specifies the Type of Service/Precedence field of the  packet
              header. Expects a boolean integer flag. Not supported for SOCK_STREAM sockets.

       IP_RECVTTL (depuis Linux 2.2)
              Lorsque cet attribut est défini, passer un message de contrôle IP_TTL avec le champ
              Time-to-Live du paquet reçu, sous forme d’entier 32 bits. Cela n'est pas géré  pour
              les sockets SOCK_STREAM.

       IP_RETOPTS (depuis Linux 2.2)
              Identical  to  IP_RECVOPTS,  but returns raw unprocessed options with timestamp and
              route record options not filled in for this  hop.  Not  supported  for  SOCK_STREAM
              sockets.

       IP_ROUTER_ALERT (depuis Linux 2.2)
              Passer  tous  les paquets à transférer avec l'option IP Router Alert activée sur ce
              socket. Ce n'est valable que pour les sockets raw et  sert  par  exemple  pour  les
              démons  RSVP de l'espace utilisateur. Les paquets enregistrés ne sont pas redirigés
              par le noyau, l'utilisateur est responsable de leur réacheminement. La  liaison  du
              socket  est  ignorée  et  de  tels  paquets  ne  sont filtrés que par le protocole.
              L’attribut est un entier.

       IP_TOS (depuis Linux 1.0)
              Définir ou récupérer le champ Type-Of-Service (TOS) envoyé avec  chaque  paquet  IP
              sortant  de ce socket. Cela sert à gérer sur le réseau les priorités entre paquets.
              TOS est un octet. Quelques attributs TOS standards  sont  définis :  IPTOS_LOWDELAY
              pour  minimiser  les  délais  pour  le  trafic  interactif,  IPTOS_THROUGHPUT  pour
              optimiser le débit, IPTOS_RELIABILITY pour optimiser  la  fiabilité,  IPTOS_MINCOST
              qui doit être utilisé pour les données de remplissage où la lenteur de transmission
              importe peu. Une au maximum de ces valeurs TOS peut être indiquée. Les autres  bits
              ne  sont pas valables et doivent être effacés. Linux envoie d'abord des datagrammes
              IPTOS_LOWDELAY par défaut, mais  le  comportement  exact  dépend  de  la  politique
              configurée  pour  la  file  d'attente.  Quelques  niveaux de haute priorité peuvent
              réclamer les privilèges du superutilisateur (la capacité CAP_NET_ADMIN).

       IP_TRANSPARENT (depuis Linux 2.6.24)
              Cet attribut booléen active le mandataire transparent sur ce socket.  Cette  option
              de  socket  permet  à  l'application  appelante  de s'attacher à une adresse IP non
              locale et de fonctionner à la fois comme un client et  un  serveur  avec  l'adresse
              extérieure  comme  point  de  terminaison  local.  Remarque :  le routage doit être
              configuré pour que les paquets envoyés vers l'adresse extérieure  soient  routés  à
              travers la boîte TProxy (c'est-à-dire le système hébergeant l'application utilisant
              l'option  de  socket  IP_TRANSPARENT).  Les  privilèges  du  superutilisateur  sont
              nécessaires   pour   l'activation   de   cette   option   de  socket  (la  capacité
              CAP_NET_ADMIN).

              Cette option doit  également  être  configurée  sur  le  socket  redirigé  pour  la
              redirection TProxy avec la cible iptables TPROXY.

       IP_TTL (depuis Linux 1.0)
              Définir  ou  récupérer  le contenu actuel du champ Time-to-Live utilisé avec chaque
              paquet envoyé depuis ce socket.

       IP_UNBLOCK_SOURCE (depuis Linux 2.4.22 et 2.5.68)
              Débloquer  une  source  de  diffusion  multiple  précédemment  bloquée.  Renvoi  de
              EADDRNOTAVAIL si la source indiquée n'était pas bloquée.

              L'argument    est    une    structure    ip_mreq_source    comme    décrite    pour
              IP_ADD_SOURCE_MEMBERSHIP.

       SO_PEERSEC (depuis Linux 2.6.17)
              Si Labeled IPsec ou si NetLabel est configuré sur les hôtes émetteur et  récepteur,
              cette  option  de  socket  en  lecture  seule  autorise la réception du contexte de
              sécurité du socket pair connecté à  ce  socket.  Par  défaut,  cela  sera  le  même
              contexte  que  celui  du  processus  qui  a  créé le socket pair à moins qu’il soit
              outrepassé par la politique ou par un processus ayant les permissions requises.

              L’argument de getsockopt(2) est un pointeur vers un tampon de la longueur  indiquée
              en  octets  dans lequel la chaîne de contexte de sécurité sera copiée. Si la taille
              du tampon est inférieure à celle de  la  chaîne  du  contexte  de  sécurité,  alors
              getsockopt(2)  renvoie -1,  définit  errno  à ERANGE et renvoie la taille requise à
              l’aide de optlen. L’appelant doit allouer initialement  au  moins  NAME_MAX  octets
              pour  le tampon, bien que cela ne soit pas garanti d'être suffisant. Redimensionner
              le tampon à la taille renvoyée et réessayer peuvent être nécessaires.

              La chaîne de contexte de sécurité peut inclure un octet NULL final dans  la  taille
              renvoyée,  mais  il  n’est  pas  garanti que ce soit fait : un contexte de sécurité
              « abc »  peut  être   représenté   soit   par   {'a','b','c'}   de   taille 3,   ou
              {'a','b','c','\0'}  de  taille 4,  qui  sont  considérés comme interchangeables. La
              chaîne peut être affichée, mais ne contient pas d’octet NULL  final,  et  elle  est
              dans  un  encodage  non  précisé  (en particulier, il n’est pas garanti que ce soit
              ASCII ou UTF-8).

              L’utilisation de cette option pour les sockets de la famille d’adresses AF_INET est
              prise  en charge depuis Linux 2.6.17 pour les sockets TCP et depuis Linux 4.17 pour
              les sockets SCTP.

              Pour SELinux, NetLabel transmet uniquement la portion MLS du contexte  de  sécurité
              du  pair  sur  le  réseau, laissant par défaut le reste du contexte de sécurité aux
              valeurs définies dans la politique pour l’identifiant de  sécurité  initial  netmsg
              (SID).  Cependant,  NetLabel  peut  être  configuré  pour  passer  les contextes de
              sécurité en entier sur la boucle locale. Labeled IPSEC passe toujours les contextes
              de  sécurité  comme partie de l’association de sécurité (security association — SA)
              et les recherche en se basant sur l’association de chaque paquet.

   /proc interfaces
       Le protocole IP prend en charge une série d'interfaces  /proc  pour  configurer  certaines
       options  globales.  Les  paramètres  peuvent  être  accédés en lisant ou écrivant dans les
       fichiers du répertoire /proc/sys/net/ipv4/. Les interfaces  décrites  comme  des  booléens
       prennent  une valeur entière. Celle-ci signifie que l'option correspondante est activée si
       elle est différente de zéro (« true ») et désactivée si elle vaut zéro (« false »).

       ip_always_defrag (booléen ; depuis Linux 2.2.13)
              [New with Linux 2.2.13; in earlier kernel versions this feature was  controlled  at
              compile  time  by the CONFIG_IP_ALWAYS_DEFRAG option; this option is not present in
              Linux 2.4.x and later]

              Lorsque cet attribut booléen est activé (différent de zéro), les fragments entrants
              (morceaux  de  paquets IP obtenus quand un hôte entre l'origine et la destination a
              décidé que les paquets étaient trop grands et les  a  coupés  en  morceaux)  seront
              réassemblés   (défragmentés)   avant   d'être  traités,  même  s'ils  doivent  être
              transférés.

              Cette option n'est à utiliser que pour un pare-feu qui est le seul lien d'entrée du
              réseau  ou  pour  un  mandataire  transparent. Il ne faut jamais l'utiliser pour un
              routeur ou un hôte normal.  Sinon,  les  communications  fragmentées  peuvent  être
              perturbées   si   les   fragments  circulent  dans  des  liaisons  différentes.  La
              défragmentation a également un coût mémoire et processeur important.

              C’est automatiquement activé lorsque le camouflage des connexions (masquerading) ou
              le mandataire transparent sont configurés.

       ip_autoconfig (since Linux 2.2 to Linux 2.6.17)
              Non documenté.

       ip_default_ttl (entier ; défaut : 64 ; depuis Linux 2.2)
              Définir  la valeur par défaut du champ Time-to-Live des paquets sortants. Cela peut
              être modifié individuellement pour chaque socket avec l'option IP_TTL.

       ip_dynaddr (booléen ; désactivé par défaut ; depuis Linux 2.0.31)
              Activer la réécriture dynamique des adresses de socket et du masquerading  lors  du
              changement  d'adresse  d'interface.  Cela sert pour les liaisons téléphoniques avec
              des adresses IP  changeantes.  0 signifie  aucune  réécriture,  1 les  autorise  et
              2 demande un mode bavard.

       ip_forward (booléen ; désactivé par défaut) ; depuis Linux 1.2
              Activer  le  transfert  d'IP avec un attribut booléen. Le transfert d'IP peut aussi
              être configuré interface par interface.

       ip_local_port_range (depuis Linux 2.2)
              This file contains two integers that define the default local port range  allocated
              to  sockets  that are not explicitly bound to a port number—that is, the range used
              for ephemeral ports. An ephemeral port is allocated to a socket  in  the  following
              circumstances:

              -  le  numéro  de  port  dans  une  adresse  de  socket  est défini à 0 en appelant
                 bind(2) ;

              -  listen(2) est appelé sur un socket de flux qui n’était pas attaché auparavant ;

              -  connect(2) a été appelée sur un socket qui n’était pas attaché auparavant ;

              -  sendto(2)  est  appelée  sur  un  socket  datagramme  qui  n’était  pas  attaché
                 auparavant.

              L’allocation   de   ports   éphémères   commence   avec   le   premier   numéro  de
              ip_local_port_range et  se  termine  avec  le  second.  Si  l’intervalle  de  ports
              éphémères  est  épuisé,  alors  l’appel  système  associé  renvoie une erreur (mais
              consultez BOGUES).

              Remarquez que l’intervalle de ports dans ip_local_port_range ne devrait pas  entrer
              en  conflit  avec  les  ports  utilisés  pour  le  masquerading (bien que cela soit
              traité). De même, des choix arbitraires peuvent poser des problèmes  avec  certains
              filtrages  de  pare-feu qui font des suppositions sur les ports locaux utilisés. Le
              premier nombre doit être au moins supérieur à 1024 et, de préférence, à  4096  pour
              éviter  les  collisions  avec  les  ports  officiels  et minimiser les problèmes de
              pare-feu.

       ip_no_pmtu_disc (booléen ; désactivé par défaut) ; depuis Linux 2.2
              Si activé, supprimer la découverte par défaut des MTU des chemins pour les  sockets
              TCP.  La  découverte  de  la  MTU  d'un  chemin  peut échouer avec des pare-feu mal
              configurés (qui rejettent tous les paquets ICMP) ou des interfaces mal  configurées
              (par  exemple,  une  liaison point-à-point où les deux extrémités n'ont pas la même
              MTU). Il vaut mieux corriger le routeur défectueux  que  supprimer  globalement  la
              découverte  des  MTU  des chemins, car cette dernière option entraîne un coût élevé
              pour le réseau.

       ip_nonlocal_bind (booléen ; désactivé par défaut ; depuis Linux 2.4)
              Si défini, permettre aux processus de s'attacher avec bind(2) à des adresses IP non
              locales, ce qui peut être utile mais peut faire planter certaines applications.

       ip6frag_time (entier ; défaut : 30)
              Définir le temps en secondes de conservation d'un fragment IPv6 en mémoire.

       ip6frag_secret_interval (entier ; défaut : 600)
              Définir  l'intervalle  de  régénération  (en  secondes) du secret de hachage (ou sa
              durée de vie) pour les fragments IPv6.

       ipfrag_high_thresh (integer)
       ipfrag_low_thresh (integer)
              Si le nombre de fragments IP en attente atteint  ipfrag_high_thresh,  la  file  est
              restreinte à ipfrag_low_thresh. Contient un entier avec le nombre d'octets.

       neigh/*
              Consultez arp(7).

   Ioctls
       Tous les ioctls décrits dans socket(7) s'appliquent à ip.

       Les  ioctls  pour configurer les paramètres génériques des périphériques sont décrits dans
       netdevice(7).

ERREURS

       EACCES L'utilisateur a essayé  de  réaliser  une  opération  sans  avoir  les  permissions
              nécessaires.  Cela  inclut :  l'envoi  d'un  paquet  vers  une adresse de diffusion
              générale sans avoir activé l'attribut SO_BROADCAST, l'envoi  d'un  paquet  par  une
              route  interdite, la modification du paramétrage du pare-feu sans les privilèges du
              superutilisateur (la capacité CAP_NET_ADMIN) et l'attachement à un port  privilégié
              sans les privilèges du superutilisateur (la capacité CAP_NET_BIND_SERVICE).

       EADDRINUSE
              Tentative d'attachement à une adresse déjà utilisée.

       EADDRNOTAVAIL
              Une  interface  inexistante a été demandée ou l'adresse d'émission demandée n'était
              pas locale.

       EAGAIN L'opération sur un socket non bloquant devrait bloquer.

       EALREADY
              Une connexion est déjà en cours sur un socket non bloquant.

       ECONNABORTED
              Une connexion a été fermée durant un appel à accept(2).

       EHOSTUNREACH
              Aucune table de routage valable ne correspond à  l'adresse  de  destination.  Cette
              erreur  peut  être  due  à un message ICMP d'un routeur distant ou dans la table de
              routage interne.

       EINVAL Un argument non valable a été fourni. Pour les opérations d'envoi, cela  peut  être
              causé par un envoi vers une route trou noir.

       EISCONN
              connect(2) a été appelée sur un socket déjà connecté.

       EMSGSIZE
              Un  datagramme  est  plus  grand  qu’une  MTU  sur  le  chemin  et ne peut pas être
              fragmenté.

       ENOBUFS
       ENOMEM La mémoire libre est insuffisante. Cela signifie souvent que  l'allocation  mémoire
              est  contrainte par les limites du tampon de socket, pas par la mémoire du système,
              mais ce n'est pas toujours le cas.

       ENOENT SIOCGSTAMP a été appelé sur un socket qu'aucun paquet n'a atteint.

       ENOPKG Un sous-système du noyau n'est pas configuré.

       ENOPROTOOPT et EOPNOTSUPP
              Passage d'une option de socket non valable.

       ENOTCONN
              L'opération n'est définie que pour un socket connecté, mais ce socket  n'était  pas
              connecté.

       EPERM  L'utilisateur  n'a  pas  la permission de définir une priorité haute, de changer la
              configuration ou d'envoyer des signaux au groupe ou au processus demandé.

       EPIPE  La connexion a été fermée prématurément ou volontairement par l'autre extrémité.

       ESOCKTNOSUPPORT
              Le socket n'est pas configuré ou un type de socket inconnu a été demandé.

       D'autres erreurs peuvent être déclenchées par  les  protocoles  des  couches  supérieures.
       Consultez tcp(7), raw(7), udp(7) et socket(7).

NOTES

       IP_FREEBIND,   IP_MSFILTER,   IP_MTU,   IP_MTU_DISCOVER,  IP_RECVORIGDSTADDR,  IP_PASSSEC,
       IP_PKTINFO, IP_RECVERR, IP_ROUTER_ALERT et IP_TRANSPARENT sont spécifiques à Linux.

       Be very careful with the SO_BROADCAST option - it is not privileged in Linux. It  is  easy
       to  overload  the  network  with  careless broadcasts. For new application protocols it is
       better to use a multicast group instead of broadcasting. Broadcasting is discouraged.  See
       RFC  6762 for an example of a protocol (mDNS)  using the more modern multicast approach to
       communicating with an open-ended group of hosts on the local network.

       Certaines autres implémentations  des  sockets  BSD  fournissent  les  options  de  socket
       IP_RCVDSTADDR  et  IP_RECVIF  pour  obtenir  l'adresse  de  destination et l'interface des
       datagrammes reçus. Linux propose l'option  IP_PKTINFO  plus  générale  pour  effectuer  ce
       travail.

       Certaines  implémentations BSD des sockets fournissent également l'option IP_RECVTTL, mais
       un message de service ayant le type IP_RECVTTL est fourni avec le  paquet  entrant.  C'est
       différent de l'option IP_TTL utilisée sous Linux.

       L'utilisation  du niveau des options de socket SOL_IP n'est pas portable, les piles basées
       sur BSD utilisent le niveau IPPROTO_IP.

       INADDR_ANY (0.0.0.0) and INADDR_BROADCAST (255.255.255.255) are  byte-order-neutral.  This
       means htonl(3)  has no effect on them.

   Compatibilité
       Pour  la  compatibilité  avec  Linux 2.0, la syntaxe obsolète socket(AF_INET, SOCK_PACKET,
       protocole) est encore gérée pour ouvrir un socket packet(7). Cela est déconseillé et  doit
       être  remplacé par socket(AF_PACKET, SOCK_RAW, protocole). La principale différence est la
       nouvelle structure d'adresse sockaddr_ll pour les informations génériques de la couche  de
       liaison à la place de l'ancienne sockaddr_pkt.

BOGUES

       Il y a trop de valeurs d'erreurs hétérogènes.

       L’erreur utilisée pour diagnostiquer l’épuisement de l’intervalle de ports éphémères varie
       suivant les appels  systèmes  (connect(2),  bind(2),  listen(2),  sendto(2))  qui  peuvent
       assigner des ports éphémères.

       Les  ioctls  pour configurer les options d'interface spécifiques à IP et les tables ARP ne
       sont pas décrites.

       Receiving the original destination address with MSG_ERRQUEUE  in  msg_name  by  recvmsg(2)
       does not work in some Linux 2.2 kernels.

VOIR AUSSI

       recvmsg(2),  sendmsg(2),  byteorder(3),  capabilities(7),  icmp(7), ipv6(7), netdevice(7),
       netlink(7), raw(7), socket(7), tcp(7), udp(7), ip(8)

       Le fichier source du noyau Documentation/networking/ip-sysctl.txt.

       RFC 791 pour les spécifications IP d'origine. RFC 1122 pour les exigences IPv4 des  hôtes.
       RFC 1812 pour les exigences IPv4 des routeurs.

TRADUCTION

       La  traduction  française  de  cette  page  de  manuel  a  été créée par Christophe Blaess
       <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>  et  Jean-Paul  Guillonneau
       <guillonneau.jeanpaul@free.fr>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General
       Public  License  version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   concernant   les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.