File: rtnetlink.7

package info (click to toggle)
manpages-es 1.24a-6
  • links: PTS
  • area: main
  • in suites: potato
  • size: 4,256 kB
  • ctags: 7
  • sloc: makefile: 66; sh: 62
file content (551 lines) | stat: -rw-r--r-- 12,860 bytes parent folder | download | duplicates (3)
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
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
'\" 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, writen with
.\" help from Matthew Wilcox. 
.\" $Id: rtnetlink.7,v 1.5 1999/05/14 16:57:24 freitag Exp $
.\"
.\" Translated on Tue Jul 6 1999 by Juan Piernas <piernas@ditec.um.es>
.\"
.TH RTNETLINK  7 "30 abril 1999" "Pgina man de Linux" "Manual del Programador de Linux" 
.SH NOMBRE
rtnetlink, NETLINK_ROUTE \- Conector de enrutamiento IPv4 de Linux.
.SH SINOPSIS
.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 DESCRIPCIN 
Rtnetlink permite leer y alterar las tablas de enrutamiento del ncleo.  
Se usa dentro del ncleo para comunicar entre s varios subsistemas (aunque
este uso no se documenta aqu) y para la comunicacin con programas en el
espacio de usuario.
Las rutas de red, las direcciones IP, los parmetros de enlace, las
configuraciones de vecinos, las disciplinas de encolamiento, las clases
de intercambio y los clasificadores de paquetes pueden controlarse a travs
de conectores
.BR NETLINK_ROUTE .
Todo esto se basa en mensajes netlink. Vea
.BR netlink (7)
para ms informacin.

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

.SH ATRIBUTOS DE ENRUTAMIENTO
Algunos mensajes rtnetlink poseen atributos opcionales despus de la
cabecera inicial:

.nf
.ta 4 19 32
struct rtattr
{
	unsigned short	rta_len;	/* Longitud de la opcin */
	unsigned short	rta_type;	/* Tipo de opcin */
	/* Los datos vienen a continuacin */ 
};
.fi

Estos atributos slo deberan manipularse usando las macros RTA_* o la
librera libnetlink. Vea
.BR rtnetlink (3).

.SH MENSAJES
Rtnetlink est formado por los siguientes tipos de mensajes
(adems de los mensajes netlink estndares):

.TP
.BR RTM_NEWLINK ", " RTM_DELLINK ", " RTM_GETLINK
Crea, borra u obtiene informacin de una interfaz de red
especfica. Estos mensajes contienen una estructura
.B ifinfomsg
seguida por una serie de estructuras
.BR rtattr .

.nf
.ta 4 19 32
struct ifinfomsg
{
	unsigned char	ifi_family;	/* AF_UNSPEC */
	unsigned char	__ifi_pad;	/* Sin usar */
	unsigned short	ifi_type;	/* Tipo del dispositivo */ 
	int	ifi_index;		/* ndice de la interfaz   */
	unsigned int	ifi_flags;	/* Opciones del dispositivo  */
	unsigned int	ifi_change;	/* Mscara de cambios */
};
.fi

.\" XXX ifi_type
.B ifi_flags
contiene las opciones del dispositivo. Vea
.BR netdevice(7).
.B ifi_index
es el ndice de la interfaz.
.B ifi_change
se reserva para uso futuro y siempre debe valer 0xFFFFFFFF. 


.TS
tab(:) allbox;
c s s
l l l.
\fIAtributos de enrutamiento\fP
\fBrta_type\fP:\fBTipo de valor\fP:\fBDescripcin\fP
.\"_
IFLA_UNSPEC:-:sin especificar.
IFLA_ADDRESS:direccin hardware:T{
direccin del Nivel 2 de la interfaz
T}
IFLA_BROADCAST:direccin hardware:T{
direccin de difusin del Nivel 2
T}
IFLA_IFNAME:T{
cadena terminada en cero
T}:nombre del dispositivo
IFLA_MTU:entero sin signo:MTU del dispositivo
IFLA_LINK:entero:tipo de enlace
IFLA_QDISC:T{
cadena terminada en cero
T}:T{
disciplina de encolamiento
T}
IFLA_STATS:T{
estructura net_device_stats
T}:T{
estadsticas de la interfaz
T}
.TE

