.\" -*- coding: UTF-8 -*- '\" t .\" SPDX-License-Identifier: Linux-man-pages-1-para .\" .\" This man page is Copyright (C) 1999 Andi Kleen . .\" .\" $Id: ip.7,v 1.19 2000/12/20 18:10:31 ak Exp $ .\" .\" FIXME The following socket options are yet to be documented .\" .\" IP_XFRM_POLICY (2.5.48) .\" Needs CAP_NET_ADMIN .\" .\" IP_IPSEC_POLICY (2.5.47) .\" Needs CAP_NET_ADMIN .\" .\" IP_MINTTL (2.6.34) .\" commit d218d11133d888f9745802146a50255a4781d37a .\" Author: Stephen Hemminger .\" .\" MCAST_JOIN_GROUP (2.4.22 / 2.6) .\" .\" MCAST_BLOCK_SOURCE (2.4.22 / 2.6) .\" .\" MCAST_UNBLOCK_SOURCE (2.4.22 / 2.6) .\" .\" MCAST_LEAVE_GROUP (2.4.22 / 2.6) .\" .\" MCAST_JOIN_SOURCE_GROUP (2.4.22 / 2.6) .\" .\" MCAST_LEAVE_SOURCE_GROUP (2.4.22 / 2.6) .\" .\" MCAST_MSFILTER (2.4.22 / 2.6) .\" .\" IP_UNICAST_IF (3.4) .\" commit 76e21053b5bf33a07c76f99d27a74238310e3c71 .\" Author: Erich E. Hoover .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH ip 7 "15 juillet 2023" "Pages du manuel de Linux 6.05.01" .SH NOM ip – Implémentation Linux du protocole IPv4 .SH SYNOPSIS .nf .\" .B #include -- does not exist anymore .\" .B #include -- never include \fB#include \fP \fB#include \fP \fB#include \fP/* Surensemble des précédents */ .PP \fItcp_socket\fP\fB = socket(AF_INET, SOCK_STREAM, 0);\fP \fIudp_socket\fP\fB = socket(AF_INET, SOCK_DGRAM, 0);\fP \fIraw_socket\fP\fB = socket(AF_INET, SOCK_RAW, \fP\fIprotocole\fP\fB);\fP .fi .SH DESCRIPTION Linux implémente le protocole Internet (IP) version\ 4 décrit dans les RFC\ 791 et RFC\ 1122. \fBip\fP 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. .PP L'interface de programmation est compatible avec les sockets BSD. Pour plus d'informations sur les sockets, consultez \fBsocket\fP(7). .PP Un socket IP est créé en utilisant \fBsocket\fP(2)\ : .PP .in +4n .EX socket(AF_INET, socket_type, protocol); .EE .in .PP Les sockets autorisés incluent \fBSOCK_STREAM\fP pour ouvrir un socket flux, \fBSOCK_DGRAM\fP pour ouvrir un socket datagramme et \fBSOCK_RAW\fP pour ouvrir un socket \fBraw\fP(7) pour accéder directement au protocole IP. .PP \fIprotocole\fP est le protocole IP dans les en\-têtes IP reçus ou envoyés. Les valeurs autorisées pour \fIprotocole\fP incluent\ : .IP \- 3 0 et \fBIPPROTO_TCP\fP pour les sockets flux \fBtcp\fP(7)\ ; .IP \- 0 et \fBIPPROTO_UDP\fP pour les sockets datagramme \fBudp\fP(7)\ ; .IP \- \fBIPPROTO_SCTP\fP pour les sockets flux \fBsctp\fP(7)\ ; .IP \- \fBIPPROTO_UDPLITE\fP pour les sockets datagramme \fBudplite\fP(7). .PP Pour \fBSOCK_RAW\fP un protocole IP IANA autorisé, défini dans les numéros assignés de la RFC\ 1700, peut être indiqué. .PP Lorsqu'un processus veut recevoir de nouveaux paquets entrants ou des connexions, il doit attacher un socket à une adresse d'interface locale en utilisant \fBbind\fP(2). Un seul socket IP peut être attaché à une paire (adresse, port) locale donnée. Lorsque \fBINADDR_ANY\fP est indiqué au moment de l'attachement, le socket sera affecté à \fItoutes\fP les interfaces locales. Si \fBlisten\fP(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 à \fBINADDR_ANY\fP. Si \fBconnect\fP(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 à \fBINADDR_ANY\fP. .PP L'adresse locale d'un socket TCP qui a été attaché est indisponible pendant quelques instants après sa fermeture, à moins que l'attribut \fBSO_REUSEADDR\fP ait été activé. Il faut être prudent en utilisant cet attribut, car il rend le protocole TCP moins fiable. .SS "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 \fBudp\fP(7) et \fBtcp\fP(7). Sur les sockets raw, le champ \fIsin_port\fP contient le protocole IP. .PP .in +4n .EX 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 */ }; .EE .in .PP \fIsin_family\fP est toujours défini à \fBAF_INET\fP. C'est indispensable\ : sous Linux\ 2.2, la plupart des fonctions réseau renvoient \fBEINVAL\fP lorsque cette définition est absente. \fIsin_port\fP contient le numéro de port, dans l'ordre des octets du réseau. Les numéros de ports inférieurs à 1024 sont dits \fIprivilégiés\fP (ou parfois \fIréservés\fP). Seuls les processus privilégiés (sur Linux, ceux qui ont la capacité \fBCAP_NET_BIND_SERVICE\fP dans l’espace de noms utilisateur gouvernant son espace de noms réseau) peuvent appeler \fBbind\fP(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 \fBtcp\fP(7) et \fBudp\fP(7). .PP \fIsin_addr\fP est l'adresse IP de l'hôte. Le membre \fIs_addr\fP de la structure \fIin_addr\fP contient l'adresse de l'interface de l'hôte, dans l'ordre des octets du réseau. \fIin_addr\fP devrait recevoir l'une des valeurs \fBINADDR_\fP\fI*\fP (par exemple, \fBINADDR_LOOPBACK\fP) en utilisant \fBhtonl\fP(3) ou être défini à l’aide des fonctions de bibliothèque \fBinet_aton\fP(3), \fBinet_addr\fP(3), \fBinet_makeaddr\fP(3) ou directement par le système de résolution des noms (consultez \fBgethostbyname\fP(3)). .PP .\" Leave a loophole for XTP @) 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 \fBSO_BROADCAST\fP est activé. Dans l'implémentation actuelle, les sockets orientés connexion ne sont autorisés que sur des adresses de diffusion individuelle. .PP 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 \fBhtons\fP(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. .SS "Special and reserved addresses" There are several special addresses: .TP \fBINADDR_LOOPBACK\fP (127.0.0.1) always refers to the local host via the loopback device; .TP \fBINADDR_ANY\fP (0.0.0.0) means any address for socket binding; .TP \fBINADDR_BROADCAST\fP (255.255.255.255) has the same effect on \fBbind\fP(2) as \fBINADDR_ANY\fP for historical reasons. A packet addressed to \fBINADDR_BROADCAST\fP through a socket which has \fBSO_BROADCAST\fP set will be broadcast to all hosts on the local network segment, as long as the link is broadcast\-capable. .TP Highest\-numbered address .TQ Lowest\-numbered address .\" commit 58fee5fc83658aaacf60246aeab738946a9ba516 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 \fBSO_BROADCAST\fP 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. .PP Internet standards have traditionally also reserved various addresses for particular uses, though Linux no longer treats some of these specially. .TP [0.0.0.1, 0.255.255.255] .TQ [240.0.0.0, 255.255.255.254] .\" commit 96125bf9985a75db00496dd2bc9249b777d2b19b .\" commit 1e637c74b0f84eaca02b914c0b8c6f67276e9697 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 \fBINADDR_ANY\fP and \fBINADDR_BROADCAST\fP, are treated as ordinary unicast addresses. Systems that follow the traditional behaviors may not interoperate with these historically reserved addresses. .TP [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 \fBINADDR_LOOPBACK\fP (127.0.0.1); .TP [224.0.0.0, 239.255.255.255] Addresses in this range (224/4) are dedicated to multicast use. .SS "Options de socket" .\" or SOL_IP on Linux IP gère quelques options de sockets spécifiques au protocole qui peuvent être définies avec \fBsetsockopt\fP(2) et consultées avec \fBgetsockopt\fP(2). Le niveau d'option de sockets pour IP est \fBIPPROTO_IP\fP. Un attribut entier booléen est faux quand il vaut zéro et vrai sinon. .PP Quand une option non autorisée de socket est spécifiée, \fBgetsockopt\fP(2) et \fBsetsockopt\fP(2) échouent avec l’erreur \fBENOPROTOOPT\fP. .TP \fBIP_ADD_MEMBERSHIP\fP (depuis Linux\ 1.2) Rejoindre un groupe de diffusion multiple. L'argument est une structure \fIip_mreqn\fP. .IP .in +4n .EX 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 */ }; .EE .in .IP .\" (i.e., within the 224.0.0.0-239.255.255.255 range) \fIimr_multiaddr\fP 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 \fBsetsockopt\fP(2) échoue avec l'erreur \fBEINVAL\fP). \fIimr_address\fP est l'adresse de l'interface locale avec laquelle le système doit joindre le groupe de diffusion multiple. Si elle est égale à \fBINADDR_ANY\fP, une interface appropriée est choisie par le système. \fIimr_ifindex\fP est le numéro de l'interface qui doit rejoindre ou quitter le groupe \fIimr_multiaddr\fP, ou zéro pour indiquer n'importe quelle interface. .IP La structure \fIip_mreqn\fP n'est disponible que depuis Linux\ 2.2. Pour la compatibilité, l'ancienne structure \fIip_mreq\fP (présente depuis Linux\ 1.2) est encore gérée. Elle ne diffère de \fIip_mreqn\fP que par l'absence du champ \fIimr_ifindex\fP. Le noyau détermine quelle structure est passée en se basant sur la taille passée à \fIoptlen\fP. .IP .\" \fBIP_ADD_MEMBERSHIP\fP est autorisé seulement pour \fBsetsockopt\fP(2). .TP \fBIP_ADD_SOURCE_MEMBERSHIP\fP (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 \fIip_mreq_source\fP. .IP .in +4n .EX 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 */ }; .EE .in .IP La structure \fIip_mreq_source\fP est similaire à \fIip_mreqn\fP décrite sous \fBIP_ADD_MEMBERSIP\fP. Le champ \fIimr_multiaddr\fP contient l'adresse du groupe de diffusion multiple que l'application veut rejoindre ou quitter. Le champ \fIimr_interface\fP est l'adresse de l'interface locale avec laquelle le système doit rejoindre le groupe de diffusion multiple. Le champ \fIimr_sourceaddr\fP contient l'adresse de la source depuis laquelle l'application veut recevoir des données. .IP Cette option peut être utilisée plusieurs fois pour autoriser la réception depuis plusieurs sources. .TP \fBIP_BIND_ADDRESS_NO_PORT\fP (depuis Linux 4.2) .\" commit 90c337da1524863838658078ec34241f45d8394d Informer le noyau de ne pas réserver un port éphémère lors de l’utilisation de \fBbind\fP(2) avec un numéro de port égal à zéro. Le port sera choisi plus tard automatiquement au moment de \fBconnect\fP(2) de façon à permettre de partager un port source aussi longtemps que le quadruplet est unique. .TP \fBIP_BLOCK_SOURCE\fP (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 \fBIP_ADD_MEMBERSHIP\fP ou \fBIP_ADD_SOURCE_MEMBERSHIP\fP. .IP L'argument est une structure \fIip_mreq_source\fP comme décrite pour \fBIP_ADD_SOURCE_MEMBERSHIP\fP. .TP \fBIP_DROP_MEMBERSHIP\fP (depuis Linux\ 1.2) Quitter un groupe de diffusion multiple. L'argument est une structure \fIip_mreqn\fP ou \fIip_mreq\fP similaire à \fBIP_ADD_MEMBERSHIP\fP. .TP \fBIP_DROP_SOURCE_MEMBERSHIP\fP (since Linux\ 2.4.22 et 2.5.68) Leave a source\-specific group\[em]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 \fBIP_DROP_MEMBERSHIP\fP. .IP L'argument est une structure \fIip_mreq_source\fP comme décrite pour \fBIP_ADD_SOURCE_MEMBERSHIP\fP. .TP \fBIP_FREEBIND\fP (depuis Linux\ 2.4) .\" Precisely: since Linux 2.4.0-test10 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 \fIip_nonlocal_bind\fP de \fI/proc\fP décrite plus bas. .TP \fBIP_HDRINCL\fP (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 \fBSOCK_RAW\fP. Consultez \fBraw\fP(7) pour plus de détails. Lorsque cet attribut est activé, les valeurs définies pour \fBIP_OPTIONS\fP, \fBIP_TTL\fP et \fBIP_TOS\fP sont ignorées. .TP \fBIP_LOCAL_PORT_RANGE\fP (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 \fIip_local_port_range\fP \fI/proc\fP interface described below, for a given socket. .IP The option takes an \fIuint32_t\fP 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. .IP The lower bound has to be less than the upper bound when both bounds are not zero. Otherwise, setting the option fails with EINVAL. .IP If either bound is outside of the global local port range, or is zero, then that bound has no effect. .IP To reset the setting, pass zero as both the upper and the lower bound. .TP \fBIP_MSFILTER\fP (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 \fIip_msfilter\fP. .IP .in +4n .EX 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 */ }; .EE .in .IP Les deux macros \fBMCAST_INCLUDE\fP et \fBMCAST_EXCLUDE\fP permettent d'identifier le mode de filtrage. De plus, la macro \fBIP_MSFILTER_SIZE\fP(n) permet de déterminer la quantité de mémoire nécessaire pour stocker une structure \fIip_msfilter\fP contenant \fIn\fP sources. .IP Pour une description complète du filtrage des sources de diffusion multiple, consultez la RFC\ 3376. .TP \fBIP_MTU\fP (depuis Linux\ 2.2) .\" Precisely: since Linux 2.1.124 Récupérer la MTU du chemin actuellement déterminée pour le socket. Renvoi d’un entier. .IP \fBIP_MTU\fP est valable seulement pour \fBgetsockopt\fP(2) et peut être seulement employé quand le socket est connecté. .TP \fBIP_MTU_DISCOVER\fP (depuis Linux\ 2.2) .\" Precisely: since Linux 2.1.124 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 \fBSOCK_STREAM\fP. Pour les sockets autres que \fBSOCK_STREAM\fP, \fBIP_PMTUDISC_DO\fP 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 \fBEMSGSIZE\fP) les datagrammes qui sont plus gros que la MTU du chemin déterminée. \fBIP_PMTUDISC_WANT\fP fragmentera un datagramme si nécessaire d'après la MTU du chemin, ou sinon activera l'attribut interdisant la fragmentation. .IP Les valeurs par défaut du système peuvent être basculées entre \fBIP_PMTUDISC_WANT\fP et \fBIP_PMTUDISC_DONT\fP en écrivant (respectivement la valeur zéro et une valeur différente de zéro) dans le fichier \fI/proc/sys/net/ipv4/ip_no_pmtu_disc\fP. .TS tab(:); c l l l. 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 .TE .sp 1 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 \fBconnect\fP(2), la MTU du chemin actuel déterminée peut être consultée en utilisant l'option \fBIP_MTU\fP du socket (par exemple, si une erreur \fBEMSGSIZE\fP 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 \fBIP_RECVERR\fP). Une nouvelle erreur sera mise en file d'attente pour chaque mise à jour de la MTU. .IP 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. .IP 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. .IP Afin d'obtenir une estimation initiale de la MTU du chemin, il faut connecter un socket datagramme à l'adresse de destination en utilisant \fBconnect\fP(2) et consulter la MTU en appelant \fBgetsockopt\fP(2) avec l'option \fBIP_MTU\fP. .IP Il est possible d'implémenter la RFC\ 4821 pour les recherches de MTU avec des sockets \fBSOCK_DGRAM\fP ou \fBSOCK_RAW\fP en utilisant la valeur \fBIP_PMTUDISC_PROBE\fP (disponible depuis Linux\ 2.6.22). C'est aussi particulièrement utile pour les outils de diagnostic comme \fBtracepath\fP(8) qui veulent délibérément envoyer des paquets sonde plus larges que la MTU observée du chemin. .TP \fBIP_MULTICAST_ALL\fP (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 \fBIP_ADD_MEMBERSHIP\fP option) on this particular socket. .TP \fBIP_MULTICAST_IF\fP (depuis Linux\ 1.2) .\" net: IP_MULTICAST_IF setsockopt now recognizes struct mreq .\" Commit: 3a084ddb4bf299a6e898a9a07c89f3917f0713f7 Régler le périphérique local pour un socket de diffusion multiple. L’argument pour \fBsetsockopt\fP(2) est une structure \fIip_mreqn\fP ou (depuis Linux\ 3.5) \fIip_mreq\fP similaire à \fBIP_ADD_MEMBERSHIP\fP, ou une structure \fIin_addr\fP. Le noyau détermine quelle structure est passée en se basant sur la taille passée dans \fIoptlen\fP. Pour \fBgetsockopt\fP(2), l’argument est une structure \fIin_addr\fP. .TP \fBIP_MULTICAST_LOOP\fP (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. .TP \fBIP_MULTICAST_TTL\fP (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. .TP \fBIP_NODEFRAG\fP (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. .IP Cette option est valable seulement pour les sockets \fBSOCK_RAW\fP. .TP \fBIP_OPTIONS\fP (depuis Linux\ 2.0) .\" Precisely: since Linux 1.3.30 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 à \fBsetsockopt\fP(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 \fBSOCK_STREAM\fP 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 \fIaccept_source_route\fP de \fI/proc\fP. 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 \fBgetsockopt\fP(2) avec \fBIP_OPTIONS\fP remplit le tampon fourni avec les options IP actuelles. .TP \fBIP_PASSSEC\fP (depuis Linux 2.6.17) .\" commit 2c7946a7bf45ae86736ab3b43d0085e43947945c 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 \fBSCM_SECURITY\fP récupéré en utilisant \fBrecvmsg\fP(2). Cette option est uniquement gérée pour les sockets UDP. Pour les sockets TCP ou SCTP, consultez la description de l’option \fBSO_PEERSEC\fP ci\-dessous. .IP La valeur donnée comme argument pour \fBsetsockopt\fP(2) et renvoyée comme résultat de \fBgetsockopt\fP(2) est un indicateur booléen entier. .IP Le contexte de sécurité renvoyé dans le message de service \fBSCM_SECURITY\fP est du même format que celui décrit dans l’option \fBSO_PEERSEC\fP ci\-dessous. .IP Remarque\ : la réutilisation du type \fBSCM_SECURITY\fP de message pour l’option de socket \fBIP_PASSSEC\fP é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 \fBSCM_SECURITY\fP est \fBIP_HDRINCL\fP et cela n’est jamais utilisé pour un type de message de contrôle. .TP \fBIP_PKTINFO\fP (depuis Linux\ 2.2) .\" Precisely: since Linux 2.1.68 Fournir un message \fBIP_PKTINFO\fP de service qui contient une structure \fIpktinfo\fP 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 \fBIP_PKTINFO\fP 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 \fBrecvmsg\fP(2) ou \fBsendmsg\fP(2). .IP .in +4n .EX 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*/ }; .EE .in .IP .\" This field is grossly misnamed \fIipi_ifindex\fP est le numéro unique de l'interface sur laquelle le paquet a été reçu. \fIipi_spec_dst\fP est l'adresse locale du paquet et \fIipi_addr\fP est l'adresse de destination dans l'en\-tête du paquet. Si \fBIP_PKTINFO\fP est passé à \fBsendmsg\fP(2) et \fIipi_spec_dst\fP 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 \fIipi_ifindex\fP est différent de zéro, l'adresse locale principale de l'interface indiquée par ce numéro remplace \fIipi_spec_dst\fP pour la recherche dans la table de routage. .TP \fBIP_RECVERR\fP (depuis Linux\ 2.2) .\" Precisely: since Linux 2.1.15 .\" or SOL_IP on Linux 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 \fBrecvmsg\fP(2) avec l'attribut \fBMSG_ERRQUEUE\fP défini. La structure \fIsock_extended_err\fP décrivant l'erreur sera passée comme message de service ayant le type \fBIP_RECVERR\fP et le niveau \fBIPPROTO_IP\fP. 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. .IP Le message de contrôle \fBIP_RECVERR\fP contient une structure \fIsock_extended_err\fP\ : .IP .in +4n .EX #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 .in .IP \fIee_errno\fP contient le numéro de l'erreur \fIerrno\fP mise en file d'attente. \fIee_origin\fP est le code de l'origine de l'erreur. Les autres champs sont spécifiques au protocole. La macro \fBSO_EE_OFFENDER\fP 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 \fIsa_family\fP de la structure \fIsockaddr\fP contient \fBAF_UNSPEC\fP et les autres champs de \fIsockaddr\fP ne sont pas définis. .IP .\" FIXME . Is it a good idea to document that? It is a dubious feature. .\" On .\" .B SOCK_STREAM .\" sockets, .\" .B IP_RECVERR .\" has slightly different semantics. Instead of .\" saving the errors for the next timeout, it passes all incoming .\" errors immediately to the user. .\" This might be useful for very short-lived TCP connections which .\" need fast error handling. Use this option with care: .\" it makes TCP unreliable .\" by not allowing it to recover properly from routing .\" shifts and other normal .\" conditions and breaks the protocol specification. IP utilise la structure \fIsock_extended_err\fP comme suit\ : \fIee_origin\fP contient \fBSO_EE_ORIGIN_ICMP\fP pour les erreurs reçues sous forme de paquet ICMP ou \fBSO_EE_ORIGIN_LOCAL\fP pour les erreurs locales. Les valeurs inconnues doivent être ignorées. \fIee_type\fP et \fIee_code\fP sont définis à partir des champs type et code de l'en\-tête ICMP. \fIee_info\fP contient la MTU déterminée pour les erreurs \fBEMSGSIZE\fP. Le message contient aussi l'adresse \fIsockaddr_in\fP du nœud ayant causé l'erreur, qui peut être obtenu avec la macro \fBSO_EE_OFFENDER\fP. Le champ \fIsin_family\fP de l'adresse fournie par \fBSO_EE_OFFENDER\fP vaut \fBAF_UNSPEC\fP si la source était inconnue. Lorsque les erreurs proviennent du réseau, toutes les options IP (\fBIP_OPTIONS\fP, \fBIP_TTL\fP,\ 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 \fBMSG_ERRQUEUE\fP n'est pas permis sur les sockets \fBSOCK_STREAM\fP. \fBIP_RECVERR\fP est valable pour TCP, mais toutes les erreurs sont renvoyées par des fonctions de socket ou seulement \fBSO_ERROR\fP. .IP Pour les sockets raw, \fBIP_RECVERR\fP active le passage de toutes les erreurs ICMP reçues à l'application, sinon les erreurs sont seulement renvoyées sur les sockets connectés. .IP Il définit ou récupère un attribut booléen entier. \fBIP_RECVERR\fP est désactivée par défaut. .TP \fBIP_RECVOPTS\fP (depuis Linux\ 2.2) .\" Precisely: since Linux 2.1.15 Passer à l'utilisateur toutes les options IP entrantes dans un message de contrôle \fBIP_OPTIONS\fP. 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 \fBSOCK_STREAM\fP. .TP \fBIP_RECVORIGDSTADDR\fP (depuis Linux\ 2.6.29) .\" commit e8b2dfe9b4501ed0047459b2756ba26e5a940a69 Cet attribut booléen active le message \fBIP_ORIGDSTADDR\fP de service dans \fBrecvmsg\fP(2), dans lequel le noyau renvoie l'adresse de destination originelle du datagramme en train d'être reçu. Le message de service contient une structure \fIsockaddr_in\fP. .TP \fBIP_RECVTOS\fP (depuis Linux\ 2.2) .\" Precisely: since Linux 2.1.68 Le message de service \fBIP_TOS\fP est passé avec les paquets entrants si cette option est activée. Il contient un octet qui décrit le champ Type\-Of\-Service/Precedence de l'en\-tête du paquet. Il s'agit d'un attribut entier booléen. .TP \fBIP_RECVTTL\fP (depuis Linux\ 2.2) .\" Precisely: since Linux 2.1.68 Lorsque cet attribut est défini, passer un message de contrôle \fBIP_TTL\fP 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 \fBSOCK_STREAM\fP. .TP \fBIP_RETOPTS\fP (depuis Linux\ 2.2) .\" Precisely: since Linux 2.1.15 Identique à \fBIP_RECVOPTS\fP, mais renvoyer les options raw non traitées, avec les options d'enregistrement des horodatages et du routage non remplies pour ce pas (hop). .TP \fBIP_ROUTER_ALERT\fP (depuis Linux\ 2.2) .\" Precisely: since Linux 2.1.68 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. .TP \fBIP_TOS\fP (depuis Linux\ 1.0) .\" FIXME elaborate on this .\" The priority can also be set in a protocol-independent way by the .\" .RB ( SOL_SOCKET ", " SO_PRIORITY ) .\" socket option (see .\" .BR socket (7)). 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\ : \fBIPTOS_LOWDELAY\fP pour minimiser les délais pour le trafic interactif, \fBIPTOS_THROUGHPUT\fP pour optimiser le débit, \fBIPTOS_RELIABILITY\fP pour optimiser la fiabilité, \fBIPTOS_MINCOST\fP 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 \fBIPTOS_LOWDELAY\fP 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é \fBCAP_NET_ADMIN\fP). .TP \fBIP_TRANSPARENT\fP (depuis Linux\ 2.6.24) .\" commit f5715aea4564f233767ea1d944b2637a5fd7cd2e .\" This patch introduces the IP_TRANSPARENT socket option: enabling that .\" will make the IPv4 routing omit the non-local source address check on .\" output. Setting IP_TRANSPARENT requires NET_ADMIN capability. .\" http://lwn.net/Articles/252545/ 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 \fBIP_TRANSPARENT\fP). Les privilèges du superutilisateur sont nécessaires pour l'activation de cette option de socket (la capacité \fBCAP_NET_ADMIN\fP). .IP Cette option doit également être configurée sur le socket redirigé pour la redirection TProxy avec la cible iptables TPROXY. .TP \fBIP_TTL\fP (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. .TP \fBIP_UNBLOCK_SOURCE\fP (depuis Linux\ 2.4.22 et 2.5.68) Débloquer une source de diffusion multiple précédemment bloquée. Renvoi de \fBEADDRNOTAVAIL\fP si la source indiquée n'était pas bloquée. .IP L'argument est une structure \fIip_mreq_source\fP comme décrite pour \fBIP_ADD_SOURCE_MEMBERSHIP\fP. .TP \fBSO_PEERSEC\fP (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. .IP L’argument de \fBgetsockopt\fP(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 \fBgetsockopt\fP(2) renvoie\ \fB\-1\fP, définit \fIerrno\fP à \fBERANGE\fP et renvoie la taille requise à l’aide de \fIoptlen\fP. L’appelant doit allouer initialement au moins \fBNAME_MAX\fP 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. .IP 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','\e0'} 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). .IP .\" commit 2c7946a7bf45ae86736ab3b43d0085e43947945c .\" commit d452930fd3b9031e59abfeddb2fa383f1403d61a L’utilisation de cette option pour les sockets de la famille d’adresses \fBAF_INET\fP est prise en charge depuis Linux\ 2.6.17 pour les sockets TCP et depuis Linux\ 4.17 pour les sockets SCTP. .IP .\" 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. .SS "/proc interfaces" .\" FIXME As at 2.6.12, 14 Jun 2005, the following are undocumented: .\" ip_queue_maxlen .\" ip_conntrack_max .\" Le protocole IP prend en charge une série d'interfaces \fI/proc\fP pour configurer certaines options globales. Les paramètres peuvent être accédés en lisant ou écrivant dans les fichiers du répertoire \fI/proc/sys/net/ipv4/\fP. 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\ »). .TP \fIip_always_defrag\fP (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 \fBCONFIG_IP_ALWAYS_DEFRAG\fP option; this option is not present in Linux 2.4.x and later] .IP 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. .IP 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. .IP .\" C’est automatiquement activé lorsque le camouflage des connexions (masquerading) ou le mandataire transparent sont configurés. .TP \fIip_autoconfig\fP (since Linux 2.2 to Linux 2.6.17) .\" Precisely: since Linux 2.1.68 .\" FIXME document ip_autoconfig .\" Non documenté. .TP \fIip_default_ttl\fP (entier\ ; défaut\ : 64\ ; depuis Linux\ 2.2) .\" Precisely: since Linux 2.1.15 .\" 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 \fBIP_TTL\fP. .TP \fIip_dynaddr\fP (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. .TP \fIip_forward\fP (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. .TP \fIip_local_port_range\fP (depuis Linux\ 2.2) .\" Precisely: since Linux 2.1.68 This file contains two integers that define the default local port range allocated to sockets that are not explicitly bound to a port number\[em]that is, the range used for \fIephemeral ports\fP. An ephemeral port is allocated to a socket in the following circumstances: .RS .IP \- 3 le numéro de port dans une adresse de socket est défini à 0 en appelant \fBbind\fP(2)\ ; .IP \- \fBlisten\fP(2) est appelé sur un socket de flux qui n’était pas attaché auparavant\ ; .IP \- \fBconnect\fP(2) a été appelée sur un socket qui n’était pas attaché auparavant\ ; .IP \- \fBsendto\fP(2) est appelée sur un socket datagramme qui n’était pas attaché auparavant. .RE .IP L’allocation de ports éphémères commence avec le premier numéro de \fIip_local_port_range\fP 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 \fBBOGUES\fP). .IP .\" Remarquez que l’intervalle de ports dans \fIip_local_port_range\fP 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. .TP \fIip_no_pmtu_disc\fP (booléen\ ; désactivé par défaut)\ ; depuis Linux\ 2.2 .\" Precisely: 2.1.15 .\" .\" The following is from Linux 2.6.12: Documentation/networking/ip-sysctl.txt 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. .TP \fIip_nonlocal_bind\fP (booléen\ ; désactivé par défaut\ ; depuis Linux\ 2.4) .\" Precisely: patch-2.4.0-test10 .\" .\" The following is from Linux 2.6.12: Documentation/networking/ip-sysctl.txt Si défini, permettre aux processus de s'attacher avec \fBbind\fP(2) à des adresses IP non locales, ce qui peut être utile mais peut faire planter certaines applications. .TP \fIip6frag_time\fP (entier\ ; défaut\ : 30) .\" .\" The following is from Linux 2.6.12: Documentation/networking/ip-sysctl.txt Définir le temps en secondes de conservation d'un fragment IPv6 en mémoire. .TP \fIip6frag_secret_interval\fP (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. .TP \fIipfrag_high_thresh\fP (entier), \fIipfrag_low_thresh\fP (entier) Si le nombre de fragments IP en attente atteint \fIipfrag_high_thresh\fP, la file est restreinte à \fIipfrag_low_thresh\fP. Contient un entier avec le nombre d'octets. .TP \fIneigh/*\fP .\" FIXME Document the conf/*/* interfaces .\" .\" FIXME Document the route/* interfaces Consultez \fBarp\fP(7). .SS Ioctls Tous les ioctls décrits dans \fBsocket\fP(7) s'appliquent à \fBip\fP. .PP .\" FIXME Add a discussion of multicasting Les ioctls pour configurer les paramètres génériques des périphériques sont décrits dans \fBnetdevice\fP(7). .SH ERREURS .\" FIXME document all errors. .\" We should really fix the kernels to give more uniform .\" error returns (ENOMEM vs ENOBUFS, EPERM vs EACCES etc.) .TP \fBEACCES\fP 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 \fBSO_BROADCAST\fP, l'envoi d'un paquet par une route \fIinterdite\fP, la modification du paramétrage du pare\-feu sans les privilèges du superutilisateur (la capacité \fBCAP_NET_ADMIN\fP) et l'attachement à un port privilégié sans les privilèges du superutilisateur (la capacité \fBCAP_NET_BIND_SERVICE\fP). .TP \fBEADDRINUSE\fP Tentative d'attachement à une adresse déjà utilisée. .TP \fBEADDRNOTAVAIL\fP Une interface inexistante a été demandée ou l'adresse d'émission demandée n'était pas locale. .TP \fBEAGAIN\fP L'opération sur un socket non bloquant devrait bloquer. .TP \fBEALREADY\fP Une connexion est déjà en cours sur un socket non bloquant. .TP \fBECONNABORTED\fP Une connexion a été fermée durant un appel à \fBaccept\fP(2). .TP \fBEHOSTUNREACH\fP 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. .TP \fBEINVAL\fP Un argument non valable a été fourni. Pour les opérations d'envoi, cela peut être causé par un envoi vers une route \fItrou noir\fP. .TP \fBEISCONN\fP \fBconnect\fP(2) a été appelée sur un socket déjà connecté. .TP \fBEMSGSIZE\fP Un datagramme est plus grand qu’une MTU sur le chemin et ne peut pas être fragmenté. .TP \fBENOBUFS\fP, \fBENOMEM\fP 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. .TP \fBENOENT\fP \fBSIOCGSTAMP\fP a été appelé sur un socket qu'aucun paquet n'a atteint. .TP \fBENOPKG\fP Un sous\-système du noyau n'est pas configuré. .TP \fBENOPROTOOPT\fP et \fBEOPNOTSUPP\fP Passage d'une option de socket non valable. .TP \fBENOTCONN\fP L'opération n'est définie que pour un socket connecté, mais ce socket n'était pas connecté. .TP \fBEPERM\fP 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é. .TP \fBEPIPE\fP La connexion a été fermée prématurément ou volontairement par l'autre extrémité. .TP \fBESOCKTNOSUPPORT\fP Le socket n'est pas configuré ou un type de socket inconnu a été demandé. .PP D'autres erreurs peuvent être déclenchées par les protocoles des couches supérieures. Consultez \fBtcp\fP(7), \fBraw\fP(7), \fBudp\fP(7) et \fBsocket\fP(7). .SH NOTES .\" IP_XFRM_POLICY is Linux-specific .\" IP_IPSEC_POLICY is a nonstandard extension, also present on some BSDs \fBIP_FREEBIND\fP, \fBIP_MSFILTER\fP, \fBIP_MTU\fP, \fBIP_MTU_DISCOVER\fP, \fBIP_RECVORIGDSTADDR\fP, \fBIP_PASSSEC\fP, \fBIP_PKTINFO\fP, \fBIP_RECVERR\fP, \fBIP_ROUTER_ALERT\fP et \fBIP_TRANSPARENT\fP sont spécifiques à Linux. .PP Be very careful with the \fBSO_BROADCAST\fP 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. .PP Certaines autres implémentations des sockets BSD fournissent les options de socket \fBIP_RCVDSTADDR\fP et \fBIP_RECVIF\fP pour obtenir l'adresse de destination et l'interface des datagrammes reçus. Linux propose l'option \fBIP_PKTINFO\fP plus générale pour effectuer ce travail. .PP Certaines implémentations BSD des sockets fournissent également l'option \fBIP_RECVTTL\fP, mais un message de service ayant le type \fBIP_RECVTTL\fP est fourni avec le paquet entrant. C'est différent de l'option \fBIP_TTL\fP utilisée sous Linux. .PP L'utilisation du niveau des options de socket \fBSOL_IP\fP n'est pas portable, les piles basées sur BSD utilisent le niveau \fBIPPROTO_IP\fP. .PP \fBINADDR_ANY\fP (0.0.0.0) and \fBINADDR_BROADCAST\fP (255.255.255.255) are byte\-order\-neutral. This means \fBhtonl\fP(3) has no effect on them. .SS Compatibilité Pour la compatibilité avec Linux\ 2.0, la syntaxe obsolète \fBsocket(AF_INET, SOCK_PACKET, \fP\fIprotocole\fP\fB)\fP est encore gérée pour ouvrir un socket \fBpacket\fP(7). Cela est déconseillé et doit être remplacé par \fBsocket(AF_PACKET, SOCK_RAW, \fP\fIprotocole\fP\fB)\fP. La principale différence est la nouvelle structure d'adresse \fIsockaddr_ll\fP pour les informations génériques de la couche de liaison à la place de l'ancienne \fBsockaddr_pkt\fP. .SH BOGUES Il y a trop de valeurs d'erreurs hétérogènes. .PP L’erreur utilisée pour diagnostiquer l’épuisement de l’intervalle de ports éphémères varie suivant les appels systèmes (\fBconnect\fP(2), \fBbind\fP(2), \fBlisten\fP(2), \fBsendto\fP(2)) qui peuvent assigner des ports éphémères. .PP .\" .PP .\" Some versions of glibc forget to declare .\" .IR in_pktinfo . .\" Workaround currently is to copy it into your program from this man page. Les ioctls pour configurer les options d'interface spécifiques à IP et les tables ARP ne sont pas décrites. .PP .\" .SH AUTHORS .\" This man page was written by Andi Kleen. Receiving the original destination address with \fBMSG_ERRQUEUE\fP in \fImsg_name\fP by \fBrecvmsg\fP(2) does not work in some Linux 2.2 kernels. .SH "VOIR AUSSI" \fBrecvmsg\fP(2), \fBsendmsg\fP(2), \fBbyteorder\fP(3), \fBcapabilities\fP(7), \fBicmp\fP(7), \fBipv6\fP(7), \fBnetdevice\fP(7), \fBnetlink\fP(7), \fBraw\fP(7), \fBsocket\fP(7), \fBtcp\fP(7), \fBudp\fP(7), \fBip\fP(8) .PP Le fichier source du noyau \fIDocumentation/networking/ip\-sysctl.txt\fP. .PP 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. .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot et Jean-Paul Guillonneau . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .