File: rtnetlink.7

package info (click to toggle)
manpages-fr 1.58.1-3
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 10,104 kB
  • ctags: 4
  • sloc: makefile: 106; sh: 8
file content (474 lines) | stat: -rw-r--r-- 11,938 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
'\" t
.\" Don't remove the line above, it tells man that tbl is needed.
.\" This man page is Copyright (C) 1999 Andi Kleen <ak@muc.de>.
.\" Permission is granted to distribute possibly modified copies
.\" of this page provided the header is included verbatim,
.\" and in case of nontrivial modification author and date
.\" of the modification is added to the header.
.\" Based on the original comments from Alexey Kuznetsov, written with
.\" help from Matthew Wilcox. 
.\" $Id: rtnetlink.7,v 1.8 2000/01/22 01:55:04 freitag Exp $
.\" Traduction Christophe Blaess, <ccb@club-internet.fr>
.\" MJ 25/07/2003 LDP-1.56
.TH RTNETLINK  7 "25 juillet 2003" LDP "Manuel de l'administrateur Linux"
.SH NOM
rtnetlink, NETLINK_ROUTE \- Socket de routage Linux IPv4.
.SH SYNOPSIS
.B #include <asm/types.h>
.br
.B #include <linux/netlink.h>
.br
.B #include <linux/rtnetlink.h>
.br
.B #include <sys/socket.h>

.BI "rtnetlink_socket = socket(PF_NETLINK, int " socket_type ", NETLINK_ROUTE);"

.SH DESCRIPTION
Rtnetlink permet de lire et modifier les tables de routage du noyau.
Cela permet des communications entre divers sous-systmes du noyau, bien que
cette utilisation en soit pas documente ici, et pour les communications
avec les programmes de l'espace utilisateur.
Les routes rseau, les adresses IP, les paramtres de liaison, 
la configuration du voisinage, les files, les classes de trafic et les
classes de paquets peuvent tre configurs par le biais des sockets
.BR NETLINK_ROUTE .
Elles sont bases sur des messages netlink, voir
.BR netlink (7)
pour plus d'informations.

.\" XXX: all these macros could be moved to rtnetlink(3) 

.SH "ATTRIBUTS DE ROUTAGE"
Certains messages netlink ont des attributs supplmentaires aprs l'en-tte
initial\ :

.nf
.ta 4 19 32
struct rtattr
{
	unsigned short	rta_len;	/* Longueur option */
	unsigned short	rta_type;	/* Type d'option   */
	/* Les donnes suivent... */
};
.fi

Ces attributs ne doivent tre manipuls qu'en utilisant les macros RTA_* ou
libnetlink, voir
.BR rtnetlink (3).

.SH MESSAGES
Rtnetlink est constitu de trois types de messages (en plus des messages
netlink standards)\ :
.TP
.BR RTM_NEWLINK ", " RTM_DELLINK ", " RTM_GETLINK
Crer, supprimer, ou obtenir des informations   propos d'une interface
rseau spcifique. Ces messages contiennent une structure
.B ifinfomsg
suivie d'une srie de
structures
.BR rtattr .

.nf
.ta 4 19 32
struct ifinfomsg
{
	unsigned char	ifi_family;	/* AF_UNSPEC         */
	unsigned short	ifi_type;	/* Type priphrique */
	int	ifi_index;		/* Index Interface   */
	unsigned int	ifi_flags;	/* Attributs priph. */
	unsigned int	ifi_change;	/* Masque modificat */
};
.fi

.\" XXX ifi_type
.B ifi_flags 
contient les attributs du priphrique, voir
.BR netdevice "(7) ;"
.B ifi_index
est l'index unique de l'interface\ ;
.B ifi_change
est rserv pour un usage ultrieur et doit toujours valoir 0xFFFFFFFF. 


