Estado: Completado

Primera observación de una red doméstica

Primer ejercicio para observar una red doméstica desde Linux, registrar vecinos y separar presencia, inferencia e identidad.

Etiquetas: redes · LAN · inventario · Linux

¿Cuánto podemos saber sobre los dispositivos de una red doméstica utilizando únicamente información básica del sistema y comprobaciones ligeras?

STATUS       COMPLETED
AREA         REDES / LAN
PLATFORM     LINUX
SCOPE        OBSERVACIÓN INICIAL
RESULT       BASELINE

Esta primera práctica no intenta identificar con certeza todos los dispositivos de una red.

El objetivo es más pequeño: obtener una primera fotografía y aprender a distinguir entre presencia, inferencia e identidad.

Los ejemplos utilizados son genéricos. No se publican direcciones IP, MAC, nombres de host, topología ni resultados procedentes de ninguna red privada real.

La pregunta

Queremos comprobar qué información podemos obtener desde un equipo Linux utilizando únicamente herramientas habituales y sin instalar software adicional.

La primera distinción será:

presencia
≠
identidad

y trabajaremos además con cuatro niveles:

observado
inferido
probable
confirmado

Escenario

Podemos imaginar una vivienda con una mezcla habitual de dispositivos:

router
ordenadores
móviles
televisor
varios dispositivos Alexa
bombillas Wi-Fi
cámara
impresora
repetidor

No conocemos de antemano qué dirección utiliza cada uno.

El objetivo es construir una tabla de evidencias, no adivinar todos los nombres.

Requisitos

Esta práctica está pensada para Linux.

Utilizaremos:

ip
ping
getent

No instalaremos software adicional.

Ejecuta estas pruebas únicamente sobre una red propia o sobre una red en la que tengas autorización.

1. Identificar la interfaz

Primero comprobamos las interfaces disponibles:

ip -br addr

Una salida simplificada podría parecerse a:

lo       UNKNOWN  127.0.0.1/8
eth0     UP       192.168.1.25/24

En este ejemplo:

interfaz → eth0
IP       → 192.168.1.25
red      → /24

Todavía no hemos descubierto ningún dispositivo.

Solo sabemos desde dónde estamos observando.

2. Comprobar las rutas

Consultamos la tabla de rutas:

ip route

Ejemplo:

default via 192.168.1.1 dev eth0
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.25

Podemos extraer:

red local → 192.168.1.0/24
gateway   → 192.168.1.1

El gateway suele corresponder al router principal, aunque seguiremos considerando esa identidad como una inferencia mientras no exista una comprobación independiente.

3. Consultar los vecinos conocidos

Linux mantiene una tabla de vecinos aprendidos mediante ARP en IPv4 y NDP en IPv6.

ip neigh

Ejemplo:

192.168.1.1 dev eth0 lladdr 00:11:22:33:44:55 REACHABLE
192.168.1.34 dev eth0 lladdr aa:bb:cc:dd:ee:ff STALE

Ya tenemos una relación entre:

IP
+
MAC

pero todavía no:

IP
→ dispositivo concreto

Estados como:

REACHABLE
STALE
DELAY
PROBE
FAILED

describen el estado de la entrada de vecino. No constituyen un inventario completo de la red.

4. Realizar una comprobación ICMP ligera

La tabla de vecinos solo contiene equipos con los que nuestro sistema ha interactuado.

Si nuestra red de ejemplo fuese:

192.168.1.0/24

podemos enviar un único ICMP a cada dirección:

for i in $(seq 1 254); do
  ping -c 1 -W 1 "192.168.1.$i" >/dev/null 2>&1 &&
    echo "responde: 192.168.1.$i"
done

Hay que sustituir 192.168.1 por el prefijo correspondiente a nuestra propia red.

El comando:

envía un único ping
→ espera como máximo un segundo
→ muestra las direcciones que responden

No realiza un escaneo de puertos.

Una respuesta demuestra únicamente que ese host respondió a ICMP en ese momento.

Una ausencia de respuesta no demuestra necesariamente que no exista.

