root@blog:~# Pavel Butzmann

// Ciberseguridad, historia de IT, Redes Cisco & Automatización, python, linux and more

domingo, 4 de octubre de 2026

Manual Técnico Avanzado de Diagnóstico de Redes: Cheat-Sheet de Infraestructura para Linux y Cisco

En la administración moderna de infraestructuras críticas, el diagnóstico de redes exige una comprensión profunda tanto del plano de datos como del plano de control del modelo OSI. Los problemas de conectividad, latencia y pérdida de paquetes rara vez son superficiales; con frecuencia implican comportamientos específicos del kernel, colas de sockets saturadas, caídas por MTU o políticas de priorización en routers intermedios. Esta guía consolida el funcionamiento interno, comandos precisos y métodos de interpretación de las herramientas de diagnóstico más relevantes en entornos Linux y Cisco.

ping

La herramienta ping opera directamente sobre la capa de red implementando el protocolo ICMP (Internet Control Message Protocol), definido en el RFC 792 para IPv4 y RFC 4443 para IPv6. A nivel del kernel, el binario construye un paquete IP crudo (usando sockets SOCK_RAW o sockets de datagramas ICMP sin privilegios según la configuración de net.ipv4.ping_group_range) y encapsula una cabecera ICMP de tipo 8 (Echo Request) con un código 0. Dentro de la carga útil del paquete se inserta una marca de tiempo generada por el emisor y un identificador único con números de secuencia incrementales para mapear unívocamente cada solicitud enviada con su posterior respuesta.

Cuando el host de destino o una interfaz de red Cisco recibe este paquete, el subsistema IP examina la suma de verificación (checksum) y la cabecera. Si es válido, el kernel responde inmediatamente generando un mensaje ICMP de tipo 0 (Echo Reply) con el mismo identificador y número de secuencia. Al recibir el eco de vuelta, el sistema emisor extrae la marca de tiempo original y la compara con el reloj del sistema actual, calculando el Round Trip Time (RTT). Si el paquete atraviesa routers intermediarios cuyo valor de Time to Live (TTL) llega a cero antes de alcanzar el objetivo, el router descarta el paquete y devuelve un mensaje ICMP Tipo 11 (Time Exceeded), lo que permite a ping detectar anomalías en la topología.

# En Linux: Enviar 5 paquetes rápidos sin resolución DNS forzando el bit DF para descubrir MTU
ping -c 5 -i 0.2 -n -M do -s 1472 192.168.10.1

# En Cisco IOS: Prueba de saturación con tamaño variable y bit Do Not Fragment activado
ping ip 10.0.0.1 repeat 1000 size 1500 df-bit timeout 1
  • -c 5 (Linux): Determina la cantidad total de paquetes ICMP Echo Request que se enviarán antes de finalizar el proceso automáticamente.
  • -i 0.2 (Linux): Intervalo en segundos de espera entre cada envío; valores inferiores a 0.2 suelen requerir privilegios de superusuario.
  • -n (Linux): Inhibe la resolución inversa de nombres DNS, reduciendo latencias innecesarias y evitando demoras causadas por servidores DNS caídos.
  • -M do (Linux): Configura la bandera "Do Not Fragment" (DF) en la cabecera IP para forzar al paquete a no dividirse; si el tamaño excede la MTU del trayecto, el paquete será descartado devolviendo un error ICMP Tipo 3 Código 4.
  • -s 1472 (Linux): Especifica el tamaño en bytes del payload ICMP (1472 bytes de datos + 8 bytes de cabecera ICMP + 20 bytes de cabecera IPv4 = 1500 bytes totales de trama MTU estándar).
  • repeat 1000 (Cisco): Ejecuta un tren continuo de 1000 pings consecutivos para medir degradación y pérdida intermitente.
  • size 1500 (Cisco): Establece la longitud total del paquete IP en bytes.
  • df-bit (Cisco): Habilita el bit DF en la cabecera del datagrama para auditar el Maximum Transmission Unit (MTU) de la ruta.
  • timeout 1 (Cisco): Define el tiempo máximo de espera por cada Echo Reply en segundos antes de considerarlo una caída.

Para interpretar los resultados en Linux, observe la línea de resumen final: un mdev (desviación media) alto indica variaciones pronunciadas de latencia (jitter), típicamente causado por congestión de buffer (bufferbloat) o colas QoS en el trayecto. En Cisco, una secuencia de signos de exclamación (!) indica éxito, puntos (.) indican expiración de timeout por descarte de tráfico o bloqueo por ACL, y la letra U señala que se recibió un mensaje ICMP de red o puerto inalcanzable (Unreachable).

traceroute

