sábado, 12 de septiembre de 2026

Navaja Suiza del SysAdmin: Cheat-Sheet de Diagnóstico de Redes en Linux y Cisco


Introducción al Diagnóstico de Redes

En el trabajo diario de un Administrador de Sistemas Linux y Redes, el diagnóstico rápido y certero es la diferencia entre un incidente resuelto en minutos o una caída prolongada del servicio. Esta guía consolidada reúne los comandos indispensables para evaluar conectividad, trazar rutas, inspeccionar paquetes, auditar sockets y verificar las tablas de enrutamiento tanto en entornos Linux como en dispositivos Cisco IOS.

1. Verificación de Conectividad Básica e Interrupciones: ping

La herramienta ping utiliza el protocolo ICMP (Internet Control Message Protocol) para probar la alcanzabilidad de un host y medir el tiempo de ida y vuelta (RTT). Aunque parece simple, sus opciones avanzadas permiten diagnosticar problemas de fragmentación, calidad de enlace y pérdidas de paquetes.

En Sistemas Linux:

# Enviar solo 4 paquetes de prueba
ping -c 4 192.168.1.1

# Cambiar el intervalo entre paquetes a 0.2 segundos (flood suave para detectar pérdidas)
ping -i 0.2 10.0.0.254

# Enviar paquetes con un tamaño de carga de 1472 bytes para probar MTU de 1500 (1472 + 28 bytes de cabeceras IP/ICMP)
# La opción -M do prohíbe la fragmentación (Don't Fragment bit)
ping -s 1472 -M do 8.8.8.8

# Definir un tiempo de espera límite (timeout) de 3 segundos por respuesta
ping -W 3 172.16.0.1

En Cisco IOS (CLI):

! Ping básico desde la CLI de Cisco
Router# ping 192.168.1.1

! Ping extendido configurando origen, tamaño y bit DF para pruebas de MTU
Router# ping ip
Target IP address: 10.0.0.1
Repeat count [5]: 100
Datagram size [100]: 1500
Timeout in seconds [2]: 1
Extended commands [n]: y
Source address or interface: GigabitEthernet0/0/0
Set DF bit in IP header? [no]: yes

2. Trazado de Rutas y Calidad de Enlace: traceroute y mtr

Mientras que ping confirma si un destino responde, traceroute y mtr identifican el salto exacto (hop) donde la red falla o sufre latencia alta.

Linux traceroute: Por defecto utiliza paquetes UDP en Linux (a diferencia de Windows que usa ICMP).

# Trazado estándar por resolución de nombres
traceroute google.com

# Forzar el uso de ICMP ECHO en lugar de UDP
traceroute -I 192.168.10.1

# Forzar el uso de TCP SYN hacia un puerto específico (ideal para saltar firewalls que bloquean ICMP/UDP)
traceroute -T -p 443 webserver.empresa.com

# Desactivar la resolución DNS inversa para obtener resultados más rápidos
traceroute -n 10.200.1.1

Linux mtr (My Traceroute): Combina la funcionalidad de ping y traceroute en un análisis estadístico en tiempo real.

# Ejecución interactiva en tiempo real
mtr 8.8.8.8

# Generar un reporte estático de 50 paquetes sin resolución DNS (formato texto para auditorías)
mtr -rw -c 50 -n 1.1.1.1

En Cisco IOS:

! Traceroute desde Cisco IOS hacia un destino
Router# traceroute 172.16.10.50

! Traceroute especificando la interfaz de origen
Router# traceroute ip 10.1.1.1 source GigabitEthernet0/0/1

3. Análisis de Tráfico a Nivel de Paquete: tcpdump

tcpdump es el sniffer de paquetes en línea de comandos por excelencia en sistemas Linux. Permite capturar y analizar el tráfico que atraviesa una interfaz de red en tiempo real.

Opciones principales de invocación:

  • -i [iface]: Especifica la interfaz de red (ej. eth0, any).
  • -n: No resuelve direcciones IP a nombres de host.
  • -nn: Tampoco resuelve nombres de puertos/servicios.
  • -v / -vv / -vvv: Incrementa el nivel de detalle (verbosity).
  • -w [archivo.pcap]: Guarda los paquetes en formato PCAP para analizarlos con Wireshark.
  • -r [archivo.pcap]: Lee paquetes desde un archivo PCAP pregrabado.
  • -A: Muestra el contenido del paquete en texto ASCII (útil para inspeccionar HTTP o texto plano).
  • -X: Muestra el contenido en formato Hexadecimal y ASCII.

Ejemplos de filtros BPF (Berkeley Packet Filters):

# Capturar todo el tráfico en la interfaz eth0 hacia o desde el puerto 80 sin resolver nombres
tcpdump -nn -i eth0 port 80

# Capturar tráfico filtrado por origen y destino específicos
tcpdump -nn -i eth0 src host 192.168.1.50 and dst host 10.0.0.5

# Capturar tráfico de un rango de red (subred) excluyendo el tráfico SSH
tcpdump -nn -i eth0 net 192.168.1.0/24 and not port 22

# Capturar únicamente paquetes con el flag SYN (inicio de handshakes TCP)
tcpdump -nn -i eth0 'tcp[tcpflags] & (tcp-syn) != 0'

# Capturar consultas DNS (puerto 53 UDP) y guardar en un archivo
tcpdump -nn -i any udp port 53 -w capturas_dns.pcap

4. Inspección de Sockets y Puertos: netstat y ss

Para determinar qué procesos están escuchando en qué puertos o cuántas conexiones activas existen, utilizamos netstat o su reemplazo moderno y más eficiente, ss (Socket Statistics).

Comandos esenciales en Linux:

# netstat clásico: Ver puertos TCP/UDP en escucha, con procesos y sin resolución DNS
netstat -tulnp

# ss equivalente moderno (más rápido en sistemas con miles de conexiones)
ss -tulnp

# Contar cuántas conexiones TCP establecidas existen actualmente
ss -t state established | wc -l

# Filtrar sockets TCP conectados hacia un puerto de destino específico (ej. 443)
ss -nt dst :443

# Ver estadísticas globales de los sockets del sistema operativo
ss -s

Desglose de opciones comunes (-tulnp):

  • -t: Muestra sockets TCP.
  • -u: Muestra sockets UDP.
  • -l: Muestra solo sockets en escucha (Listening).
  • -n: Muestra direcciones y puertos numéricamente.
  • -p: Muestra el PID y nombre del programa dueño del socket.

5. Inspección y Configuración de Enrutamiento: ip route y Cisco IOS

El enrutamiento determina el camino que toman los paquetes para salir del host local o del router. En Linux moderno, la suite iproute2 (mediante ip route) reemplaza al antiguo comando route.

En Sistemas Linux (iproute2):

# Mostrar la tabla de enrutamiento IPv4 actual
ip route show

# Simular qué interfaz y gateway usará el kernel para llegar a una IP determinada
ip route get 8.8.8.8

# Agregar una ruta estática hacia una subred a través de una pasarela (gateway)
ip route add 10.50.0.0/16 via 192.168.1.254 dev eth0

# Eliminar una ruta estática existente
ip route del 10.50.0.0/16

# Cambiar la puerta de enlace por defecto (Default Gateway)
ip route add default via 192.168.1.1 dev eth0

En Cisco IOS (CLI):

! Mostrar la tabla de enrutamiento IPv4 completa
Router# show ip route

! Mostrar únicamente las rutas aprendidas por BGP, OSPF o conectadas directamente
Router# show ip route bgp
Router# show ip route ospf
Router# show ip route connected

! Inspeccionar cómo el router llegará a una IP específica
Router# show ip route 10.100.20.5

! Ver resumen de estado de las interfaces
Router# show ip interface brief | exclude unassigned

6. Metodología de Diagnóstico Escalonado (Troubleshooting)

Para abordar un incidente de red de forma estructurada, siga siempre el modelo OSI de abajo hacia arriba:

  • Capa Física / Enlace: Verifique el enlace de la interfaz con ip link o show ip interface brief.
  • Capa de Red (IP): Compruebe la asignación de IP y la conectividad local con ping e ip route.
  • Capa de Transporte (TCP/UDP): Verifique que los puertos requeridos estén escuchando con ss -tulnp y analice el paso de paquetes con tcpdump.
  • Capa de Aplicación: Valide las respuestas finales de los servicios HTTP, DNS o SSH una vez confirmadas las capas inferiores.

No hay comentarios.:

Publicar un comentario