Puede estar:

dormido
temporalmente desconectado
ignorando ICMP
utilizando otra dirección

5. Volver a consultar vecinos

Después repetimos:

ip neigh

o, para una interfaz concreta:

ip neigh show dev eth0

Sustituimos eth0 por nuestra interfaz real.

Es posible que ahora existan más entradas que al principio.

6. Intentar resolver nombres

Para una dirección concreta podemos probar:

getent hosts 192.168.1.34

Si existe información disponible podría aparecer:

192.168.1.34 dispositivo.local

También puede no devolver nada.

Eso no representa un fallo: simplemente esa fuente no dispone de un nombre.

Incluso cuando aparece un nombre, debe registrarse como evidencia y no automáticamente como identidad definitiva.

7. Construir la tabla

Ahora podemos empezar a registrar lo observado.

Por ejemplo:

IP MAC Nombre Evidencia Identidad Confianza
192.168.1.1 xx:xx:xx:xx:xx:xx — ruta por defecto posible router media
192.168.1.34 xx:xx:xx:xx:xx:xx device.local ARP + ICMP + nombre desconocida media
192.168.1.57 xx:xx:xx:xx:xx:xx — ARP desconocida baja

No es obligatorio rellenar la identidad.

desconocida

es un resultado perfectamente válido.

8. Utilizar la MAC como una pista más

Los primeros bytes de una dirección MAC pueden asociarse normalmente con una organización o fabricante mediante una base OUI.

En esta primera práctica no añadiremos otra dependencia para resolverlo automáticamente.

Podemos realizar una consulta manual en una base OUI fiable y registrar el resultado como:

fabricante sugerido

no como:

dispositivo identificado

Porque:

fabricante
≠
modelo

fabricante
≠
función

fabricante
≠
equipo concreto

Si encontramos varias direcciones asociadas a Amazon, por ejemplo, todavía no sabemos automáticamente si corresponden a un Echo, un Fire TV, un Kindle u otro producto.

9. Clasificar la evidencia

Usaremos cuatro estados.

Observado

Existe evidencia directa de presencia.

Por ejemplo:

entrada ARP
respuesta ICMP

Inferido

Una evidencia permite formular una hipótesis.

Por ejemplo:

gateway
→ posible router

Probable

Varias evidencias independientes apuntan a la misma explicación.

Por ejemplo:

fabricante
+
nombre
+
comportamiento
→ posible tipo de dispositivo

Confirmado

Existe una comprobación suficientemente independiente para asociar el dispositivo con su identidad real.

La regla será:

si seguimos teniendo dudas
→ no ascendemos el estado

Qué no hacemos en esta práctica

Quedan deliberadamente fuera:

escaneo de puertos
nmap
captura de tráfico
autenticación contra dispositivos
fingerprinting de servicios
SNMP
mDNS específico
UPnP
consultas al router
automatización de vigilancia

No porque sean técnicas incorrectas.

Simplemente responden a preguntas posteriores y queremos saber primero cuánto podemos aprender con la capa más básica.

Resultado

El resultado final no tiene que ser una lista perfecta.

Algo como esto sería completamente válido:

router                    → probable
dispositivo Amazon        → fabricante observado
posible dispositivo IoT   → inferido
dispositivo desconocido   → observado

Un inventario que conserva incertidumbre es más útil que uno que inventa precisión.

Límites

Esta primera fotografía todavía deja sin resolver cuestiones importantes:

DHCP
MAC privadas
dispositivos dormidos
IPv6
nombres ambiguos
fabricantes compartidos
equipos que no responden a ICMP
cambios de dirección

Por tanto, el resultado debe considerarse una baseline.

No un inventario definitivo.

Conclusión

Esta práctica demuestra algo sencillo pero importante:

observar un dispositivo
≠
identificarlo

Con herramientas básicas podemos obtener una primera imagen útil de la red y empezar a registrar evidencia.

Lo importante es no convertir cada pista en una certeza.

Las siguientes prácticas podrán añadir nuevas capas y comprobar cuánto mejora realmente cada una la calidad del inventario.