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 linkoshow ip interface brief. - Capa de Red (IP): Compruebe la asignación de IP y la conectividad local con
pingeip route. - Capa de Transporte (TCP/UDP): Verifique que los puertos requeridos estén escuchando con
ss -tulnpy analice el paso de paquetes contcpdump. - 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