El comando traceroute deduce la topología de capa 3 salto por salto explotando intencionalmente el campo TTL (Time to Live) en la cabecera IPv4 (o Hop Limit en IPv6). Cada router que conmuta un paquete a nivel de red decrementa este contador en 1. Cuando un router recibe un paquete con un TTL de 1 y necesita enrutarlo hacia el siguiente salto, decrementa el valor a 0, descarta el datagrama y despacha de vuelta hacia la dirección origen un mensaje ICMP Tipo 11, Código 0 (Time-to-Live Exceeded in Transit). La dirección IP de origen de este mensaje ICMP revela la interfaz entrante del router intermedio.

Por defecto, la implementación clásica de Linux traceroute no usa ICMP Echo Request, sino datagramas UDP dirigidos a un rango de puertos efímeros altos poco probables (33434 a 33534). Con cada ráfaga de sondas, el comando incrementa el puerto destino y el valor TTL. Cuando la sonda finalmente alcanza el host de destino con un TTL válido, el host final intenta entregar el datagrama al puerto UDP especificado; al no encontrar ningún proceso a la escucha, su pila TCP/IP devuelve un mensaje ICMP Tipo 3, Código 3 (Destination Unreachable: Port Unreachable), señalando el término de la traza. Cisco IOS implementa un mecanismo análogo basado en UDP por omisión, mientras que las redes protegidas por cortafuegos frecuentemente requieren el uso forzado de sondas ICMP o TCP SYN para atravesar inspecciones de estado.

# En Linux: Traza usando paquetes TCP SYN al puerto 443 evitando resolución de nombres
traceroute -n -T -p 443 -q 3 -w 2 1.1.1.1

# En Cisco IOS: Traza extendida especificando interfaz de origen y timeout estricto
traceroute 172.16.1.1 source GigabitEthernet0/1 probe 2 ttl 1 20
  • -n (Linux): Desactiva la resolución inversa de DNS para imprimir estrictamente las direcciones IP de cada salto, acelerando la prueba.
  • -T (Linux): Fuerza el uso de sondas TCP SYN en lugar de datagramas UDP, ideal para atravesar firewalls perimetrales que filtran tráfico UDP saliente.
  • -p 443 (Linux): Define el puerto de destino específico para las sondas (en este caso el puerto estándar de HTTPS).
  • -q 3 (Linux): Envía exactamente 3 paquetes de sondeo por cada salto de TTL para obtener métricas comparativas de latencia.
  • -w 2 (Linux): Ajusta el tiempo máximo de espera por respuesta a 2 segundos antes de marcar el intento como fallido.
  • source GigabitEthernet0/1 (Cisco): Establece la dirección IP asignada a una interfaz específica como la IP de origen en la cabecera IP de la sonda.
  • probe 2 (Cisco): Reduce el número de sondas por salto a dos (el valor predeterminado es 3).
  • ttl 1 20 (Cisco): Fija el rango de exploración iniciando con un TTL mínimo de 1 hasta un TTL máximo de 20 saltos.

La aparición de asteriscos (* * *) en un salto específico no siempre implica una caída del enlace; en la gran mayoría de las arquitecturas de core corresponde a routers con políticas de Control Plane Policing (CoPP) o ICMP rate-limiting configuradas para ignorar la generación de paquetes ICMP Tipo 11 sin afectar el tráfico de datos en tránsito. Si los asteriscos continúan desde un salto específico hasta el final, el tráfico está siendo bloqueado por una lista de control de acceso (ACL) o una regla de filtrado de estado.

tcpdump

tcpdump es un analizador de paquetes de línea de comandos que opera interactuando con la biblioteca libpcap y la infraestructura de sockets de red AF_PACKET del kernel de Linux. Al activarse, tcpdump instruye al controlador de interfaz de red (NIC) para ingresar en modo promiscuo si es requerido, permitiendo que la interfaz capture todas las tramas que circulan por el segmento físico local, incluso aquellas cuya dirección MAC de destino no coincide con la del host local. Las tramas capturadas se copian directamente desde la memoria del anillo de recepción del driver (RX ring buffer) hacia el espacio de usuario.

Para evitar la saturación de la CPU procesando volúmenes masivos de datos innecesarios, tcpdump utiliza el motor BPF (Berkeley Packet Filter) dentro del kernel. Las expresiones de filtrado pasadas por la línea de comandos son compiladas en instrucciones de un bytecode elemental que se ejecuta en el espacio del kernel; de esta manera, solo los paquetes que satisfacen la condición lógica son copiados a la aplicación en el espacio de usuario, minimizando cambios de contexto y descarte de paquetes por desbordamiento de búfer.

# Capturar tráfico HTTPS en interfaz eth0, sin truncar, omitiendo DNS y puertos
tcpdump -nn -i eth0 -s 0 -vv -c 50 'tcp and port 443 and (tcp[tcpflags] & (tcp-syn|tcp-fin) != 0)'

# Captura de paquetes ICMP excluyendo la IP de administración local
tcpdump -nn -i any icmp and not host 192.168.1.50 -w captura_problema.pcap
  • -n: Evita la resolución de direcciones IP a nombres de host.
  • -nn: Evita tanto la resolución de direcciones IP a nombres como la conversión de números de puerto a nombres de servicio de transporte (ej. muestra 443 en vez de https).
  • -i eth0 / any: Especifica la interfaz lógica o física de escucha; la palabra clave any captura en todas las interfaces activas simultáneamente a través de un pseudo-dispositivo.
  • -s 0: Ajusta el snaplen (longitud de captura) al tamaño total del paquete (equivalente a 65535 bytes), garantizando que las cargas útiles no queden truncadas.
  • -vv: Habilita el modo de salida muy detallado, analizando cabeceras IP, campos TTL, identificadores de fragmentación y opciones TCP.
  • -c 50: Detiene la ejecución automáticamente después de capturar exactamente 50 paquetes que coincidan con el filtro BPF.
  • -w archivo.pcap: Escribe los paquetes crudos capturados directamente en un archivo binario compatible con Wireshark en lugar de imprimirlos en pantalla.

Al analizar la salida, preste atención a las banderas de control TCP representadas entre corchetes: [S] para paquetes de sincronización (SYN), [.] para acuses de recibo (ACK), [P] para Push (envío inmediato de datos), y [F] para finalización limpia de conexión (FIN). Una abundancia de banderas [R] (RST) indica que las conexiones están siendo reseteadas abruptamente, lo que apunta a un puerto cerrado, caídas por un cortafuegos con inspección de estado o desincronización en la máquina de estados de TCP.

netstat

La suite tradicional netstat (y su contraparte moderna de alto rendimiento ss) proporciona visibilidad del subsistema de transporte TCP/IP inspeccionando las tablas internas de sockets del kernel. Históricamente, netstat obtenía esta información analizando archivos pseudo-jerárquicos en el sistema de archivos virtual, fundamentalmente /proc/net/tcp, /proc/net/udp y /proc/net/raw. Estas interfaces exponen las estructuras de datos del kernel struct sock y struct inet_sock, revelando el estado de las conexiones, los puertos de enlace local y remoto, y las colas de transmisión y recepción asignadas.

Dado que la lectura y conversión del formato de texto en /proc introduce un cuello de botella severo cuando existen decenas de miles de conexiones abiertas simultáneamente, se suele recurrir a ss, el cual utiliza la interfaz Netlink del kernel (mediante la familia NETLINK_INET_DIAG). Esto permite volcar la información de los sockets en estructuras binarias directamente desde el núcleo a la memoria de usuario, permitiendo medir de forma no intrusiva el estado de los búferes TCP (Send-Q y Recv-Q) y los temporizadores del protocolo.

# Verificación de sockets a la escucha con procesos asociados y sin resolución
netstat -tulpen

# Alternativa moderna mediante 'ss' con temporizadores y sockets en memoria
ss -tulpn -o state established '( dport = :https or sport = :https )'
  • -t: Filtra y muestra exclusivamente sockets asociados al protocolo orientado a conexión TCP.
  • -u: Incluye en la visualización sockets del protocolo de datagramas UDP.
  • -l: Muestra únicamente los sockets que se encuentran en estado de escucha pasiva (LISTEN), omitiendo conexiones establecidas.
  • -p: Muestra el identificador de proceso (PID) y el nombre del programa propietario de la estructura del socket (requiere privilegios de root).
  • -e: Muestra información extendida, incluyendo el identificador de usuario (UID) dueño del socket y el número de inodo en el kernel.
  • -n: Muestra direcciones IP y números de puerto numéricamente, evitando bloqueos por resolución DNS o búsquedas en /etc/services.
  • -o (ss): Muestra información de temporizadores internos de red, tales como el tiempo restante de keepalive o retransmisión TCP.
  • state established (ss): Expresión de filtrado que selecciona únicamente sockets en el estado de conexión ESTABLISHED.

La interpretación de las columnas Recv-Q y Send-Q es crítica durante caídas de servicio: para un socket en estado LISTEN, Recv-Q indica la cantidad de conexiones que ya completaron el handshake de tres vías pero que aún no han sido aceptadas por la aplicación mediante la llamada al sistema accept(). Un valor de Recv-Q consistentemente alto en un servidor web indica que el proceso de la aplicación está bloqueado o saturado. Para sockets en estado ESTABLISHED, un número alto en Send-Q denota que los datos están retenidos en el búfer de salida del kernel debido a congestión en la red o a que el receptor ha cerrado su ventana TCP (Window Size = 0).

mtr

mtr (My Traceroute) unifica el análisis de salto por salto de traceroute con la capacidad de muestreo continuo y estadístico de ping. Internamente, la herramienta ejecuta un bucle de eventos asíncrono que despacha ráfagas sucesivas de paquetes con TTLs progresivos hacia todos los nodos de la ruta identificada. A diferencia de un traceroute estándar que analiza la traza una única vez de manera secuencial, mtr sondea constantemente cada salto de manera concurrente para generar una muestra estadística válida a lo largo del tiempo.

A nivel de socket, mtr puede generar sondas ICMP Echo Request, paquetes UDP o paquetes TCP SYN. Mediante el seguimiento continuo de cada paquete emitido y de sus respectivas respuestas ICMP Time Exceeded o TCP ACK/RST, el motor recalcula en tiempo real el porcentaje de pérdida de paquetes, las latencias mínimas, medias y máximas, así como el jitter (desviación estándar de los tiempos de respuesta) específico para cada segmento del trayecto de capa 3.

# Ejecución en modo reporte sin DNS enviando 100 ciclos de sondeo TCP al puerto 80
mtr -n -r -c 100 --tcp -P 80 8.8.8.8

# Modo reporte ampliado con tamaño de paquete personalizado para detección de MTU
mtr -n -w -s 1400 -c 50 10.10.10.254
  • -n: Fuerza al programa a mostrar únicamente las direcciones IP numéricas, sin ejecutar resoluciones DNS inversas por cada nodo.
  • -r (o --report): Activa el modo no interactivo; mtr recopila los datos de los ciclos especificados y genera un reporte en texto plano formateado por la salida estándar.
  • -c 100: Determina el número exacto de ciclos de sondeo completos que se ejecutarán antes de emitir el reporte final.
  • --tcp: Modifica el mecanismo de sondeo de ICMP tradicional a sondas de transporte TCP SYN, evadiendo filtros de borde que penalizan ICMP.
  • -P 80: Define el puerto TCP de destino para las sondas emitidas mediante el motor TCP.
  • -w (o --report-wide): Impide que los nombres de host o IPs se trunquen en la salida del reporte, imprimiendo cada salto en una línea limpia sin cortes visuales.
  • -s 1400: Ajusta el tamaño de la carga útil del paquete en bytes para simular tráfico real con tramas de longitud media.

Para diagnosticar problemas mediante mtr, la métrica cardinal es la columna Loss% combinada con la progresión entre saltos. Si un salto intermedio presenta un 40% de pérdida de paquetes pero el salto subsiguiente y el destino final presentan un 0% de pérdida, la aparente degradación es ficticia: el router intermedio está limitando la tasa de procesamiento de paquetes ICMP generados por su CPU de control, pero conmuta el tráfico en tránsito en hardware sin descartar paquetes. Por el contrario, si la pérdida de paquetes inicia en un salto intermedio específico y esa misma pérdida (o una mayor) persiste linealmente hasta el destino final, se ha identificado con precisión el enlace físico saturado o el nodo defectuoso.

ip route

La herramienta ip route es el componente de gestión de capa 3 del paquete iproute2 en Linux, el cual sustituyó por completo a la interfaz obsoleta route. A nivel de arquitectura del kernel, se comunica de forma bidireccional mediante sockets de la familia NETLINK_ROUTE, interactuando directamente con las tablas del subsistema FIB (Forwarding Information Base). El kernel de Linux no posee una única tabla de enrutamiento; soporta hasta 255 tablas independientes controladas mediante políticas de enrutamiento basado en reglas (Policy-Based Routing o PBR).

De forma similar a la Base de Información de Enrutamiento (RIB) en sistemas Cisco IOS, el kernel procesa la decisión de reenvío evaluando el algoritmo de coincidencia de prefijo más largo (Longest Prefix Match - LPM). Al recibir o emitir un paquete, se revisa la máscara de subred más restrictiva aplicable. Si existen múltiples rutas válidas con la misma longitud de prefijo hacia un mismo destino, el kernel pondera el valor administrativo de la métrica (metric) para determinar la interfaz y el siguiente salto de salida. En Cisco, este proceso se gestiona mediante la Distancia Administrativa (AD) combinada con el costo de la métrica del protocolo de enrutamiento activo (como OSPF o BGP).

# En Linux: Consultar la tabla de enrutamiento principal con métricas explícitas
ip route show table main

# En Linux: Simular la decisión de reenvío que tomará el kernel para un paquete
ip route get 192.168.50.10 from 10.0.0.5 iif eth1

# En Cisco IOS: Inspeccionar la RIB buscando rutas de subred específicas
show ip route 192.168.50.0 255.255.255.0 longer-prefixes