.TP	
.BR RTM_NEWADDR ", " RTM_DELADDR ", " RTM_GETADDR
Aade, elmina o recibe informacin de una direccin IP asociada con una
interfaz. En Linux 2.2 una interfaz puede acarrear varias direcciones IP.
Esto reemplaza el concepto de dispositivo alias de la versin 2.0. En Linux
2.2 estos mensajes soportan direcciones  IPv4 e IPv6. Contienen una
estructura
.B ifaddrmsg
seguida opcionalmente por atributos de enrutamiento
.BR rtaddr .

.nf
.ta 4 19 34
struct ifaddrmsg
{
	unsigned char	ifa_family;	/* Tipo de direccin */
	unsigned char	ifa_prefixlen;	/* Longitud del prefijo de
			   la direccin */
	unsigned char	ifa_flags;	/* Opciones de la direccin */
	unsigned char	ifa_scope;	/* mbito de la direccin */
	int	ifa_index;		/* ndice de la interfaz */
};
.fi

.B ifa_family
es el tipo de la familia de direcciones (actualmente
.B AF_INET
o
.B AF_INET6), 
.B ifa_prefixlen
es la longitud de la mscara de la direccin si sta est definida
para la familia (como ocurre con IPv4),
.B ifa_scope
es el mbito de la direccin,
.B ifa_index
es el ndice de la interfaz con la que la direccin est
asociada.
.B ifa_flags
es una palabra de opciones que contiene
.B IFA_F_SECONDARY
para una direccin secundaria (antiguo interfaz alias),
.B IFA_F_PERMANENT
para una direccin permanente configurada por el usuario, y otras opciones
sin documentar.

.TS
tab(:) allbox;
c s s
l l l.
\fIAtributos\fP
\fBrta_type\fP:\fBTipo de valor\fP:\fBDescripcin\fP
.\"_
IFA_UNSPEC:-:sin especificar.
IFA_ADDRESS:T{
direccin de protocolo
T}:T{
direccin de la interfaz
T}
IFA_LOCAL:T{
direccin de protocolo
T}:T{
direccin local
T}
IFA_LABEL:T{
cadena terminada en cero
T}:T{
nombre de la interfaz
T}
IFA_BROADCAST:T{
direccin de protocolo
T}:T{
direccin de difusin
T}
IFA_ANYCAST:T{
direccin de protocolo
T}:T{
direccin de "cualquier destino"
T}
IFA_CACHEINFO:T{
estructura ifa_cacheinfo
T}:T{
informacin de la direccin
T}
.TE

.\" XXX struct ifa_cacheinfo

.TP	
.BR RTM_NEWROUTE ", " RTM_DELROUTE ", " RTM_GETROUTE
Crea, borra o recibe informacin de una ruta de red.
Estos mensajes contienen una estructura
.B rtmsg
con una secuencia opcional a continuacin de estructuras
.BR rtattr .

.nf
.ta 4 19 34
struct rtmsg
{
	unsigned char	rtm_family;	/* Familia de direcciones de
			   la ruta */
	unsigned char	rtm_dst_len;	/* Longitud del destino */
	unsigned char	rtm_src_len;	/* Longitud del origen */ 
	unsigned char	rtm_tos;	/* Filtro TOS */

	unsigned char	rtm_table;	/* Identificador de la tabla de
			   enrutamiento */
	unsigned char	rtm_protocol;	/* Protocolo de enrutamiento.
			   Ver ms abajo */
	unsigned char	rtm_scope;	/* Ver ms abajo */	
	unsigned char	rtm_type;	/* Ver ms abajo */

	unsigned int	rtm_flags;	
};
.fi

.TS
tab(:) allbox;
l l
l l.
\fBrtm_type\fP:\fBTipo de ruta\fP
.\"_
RTN_UNSPEC:ruta desconocida
RTN_UNICAST:una pasarela (gateway) o ruta directa
RTN_LOCAL:una ruta de la interfaz local
RTN_BROADCAST:T{
una ruta de difusin local (enviada en una difusin)
T}
RTN_ANYCAST:T{
una ruta de difusin local (enviada en un unidestino)
T}
RTN_MULTICAST:una ruta multidestino
RTN_BLACKHOLE:una ruta para la prdida de paquetes
RTN_UNREACHABLE:un destino inalcanzable
RTN_PROHIBIT:una ruta de rechazo de paquetes
RTN_THROW:continuar la bsqueda de rutas en otra tabla
RTN_NAT:una regla de traduccin de direcciones de red
RTN_XRESOLVE:T{
remitir a una entidad de resolucin externa (no implementado)
T}
.TE

