> Linux Reviews > man >

arp

Módulo ARP del núcleo de Linux.


  1. arp.7.man
  2. arp.8.man


1. arp.7.man

Manpage of ARP

ARP

Section: Manual del Programador de Linux (7)
Updated: 3 junio 1999
Index Return to Main Contents
 

NOMBRE

arp - Módulo ARP del núcleo de Linux.  

DESCRIPCIÓN

Este módulo de protocolo del núcleo implementa el protocolo de resolución de direcciones (Address Resolution Protocol, ARP) definido en RFC 826. Se usa para convertir direcciones hardware de la Capa 2 a direcciones del protocolo IPv4 y viceversa, en redes conectadas directamente. El usuario normalmente no interactúa directamente con este módulo salvo para configurarlo. En cambio, proporciona un servicio para otros protocolos dentro del núcleo.

Un proceso de usuario puede recibir paquetes ARP usando conectores packet(7). También existe un mecanismo para gestionar la cache ARP en el espacio de usuario usando conectores netlink(7). La tabla ARP también se puede controlar aplicando la llamada ioctl (2) a cualquier conector PF_INET.

El módulo ARP mantiene una cache de asociaciones entre direcciones hardware y direcciones de protocolo. La cache tiene un tamaño limitado por lo que las entradas antiguas y menos frecuentemente usadas son elminadas por un recolector de basura. Las entradas marcadas como permanentes nunca son eliminadas por el recolector de basura. La caché se puede manipular directamente mediante ioctls y su comportamiento se puede ajustar mediante las sysctls definidas más abajo.

Una entrada de la cache de vecinos se considerará caduca cuando no exista una retroalimentación positiva después de algún tiempo para una asociación existente (vea las sysctls más abajo). La retroalimentación positiva puede ser obtenida de una capa superior; por ejemplo de una confirmación positiva (ACK) de TCP. Otros protocolos pueden señalizar la progresión del reenvío usando la opción MSG_CONFIRM en sendmsg(2). Cuando no hay progresión de reenvío ARP vuelve a intentarlo. Primero intenta consultar a un demonio arp local app_solicit veces. Si esto falla y se conoce la antigua dirección MAC, se envía un sondeo unidestino durante ucast_solicit veces. Si esto también falla, se realizará la difusión de una nueva petición ARP a la red. Las peticiones sólo se envían cuando hay datos encolados para ser enviados.

Linux automáticamente añadirá una entrada proxy arp no permanente cuando reciba una petición de una dirección a la que él reenvía y cuando el proxy arp esté activo en la interfaz receptora. Cuando existe una ruta de rechazo para un destino, no se añade ninguna entrada arp.

 

IOCTLS

Existen tres ioctls disponibles en todos los conectores PF_INET. Toman un puntero a una estructura struct arpreq como argumento.


struct arpreq
{
    struct sockaddr arp_pa;      /* dirección del protocolo */
    struct sockaddr arp_ha;      /* dirección hardware */
    int             arp_flags;   /* opciones */
    struct sockaddr arp_netmask; /* máscara de red de la dirección
                                    de protocolo */
    char            arp_dev[16];
};

SIOCSARP, SIOCDARP y SIOCGARP establecen, borran u obtienen una asociación ARP, respectivamente. Establecer y borrar asociaciones ARP son operaciones privilegiadas y sólo pueden ser realizadas por un proceso con la capacidad CAP_NET_ADMIN o con un UID efectivo 0.

arp_pa debe ser un conector AF_INET y arp_ha debe tener el mismo tipo que el dispositivo que se especifica en arp_dev. arp_dev es una cadena terminada en cero que da el nombre de un dispositivo.

arp_flags
BanderaSignificado
ATF_COMBúsqueda completa
ATF_PERMEntrada permanente
ATF_PUBLPublicar entrada
ATF_USETRAILERSSon necesarios terminadores
ATF_NETMASKUsar una máscara de red
ATF_DONTPUBNo responder

Si se activa la bandera ATF_NETMASK, arp_netmask debe ser válida. La versión 2.2 de Linux no soporta entradas de proxy arp de red, por lo que debería asignar a arp_netmask el valor 0xffffffff o 0 para eliminar una entrada proxy arp existente. La opción ATF_USETRAILERS está obsoleta y no debería usarse.

 

SYSCTLS