# En Cisco IOS: Verificar el próximo salto específico hacia una dirección IP externa
show ip route 8.8.8.8
  • show (Linux): Ordena al subsistema volcar el contenido actual de las entradas de enrutamiento almacenadas en la base de datos de reenvío (FIB).
  • table main (Linux): Especifica explícitamente la tabla de enrutamiento por defecto del sistema (ID 254), aislando la consulta de tablas de enlace local o tablas VRF personalizadas.
  • get (Linux): Realiza una búsqueda simulada de resolución de ruta en el kernel, resolviendo la interfaz de salida, la IP origen que se seleccionará por omisión y la dirección del gateway según las políticas actuales.
  • from 10.0.0.5 (Linux): Simula el origen de la dirección IP emisora dentro del comando ip route get para probar reglas de enrutamiento de origen (source routing).
  • iif eth1 (Linux): Informa al kernel que el paquete simulado ingresa al sistema a través de la interfaz física eth1 (Input Interface).
  • longer-prefixes (Cisco): Filtra la tabla de enrutamiento global mostrando únicamente aquellas redes que posean una longitud de máscara igual o más específica que la subred provista.

Al analizar la salida de ip route show en Linux, una entrada estructurada como default via 192.168.1.1 dev eth0 proto dhcp metric 100 indica que el gateway predeterminado es alcanzable mediante la interfaz eth0, asignado por un cliente DHCP dinámico, y posee una métrica de 100. En Cisco IOS, la sintaxis O 10.20.0.0/24 [110/2] via 172.16.0.2, 00:14:22, GigabitEthernet0/0 documenta que la ruta fue aprendida mediante OSPF (código O), con una Distancia Administrativa de 110 y una métrica de costo de 2, transmitiéndose hacia el siguiente salto 172.16.0.2 a través del puerto GigabitEthernet0/0. Si la resolución muestra valores de métrica inesperadamente altos o interfaces de salida incorrectas, existirá asimetría en el tráfico o caída de paquetes debido a filtros de ruta inversa (rp_filter) en el kernel.

sábado, 3 de octubre de 2026

Steve Jobs: El visionario que revolucionó el mundo

Los primeros años

Steve Jobs nació el 24 de febrero de 1955 en San Francisco, California. Fue adoptado por Paul y Clara Jobs, quienes criaron a Steve en el Valle de Santa Clara, zona que más tarde se convertiría en Silicon Valley. Desde muy joven mostró un profundo interés por la electrónica y el diseño.

El momento que lo cambió todo

En 1976, Jobs y su amigo Steve Wozniak fundaron Apple Computer en el garaje de la familia Jobs. La primera computadora, el Apple I, llamó la atención de aficionados, pero fue el Apple II, lanzado en 1977, el que se convirtió en un gran éxito comercial y en una de las primeras computadoras personales producidas en masa.

Salida de Apple y regreso triunfal

En 1985, tras tensiones internas con el CEO John Sculley y la junta directiva, Jobs dejó Apple. Durante su tiempo fuera, fundó NeXT Computer y adquirió la división de animación que más tarde se convertiría en Pixar. En 1997, Apple adquirió NeXT y Jobs regresó como CEO, liderando una de las mayores reestructuraciones corporativas de la historia con el lanzamiento del iMac, iPod, iPhone e iPad.

Desafíos de salud

En 2003, Jobs fue diagnosticado con una variante rara de cáncer de páncreas. A pesar de sus problemas de salud y de someterse a un trasplante de hígado en 2009, continuó al frente de Apple presentando innovaciones clave hasta pocos meses antes de su fallecimiento.

Frases emblemáticas

"Tu tiempo es limitado, de modo que no lo malgastes viviendo la vida de alguien distinto."
"Permanece hambriento, permanece alocado." (Stay hungry, stay foolish)
"La innovación es lo que distingue a un líder de un seguidor."

Legado

Steve Jobs falleció el 5 de octubre de 2011. Su visión de la convergencia entre la tecnología, el diseño y las artes humanidades transformó múltiples industrias y cambió la forma en que el mundo consume información y se comunica.

Diagnóstico de Redes; comparativa Linux y Cisco

En el trabajo diario de un Administrador de Sistemas y Redes, la velocidad y precisión al aislar un fallo de infraestructura determinan la diferencia entre una interrupción menor y un incidente crítico de producción. Un entorno híbrido requiere dominar tanto las utilidades del espacio de usuario en Linux como la interfaz de línea de comandos (CLI) de Cisco IOS. Esta hoja de referencia rápida (cheat-sheet) reúne las herramientas indispensables para diagnosticar capas 3, 4 y 7 del modelo OSI, ofreciendo comparativas directas y comandos listos para producción.

1. Diagnóstico de Conectividad ICMP: Ping

La herramienta ping es el primer punto de contacto para verificar la alcanzabilidad de un nodo y medir la latencia de ida y vuelta (RTT). En Linux y Cisco, su comportamiento predeterminado difiere notablemente en términos de conteo de paquetes y opciones de origen.

Comandos esenciales en Linux:

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

# Enviar paquetes con un intervalo de 0.2 segundos (requiere sudo para < 0.2s)
sudo ping -i 0.2 10.0.0.254

# Probar la MTU de la red evitando la fragmentación (DF-bit) con tamaño de carga de 1472 bytes (1472 + 28 bytes de cabeceras = 1500)
ping -s 1472 -M do 172.16.0.1

