Man page - rtnetlink(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 ja ruManual
rtnetlink
NOMSYNOPSIS
DESCRIPTION
Attributs de routage
Messages
VERSIONS
BOGUES
VOIR AUSSI
TRADUCTION
NOM
rtnetlink â Socket de routage de Linux
SYNOPSIS
#include
<asm/types.h>
#include <linux/if_link.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
#include <sys/socket.h>
rtnetlink_socket = socket(AF_NETLINK, int type_socket , NETLINK_ROUTE);
DESCRIPTION
rtnetlink permet de lire et modifier les tables de routage du noyau. Cela permet Ă divers sous-systĂšmes du noyau de communiquer entre eux, bien que cette utilisation ne soit pas documentĂ©e ici, et de communiquer avec les programmes de lâespace utilisateur. Les routes rĂ©seau, les adresses IP, les paramĂštres de liaison, la configuration du voisinage, la discipline de file dâattente, les classes de trafic et les classes de paquet peuvent ĂȘtre configurĂ©s par le biais des sockets NETLINK_ROUTE . Cela est basĂ© sur des messages netlink ; consultez netlink (7) pour plus dâinformations.
Attributs de routage
Certains messages rtnetlink ont des attributs facultatifs aprĂšs lâen-tĂȘte initial :
struct rtattr {
unsigned short rta_len; /* Longueur dâoption */
unsigned short rta_type; /* Type dâoption */
/* Les données suivent... */
};
Ces attributs ne doivent ĂȘtre manipulĂ©s quâen utilisant les macros RTA_* ou libnetlink. Consultez rtnetlink (3).
Messages
rtnetlink
est constitué de trois types de messages (en plus des
messages netlink standard)Â :
RTM_NEWLINK
RTM_DELLINK
RTM_GETLINK
CrĂ©er, supprimer ou obtenir des informations Ă propos dâune interface rĂ©seau spĂ©cifique. Ces messages contiennent une structure ifinfomsg suivie dâune sĂ©rie de structures rtattr .
struct
ifinfomsg {
unsigned char ifi_family; /* AF_UNSPEC */
unsigned short ifi_type; /* Type périphérique
*/
int ifi_index; /* Indice interface */
unsigned int ifi_flags; /* Attributs
périphérique */
unsigned int ifi_change; /* Masque modificateur */
};
ifi_flags contient les attributs du pĂ©riphĂ©rique ; consultez netdevice (7). ifi_index est lâindice unique de lâinterface (depuis Linux 3.7, il est possible de fournir une valeur non nulle avec le message RTM_NEWLINK , crĂ©ant un lien avec lâ ifindex ) donnĂ©. ifi_change est rĂ©servĂ© pour un usage ultĂ©rieur et doit toujours valoir 0xFFFFFFFF.
Le type de données pour IFLA_STATS est struct rtnl_link_stats ( struct net_device_stats dans les noyaux Linux 2.4 et antérieurs).
RTM_NEWADDR
RTM_DELADDR
RTM_GETADDR
Ajouter, supprimer ou obtenir des informations sur une adresse IP associĂ©e Ă une interface. Sous Linux 2.2, une interface peut gĂ©rer plusieurs adresses IP, ce qui remplace le concept dâalias de pĂ©riphĂ©rique de Linux 2.0. Dans Linux 2.2, ces messages prennent en charge les adresses IPv4 et IPv6. Ils contiennent une structure ifaddrmsg , suivie Ă©ventuellement par des attributs de routage rtattr .
struct
ifaddrmsg {
unsigned char ifa_family; /* Type adresse */
unsigned char ifa_prefixlen; /* Longueur préfixe
adresse */
unsigned char ifa_flags; /* Attributs adresse */
unsigned char ifa_scope; /* Portée adresse */
unsigned int ifa_index; /* Indice interface */
};
ifa_family est le type de famille dâadresses (actuellement AF_INET ou AF_INET6 ), ifa_prefixlen est la longueur du masque dâadresse sâil est dĂ©fini pour la famille (comme avec IPv4), ifa_scope est la portĂ©e de lâadresse, ifa_index est lâindice de lâinterface associĂ©e Ă lâadresse. ifa_flags est un attribut composĂ© de IFA_F_SECONDARY pour une adresse secondaire (les anciens alias dâinterface), IFA_F_PERMANENT pour une adresse permanente configurĂ©e par lâutilisateur et dâautres indicateurs non documentĂ©s.
RTM_NEWROUTE
RTM_DELROUTE
RTM_GETROUTE
CrĂ©er, supprimer ou obtenir des informations Ă propos dâune route rĂ©seau. Ces messages contiennent une structure rtmsg suivie dâune sĂ©quence Ă©ventuelle de structures rtattr . Pour RTM_GETROUTE , mettre rtm_dst_len et rtm_src_len Ă Â 0 signifie obtenir toutes les entrĂ©es pour la table de routage indiquĂ©e. Pour les autres champs, sauf rtm_table et rtm_protocol , 0 est le symbole gĂ©nĂ©rique signifiant « toutes valeurs ».
struct rtmsg {
unsigned char rtm_family; /* Famille dâadresses de la
route */
unsigned char rtm_dst_len; /* Longueur destination */
unsigned char rtm_src_len; /* Longueur source */
unsigned char rtm_tos; /* Filtre TOS */
unsigned char rtm_table; /* ID table de routage ;
voir RTA_TABLE ci-dessous */
unsigned char rtm_protocol; /* Protocole de routage ;
voir ci-dessous */
unsigned char rtm_scope; /* Voir ci-dessous */
unsigned char rtm_type; /* Voir ci-dessous */
unsigned int rtm_flags;
};
Les valeurs plus grandes que RTPROT_STATIC ne sont pas interprĂ©tĂ©es par le noyau et servent dâinformation utilisateur. Elles permettent de marquer la source de lâinformation de routage ou de faire une distinction entre plusieurs dĂ©mons de routage. Consultez <linux/rtnetlink.h> pour les identificateurs des dĂ©mons de routage dĂ©jĂ affectĂ©s.
rtm_scope est la distance vers la destination :
Les valeurs entre RT_SCOPE_UNIVERSE et RT_SCOPE_SITE sont disponibles pour lâutilisateur.
Le champ rtm_flags prend les significations suivantes :
rtm_table indique la table de routage
Lâutilisateur peut affecter Ă son grĂ© les valeurs entre RT_TABLE_UNSPEC et RT_TABLE_DEFAULT .
RTA_MULTIPATH contient plusieurs instances groupées de struct rtnexthop avec des RTA imbriqués ( RTA_GATEWAY ) :
struct
rtnexthop {
unsigned short rtnh_len; /* Long. de struct. + long.
des RTA */
unsigned char rtnh_flags; /* Indicateurs (voir
linux/rtnetlink.h) */
unsigned char rtnh_hops; /* Priorité nexthop */
int rtnh_ifindex; /* Indice interface pour
ce nexthop */
}
Il existe une série de macros RTNH_* similaires aux macros RTA_* et NLHDR_* utiles pour manipuler ces structures.
struct rtvia {
unsigned short rtvia_family;
unsigned char rtvia_addr[0];
};
rtvia_addr est lâadresse, rtvia_family est son type de famille.
RTA_PREF peut contenir les valeurs ICMPV6_ROUTER_PREF_LOW , ICMPV6_ROUTER_PREF_MEDIUM et ICMPV6_ROUTER_PREF_HIGH définies dans <linux/icmpv6.h> .
RTA_ENCAP_TYPE peut contenir les valeurs LWTUNNEL_ENCAP_MPLS , LWTUNNEL_ENCAP_IP , LWTUNNEL_ENCAP_ILA ou LWTUNNEL_ENCAP_IP6 définies dans <linux/lwtunnel.h> .
Fournissez ces valeurs !
RTM_NEWNEIGH
RTM_DELNEIGH
RTM_GETNEIGH
Ajouter, supprimer ou obtenir des informations sur le voisinage dâun Ă©lĂ©ment de table (par exemple : une entrĂ©e ARP). Le message contient une structure ndmsg .
struct ndmsg {
unsigned char ndm_family;
int ndm_ifindex; /* Indice dâinterface */
__u16 ndm_state; /* Ătat */
__u8 ndm_flags; /* Indicateurs */
__u8 ndm_type;
};
struct nda_cacheinfo {
__u32 ndm_confirmed;
__u32 ndm_used;
__u32 ndm_updated;
__u32 ndm_refcnt;
};
ndm_state est un masque de bits des états suivants :
Les valeurs autorisées pour ndm_flags sont :
La structure rtattr prend les significations suivantes pour le champ rta_type :
Si le champ rta_type vaut NDA_CACHEINFO , alors un en-tĂȘte struct nda_cacheinfo suit.
RTM_NEWRULE
RTM_DELRULE
RTM_GETRULE
Ajouter, supprimer ou rechercher une rĂšgle de routage. Utilise une struct rtmsg .
RTM_NEWQDISC
RTM_DELQDISC
RTM_GETQDISC
Ajouter, supprimer ou rechercher une discipline de file dâattente. Le message contient une structure struct tcmsg qui peut ĂȘtre suivie par une sĂ©rie dâattributs.
struct tcmsg {
unsigned char tcm_family;
int tcm_ifindex; /* Indice dâinterface */
__u32 tcm_handle; /* Gestion qdisc */
__u32 tcm_parent; /* Qdisc parent */
__u32 tcm_info;
};
De plus, dâautres attributs spĂ©cifiques au module Qdisc sont possibles. Pour plus dâinformations, voir les fichiers dâen-tĂȘte appropriĂ©s.
RTM_NEWTCLASS
RTM_DELTCLASS
RTM_GETTCLASS
Ajouter, supprimer ou rechercher une classe de trafic. Ces messages contiennent une struct tcmsg décrite plus haut.
RTM_NEWTFILTER
RTM_DELTFILTER
RTM_GETTFILTER
Ajouter, supprimer ou obtenir des informations sur un filtre de trafic. Ces messages contiennent une struct tcmsg décrite plus haut.
VERSIONS
rtnetlink est une nouveauté de Linux 2.2.
BOGUES
Cette page de manuel est incomplĂšte.
VOIR AUSSI
cmsg (3), rtnetlink (3), ip (7), netlink (7)
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 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 .