.TS
tab(:) allbox;
l l.
\fBrtm_protocol\fP:\fBRuta original\fP
.\"_
RTPROT_UNSPEC:desconocido
RTPROT_REDIRECT:T{
por una redireccin ICMP (no usado actualmente)
T}
RTPROT_KERNEL:por el ncleo
RTPROT_BOOT:durante el arranque
RTPROT_STATIC:por el administrador
.TE

Los valores mayores que
.B RTPROT_STATIC
no son interpretados por el ncleo, slo son para informacin de usuario. Se
pueden usar para identificar la fuente de una informacin de enrutamiento o
para distinguir entre varios demonios de enrutamiento. Vea
.BR <linux/rtnetlink.h>
para los indentificadores de los demonios de enrutamiento que ya estn
asignados.

.B rtm_scope 
es la distancia al destino:

.TS
tab(:) allbox;
l l.
RT_SCOPE_UNIVERSE:ruta global
RT_SCOPE_SITE:T{
ruta interior en el sistema autnomo local
T}
RT_SCOPE_LINK:ruta en este enlace
RT_SCOPE_HOST:ruta en el anfitrin local
RT_SCOPE_NOWHERE:el destino no existe
.TE

Los valores entre
.B RT_SCOPE_UNIVERSE
y
.B RT_SCOPE_SITE
estn disponibles para el usuario.

.B rtm_flags
tiene los siguientes significados:

.TS
tab(:) allbox;
l l.
RTM_F_NOTIFY:T{
si la ruta cambia, informar al usuario mediante rtnetlink
T}
RTM_F_CLONED:la ruta es un duplicado de otra ruta
RTM_F_EQUALIZE:T{
un equalizador multidestino (no implementado todava)
T}
.TE

.B rtm_table
especifica la tabla de enrutamiento

.TS
tab(:) allbox;
l l.
RT_TABLE_UNSPEC:una tabla de enrutamiento sin especificar
RT_TABLE_DEFAULT:la tabla por defecto
RT_TABLE_MAIN:la tabla principal
RT_TABLE_LOCAL:la tabla local
.TE

El usuario puede asignar valores arbitrarios entre
.B RT_TABLE_UNSPEC
y
.BR RT_TABLE_DEFAULT .

.TS
tab(:) allbox;
c s s
l l l.
\fIAtributos\fP
\fBrta_type\fP:\fBTipo de valor\fP:\fBDescripcin\fP
.\"_
RTA_UNSPEC:-:ignorado
RTA_DST:T{
direccin de protocolo
T}:T{
direccin de destino de la ruta
T}
RTA_SRC:T{
direccin de protocolo
T}:T{
direccin de origen de la ruta
T}
RTA_IIF:entero:T{
ndice de la interfaz de entrada
T}
RTA_OIF:entero:T{
ndice de la interfaz de salida
T}
RTA_GATEWAY:T{
direccin de protocolo
T}:T{
la pasarela (gateway) de la ruta
T}
RTA_PRIORITY:entero:prioridad de la ruta
RTA_PREFSRC::
RTA_METRICS:entero:mtrica de la ruta
RTA_MULTIPATH::
RTA_PROTOINFO::
RTA_FLOW::
RTA_CACHEINFO::
.TE

.B Esta tabla est incompleta!

.TP	
.BR RTM_NEWNEIGH ", " RTM_DELNEIGH  ", " RTM_GETNEIGH
Aade, borra o recibe informacin de una entrada de la tabla de vecinos (por
ejemplo, una entrada ARP). El mensaje contiene una estructura
.BR ndmsg .

.nf
.ta 4 19 32
struct ndmsg
{
	unsigned char	ndm_family;
	unsigned char	ndm_pad1;
	unsigned short	ndm_pad2;
	int	ndm_ifindex;	/* ndice de la interfaz */
	__u16	ndm_state;	/* Estado */ 
	__u8	ndm_flags;	/* Opciones */
	__u8	ndm_type;   
};

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