# Forzar el envío desde una interfaz específica o IP origen
ping -I eth0 8.8.8.8
ping -I 192.168.10.50 8.8.8.8

Comandos equivalentes en Cisco IOS:

! Ping extendido básico especificando origen y conteo
ping 8.8.8.8 source GigabitEthernet0/0 repeat 10 timeout 1

! Verificación de MTU sin fragmentación
ping 172.16.0.1 size 1500 df-bit

! Ping masivo para pruebas de estrés
ping 10.0.0.254 repeat 1000 size 1000 timeout 0

2. Identificación de Rutas y Saltos: Traceroute

Mientras que Linux utiliza UDP por defecto para traceroute, Cisco utiliza paquetes ICMP Probe. Es vital entender esta diferencia cuando existen cortafuegos intermedios filtrando tráfico UDP o ICMP.

Comandos esenciales en Linux:

# Trazado estándar omitiendo la resolución DNS inversa (más rápido)
traceroute -n 1.1.1.1

# Utilizar solicitudes ICMP Echo en lugar de paquetes UDP
traceroute -I 8.8.8.8

# Utilizar paquetes TCP SYN hacia un puerto específico (ideal para saltar firewalls)
traceroute -T -p 443 webserver.com

# Especificar la interfaz de salida y el TTL máximo
traceroute -i eth1 -m 15 10.20.0.1

Comandos equivalentes en Cisco IOS:

! Traceroute extendido especificando interfaz de origen
traceroute 1.1.1.1 source Loopback0 numeric

! Ajustar el tiempo de espera y el límite de saltos (TTL)
traceroute 10.20.0.1 ttl 1 15 timeout 1

3. Diagnóstico Continuo e Híbrido: MTR (My TraceRoute)

mtr combina la funcionalidad de ping y traceroute en una única herramienta dinámica. Proporciona estadísticas en tiempo real sobre la pérdida de paquetes y la latencia en cada salto del camino.

Comandos esenciales en Linux:

# Modo interactivo mostrando direcciones IP numéricas
mtr -n 8.8.8.8

# Generar un informe estático de 50 paquetes por salto para adjuntar a un ticket
mtr --report --report-cycles=50 -n 192.168.1.100 > informe_red.txt

# Utilizar paquetes TCP SYN en el puerto 80 con MTR
mtr --tcp -P 80 -n app.dominio.com

Nota sobre Cisco: Cisco IOS no cuenta con un equivalente directo interactivo a MTR. El diagnóstico equivalente se realiza ejecutando ping con un número elevado de repeticiones o mediante la herramienta ip SLA.

4. Inspección y Modificación de Enrutamiento: IP Route

El análisis de las tablas de enrutamiento permite determinar por qué interfaz o siguiente salto (next-hop) saldrá el tráfico antes de enviarlo.

Comandos esenciales en Linux (Suite iproute2):

# Mostrar la tabla de enrutamiento IPv4 principal
ip route show

# Simular qué ruta tomará un paquete hacia un destino específico (excelente para depuración)
ip route get 8.8.8.8

# Añadir una ruta estática hacia una subred a través de una pasarela
sudo ip route add 10.50.0.0/16 via 192.168.1.254 dev eth0

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

Comandos equivalentes en Cisco IOS:

! Mostrar la tabla de enrutamiento IP completa
show ip route

! Consultar la ruta específica hacia una IP de destino
show ip route 8.8.8.8

! Verificar la tabla de conmutación exprés (CEF) para validar el siguiente salto real
show ip cef 8.8.8.8

! Configurar una ruta estática
ip route 10.50.0.0 255.255.0.0 192.168.1.254

5. Estado de Sockets y Puertos: Netstat y SS

Para determinar qué servicios están escuchando en un servidor y verificar las conexiones activas, ss ha reemplazado al antiguo netstat en Linux debido a su mayor velocidad y menor consumo de recursos.

Comandos esenciales en Linux:

# Listar todos los puertos en escucha (TCP/UDP) con el proceso asociado y sin resolución de nombres
ss -tulpn

# Ver todas las conexiones TCP establecidas activas
ss -g -t state established

# Resumen estadístico de las conexiones del sistema
ss -s

# Comando equivalente clásico con netstat
netstat -tulnp

Comandos equivalentes en Cisco IOS:

! Mostrar puertos abiertos en el plano de control del router
show control-plane host open-ports

! Ver el estado de las conexiones de sockets IP locales en el equipo
show ip sockets

! Mostrar conexiones TCP activas iniciadas hacia o desde el router
show tcp brief

6. Captura Profunda de Tráfico: Tcpdump y Cisco EPC

Cuando el diagnóstico por capas superiores falla, el análisis de tramas mediante la captura de paquetes es la solución definitiva.

Comandos esenciales en Linux (tcpdump):

# Capturar tráfico en una interfaz sin resolver DNS ni nombres de puerto
sudo tcpdump -i eth0 -nn

