Man page - ipv6(7)
Packages contains this manual
- shm_overview(7)
- nss(5)
- proc_mtrr(5)
- intro(7)
- tcp(7)
- iso_8859-9(7)
- armscii-8(7)
- proc_kpagecount(5)
- initrd(4)
- mouse(4)
- proc_stat(5)
- x25(7)
- proc_interrupts(5)
- fifo(7)
- repertoiremap(5)
- icmp(7)
- futex(7)
- feature_test_macros(7)
- lp(4)
- bpf-helpers(7)
- epoll(7)
- proc_sys_dev(5)
- namespaces(7)
- proc_sysrq-trigger(5)
- proc_bus(5)
- cp1251(7)
- proc_pid_maps(5)
- proc_sys_vm(5)
- proc_pid_projid_map(5)
- st(4)
- proc_pid(5)
- issue(5)
- pid_namespaces(7)
- unicode(7)
- inode(7)
- hosts.equiv(5)
- iso-8859-13(7)
- proc_fb(5)
- proc_modules(5)
- proc_pid_autogroup(5)
- keyrings(7)
- sysvipc(7)
- proc_kmsg(5)
- cgroups(7)
- latin6(7)
- proc_pid_uid_map(5)
- unix(7)
- proc_pid_io(5)
- pts(4)
- packet(7)
- ld-linux.so(8)
- tzselect(8)
- iconv(1)
- proc_pid_syscall(5)
- proc_pid_net(5)
- proc_pid_pagemap(5)
- tty(4)
- proc_profile(5)
- standards(7)
- proc_pid_mounts(5)
- filesystems(5)
- iso-8859-15(7)
- locale(5)
- iso_8859_3(7)
- xattr(7)
- iso-8859-2(7)
- proc_uptime(5)
- persistent-keyring(7)
- credentials(7)
- proc_pid_timers(5)
- utmpx(5)
- vcsa(4)
- proc_pid_exe(5)
- proc_net(5)
- proc_timer_stats(5)
- ip(7)
- proc_pid_fd(5)
- ptmx(4)
- user_namespaces(7)
- resolv.conf(5)
- url(7)
- iso_8859_5(7)
- iso_8859-8(7)
- urn(7)
- process-keyring(7)
- proc_pid_auxv(5)
- proc_ksyms(5)
- proc_ide(5)
- veth(4)
- ldd(1)
- proc_swaps(5)
- landlock(7)
- proc_vmstat(5)
- system_data_types(7)
- cp1252(7)
- lirc(4)
- proc_kpageflags(5)
- random(7)
- precedence(7)
- cpuset(7)
- proc_pid_ns(5)
- acct(5)
- latin4(7)
- proc_pid_cgroup(5)
- proc_cpuinfo(5)
- iso_8859-2(7)
- proc_keys(5)
- charsets(7)
- pldd(1)
- proc_pid_stat(5)
- rtnetlink(7)
- netlink(7)
- ram(4)
- mem(4)
- iso-8859-6(7)
- proc_key-users(5)
- iso_8859_15(7)
- fanotify(7)
- proc_sys_net(5)
- sysfs(5)
- math_error(7)
- latin1(7)
- proc_pid_root(5)
- nptl(7)
- proc_cgroups(5)
- proc_iomem(5)
- proc_pid_statm(5)
- sem_overview(7)
- hier(7)
- full(4)
- proc_pid_status(5)
- proc_pid_cwd(5)
- proc_pid_cpuset(5)
- proc_scsi(5)
- uri(7)
- proc_diskstats(5)
- iso_8859_6(7)
- latin2(7)
- latin5(7)
- man-pages(7)
- ld.so(8)
- uts_namespaces(7)
- proc_pid_mountstats(5)
- intro(3)
- proc_pid_seccomp(5)
- proc_pid_wchan(5)
- attributes(7)
- symlink(7)
- mount_namespaces(7)
- charmap(5)
- tis-620(7)
- iso-8859-10(7)
- getent(1)
- proc_buddyinfo(5)
- ttytype(5)
- rtc(4)
- proc_malloc(5)
- suffixes(7)
- sln(8)
- signal(7)
- proc_sys_abi(5)
- signal-safety(7)
- time_namespaces(7)
- proc_pid_comm(5)
- raw(7)
- gai.conf(5)
- proc_crypto(5)
- locale(1)
- iso-8859-3(7)
- motd(5)
- proc_meminfo(5)
- iso-8859-8(7)
- protocols(5)
- proc_pid_map_files(5)
- pthreads(7)
- null(4)
- proc(5)
- zdump(8)
- socket(7)
- proc_sys_kernel(5)
- ddp(7)
- memusagestat(1)
- hd(4)
- iso-8859-14(7)
- shells(5)
- pipe(7)
- glob(7)
- proc_self(5)
- network_namespaces(7)
- utmp(5)
- proc_kcore(5)
- nsswitch.conf(5)
- sd(4)
- iso-8859-5(7)
- iso_8859_16(7)
- man(7)
- iso_8859-6(7)
- dir_colors(5)
- mq_overview(7)
- vsock(7)
- ascii(7)
- thread-keyring(7)
- fs(5)
- proc_pid_attr(5)
- proc_sys_debug(5)
- proc_sys(5)
- proc_pid_cmdline(5)
- pty(7)
- services(5)
- cgroup_namespaces(7)
- securetty(5)
- netdevice(7)
- iso_8859_13(7)
- host.conf(5)
- proc_pid_setgroups(5)
- proc_slabinfo(5)
- sock_diag(7)
- iso_8859-14(7)
- iso-8859-11(7)
- iso_8859_11(7)
- operator(7)
- regex(7)
- wavelan(4)
- proc_sys_fs(5)
- nologin(5)
- proc_pci(5)
- koi8-r(7)
- erofs(5)
- intro(2)
- utf8(7)
- proc_kallsyms(5)
- proc_sysvipc(5)
- queue(7)
- proc_sys_sunrpc(5)
- intro(5)
- latin8(7)
- mtrace(1)
- ipc_namespaces(7)
- dsp56k(4)
- iso_8859_4(7)
- proc_pid_smaps(5)
- proc_cmdline(5)
- rpc(5)
- proc_tty(5)
- proc_version(5)
- smartpqi(4)
- proc_pid_timerslack_ns(5)
- aio(7)
- session-keyring(7)
- resolver(5)
- slabinfo(5)
- wtmp(5)
- iso_8859_9(7)
- proc_locks(5)
- mailaddr(7)
- proc_pid_oom_score(5)
- kmem(4)
- iconvconfig(8)
- iso_8859-7(7)
- glibc(7)
- hostname(7)
- proc_thread-self(5)
- ipv6(7)
- iso_8859_7(7)
- proc_kpagecgroup(5)
- core(5)
- time(7)
- units(7)
- proc_dma(5)
- loop(4)
- address_families(7)
- zero(4)
- intro(4)
- procfs(5)
- iso_8859-4(7)
- vdso(7)
- tmpfs(5)
- iso-8859-16(7)
- iso_8859_10(7)
- user-session-keyring(7)
- libc(7)
- proc_fs(5)
- koi8-u(7)
- latin3(7)
- proc_tid_children(5)
- proc_pid_limits(5)
- proc_pid_coredump_filter(5)
- iso_8859-15(7)
- arp(7)
- urandom(4)
- iso_8859-10(7)
- hpsa(4)
- proc_pid_environ(5)
- boot(7)
- ftm(7)
- ld-linux(8)
- proc_driver(5)
- loop-control(4)
- iso_8859-16(7)
- proc_filesystems(5)
- tzfile(5)
- sprof(1)
- proc_pid_task(5)
- proc_pid_oom_score_adj(5)
- proc_mounts(5)
- iso-8859-4(7)
- iso_8859-1(7)
- utf-8(7)
- iso_8859-13(7)
- intro(6)
- proc_timer_list(5)
- rtld-audit(7)
- iso_8859-3(7)
- group(5)
- sched(7)
- proc_pid_clear_refs(5)
- hosts(5)
- iso_8859-11(7)
- numa(7)
- iso_8859_2(7)
- locale(7)
- iso-8859-1(7)
- fuse(4)
- proc_tid(5)
- proc_execdomains(5)
- proc_pid_mountinfo(5)
- intro(8)
- iso_8859_8(7)
- proc_loadavg(5)
- proc_pid_oom_adj(5)
- re_format(7)
- iso_8859_14(7)
- zic(8)
- bootparam(7)
- inotify(7)
- posixoptions(7)
- proc_partitions(5)
- iso-8859-9(7)
- proc_pid_mem(5)
- networks(5)
- proc_sys_user(5)
- udp(7)
- proc_zoneinfo(5)
- latin10(7)
- proc_pid_fdinfo(5)
- proc_pid_stack(5)
- memusage(1)
- spufs(7)
- pkeys(7)
- path_resolution(7)
- proc_ioports(5)
- intro(1)
- ldconfig(8)
- msr(4)
- svipc(7)
- port(4)
- proc_pid_personality(5)
- cciss(4)
- latin9(7)
- capabilities(7)
- localedef(1)
- vcs(4)
- iso_8859-5(7)
- elf(5)
- proc_sys_proc(5)
- console_codes(4)
- random(4)
- iso-8859-7(7)
- termcap(5)
- cpuid(4)
- environ(7)
- string_copying(7)
- proc_pid_gid_map(5)
- queue(3)
- termio(7)
- user-keyring(7)
- complex(7)
- latin7(7)
- proc_config.gz(5)
- udplite(7)
- kernel_lockdown(7)
- proc_devices(5)
- proc_apm(5)
- iso_8859_1(7)
- proc_pid_numa_maps(5)
apt-get install manpages
Available languages:
en fr es ja ruManual
ipv6
NOMSYNOPSIS
DESCRIPTION
Formats dâadresse
Options de socket
ERREURS
VERSIONS
NOTES
BOGUES
VOIR AUSSI
TRADUCTION
NOM
ipv6 - Implémentation Linux du protocole IPv6
SYNOPSIS
#include
<sys/socket.h>
#include <netinet/in.h>
tcp6_socket
= socket(AF_INET6, SOCK_STREAM, 0);
raw6_socket
= socket(AF_INET6, SOCK_RAW,
protocole
);
udp6_socket
= socket(AF_INET6, SOCK_DGRAM,
protocole
);
DESCRIPTION
Linux 2.2 implĂ©mente en option le protocole internet version 6 (IPv6). Cette page de manuel contient la description de lâAPI IPv6 de base, telle quâimplĂ©mentĂ©e dans le noyau Linux et la glibc 2.1 Lâinterface est basĂ©e sur lâinterface des sockets BSD. Consultez socket (7).
LâAPI IPv6 est conçue pour ĂȘtre essentiellement compatible avec lâAPI IPv4 (consultez ip (7)). Seules les diffĂ©rences sont dĂ©crites dans cette page de manuel.
Pour attacher un socket AF_INET6 , lâadresse locale doit ĂȘtre copiĂ©e dans une variable in6addr_any qui a le type in6_addr . Dans les initialisations statiques, IN6ADDR_ANY_INIT peut servir aussi et se dĂ©veloppe en une expression constante. Toutes les valeurs sont dans lâordre des octets du rĂ©seau.
Lâadresse de boucle IPv6 (::1) est disponible dans la variable globale in6addr_loopback . Pour les initialisations, on doit utiliser IN6ADDR_LOOPBACK_INIT .
Les connexions IPv4 peuvent ĂȘtre traitĂ©es avec lâAPI v6 en utilisant le type dâadresse v4-projetĂ©-dans-v6. Ainsi un programme nâa quâun seul type dâAPI Ă utiliser pour prendre en charge les deux protocoles. Câest gĂ©rĂ© de maniĂšre transparente par les fonctions dâadressage de la bibliothĂšque C.
IPv4 et IPv6 partagent lâespace des ports locaux. Lorsquâune connexion ou un paquet IPv4 est obtenu sur un socket IPv6, son adresse source sera projetĂ©e en v6.
Formats dâadresse
struct
sockaddr_in6 {
sa_family_t sin6_family; /* AF_INET6 */
in_port_t sin6_port; /* numéro de port */
uint32_t sin6_flowinfo; /* information de flux IPv6 */
struct in6_addr sin6_addr; /* adresse IPv6 */
uint32_t sin6_scope_id; /* Scope ID (nouveau dans Linux 2.4)
*/
};
struct in6_addr {
unsigned char s6_addr[16]; /* adresse IPv6 */
};
sin6_family est toujours rempli avec AF_INET6 ; sin6_port est le port du protocole (consultez sin_port dans ip (7)) ; sin6_flowinfo est lâidentificateur de flux IPv6, sin6_addr est lâadresse IPv6 sur 128 bits. sin6_scope_id est un identificateur qui dĂ©pend de la portĂ©e de lâadresse. Câest une nouveautĂ© Linux 2.4. Linux ne le prend en charge que pour les adresses locales lien, dans ce cas sin6_scope_id contient le numĂ©ro dâinterface (consultez netdevice (7)).
IPv6 prend en charge plusieurs types dâadresses : unicast pour reprĂ©senter un hĂŽte unique, multicast pour un groupe dâhĂŽtes, anycast pour indiquer le membre le plus proche dâun groupe dâhĂŽtes (non implĂ©mentĂ© sous Linux), IPv4-on-IPv6 pour un hĂŽte IPv4 et dâautres types dâadresse rĂ©servĂ©s.
La notation dâadresse pour lâIPv6 est un groupe de 8 nombres hexadĂ©cimaux sur 4 chiffres, sĂ©parĂ©s par un deux-points « : ». Un « :: » reprĂ©sente une chaĂźne de bits 0. Les adresses spĂ©ciales sont ::1 pour le bouclage loopback et ::FFFF:<adresse IPv4> pour les projections dâadresses IPv4 sur lâIPv6.
Lâespace des ports de lâIPv6 est partagĂ© avec lâIPv4.
Options de socket
IPv6 accepte
quelques options des sockets spécifiques du
protocole, qui peuvent ĂȘtre dĂ©finies avec
setsockopt
(2) et consultées avec
getsockopt
(2). Le niveau dâoption de socket
pour lâIPv6 est
IPPROTO_IPV6
. Un entier
booléen est faux quand il est nul et vrai sinon.
IPV6_ADDRFORM
Transformer un socket AF_INET6 en un socket dâune famille dâadresse diffĂ©rente. Seul AF_INET est actuellement pris en charge pour cela. Cela nâest autorisĂ© que pour les sockets IPv6 connectĂ©s et attachĂ©s Ă une adresse v4-sur-v6. Lâargument est un pointeur sur un entier contenant AF_INET . Cela est utile pour passer des sockets projetĂ©s en v4 comme descripteurs Ă des programmes ne sachant pas manipuler lâAPI IPv6.
IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP
DĂ©terminer lâappartenance aux groupes multicast. Lâargument est un pointeur sur une structure struct ipv6_mreq .
IPV6_MTU
getsockopt () : récupérer la MTU du chemin actuellement déterminée pour le socket. Valable seulement quand le socket a été connecté. Renvoie un entier.
setsockopt () : dĂ©finir le MTU Ă utiliser pour le socket. Le MTU est limitĂ© par celui du pĂ©riphĂ©rique ou celui du chemin lorsque la recherche du MTU par chemin est activĂ©e. Lâargument est un pointeur sur un entier.
IPV6_MTU_DISCOVER
Commander la recherche du MTU du chemin sur le socket. Consultez lâoption IP_MTU_DISCOVER dans ip (7) pour plus de prĂ©cisions.
IPV6_MULTICAST_HOPS
DĂ©finir la limite du nombre de sauts (hops) multicast du socket. Lâargument est un pointeur sur un entier. La valeur -1 correspond Ă la valeur par dĂ©faut de routage, sinon il doit sâagir dâun entier entre 0 et 255.
IPV6_MULTICAST_IF
DĂ©finir le pĂ©riphĂ©rique pour les paquets multicast sortants du socket. Ce nâest permis que pour les sockets SOCK_DGRAM et SOCK_RAW . Lâargument est un pointeur sur un numĂ©ro dâinterface (consultez netdevice (7)) dans un entier.
IPV6_MULTICAST_LOOP
DĂ©terminer si le socket voit les paquets multicast quâil a lui-mĂȘme Ă©mis. Lâargument est un pointeur sur une valeur boolĂ©enne.
IPV6_RECVPKTINFO (depuis Linux 2.6.14)
DĂ©finir la distribution des messages de contrĂŽle IPV6_PKTINFO des datagrammes entrants. Ce type de messages de contrĂŽle contient une struct in6_pktinfo , conformĂ©ment Ă la RFC 3542. Uniquement autorisĂ© pour les sockets SOCK_DGRAM ou SOCK_RAW . Lâargument est un pointeur sur une valeur boolĂ©enne dans un entier.
IPV6_RTHDR, IPV6_AUTHHDR,
IPV6_DSTOPTS, IPV6_HOPOPTS, IPV6_FLOWINFO,
IPV6_HOPLIMIT
DĂ©finir la distribution des messages de contrĂŽle des datagrammes entrants contenant les en-tĂȘtes dâextensions du paquet reçu. IPV6_RTHDR dĂ©livre lâen-tĂȘte de routage, IPV6_AUTHHDR dĂ©livre lâen-tĂȘte dâauthentification, IPV6_DSTOPTS dĂ©livre les options de destination, IPV6_HOPOPTS dĂ©livre les options de saut, IPV6_FLOWINFO dĂ©livre un entier contenant lâidentificateur de flux, IPV6_HOPLIMIT dĂ©livre un entier contenant le nombre de sauts du paquet. Les messages de contrĂŽle ont le mĂȘme type que lâoption de socket. Toutes ces options dâen-tĂȘte peuvent aussi ĂȘtre dĂ©finies pour les paquets sortants en mettant le message de contrĂŽle appropriĂ© dans le tampon de contrĂŽle de sendmsg (2). Uniquement autorisĂ© pour les sockets SOCK_DGRAM ou SOCK_RAW . Lâargument est un pointeur sur une valeur boolĂ©enne.
IPV6_RECVERR
Commander la rĂ©ception des erreurs asynchrones. Consultez IP_RECVERR dans ip (7) pour plus de prĂ©cisions. Lâargument est un pointeur sur un boolĂ©en.
IPV6_ROUTER_ALERT
Passer sur ce socket tous les paquets redirigĂ©s (forwarded) contenant une option « hop-by-hop » dâalerte du routeur. Uniquement autorisĂ© pour les sockets SOCK_RAW . Les paquets exploitĂ©s ne sont pas redirigĂ©s par le noyau, il est de la responsabilitĂ© de lâutilisateur de les renvoyer. Lâargument est un pointeur vers un entier. Un entier positif indique une valeur option dâalerte du routeur Ă intercepter. Les paquets portant une option dâalerte du routeur avec un champ de valeur contenant cet entier sera dĂ©livrĂ© au socket. Un entier nĂ©gatif dĂ©sactive la dĂ©livrance de packets avec des options dâalerte du routeur Ă ce socket.
IPV6_UNICAST_HOPS
DĂ©finir la limite du nombre de sauts (hops) unicast pour le socket. Lâargument est un pointeur sur un entier. La valeur -1 correspond Ă la valeur par dĂ©faut de routage, sinon il doit sâagir dâun entier entre 0 et 255.
IPV6_V6ONLY (depuis Linux 2.4.21 et 2.6)
Quand cet attribut est positionnĂ© (diffĂ©rent de zĂ©ro), alors le socket est limitĂ© Ă lâĂ©mission et la rĂ©ception de paquets IPv6. Dans ce cas, une application IPv4 et IPv6 peuvent sâassocier Ă un mĂȘme port en mĂȘme temps.
Si cet attribut nâest pas positionnĂ© (zĂ©ro), alors le socket peut ĂȘtre utilisĂ© pour Ă©mettre ou recevoir des paquets depuis et vers une adresse IPv6 ou une projections dâadresse IPv4 sur IPv6.
Le paramÚtre est un pointeur vers un booléen dans un entier.
La valeur par défaut de cet attribut est défini par le contenu du fichier /proc/sys/net/ipv6/bindv6only . La valeur par défaut de ce fichier est 0 (désactivé).
ERREURS
|
ENODEV |
Lâutilisateur a essayĂ© de lier avec bind (2) sur une adresse locale lien IPv6, mais le sin6_scope_id de la structure sockaddr_in6 fournie nâest pas un numĂ©ro dâinterface valable. |
VERSIONS
Linux 2.4 rompt la compatibilitĂ© binaire pour la structure sockaddr_in6 des hĂŽtes sur 64 bits, en modifiant lâalignement de in6_addr et en ajoutant un champ sin6_scope_id supplĂ©mentaire. Les interfaces du noyau restent compatible, mais un programme contenant des sockaddr_in6 ou des in6_addr dans dâautres structures ne lâest peut ĂȘtre pas. Ce nâest pas un problĂšme pour les hĂŽtes sur 32 bits comme les i386.
Le champ sin6_flowinfo est une nouveautĂ© Linux 2.4. Il est Ă©crit/lu de maniĂšre transparente par le noyau quand la longueur de lâadresse passĂ©e le contient. Certains programmes qui passent un tampon dâadresse plus long et vĂ©rifient ensuite la longueur de lâadresse renvoyĂ©e peuvent Ă©chouer.
NOTES
La structure sockaddr_in6 est plus grande que la structure sockaddr gĂ©nĂ©rique. Les programmes qui supposent que tous les types dâadresses peuvent ĂȘtre stockĂ©s dans une struct sockaddr doivent ĂȘtre modifiĂ©s pour utiliser struct sockaddr_storage Ă la place.
SOL_IP , SOL_IPV6 , SOL_ICMPV6 et dâautres options de socket SOL_* sont des variantes non portables de IPPROTO_* . Voir aussi ip (7).
BOGUES
LâAPI IPv6 Ă©tendue, telle que dans la RFC 2292, nâest encore que partiellement implĂ©mentĂ©e. Bien que les noyaux 2.2 ont une prise en charge pratiquement complĂšte des options de rĂ©ception, les macros dĂ©clarant les options IPv6 manquent dans la glibc 2.1.
La prise en charge IPSec pour les en-tĂȘtes EH et AH manque.
La gestion des Ă©tiquettes de flux nâest pas complĂšte, ni documentĂ©e ici.
Cette page de manuel nâest pas complĂšte.
VOIR AUSSI
cmsg (3), ip (7)
RFC 2553 : API IPv6 de base, avec laquelle Linux essaye dâĂȘtre compatible. RFC 2460 : spĂ©cifications dâIPv6.
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-Pierre Giraud <jean-pierregiraud@neuf.fr>
Cette traduction est une documentation libre ; veuillez vous reporter Ă la GNU General Public License version 3 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 .