.TS
tab(:);
c
l l l.
Attributs de routage
rta_type:type valeur:description
_
IFLA_UNSPEC:-:non-spcifi.
IFLA_ADDRESS:adresse matrielle:Adresse L2 interface.
IFLA_BROADCAST:adresse matrielle:Adresse L2 Broadcast.
IFLA_IFNAME:chane AsciiZ:Nom priphrique.
IFLA_MTU:unsigned int:MTU du priphrique.
IFLA_LINK:int:Type liaison.
IFLA_QDISC:chane AsciiZ:Mcanismes files.
IFLA_STATS:T{
struct net_device_stats
T}:Statistiques interface.
.TE
.TP	
.BR RTM_NEWADDR ", " RTM_DELADDR ", " RTM_GETADDR
Ajouter, supprimer ou obtenir des informations sur une adresse IP associe
 une interface. Sous Linux 2.2. une interface peut grer plusieurs adresses
IP, ce qui remplace le concept d'alias de Linux 2.0. Dans Linux 2.2., ces
messages supportent les adresses IPv4 et IPv6. Ils contiennent une structure
.BR ifaddrmsg ,
suivie ventullement par des 
attributs de routage
.BR rtaddr .

.nf
.ta 4 19 32
struct ifaddrmsg
{
	unsigned char	ifa_family;	/* Type adresse       */
	unsigned char	ifa_prefixlen;	/* Lg prfixe adresse */
	unsigned char	ifa_flags;	/* Attributs adresse  */
	unsigned char	ifa_scope;	/* Porte adresse     */
	int	ifa_index;		/* Index interface    */
};
.fi