# Filtrar por IP origen/destino y puerto específico (ej. tráfico HTTP/HTTPS)
sudo tcpdump -i eth0 -nn host 192.168.1.50 and \( port 80 or port 443 \)

# Capturar únicamente paquetes ICMP
sudo tcpdump -i any -nn icmp

# Guardar la captura en formato PCAP para analizar posteriormente con Wireshark
sudo tcpdump -i eth0 -w captura_incidencia.pcap -s 0 port 53

Comandos equivalentes en Cisco IOS (Embedded Packet Capture - EPC):

! 1. Definir el buffer de captura en memoria
monitor capture MI_CAPTURA buffer size 10

! 2. Definir los puntos de captura (interfaz y dirección)
monitor capture MI_CAPTURA interface GigabitEthernet0/1 both

! 3. Asignar un filtro de tráfico mediante una Lista de Control de Acceso (ACL)
monitor capture MI_CAPTURA access-list ACL_FILTRO_CAPTURA

! 4. Iniciar y detener la captura
monitor capture MI_CAPTURA start
monitor capture MI_CAPTURA stop

! 5. Exportar el archivo PCAP a un servidor TFTP/FTP para Wireshark
monitor capture MI_CAPTURA export tftp://192.168.1.100/cisco_capture.pcap

7. Metodología de Flujo de Trabajo en Diagnóstico

Un administrador de sistemas eficiente aplica un enfoque metódico para resolver problemas de red:

  • Paso 1 (Capa Física y Enlace): Verificar el estado de la interfaz con ip link en Linux o show interfaces status en Cisco. Buscar errores de CRC o drops.
  • Paso 2 (Capa de Red): Validar direccionamiento IP, máscara de subred y respuesta del gateway local mediante ping y ip route get.
  • Paso 3 (Trazado y Ruta de Tránsito): Localizar puntos de caída o latencia anormal entre el origen y el destino utilizando mtr o traceroute.
  • Paso 4 (Capa de Transporte y Aplicación): Confirmar que el servicio remoto escucha en el puerto correcto con ss -tulpn o verificar bloqueos de firewall capturando tráfico en directo con tcpdump.


viernes, 2 de octubre de 2026

Navaja Suiza de Diagnóstico de Red: Guía Definitiva Linux y Cisco

Introducción: El Arte del Troubleshooting en Redes Complejas

Como administradores de sistemas Linux y redes, nuestro trabajo diario implica aislar fallos, identificar cuellos de botella y garantizar que el tráfico fluya con la menor latencia posible. Cuando la conectividad falla, la capacidad de diagnosticar rápidamente con la línea de comandos determina la diferencia entre una resolución de minutos o horas de caída del servicio. Esta entrada reúne los comandos de diagnóstico indispensables en entornos Linux modernos y dispositivos Cisco IOS, estructurados con un enfoque práctico para administradores de sistemas y redes.

1. Comprobación de Conectividad Básica y Latencia (ping y mtr)

El protocolo ICMP sigue siendo la piedra angular del diagnóstico inicial. Sin embargo, en un entorno de producción, un simple ping no siempre es suficiente.

En Linux:

El comando ping permite validar la alcanzabilidad y medir el tiempo de ida y vuelta (RTT). La herramienta mtr (My Traceroute) combina la potencia de ping y traceroute en un análisis dinámico en tiempo real.

# Ping enviando exactamente 4 paquetes con un intervalo de 0.5 segundos
ping -c 4 -i 0.5 192.168.1.1

# Ping de inundación (flood) para pruebas de estrés/pérdida de paquetes (requiere root)
sudo ping -f -s 1472 10.0.0.1

# MTR en modo reporte sin resolución DNS (ideal para scripts o documentar incidencias)
mtr --report --report-cycles 10 -n 8.8.8.8

# MTR interactivo mostrando estadísticas de jitter y pérdida de paquetes
mtr -t 192.168.10.254

En Cisco IOS:

El ping interactivo en Cisco IOS permite especificar interfaces de origen, marcas de TOS/DSCP y fragmentación para detectar problemas de MTU.

# Ping extendido interactivo en Cisco IOS
router# ping

# Ping directo especificando interfaz de origen y tamaño de paquete (MTU test)
router# ping ip 10.0.0.1 source GigabitEthernet0/0 size 1500 repeat 20 df-bit

2. Rastreo de Rutas y Análisis de Saltos (traceroute y ip route)

Determinar la ruta exacta que siguen los paquetes y la tabla de enrutamiento local es vital para detectar problemas de enrutamiento asimétrico o bucles.

En Linux:

Mientras que traceroute tradicional usa paquetes UDP, las redes modernas suelen bloquear este tráfico. Es crítico saber forzar el uso de ICMP o TCP (SYN).

# Traceroute clásico deshabilitando resolución DNS
traceroute -n 1.1.1.1

