aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesús <heckyel@hyperbola.info>2021-05-08 18:56:37 -0500
committerJesús <heckyel@hyperbola.info>2021-05-08 18:56:37 -0500
commit890686afec1e3528db3e8ea5e360d44b763536b5 (patch)
tree2b0553498302bf9eac86c63013a4b472c053efa0
parent35192dc549e0cd97d09fd4a092d29b0f0bacdc6a (diff)
downloadcl-890686afec1e3528db3e8ea5e360d44b763536b5.tar.lz
cl-890686afec1e3528db3e8ea5e360d44b763536b5.tar.xz
cl-890686afec1e3528db3e8ea5e360d44b763536b5.zip
Add "Cómo agregar o eliminar una entrada ARP estática en GNU+Linux" article
-rw-r--r--content/articles/como-agregar-o-eliminar-una-entrada-arp-estatica-en-gnu-linux.md192
1 files changed, 192 insertions, 0 deletions
diff --git a/content/articles/como-agregar-o-eliminar-una-entrada-arp-estatica-en-gnu-linux.md b/content/articles/como-agregar-o-eliminar-una-entrada-arp-estatica-en-gnu-linux.md
new file mode 100644
index 0000000..79dde88
--- /dev/null
+++ b/content/articles/como-agregar-o-eliminar-una-entrada-arp-estatica-en-gnu-linux.md
@@ -0,0 +1,192 @@
+Author: Anonymous
+Category: education
+Date: 2021-05-08 05:00
+Slug: como-agregar-o-eliminar-una-entrada-arp-estatica-en-gnu-linux
+Tags: arp, arp estática, arp quitar
+Title: Cómo agregar o eliminar una entrada ARP estática en GNU+Linux
+
+ARP (abreviatura de "Protocolo de resolución de direcciones") es un
+protocolo de red que se utiliza para asignar una dirección de red IP
+a una dirección MAC de hardware correspondiente.
+
+Cuando el host X quiere comunicarse con el host Y, X primero transmite
+una solicitud ARP en su red local para obtener la dirección MAC de Y.
+
+Una vez que X recibe la respuesta ARP que contiene la dirección MAC
+de Y, X usa la información para construir tramas Ethernet
+destinadas a Y.
+
+La información de mapeo de direcciones IP/MAC así obtenida se
+almacena en caché en la tabla ARP local, de modo que el proceso de
+consulta ARP se puede omitir posteriormente.
+
+Pueden surgir problemas cuando, por cualquier motivo, el host X no
+recibe respuestas ARP para un host de destino Y con el que desea
+comunicarse. En otros casos, las respuestas ARP entran, pero
+contienen una dirección MAC asociada con un host Z incorrecto.
+
+Tales respuestas ARP corruptas resultarán en secuestro de tráfico,
+donde el tráfico que debería haber sido enviado a Y termina
+llegando al host Z.
+
+Al tratar con este tipo de situaciones anormales inducidas por ARP,
+es útil poder agregar entradas ARP estáticas manualmente en la
+tabla ARP almacenada en caché local. Cuando se encuentra una
+dirección MAC de un host de destino Y en la tabla ARP local,
+no es necesario enviar solicitudes ARP.
+
+## Agregar una entrada ARP estática a la tabla ARP local
+
+ :::console
+ $ doas arp -s 10.0.0.2 00:0c:29:c0:94:bf
+
+Este comando le dice a la tabla ARP local que el host con la
+dirección IP 10.0.0.2 tiene la dirección MAC 00:0c:29:c0:94:bf.
+Una vez que haya configurado una entrada ARP estática,
+puede verificar que
+
+ :::console
+ $ arp -a -n
+
+salida:
+
+ :::bash
+ ? (192.168.10.47) at e0:db:55:ce:13:f1 [ether] on eth0
+ ? (192.168.10.1) at 00:e0:b1:cb:07:30 [ether] on eth0
+ ? (10.0.0.2) at 00: 0c: 29: c0: 94: bf [ether] PERM on eth1
+
+Como puede ver arriba, la entrada ARP configurada estáticamente
+aparece correctamente, marcada como "PERM" en la tabla ARP.
+
+## Eliminar una entrada ARP estática de la tabla ARP local
+
+ :::console
+ $ doas arp -d 10.0.0.2
+
+Verificar:
+
+ :::console
+ $ arp -a -n
+
+salida:
+
+ :::bash
+ ? (135.112.29.47) at e0:db:55:ce:13:f1 [ether] on eth0
+ ? (135.112.29.1) at 00:e0:b1:cb:07:30 [ether] on eth0
+ ? (10.0.0.2) at <incomplete> on eth1
+
+Tenga en cuenta que cualquier entrada de ARP agregada por el
+comando arp en tiempo de ejecución como el anterior no
+permanece de manera persistente entre los reinicios.
+Para agregar una entrada ARP estática de forma permanente,
+lo que puede hacer es cargar entradas ARP desde un archivo
+externo automáticamente cuando una interfaz de red está
+activa. Para eso, primero cree un archivo que contenga
+entradas ARP estáticas.
+
+ :::console
+ $ doas nano -w /etc/ethers
+
+Entrada de ejemplo:
+
+ :::bash
+ 00:0c:29:c0:94:bf 10.0.0.2
+ 00:0c:59:44:f0:a0 10.0.0.5
+ . . . .
+
+El comando `arp` le permite cargar cualquier archivo
+externo usando la opción `-f`.
+
+ :::console
+ $ doas arp -f /etc/ethers
+
+Ahora debe configurar el comando anterior para que
+se ejecute automáticamente cuando una interfaz de red
+determinada (por ejemplo, eth0) esté activa.
+Hay formas específicas de distribución para ejecutar
+un comando de inicio para interfaces de red.
+A continuación se muestran ejemplos específicos
+de la distribución.
+
+Aquí supongo que no está utilizando NetworkManager en
+su sistema GNU con Linux. Entonces, si está utilizando
+NetworkManager, primero tendrá que deshabilitarlo.
+
+En Trisquel o Debian, agregue la siguiente entrada
+en `/etc/network/interfaces`:
+
+ :::bash
+ iface wlan0 inet dhcp
+ . . .
+ post-up arp -f /etc/ethers
+
+En CentOS, RHEL o Fedora, escriba el siguiente script ejecutable:
+
+ :::console
+ $ doas nano -w /sbin/ifup-local
+
+Entrada:
+
+ :::bash
+ #!/bin/sh
+ if [[ "$1" == "eth0" ]]
+ then
+ arp -f /etc/ethers
+ else
+ #DO_NOTHING
+ fi
+
+Asignamos persmisos de ejecución:
+
+ :::console
+ $ doas chmod +x /sbin/ifup-local
+
+Tengo algunos dispositivos IP bastante tontos en una subred
+con un servidor Trisquel, y el servidor recibe datos de
+transmisión de cada dispositivo. Me he encontrado con un
+problema en el sentido de que cuando se emite una solicitud
+ARP al dispositivo mientras está transmitiendo datos
+al servidor, la solicitud se ignora, la entrada de caché
+se agota y el servidor deja de recibir la transmisión.
+
+Entonces, para evitar que el servidor envíe solicitudes ARP
+a estos dispositivos por completo, me gustaría agregar
+una entrada ARP estática para cada uno, algo como
+
+ :::console
+ $ doas arp -i eth2 -s ip.of.the.device mac:of:the:device
+
+Pero estas entradas ARP "estáticas" se pierden si la red
+está deshabilitada/habilitada o si se reinicia el servidor.
+
+¿Cuál es el mejor lugar para agregar automáticamente estas
+entradas, preferiblemente en algún lugar que las vuelva a
+agregar cada vez que se abra la interfaz eth2?
+
+Realmente no quiero tener que escribir un script que
+monitoree la salida de arp y vuelva a agregar las
+entradas de caché si faltan.
+
+Edite para agregar cuál fue mi script final:
+
+Escribí este archivo:
+
+ :::console
+ $ doas nano -w /etc/network/if-up.d/add-my-static-arp
+
+Con el contenido:
+
+ :::bash
+ #!/bin/sh
+ arp -i eth0 -s 192.168.0.4 00:50:cc:44:55:55
+ arp -i eth0 -s 192.168.0.5 00:50:cc:44:55:56
+ arp -i eth0 -s 192.168.0.6 00:50:cc:44:55:57
+
+Y luego, obviamente, agregue el permiso para permitir
+que se ejecute:
+
+ :::console
+ $ doas chmod +x /etc/network/if-up.d/add-my-static-arp
+
+Y estas entradas arp se agregarán o volverán a agregar
+manualmente cada vez que se abra cualquier interfaz de red.