Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: https://www.alcancelibre.org
Licencia Creative Commons
© 1999-2026 Joel Barrios Dueñas. Este manual se distribuye bajo la licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0). Usted es libre de compartir y adaptar el material bajo los siguientes términos: debe dar crédito al autor, no puede utilizarlo para fines comerciales y debe compartir las obras derivadas bajo la misma licencia. La licencia completa está disponible en https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.es.
ARP es el acrónimo de Address Resolution Protocol o Protocolo de Resolución de Direcciones. Su función principal consiste en establecer la correspondencia entre una dirección IP (nivel de red) y una dirección física MAC (nivel de enlace de datos) dentro de una red local. Cada sistema mantiene una tabla o caché ARP en memoria RAM con las asignaciones recientes para evitar realizar consultas constantes y optimizar la comunicación.
Para consultar la descripción técnica completa del mandato arp, ejecute:
man 8 arp
El mandato arp forma parte del paquete net-tools. En distribuciones modernas como AlmaLinux, Rocky Linux y RHEL 8/9/10, este paquete está ausente en la instalación por defecto, debido a que el conjunto iproute2 (con el mandato ip neigh) es la herramienta recomendada para la administración de red. Sin embargo, arp permanece disponible en los almacenes de software y resulta muy útil para aprendizaje y guiones de instrucciones específicos.
Para instalarlo en distribuciones basadas en RHEL:
dnf install net-tools
En sistemas ALDOS que utilizan SysVinit y yum como gestor de paquetes, el mandato es:
yum install net-tools
Esta sección cubre tanto la configuración del sistema que afecta al comportamiento del protocolo ARP como el uso práctico del mandato para consultar y manipular la tabla de resolución de direcciones.
El tiempo predeterminado que una entrada permanece en la caché ARP es de 60 segundos. Este valor puede verificarse examinando el archivo virtual correspondiente:
cat /proc/sys/net/ipv4/neigh/default/gc_stale_time
Aumentar este tiempo resulta útil en entornos de red estables con muchos equipos (cientos o miles), donde las renovaciones constantes de la caché pueden generar carga innecesaria en el servidor.
Para cambiar el valor temporalmente a 3600 segundos (1 hora) para todas las interfaces y para una interfaz específica (ej: enp0s8), utilice sysctl:
sysctl -w net.ipv4.neigh.default.gc_stale_time=3600
sysctl -w net.ipv4.neigh.enp0s8.gc_stale_time=3600
Para hacer el cambio permanente, añada las siguientes líneas al archivo de configuración /etc/sysctl.conf o, preferentemente, a un archivo dentro del directorio /etc/sysctl.d/ (ej: /etc/sysctl.d/99-arp.conf):
net.ipv4.neigh.default.gc_stale_time = 3600
net.ipv4.neigh.enp0s8.gc_stale_time = 3600
📝 Nota sobre nombres de interfaz: Los ejemplos utilizan
enp0s8(nomenclatura predictible de systemd). Para listar las interfaces de su sistema y conocer su nombre, ejecuteip linkols /sys/class/net.
A continuación se presentan los mandatos esenciales para visualizar, añadir, eliminar y gestionar las entradas de la tabla ARP, fundamentales para el diagnóstico y la administración de red.
La opción -a muestra la caché en un formato legible (estilo BSD), indicando la dirección IP, la MAC asociada y la interfaz de red.
arp -a
Salida de ejemplo:
? (192.168.100.84) at d0:37:45:bd:17:46 [ether] on enp0s8
? (192.168.100.1) at f4:9e:ef:5c:ec:6a [ether] on enp0s8
Ejecutar arp sin opciones muestra la tabla en el formato tradicional de Linux, con columnas bien definidas.
arp
Salida de ejemplo:
Address HWtype HWaddress Flags Mask Iface
192.168.100.84 ether d0:37:45:bd:17:46 C enp0s8
192.168.100.1 ether f4:9e:ef:5c:ec:6a C enp0s8
ether para Ethernet).C para Complete o completa, M para Permanent o estática).La opción -n evita la resolución de nombres DNS, mostrando sólo direcciones IP numéricas. Es más rápida y útil para diagnóstico.
arp -n
La opción -i filtra la salida para mostrar sólo las entradas de una interfaz específica.
arp -i enp0s8
Para añadir manualmente una entrada estática a la tabla (útil para equipos incapaces de responder a ARP), utilice la opción -s con la IP o nombre y la dirección MAC:
arp -s 192.168.100.200 00:08:a1:84:18:ad
Para eliminar una entrada específica de la tabla, utilice la opción -d:
arp -d 192.168.100.200
En escenarios de resolución de problemas —por ejemplo, cuando un equipo cambia su tarjeta de red o hay conflictos de IP—, puede ser necesario purgar toda la caché. El siguiente guion (script) en bash elimina todas las entradas dinámicas de la tabla:
for i in $(arp -n | awk '{print $1}' | grep -v Address);
do
arp -d $i
done
Explicación didáctica del guion:
arp -n: Lista la tabla en formato numérico.awk '{print $1}': Extrae sólo la primera columna (las direcciones IP).grep -v Address: Filtra y descarta la línea de cabecera que contiene la palabra "Address".for i in $(...): Itera sobre la lista de direcciones IP resultante.arp -d $i: Elimina cada entrada de la caché ARP.I (Incomplete), significa que el sistema fue incapaz de resolver esa dirección MAC. Suele indicar que el equipo destino está apagado o hay un problema de conectividad de capa 2.arp -s se marcan con la bandera M. El sistema se abstendrá de sobrescribirá éstas automáticamente y tampoco las eliminará tras el tiempo de vida estándar.ip neigh (parte de iproute2). Sin embargo, arp sigue siendo perfectamente válido, más intuitivo para aprender los conceptos y ampliamente utilizado en guiones de automatización heredados.Este manual, con sus ejemplos prácticos y explicaciones ampliadas, es ideal para comprender la operación fundamental del protocolo ARP en un entorno docente o de administración.