# Traceroute utilizando SYN de TCP en el puerto 80 (para atravesar firewalls)
traceroute -T -p 80 google.com

# Traceroute usando ICMP Echo Request
traceroute -I 192.168.1.50

# Consultar la tabla de enrutamiento actual con el suite iproute2
ip route show

# Determinar qué interfaz y puerta de enlace usará el kernel para un destino específico
ip route get 8.8.8.8

# Añadir una ruta estática temporal
sudo ip route add 10.20.0.0/16 via 192.168.1.254 dev eth0

En Cisco IOS:

En el CLI de Cisco, inspeccionar la FIB (Forwarding Information Base) y ejecutar trazados es igualmente flexible.

# Trazado de ruta básico en Cisco
router# traceroute 8.8.8.8 numeric

# Inspección de la tabla de enrutamiento IP
router# show ip route

# Verificar la ruta específica utilizada para un destino concreto
router# show ip route 192.168.50.10

3. Captura y Análisis de Tráfico en Tiempo Real (tcpdump)

Cuando los registros no ofrecen respuestas, el análisis de tramas en el cable es definitivo. tcpdump es la herramienta definitiva de inspección profunda de paquetes (DPI) en consola.

Sintaxis y filtros fundamentales de tcpdump en Linux:

# Capturar tráfico en una interfaz específica sin resolver nombres de host ni puertos
sudo tcpdump -i eth0 -nn

# Capturar tráfico filtrando por IP de origen/destino y puerto específico (ej. HTTPS)
sudo tcpdump -i eth0 -nn host 192.168.1.50 and port 443

# Filtrar por red subnet y mostrar contenido en formato ASCII y HEX
sudo tcpdump -i eth0 -X net 10.0.0.0/24

# Capturar tráfico SYN de TCP (peticiones de conexión) para detectar escaneos o intentos
sudo tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0'

# Guardar captura en un archivo .pcap para analizar posteriormente con Wireshark
sudo tcpdump -i eth0 -w captura_incidencia.pcap -c 10000 port not 22

# Leer un archivo .pcap previamente guardado aplicando filtros
tcpdump -nn -r captura_incidencia.pcap icmp

Captura de paquetes equivalente en Cisco IOS (EPC - Embedded Packet Capture):

# Definir el buffer de captura
router# monitor capture BUFFER mycap size 2048 circular

# Definir el punto de captura (interfaz y dirección)
router# monitor capture point ip interface mypoint GigabitEthernet0/0 both

# Asociar buffer y punto de captura, e iniciar
router# monitor capture point associate mypoint mycap
router# monitor capture buffer mycap start

# Detener captura y exportar a un servidor TFTP/SCP
router# monitor capture buffer mycap stop
router# monitor capture buffer mycap export tftp://192.168.1.100/cap.pcap

4. Inspección de Sockets y Conexiones Activas (netstat y ss)

Saber qué servicios están escuchando y qué conexiones están establecidas en un servidor Linux es crucial para el diagnóstico de seguridad y rendimiento. El comando netstat ha sido reemplazado oficialmente por ss (socket statistics) debido a su mayor velocidad interactuando con las estadísticas del kernel.

# Mostrar todos los sockets TCP y UDP en escucha (listening) con números de puerto y PID
sudo ss -tulpn

# Reemplazo clásico equivalente con netstat (si está instalado)
sudo netstat -tulpn

# Ver todas las conexiones TCP establecidas actualmente hacia un puerto específico
ss -ti dst :443 state established

# Ver resumen estadístico de los sockets del sistema (muy útil para detectar ataques DDoS)
ss -s

5. Tabla Comparativa de Diagnóstico Rápido: Linux vs. Cisco IOS

Para agilizar el flujo de trabajo en entornos heterogéneos, esta matriz resume los comandos equivalentes directos entre ambas plataformas:

  • Verificar conectividad básica: Linux: ping [IP] | Cisco: ping [IP]
  • Rastrear ruta de red: Linux: traceroute -n [IP] | Cisco: traceroute numeric [IP]
  • Ver tabla de enrutamiento: Linux: ip route show | Cisco: show ip route
  • Verificar enlace físico e interfaz: Linux: ip link show / ethtool eth0 | Cisco: show interfaces
  • Ver tabla ARP: Linux: ip neighbor o arp -n | Cisco: show ip arp
  • Capturar tráfico directo: Linux: tcpdump -i [iface] | Cisco: monitor capture

Conclusión y Mejores Prácticas

El diagnóstico eficiente de redes requiere un método metódico: comienza siempre desde la Capa 1 (física/enlace con ip link o show interfaces), avanza hacia la Capa 3 (red con ping, ip route y mtr), verifica la Capa 4 (transporte con ss -tulpn) y finalmente inspecciona los datos mediante tcpdump. Dominar esta secuencia comandos reducirá drásticamente el tiempo medio de reparación (MTTR) en tu infraestructura.