.B ifa_family
est le type de famille d'adresse (actuellement
.B AF_INET
ou
.B AF_INET6), 
.B ifa_prefixlen
est la longueur du masque d'adresse, s'il est dfini pour la
famille (comme avec IPv4),
.B ifa_scope
est la porte de l'adresse,
.B ifa_index
est l'index de l'interface associe  l'adresse.
.B ifa_flags
est un attribut compos de
.B IFA_F_SECONDARY
pour une adresse secondaire (les anciens alias d'interface),
.B IFA_F_PERMANENT
pour une adresse fixe par l'utilisateur, et d'autres attribut non documents.

.TS
tab(:);
c
l l l.
Attributes
rta_type:type valeur:description
_
IFA_UNSPEC:-:non-spcifi.
IFA_ADDRESS:Adresse protocole raw:Adresse interface.
IFA_LOCAL:Adresse protocole raw:Adresse locale.
IFA_LABEL:Chane AsciiZ:Nom de l'interface.
IFA_BROADCAST:Adresse protocole raw:Adresse broadcast.
IFA_ANYCAST:Adresse protocole raw:Adresse anycast.
IFA_CACHEINFO:struct ifa_cacheinfo:Informations adresse.
.TE

.\" XXX struct ifa_cacheinfo
.TP	
.BR RTM_NEWROUTE ", " RTM_DELROUTE ", " RTM_GETROUTE
Crer, supprimer ou obtenir des informations  propos d'une route rseau.
Ces messages contiennent une structure
.B rtmsg
suivie d'une squence ventuelle de structures
.BR rtattr .
Pour
.B RTM_GETROUTE
mettre 
.B rtm_dst_len 
et 
.B rtm_src_len 
 0 signifie obtenir toutes les entres pour la table de routage indique.
Pour les autres champs, sauf
.B rtm_table 
et 
.BR rtm_protocol ,
0 est le symbole gnrique signifiant "toutes valeurs".

.nf
.ta 4 19 32
struct rtmsg
{
	unsigned char	rtm_family;	/* Famille d'adresse de la route */
	unsigned char	rtm_dst_len;	/* Longueur source               */
	unsigned char	rtm_src_len;	/* Longueur destination          */ 
	unsigned char	rtm_tos;	/* Filtre TOS                    */

	unsigned char	rtm_table;	/* ID table routage              */
	unsigned char	rtm_protocol;	/* Protocole route, cf plus bas  */
	unsigned char	rtm_scope;	/* Cf plus bas                   */	
	unsigned char	rtm_type;	/* Cf plus bas                   */

	unsigned int	rtm_flags;
};
.fi

.TS
tab(:);
l l
l l.
rtm_type:Type route
_
RTN_UNSPEC:Route inconnue
RTN_UNICAST:Passerelle ou route directe
RTN_LOCAL:Route interface locale
RTN_BROADCAST:T{
Route broadcast locale (envoi en broadcast)
T}
RTN_ANYCAST:T{
Route broadcast locale (envoi en unicast)
T}
RTN_MULTICAST:Route multicast
RTN_BLACKHOLE:Route d'abandon de paquets
RTN_UNREACHABLE:Destination unaccessible
RTN_PROHIBIT:Route de rejet de paquets
RTN_THROW:Routage prolong dans une autre table
RTN_NAT:Route de traduction d'adresse
RTN_XRESOLVE:T{
Rfrence  une rsolution externe (non implment)
T}
.TE

.TS
tab(:);
l l.
rtm_protocol:Origine de la route.
_
RTPROT_UNSPEC:inconnue
RTPROT_REDIRECT:T{
redirection ICMP (inutilis actuellement)
T}
RTPROT_KERNEL:fixe par le noyau
RTPROT_BOOT:obtenue pendant le boot
RTPROT_STATIC:fixe par l'administrateur
.TE

Les valeurs plus grande que
.B RTPROT_STATIC
ne sont pas interprtes par le noyau, et servent d'information utilisateur.
Elles permettent de marquer la source de la route ou de faire une distinction
entre plusieurs dmons de routage. Voir
.BR <linux/rtnetlink.h>
pour les identificateurs de dmons de routage dj affects.

.B rtm_scope 
est la distance  la destination\ :

.TS
tab(:);
l l.
RT_SCOPE_UNIVERSE:route globale
RT_SCOPE_SITE:T{
route locale interne au systme autonome
T}
RT_SCOPE_LINK:route sur ce lien
RT_SCOPE_HOST:route sur l'hte local
RT_SCOPE_NOWHERE:destination inexistante
.TE

Les valeurs entre
.B RT_SCOPE_UNIVERSE
et
.B RT_SCOPE_SITE
sont disponibles pour l'utilisateur.

Le champ
.B rtm_flags
prend les significations suivantes\ :

.TS
tab(:);
l l.
RTM_F_NOTIFY:T{
si la route change, notifier l'utilisateur via rtnetlink
T}
RTM_F_CLONED:la route est clone depuis une autre route
RTM_F_EQUALIZE:rpartiteur multicast (pas encore implment)
.TE

.B rtm_table
indique la table de routage

.TS
tab(:);
l l.
RT_TABLE_UNSPEC:table de routage non spcifie
RT_TABLE_DEFAULT:la table par dfaut
RT_TABLE_MAIN:la table principale
RT_TABLE_LOCAL:la table locale
.TE

L'utilisateur peut affecter  son gr les valeurs entre
.B RT_TABLE_UNSPEC
et
.BR RT_TABLE_DEFAULT .

.TS
tab(:);
c
l l l.
Attributes
rta_type:type de valeur:description
_
RTA_UNSPEC:-:ignor.
RTA_DST:Adresse protocole:Adresse de la route destination.
RTA_SRC:Adresse protocole:Adresse de la route source.
RTA_IIF:int:Index interface d'entre.
RTA_OIF:int:Index interface de sortie.
RTA_GATEWAY:Adresse protocole:Passerelle de la route.
RTA_PRIORITY:int:Priorit de la route.
RTA_PREFSRC::
RTA_METRICS:int:Mtrique de la route.
RTA_MULTIPATH::
RTA_PROTOINFO::
RTA_FLOW::
RTA_CACHEINFO::
.TE

.\".B Fill these values in!
.TP	
.BR RTM_NEWNEIGH ", " RTM_DELNEIGH  ", " RTM_GETNEIGH	
Ajouter, supprimer ou obtenir des informations sur les voisinage d'un
lment de table (ex : entre ARP). Le message contient une
structure
.BR ndmsg .

.nf
.ta 4 19 32
struct ndmsg
{
	unsigned char	ndm_family;
	int	ndm_ifindex;	/* Index interface */
	__u16	ndm_state;	/* tats */ 
	__u8	ndm_flags;	/* Attributs */
	__u8	ndm_type;   
};

struct nda_cacheinfo
{
	__u32	ndm_confirmed;
	__u32	ndm_used;
	__u32	ndm_updated;
	__u32	ndm_refcnt;
};
.fi

.B ndm_state
est un masque contenant les bits suivants\ :

.TS
tab(:);
l l.
NUD_INCOMPLETE:une entre de cache non rsolue.
NUD_REACHABLE:une entre de cache confirme correcte.
NUD_STALE:une entre de cache expire.
NUD_DELAY:une entre de cache en attente de timer.
NUD_PROBE:une entre de cache en vrification.
NUD_FAILED:une entre de cache invalide.
NUD_NOARP:un priphrique sans cache de destination.
NUD_PERMANENT:une entre statique.
.TE

Les valeurs valides pour
.B ndm_flags
sont\ :

.TS
tab(:);
l l.
NTF_PROXY:nne entre proxy Arp.
NTF_ROUTER:un routeur IPv6.
.TE

.\".B document the members of the struct better

La structure
.B rtaddr
prend les significations suivantes pour
le champ
.BR rta_type " :"

.TS
tab(:);
l l.
NDA_UNSPEC:type inconnu
NDA_DST:une adresse niveau rseau dans le cache de voisinage.
NDA_LLADDR:une adresse niveau liaison dans le cache voisinage.
NDA_CACHEINFO:statistiques sur le cache.
.TE

Si le champ
.B rta_type
vaut
.B NDA_CACHEINFO
alors un en-tte
.B struct nda_cacheinfo
suit.
.TP
.BR RTM_NEWRULE ", " RTM_DELRULE ", " RTM_GETRULE
Ajouter, supprimer ou rechercher une rgle de routage. Utilise une
.BR struct rtmsg .
.TP
.BR RTM_NEWQDISC ", " RTM_DELQDISC ", " RTM_GETQDISC
Ajouter, supprimer ou rechercher une displine de file d'attente. Le message
contient une structure
.B struct tcmsg
et peut tre suivi par une srie d'attributs.

.nf
.ta 4 19 32
struct tcmsg
{
	unsigned char	tcm_family;
	int	tcm_ifindex;	/* Index interface */
	__u32	tcm_handle;	/* Handle Qdisc    */ 
	__u32	tcm_parent;	/* Parent Qdisc    */
	__u32	tcm_info;
};
.fi

.TS
tab(:);
c
l l l.
Attributes
rta_type:Type valeur:Description
_
TCA_UNSPEC:-:unspecified
TCA_KIND:Chane AsciiZ:Nom de la discipline de file
TCA_OPTIONS:Squence octets:Options spcifiques Qdisc suivent
TCA_STATS:struct tc_stats:Statistiques Qdisc
TCA_XSTATS:Spcifique Qdisc:Statistiques spcifiques module
TCA_RATE:struct tc_estimator:Limitation taux
.TE

De plus d'autres attributs spcifiques au module Qdisc sont possibles.
Pour plus d'information, voir les fichiers d'en-tte appropris.
.TP
.BR RTM_NEWTCLASS ", " RTM_DELTCLASS ", " RTM_GETTCLASS
Ajouter, supprimer ou rechercher une classe de trafic. Ces messages
contiennent une
.B struct tcmsg
dcrite plus haut.
.TP
.BR RTM_NEWTFILTER ", " RTM_DELTFILTER ", " RTM_GETTFILTER
Ajouter, supprimer ou obtenir des informations sur un flitre de trafic.
Ces messages contiennent une
.B struct tcmsg
dcrite plus haut.
.SH VERSIONS
.B rtnetlink 
est une nouveaut Linux 2.2.
.SH BOGUES
Cette page de manuel est trs incomplte.

.SH "VOIR AUSSI"
.BR netlink (7),
.BR cmsg (3),
.BR ip (7),
.BR rtnetlink (3)
.SH TRADUCTION
Christophe Blaess, 2003.