Provided by: manpages-es_1.55-9_all bug

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                   |
       +----------------+-----------------------------+
       |Bandera         | Significado                 |
       +----------------+-----------------------------+
       |ATF_COM         | Búsqueda completa           |
       +----------------+-----------------------------+
       |ATF_PERM        | Entrada permanente          |
       +----------------+-----------------------------+
       |ATF_PUBL        | Publicar entrada            |
       +----------------+-----------------------------+
       |ATF_USETRAILERS | Son necesarios terminadores |
       +----------------+-----------------------------+
       |ATF_NETMASK     | Usar una máscara de red     |
       +----------------+-----------------------------+
       |ATF_DONTPUB     | No 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.