El módulo ARP soporta una interfaz sysctl para configurar parámetros globales o específicos de una interfaz. Se puede acceder a las sysctls leyendo o escribiendo los ficheros /proc/sys/net/ipv4/neigh/*/* o con la interfaz sysctl(2). Cada interfaz del sistema tiene su propio directorio en /proc/sys/net/ipv4/neigh/. La configuración del directorio `por defecto' se usa para todos los dispositivos recién creados. A menos que se indique otra cosa, las sysctls relacionadas con el tiempo se especifican en segundos.
anycast_delay
Número máximo de unidades de tiempo (jiffies) a esperar antes de contestar a un mensaje IPv6 de solicitud de vecinos. El soporte "cualquier dirección" (anycast) todavía no está implementado. El valor por defecto es de 1 segundo.
app_solicit
El número máximo de sondeos a enviar a un demonio ARP en el espacio de usuario mediante netlink antes de recurrir a sondeos multidestino (vea mcast_solicit). Por defecto es 0.
base_reachable_time
Una vez que se ha encontrado un vecino, la entrada se considera válida durante, al menos, un valor aleatorio entre base_reachable_time/2 y 3*base_reachable_time/2. La validez de una entrada se ampliará si recibe retroalimentación positiva desde los protocolos de los niveles más altos. El valor por defecto es de 30 segundos.
delay_first_probe_time
Tiempo de espera antes del primer sondeo después de que se haya decidido que un vecino está caduco. Por defecto es 5 segundos.
gc_interval
Periodo con el que el recolector de basura para las entradas de vecinos debería intentar ejecutarse. Por defecto es de 30 segundos.
gc_stale_time
Determina la frecuencia con la que se comprueban las entradas en busca de vecinos caducos. Cuando la entrada de un vecino se considera caduca, se resuelve de nuevo antes de enviarle datos. El valor por defecto es de 60 segundos.
gc_thresh1
Número mínimo de entradas a guardar en la cache ARP. El recolector de basura no se ejecutará si hay menos entradas en la cache que el número indicado. Por defecto vale 128.
gc_thresh2
Número máximo flexible de entradas a guardar en la cache ARP. El recolector de basura permitirá que el número de entradas exceda éste límite durante 5 segundos antes de realizar una recolección. El valor por defecto es de 512 entradas.
gc_thresh3
Número máximo estricto de entradas a guardar en la cache ARP. El recolector de basura se ejecutará siempre si hay más entradas en la caché que el número indicado. Por defecto vale 1024.
locktime
Número mínimo de unidades de tiempo que debe permanecer una entrada ARP en la cache. Esto evita la modificación continua de la cache ARP si hay más de una asociación potencial (debido, generalmente, a una mala configuración de la red). Por defecto es 1 segundo.
mcast_solicit
Número máximo de intentos para resolver una dirección mediante multidestino/difusión antes de marcar la entrada como inalcanzable. El valor por defecto es 3.
proxy_delay
Cuando se recibe una solicitud ARP para una dirección proxy-ARP conocida, esperar hasta proxy_delay unidades de tiempo antes de responder. Esto se utiliza para evitar inundar la red en algunos casos. Por defecto vale 0,8 segundos.
proxy_qlen
Número máximo de paquetes que se pueden encolar para direcciones proxy-ARP. Por defecto vale 64.
retrans_time
Número de unidades de tiempo a esperar antes de retransmitir una petición. El valor por defecto es 1 segundo.
ucast_solicit
Número máximo de intentos para enviar sondeos unidestino antes de preguntar al demonio ARP (vea app_solicit). Por defecto es 3.
unres_qlen
Número máximo de paquetes que otras capas de red pueden encolar para cada dirección sin resolver. Por defecto vale 3.

 

FALLOS

Algunos valores del cronómetro se especifican en unidades de tiempo (jiffies), cuyo valor dependen de la arquitectura. En los Alpha una unidad de tiempo es 1/1024 segundos y en la mayoría de arquitecturas es 1/100 segundos.

No hay forma de indicar una retroalimentación positiva desde el espacio de usuario. Esto significa que los protocolos orientados a conexión implementados en el espacio de usuario generarán un tráfico ARP excesivo, debido a que ndisc volverá regularmente a sondear las direcciones MAC. El mismo problema es aplicable a algunos protocolos del núcleo (p.e. NFS sobre UDP).

Esta página de manual mezcla funcionalidad específica de IPv4 y comportida entre IPv4 e IPv6.

 

VERSIONES

La estructura struct arpreq cambió en la versión 2.0 de Linux para incluir el miembro arp_dev y los números de las ioctls cambiaron a la misma vez. El soporte para las antiguas ioctls se eliminó en la versión 2.2 de Linux.

El soporte para entradas proxy arp de red (máscara de red distinta de 0xffffffff) se eliminó en la versión 2.2 de Linux. Se reemplazó por una configuración proxy arp automática realizada por el núcleo para todos los anfitriones (hosts) alcanzables a través de otras interfaces (cuando están activos el reenvío y el proxy arp en la interfaz).

Los sysctls del tipo neigh/* no existían en versiones de Linux anteriores a la 2.2.

 

VÉASE TAMBIÉN

ip(7)

RFC826 para una descripción de ARP.
RFC2461 para una descripción del descubrimiento de vecinos de IPv6 y los algoritmos base utilizados.

La implementación IPv4 ARP de Linux 2.2+ usa los algoritmos IPv6 cuando éstos son aplicables.


 

Index

NOMBRE
DESCRIPCIÓN
IOCTLS
SYSCTLS
FALLOS
VERSIONES
VÉASE TAMBIÉN

This document was created by man2html using the manual pages.
Time: 17:35:34 GMT, October 23, 2013

2. arp.8.man

Manpage of ARP

ARP

Section: Manual del Programador de Linux (8)
Updated: 15 mayo 1996
Index Return to Main Contents
 

NOMBRE

arp - manipula la cache ARP del sistema  

SINOPSIS

arp [-vn] [-H type] [-i if] -a [hostname]

arp [-v] [-i if] -d hostname [pub]

arp [-v] [-H type] [-i if] -s hostname hw_addr [temp]

arp [-v] [-H type] [-i if] -s hostname hw_addr [netmask nm] pub

arp [-v] [-H type] [-i if] -Ds hostname ifa [netmask nm] pub

arp [-vnD] [-H type] [-i if] -f filename

 

DESCRIPCIÓN

Arp manipula la cache ARP del sistema de varias maneras. Las opciones primarias son las de eliminar una entrada de asociación de direcciones y configurar otra manualmente. Para propósitos de depuración el programa arp permite también un vaciado total de la cache ARP.  

OPCIONES

-v, --verbose
Informa al usuario de lo que ocurre de manera extendida.
-n, --umeric
muestra direcciones numéricas en vez de tratar de determinar nombres simbólicos de servidores, puertos o nombres de usuario.
-H type, --hw-type type
Al configurar o leer la cache ARP, esta opción le dice a arp qué clase de entradas debe buscar. El valor por defecto es ether (es decir, código hardware 0x01 para IEEE 802.3 10Mbps Ethernet). Otros valores incluyen tecnologías de red como las siguientes ARCnet (arcnet), PROnet (pronet), AX.25 (ax25) y NET/ROM (netrom).
-a [hostname], --display [hostname]
Muestra las entradas de los servidores especificados. Si no se usa el parámetro hostname, se mostrarán todas las entradas.
-d hostname, --delete hostname
Elimina toda entrada del servidor que se especifica. Se puede usar esta opción, por ejemplo, al cerrar el servidor.
-D, --use-device
Usa la dirección hardware ifa's del interfaz.
-i If, --device If
Selecciona un interfaz. Al vaciar la cache ARP se mostrarán solamente aquellas entradas que correspondan al interfaz. Se usará una configuración de entrada ARP temporal o permanente para el dispositivo especificado. Si no se especifica uno, el kernel lo deducirá a partir de la tabla de encaminamiento. Para entradas tipo pub el interfaz especificado será el usado para responder peticiones ARP.
NOTA: Este interfaz ha de ser diferente de aquel al que se encaminen los paquetes IP.
-s hostname hw_addr, --set hostname
Crea una entrada ARP de asociación de direcciones para el servidor hostname con una dirección hardware hw_addr El formato de la dirección hardware depende de la clase de hardware, pero para la mayoría de las clases se puede asumir la presentación normal. Para la clase Ethernet, ésta supone 6 bytes en formato hexadecimal, separados por dos puntos(:). Al añadir entradas arp tipo proxy (es decir, aquellas con la opción publish activada), se puede especificar una netmask (máscara de red) para así hacer arp proxy a subredes enteras. El proxy arp no resulta un buen protocolo, pero a veces resulta de utilidad. Si no se proporciona la opción temp las entradas se almacenarán permanentemente en la cache ARP.
-f filename, --file filename
Parecida a la opción -s, pero esta vez la información de direcciones se toma del archivo filename. Se puede usar esta opción si han de configurarse las entradas ARP de muchos servidores. A menudo el nombre del archivo de datos es /etc/ethers, pero esto no es oficial.

El formato del archivo es simple; solamente contiene líneas de texto ASCII con un nombre de servidor (hostname) y una dirección hardware separados por un espacio en blanco. Adicionalmente se pueden usar las opciones pub, temp y netmask.

En todos los lugares donde se espera un nombre de servidor, se puede proporcionar también una dirección IP en notación decimal separada por puntos.

Cada entrada completa de la cache ARP se marcará con la opción C, las entradas permanentes se marcan con M y las entradas publicadas tienen la marca P.  

ARCHIVOS

/proc/net/arp
/etc/networks
/etc/hosts
/etc/ethers  

VÉASE TAMBIÉN

rarp(8), route(8), ifconfig(8), netstat(8)  

AUTORES

Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> con un montón de mejoras del encargado del mantenimiento de las herramientas de red Bernd Eckenfels <net-tools@lina.inka.de>.


 

Index

NOMBRE
SINOPSIS
DESCRIPCIÓN
OPCIONES
ARCHIVOS
VÉASE TAMBIÉN
AUTORES

This document was created by man2html using the manual pages.
Time: 17:35:34 GMT, October 23, 2013

SVENSKA - SVENSKA - SVENSKA - ja - pl