.B ndm_state
es una mscara de bits de los siguientes estados:

.TS
tab(:) allbox;
l l.
NUD_INCOMPLETE:T{
una entrada de la cache que se est resolviendo actualmente
T}
NUD_REACHABLE:T{
una entrada de la cache que ya se ha confirmado como operativa
T}
NUD_STALE:una entrada de la cache caduca
NUD_DELAY:una entrada que espera a un cronmetro
NUD_PROBE:T{
una entrada de la cache que se est sondeando de nuevo actualmente
T}
NUD_FAILED:una entrada de la cache invlida
NUD_NOARP:un dispositivo sin cache de destinos
NUD_PERMANENT:una entrada esttica
.TE

Los
.B ndm_flags
vlidos son:

.TS
tab(:) allbox;
l l.
NTF_PROXY:una entrada proxy arp
NTF_ROUTER:un enrutador IPv6
.TE

.B Hay que documentar mejor los miembros de la estructura.

La estructura
.B rtaddr
tiene los siguientes significados para el campo
.BR rta_type :

.TS
tab(:) allbox;
l l.
NDA_UNSPEC:tipo desconocido
NDA_DST:T{
una direccin de destino de la capa de red de la cache de vecinos
T}
NDA_LLADDR:T{
una direccin de la capa de enlace de la cache de vecinos
T}
NDA_CACHEINFO:estadsticas de la cache
.TE

Si el campo
.B rta_type
es
.BR NDA_CACHEINFO ,
a continuacin viene una cabecera
.BR "struct nda_cacheinfo" .

.TP
.BR RTM_NEWRULE ", " RTM_DELRULE ", " RTM_GETRULE
Aade, borra o recupera una regla de enrutamiento. Lleva asociada una
.BR "struct rtmsg" .

.TP
.BR RTM_NEWQDISC ", " RTM_DELQDISC ", " RTM_GETQDISC
Aade, borra u obtiene una disciplina de encolamiento. El mensaje contiene
una
.B struct tcmsg
que puede ir seguida por una serie de atributos.

.nf
.ta 4 19 32
struct tcmsg
{
	unsigned char	tcm_family;
	unsigned char	tcm__pad1;
	unsigned short	tcm__pad2;
	int	tcm_ifindex;	/* ndice de la interfaz */
	__u32	tcm_handle;	/* Descriptor qdisc */ 
	__u32	tcm_parent;	/* Qdisc del padre*/
	__u32	tcm_info;
};
.fi

.TS
tab(:) allbox;
c s s
l l l.
\fIAtributos\fP
\fBrta_type\fP:\fBTipo de valor\fP:\fBDescripcin\fP
.\"_
TCA_UNSPEC:-:sin especificar
TCA_KIND:T{
cadena terminada en cero
T}:T{
nombre de la disciplina de encolamiento
T}
TCA_OPTIONS:secuencia de bytes:T{
opciones especficas de Qdisc que vienen a continuacin
T}
TCA_STATS:estructura tc_stats:estadsticas qdisc
TCA_XSTATS:especfico de qdisc:T{
estadsticas especficas del mdulo
T}
TCA_RATE:estructura tc_estimator:lmite de la tasa
.TE

Adems, se permiten otros atributos diferentes especficos del mdulo qdisc.
Para ms informacin, vea los ficheros cabecera adecuados.

.TP
.BR RTM_NEWTCLASS ", " RTM_DELTCLASS ", " RTM_GETTCLASS
Aade, borra u obtiene una clase de intercambio. Estos mensajes contienen una
.B struct tcmsg
como la descrita anteriormente.

.TP
.BR RTM_NEWTFILTER ", " RTM_DELTFILTER ", " RTM_GETTFILTER
Aade, borra o recibe informacin de una filtro de trfico. Estos mensajes
contienen una
.B struct tcmsg
como la descrita anteriormente.

.SH VERSIONES

.B rtnetlink
es una nueva caracterstica de la versin 2.2 de Linux. 

.SH FALLOS
Esta pgina de manual es deficiente y est incompleta.

.SH VASE TAMBIN
.BR netlink (7),
.BR cmsg (3),
.BR ip (7),
.BR rtnetlink (3)