16 de junio de 2018

Comando: show users

Cisco IOS permite activar tanto servicios Telnet como SSH para que usuarios remotos puedan acceder a la CLI de los dispositivos, del mismo modo que es posible hacerlo localmente a través del puerto consola.
Es por esto necesario contar con una herramienta que permita monitorear las sesiones de consola así como las de terminar virtual que se encuentran activas en un dispositivo.
El comando que permite acceder a esta información es show users. 

Este comando ha sido introducido en IOS 10.0 y no ha tenido modificaciones de relevancia desde entonces.

Consideremos en primer lugar un ejemplo tomando como base el resultado de la ejecución en un router Cisco IOS para luego revisarlo con mayor detalle.

Router# show users
    Line     User        Host(s)    Idle   Location
    0 con 0              idle
 *  2 vty 0  rose        idle       0      bashful.cisco.com

Se puede agregar un subcomando que permite visualizar la totalidad de las interfaces virtuales disponibles, incluidas las que no están en uso:

Router# show users all
    Line     User        Host(s)    Idle   Location
*   0 vty 0  rose        idle       0      bashful.cisco.com
    1 vty 1
    2 con 0
    3 aux 0

    4 vty 2

Lectura del comando
Revisemos ahora el resultado de la ejecución del comando:

Router# show users
    Line     User        Host(s)    Idle   Location
    0 con 0              idle
 *  2 vty 0  rose        idle       0      bashful.cisco.com
  • Line:
    Contiene 3 subcampos:
    - El asterisco indica  la línea desde la cual está conectado el usuario que ejecuta el comando.
    - Número absoluto de la línea: 0 y 2 en el ejemplo.
    - Tipo de línea: con (consola), aux (auxiliar), vty (terminal virtual, tty (terminal asincrónica.
  • User:
    ID del usuario que está utilizando la línea.
    Cuando no se enlista un usuario puede significar que el acceso no requiere identificación de usuario (por ejemplo el acceso por consola), o que la línea no está en uso (en el caso del show users all).
  • Host:
    En conexiones salientes identifica el host al cual se encuentra conectado el usuario.
    Si no hay conexiones salientes el valor asignado es "Idle".
  • Idle:
    Intervalo en minutos desde que el usuario ha ingresado los últimos caracteres.
  • Location:
    En las conexiones entrantes, host desde el cual se ha establecido la conexión entrante.

Las abreviaturas y siglas utilizadas en este post puede encontrarlas desarrolladas en
que está disponible en la Librería en Línea de EduBooks.


10 de junio de 2018

Comando: show ssh

Las buenas prácticas de seguridad indican utilizar SSH para el acceso remoto a la CLI de los dispositivos de modo seguro.
Cuando implementamos SSH el comando que permite verificar en el dispositivo el estado de las sesiones SSH en curso es show ssh. 

Este comando no tiene argumentos adicionales. Ha sido introducido en IOS 12.1 (5) y  está presente en todas las plataformas.

Permite verificar la información correspondiente a las sesiones, no la que corresponde a la configuración del protocolo en sí mismo. Para verificar la versión activa y operación del protocolo el comando es show ip ssh.

Consideremos en primer lugar un ejemplo tomando como base el resultado de la ejecución en un router Cisco IOS para luego revisarlo con mayor detalle.

Router# show ssh

Connection   Version   Encryption    State        Username
   0         1.5       3DES          Session Started  guest

Cuando no se ha activado el protocolo en un dispositivo y por lo tanto no hay sesiones activas, la respuesta del comando es la siguiente:

%No SSH server connections running

Lectura del comando
Revisemos ahora el resultado de la ejecución del comando:

Router# show ssh

Connection   Version   Encryption    State        Username
   0         1.5       3DES          Session Started   guest
  • Connection:
    ID de la terminal de línea virtual que está utilizando para conectarse al dispositivo la sesión que se muestra en la misma fila.
  • Version:
    Versión del protocolo SSH que se está utilizando.
    IOS soporta tanto SSH versión 1 como 2.
    Version 1.5 indica que se está utilizando versión 1 y no está disponible versión 2.
    Version 1.99 indica que se puede utilizar versión 1 o versión 2.
    Version 2.00 indica que solamente está disponible versión  2.
    En este caso
  • Encryption:
    Algoritmo de cifrado que se está utilizando en esta sesión. En este caso es 3DES, podría ser AES de 128 o 256 bits.
  • State:
    Estado de la sesión SSH. En este caso la sesión está ya iniciada y operativa.
  • Username:
    Nombre del usuario que está utilizando esta sesión SSH.



Las abreviaturas y siglas utilizadas en este post puede encontrarlas desarrolladas en
que está disponible en la Librería en Línea de EduBooks.


26 de mayo de 2018

¿IOS o IOS XE?

Hace ya algunos años apareció en el universo Cisco IOS XE, y en los últimos años hemos presenciado como, de modo progresivo, más dispositivos Cisco han implementado este sistema operativo. 
El primer dispositivo en implementar IOS XE ha sido el router ASR-1000 en el año 2008 (hace ya 10 años), luego fueron los switches Catalyst 4500-E en octubre de 2010. Hoy encontramos este sistema operativo en la nueva línea de switches Catalyst 9000 que aparece como destinada a reemplazar a los Catalyst 2960 y 3500 que utilizan el IOS tradicional.

¿Qué es IOS XE?
IOS XE ha sido presentado por Cisco como la evolución de IOS para soportar su nueva generación de plataformas de hardware. La idea ha sido un sistema operativo más moderno, adaptado al hardware actual, con capacidades de virtualización, listo para SDN y con una estrategia de arquitectura diferente a la de su predecesor pero con la misma interfaz de gestión de IOS.
A la pregunta de si se trata de un sistema operativo diferente, la respuesta de Cisco es: "absolutamente no".
IOS XE es un sistema operativo de tipo modular que opera sobre un kernel Linux apto para operar en entornos de CPU multiprocesador con una lógica de virtualización en base a contenedores.
De esta manera puede responder eficientemente a los requerimientos de mayor seguridad y alta disponibilidad de las redes actuales. En esta nueva arquitectura IOS corre como un daemon (que recibe el nombre de IOSd) sobre el kernel Linux. Esto permite que en hardware multiprocesador cada proceso pueda utilizar un procesador diferente balanceando de esta manera la carga de procesamiento.
Dada su arquitectura distribuida, algunas de las tareas propias del sistema operativo han sido desplazadas fuera del proceso de IOS que ahora opera en un contenedor. Es decir, IOS es ahora uno de las varios  procesos que corren en el dispositivo. Esto permite contar con redundancia de ISO, alta disponibilidad, NonStop Forwarding (NSF) e In Service Software Upgrade (ISSU).
Su arquitectura permite además separar el procesamiento del plano de control de el del plano de datos. Para esto se ha introducido la interfaz estándar de FFM (Forwarding and Feature Manager) para acceder a FED (Forwarding Engine Driver). FFM suministra un conjunto de APIs para acceder a los procesos del plano de control.
Los drivers del hardware (platform dependent) han sido desplazados fuera del código de IOS que ahora es completamente independiente de la plataforma, de modo que el proceso de IOS ahora está claramente orientado a la operación independiente del hardware lo que conlleva un modelo más eficiente de suministro de software.
Incluye además interfaces programables NetConf (RFC 6241), OpenConfig, implementa YANG push telemetry y YANG data model de IETF, y Guest Shell Linx Containers.
Esta arquitectura está diseñada para poder incorporar nuevas aplicaciones. Estas aplicaciones pueden estar integradas en IOS mismo o correr a la par del mismo de modo independiente y con poca o ninguna interacción. De esta manera las aplicaciones pueden ser actualizadas o reiniciadas independientemente. Si la aplicación requiere interactuar con IOS puede hacerlo a través de librerías que permiten proyectar la información y servicios de IOS a aplicaciones externas que se gestionan de modo independiente.

¿Qué cambios introduce en la línea de comandos?
La línea de comandos de IOS XE presenta el mismo look and feel que la del IOS tradicional al mismo tiempo que incorpora nuevas funcionalidades. 
Las funciones que se agregan corren como procesos independientes.
De esta manera la CLI de IOS XE es esencialmente igual a la CLI de IOS con sólo algunas pequeñas diferencias principalmente debidas a la diferencia del hardware sobre el que opera. Estas diferencias se verifican en comandos como show processor o show memory.
De esta manera la implementación de IOS XE no requiere reentrenamiento. Quien hoy gestiona IOS puede gestionar IOS XE.
Esto es así porque IOS XE corre el mismo IOS solo que ahora en un contenedor, corriendo como un proceso dentro de IOS XE (esto es IOSd). De esta manera, IOS XE contempla todos los features soportados en IOS.
Si bien inicialmente la definición del número de versión de IOS XE era diferente de la de IOS, esto se resolvió a partir de la versión 16, emparejando los números de versión y generando un único conjunto de documentación de referencia para ambos sistemas operativos.
Las versiones actuales de IOS XE no sólo se identifican por su número de versión y release, sino también por un nombre tomado de las montañas más altas de diferentes continentes. Así los últimos release disponibles de IOS XE son:
  • IOS XE Denali 16.3.1
  • IOS XE Everest 16.6.1
  • IOS XE Fuji 16.8.1
El último release disponibles de IOS es IOS 15.5M&T.

¿Qué productos implementan IOS XE?

Swtiches Catalyst:
  • 3650
  • 3850
  • 9300
  • 9400
  • 9500
  • 4500-E
Routers de servicios integrados:
  • 1000
  • 4221
  • 4321
  • 4331
  • 4351
  • 4431
  • 4451
Routers de borde ASR:
  • 900
  • 1001-X
  • 1002-X
  • 1001-HX
  • 1002-HX
  • 1004
  • 1006
  • 1006-X
  • 1009-X
  • 1013
  • NCS 4200
Como dijo Cisco hace ya varios años, las plataformas de nueva generación de Cisco irán migrando todas hacia IOS XE progresivamente.

¿Es posible implementar IOS XE en otras plataformas como switches Catalyst 3560 o routers Cisco 3900?
No.
IOS XE se introduce progresivamente en las nuevas plataformas de hardware, y no soporta plataformas de hardware anteriores. De la misma forma, las plataformas que implementan IOS XE no están soportadas en IOS.


Las abreviaturas y siglas utilizadas en este post puede encontrarlas desarrolladas en
que está disponible en la Librería en Línea de EduBooks.


10 de mayo de 2018

Comados: show version

Un comando clave al momento de hacer inventario o revisar el hardware y software de los dispositivos es show version. Es uno de los primeros comandos que aprendemos, pero al mismo tiempo uno que no atendemos suficientemente.

Introducido ya en .IOS 9.0,  está presente en todas las plataformas.

Permite verificar la información correspondiente a hardaware y software, a lo que se suma que es el único comando que muestra el valor del registro de configuración.

Consideremos en primer lugar un ejemplo tomado como base el resultado de la ejecución en un router Cisco 3600, para luego revisarlo con mayor detalle.

Router# show version

Cisco IOS Software, 3600 Software (C3660-I-M), Version 12.3(4)T
 TAC Support: http://www.cisco.com/tac
 Copyright (c) 1986-2003 by Cisco Systems, Inc.
 Compiled Thu 18-Sep-03 15:37 by ccai

 ROM: System Bootstrap, Version 12.0(6r)T, RELEASE SOFTWARE (fc1)
 ROM: 

 C3660-1 uptime is 1 week, 3 days, 6 hours, 41 minutes
 System returned to ROM by power-on
 System image file is "flash:/c3660-i-mz.123-4.T"

 Cisco 3660 (R527x) processor (revision 10.0) with 57344K/8192K bytes of memory.
 Processor board ID JAB055180FF
 R527x CPU at 225Mhz, Implementation 40, Rev 10.0, 2048KB L2 Cache


 3660 Chassis type: ENTERPRISE
 2 FastEthernet interfaces
 4 Serial interfaces
 DRAM configuration is 64 bits wide with parity disabled.
 125K bytes of NVRAM.
 16384K bytes of processor board System flash (Read/Write)

 Flash card inserted. Reading filesystem...done.
 20480K bytes of processor board PCMCIA Slot0 flash (Read/Write)

 Configuration register is 0x2102


Lectura del comando

El comando provee específicamente esta información:

Información acerca del software:
  • Versión de la imagen principal de IOS.
  • Capacidades de la imagen principal de IOS.
  • Ubicación y nombre del archivo de inicio en la ROM.
  • Versión de la imagen de bootflash (dependiendo de la plataforma).
Información específica del dispositivo
  • Nombre del dispositivo.
  • Tiempo de operación desde el último arranque.
  • Motivo del reinicio del sistema.
  • Configuración del registro de configuración.
  • Configuración del registro de configuración luego del próximo reinicio (dependiendo de la plataforma).
Información referida al hardware:
  • Tipo de plataforma.
  • Tipo de procesador.
  • Versión de hardware del procesador.
  • Cantidad de memoria instalada en el procesador principal.
  • Cantidad de memoria I/O instalada.
  • Cantidad de memoria flash instalada de diferentes tipos (dependiendo de la plataforma).
  • ID de la placa del procesador.
El formato básico del resultado de la ejecución del comando (coloco entre corchetes las variables):

Cisco IOS Software, [plataforma] Software ([ID de imagen]), Version [versión de software][tipo de software] 

 Technical Support: http://www.cisco.com/techsupport
 Copyright (c) [fecha] by Cisco Systems, Inc.
 Compiled [día] [fecha] [hora] by [ID del compilador]

 ROM: System Bootstrap, Version [versión de software][tipo de software]
 BOOTLDR: [plataforma] Software (image-id), Version [versión de software] [tipo de software] 

[nombre del dispositivo] uptime is [#] weeks, [#] days, [#] hours, [#] minutes
 System returned to ROM by reload at [hora] [día] [fecha]
 System image file is "[ubicación]/[nombre de la imagen]"
 Last reload reason: [motivo del reinicio]

 Cisco [tipo de plataforma] processor (revision [ID de revisión del procesador]) with [memoria DRAM libre] K/[memoria de paquetes] K bytes of memory.
 Processor board ID [identificador] [tipo de CPU] CPU at [velocidad] Mhz, Implementation [número], Rev [número de revisión]
[tamaño del caché de memoria] KB [nivel] Cache

Revisemos eso sobre nuestro ejemplo:
Router# show version

 Cisco IOS Software, 3600 Software (C3660-I-M), Version 12.3(4)T

  • Esta información corresponde a un router Cisco 3600.
  • Implementa una imagen de IOS versión 12.3(4)T.

 TAC Support: http://www.cisco.com/tac
 Copyright (c) 1986-2003 by Cisco Systems, Inc.
 Compiled Thu 18-Sep-03 15:37 by ccai

  • Esta imagen de IOS ha sido compilada el 18 de septiembre de 2003 por "ccai".

 ROM: System Bootstrap, Version 12.0(6r)T, RELEASE SOFTWARE (fc1)
 ROM: 

  • Este equipo cuenta con un bootstrap versión 12.0(6f)T.

 C3660-1 uptime is 1 week, 3 days, 6 hours, 41 minutes

  • El hostname del equipo es C3660-1.
  • Está encendido desde hace 1 semana, 3 días, 6 horas y 41 minutos.

 System returned to ROM by power-on

  • El sistema fue encendido manualmente.

 System image file is "flash:/c3660-i-mz.123-4.T"

  • La imagen de IOS que se está utilizando se leyó de la memoria flash.
  • El nombre del archivo de la imagen de sistema operativo es "c3660-i-mz.123-4.T".

 Cisco 3660 (R527x) processor (revision 10.0) with 57344K/8192K bytes of memory.

  • La plataforma de hardware de este router es la R527x.
  • Con un procesador revisión 10.0.
  • Con 57 MB (aproximadamente) de memoria DRAM libre y aproximadamente 8 MB de memoria RAM ocupada por paquetes.

 Processor board ID JAB055180FF

  • El identificador del procesador es JAB055180FF.

 R527x CPU at 225Mhz, Implementation 40, Rev 10.0, 2048KB L2 Cache

    • La CPU R527x está operando a 227 Mhz.
    • Su número de revisión es 10.0.
    • Cuenta con un caché de memoria layer 2 de 2 MB

 3660 Chassis type: ENTERPRISE

  • Se trata de un chasis 3660.

 2 FastEthernet interfaces

  • IOS detectó 2 puertos FastEthernet.

 4 Serial interfaces

  • Además detectó 4 puertos seriales.

 DRAM configuration is 64 bits wide with parity disabled.

  • Cuenta con una memoria DRAM de 64 bits.

 125K bytes of NVRAM.

  • Un total de 125 KB de memoria NVRAM

 16384K bytes of processor board System flash (Read/Write)

  • Y 16 MB de memoria flash.


 Flash card inserted. Reading filesystem...done.
 20480K bytes of processor board PCMCIA Slot0 flash (Read/Write)

  • Adicionalmente este equipo cuenta con una flash card de 20 MB en el slot0.

 Configuration register is 0x2102
  • El registro de configuración actual es 0x2102.



Las abreviaturas y siglas utilizadas en este post puede encontrarlas desarrolladas en
que está disponible en la Librería en Línea de EduBooks.


28 de abril de 2018

Descubrimiento de rutas o traceroute

El descubrimiento de rutas (que en la jerga se llama "traceo") se puede realizar utilizando un programa incluido en la mayoría de los sistemas operativos y que recibe diferentes denominaciones según cada caso, la más habitual: traceroute.

Operación
El programa permite descubrir y revisar cada uno de los saltos que atraviesa la ruta que toman los paquetes desde el punto en el que se ejecuta el programa y hacia un destino específico.

El programa envía 3 paquetes UDP al destino, utilizando los puertos 33434 (el primer paquete), 33435 (el segundo paquete) y 33436 (el tercer paquete).
Traceroute utiliza paquetes UDP. Sin embargo, algunos sistemas operativos permiten utilizar diferentes paquetes (TCP o UDP).
Microsoft Windows en su aplicación Tracert no utiliza paquetes UDP sino ICMP echo request.

El proceso se inicia enviando primero una secuencia de paquetes UDP con TTL = 1 y a partir de allí se va incrementando el valor del campo TTL de uno en uno hasta llegar al destino o al límite de saltos definido (por defecto 30).

En todos los casos utiliza igual que ping respuestas de ICMP, en este caso utiliza mensajes time exceeded. Opera colocando el valor del campo TTL de los paquetes que envía, inicialmente, en 1. De esta manera la interfaz del primer salto asume que el TTL ha expirado (al valor de TTL que recibe resto uno: 1 – 1 = 0) y envía un mensaje ICMP al origen indicando que ha excedido el TTL del paquete. En esa notificación al origen el dispositivo que genera el mensaje ICMP se identifica a sí mismo por la dirección IP del puerto que descartó el paquete.  De esta manera el sistema en el que se ejecuta el programa obtiene la dirección IP del primer salto o gateway de la red.
A continuación se genera un segundo paquete UDP con TTL igual a 2; de esta forma el nuevo paquete pasa el gateway, es enrutado y finalmente al llegar al próximo gateway o puerto que debe atravesar será descartado y se generará una nueva notificación de TTL excedido. De esta manera se obtiene ahora la dirección IP del segundo salto en la ruta hacia el destino. El proceso continúa de esta manera incrementando el valor del campo TTL de uno en uno hasta llegar al puerto destino o alcanzar el límite de saltos definido (30 por defecto).


De esta forma el sistema donde se ejecuta la aplicación puede identificar la dirección IP (IPv4 o IPv6) de cada dispositivo o salto que está en la ruta del paquete hacia el destino.

El valor máximo por defecto del campo TTL es 30, por lo que inicialmente al ejecutar el programa se rastrean los primeros 30 saltos. Si es preciso este valor puede ser ajustado.
Entre la información que proporciona el resultado de la ejecución de traceroute se encuentra:
  • El listado ordenado de direcciones IP de cada salto que recorre el paquete en su ruta hacia el destino.
  • La demora en milisegundos que ha registrado cada uno de los 3 paquetes que se han enviado en cada porción del trayecto.
  • La identidad de cada salto.



Traceroute nos permite entonces, conocer detalladamente la ruta que recorre nuestro tráfico hasta el dispositivo de destino y también (en el caso de mensajes de destino inalcanzable), determinar en qué punto del trayecto se está interrumpiendo una ruta para, a partir de este dato y con la ayuda de un diagrama de la red poder localizar dónde se encuentra posiblemente un problema.

Traceroute en diferentes sistemas operativos
Cada sistema operativo tiene su propia versión de este programa, con algunas características que le son propias.

En sistemas Microsoft:
El programa que opera recibe el nombre de "tracert"
C:\>tracert www.google.com

En sistemas Linux:
user@localhost:/# traceroute www.google.com

En sistemas Apple:
Utilizando la interfaz gráfica seleccionar: Aplicaciones > Utilidades > Utilidad de Red
Seleccionar la pestaña "Traceroute" y escribir el dominio o IP.

En sistemas Cisco IOS:
Router#traceroute [protocolo] [destino]

Las respuestas posibles cuando se ejecuta el comando desde la línea de comando de un router Cisco IOS son:
!H El router no ha enviado el comando.
P El protocolo es inalcanzable.
N La red es inalcanzable.
* Time out

Router#traceroute [destino] source [interfaz]
Permite especificar la interfaz a través de la cual se desea enviar los paquetes UDP. Si no se utiliza esta opción el dispositivo define la interfaz de salida (es decir la IP de origen) en función de lo indicado en la tabla de enrutamiento.

Además hay en Internet servicios que reciben la denominación genérica de "looking glass" que permiten ejecutar este programa desde puntos específicos de Internet.
Algunos de esos servicios son:

Las abreviaturas y siglas utilizadas en este post puede encontrarlas desarrolladas en
que está disponible en la Librería en Línea de EduBooks.


22 de abril de 2018

Delay, Round Trip Time, Jitter

En nuestro vocabulario técnico de todos los días muchas veces se va desfigurando el significado preciso de algunos términos que es conveniente cada tanto retomar.

Delay
El delay (o "retardo" en castellano) es el tiempo que demora un bit en viajar desde un dispositivo origen hasta un dispositivo destino a través de la red.
Se expresa en milisegundos y tiene varios componentes.
El delay tiene componentes fijos (que no pueden ser modificados) y componentes variables (que pueden ser optimizados en mayor o menor medida).
El componente fijo inevitable es el delay de transmisión que es provocado por el tiempo de propagación de la señal a través del medio físico (cobre, fibra óptica, señal de radiofrecuencia).
Entre los componentes variables debemos considerar el delay de serialización (tiempo que demanda la copia de los bits de la memoria del dispositivo al medio físico), el delay de procesamiento (tiempo requerido por cada dispositivo para definir el reenvío o no del bit), el delay de buffer (que es el tiempo que el bit permanece en espera antes de ser enviado en caso de congestión).

El delay considera el tiempo necesario para establecer la comunicación solamente en sentido origen-destino.
¿Puede ser "medido" utilizando el ping?
No, el ping no mide delay.

RTT
El Round Trip Time (RTT) es el parámetro que muestra como resultado un ping.
Es el tiempo requerido para que una comunicación circule desde el origen hasta el destino y regrese al origen.
Es decir que considera el delay de ida, el delay de procesamiento de la respuesta, y el delay de regreso.
Por eso es una medición solamente aproximativamente del delay, porque en realidad el delay no es la mitad del RTT.
Porque RTT incluye el delay de procesamiento de la respuesta; y porque el delay de ida no es necesariamente igual al delay de regreso.

Con esas consideraciones, el RTT es una aproximación simple y accesible al estado de una ruta que permite realizar comparaciones sobre todo de una misma ruta en diferentes momentos.

Jitter
El Jitter es la variación del delay de una ruta durante una comunicación.
Como dije antes, el delay tiene una componente variable que es importante. Esto hace que durante el desarrollo de una comunicación el delay de cada paquete pueda ser diferente, lo que afecta la calidad de las comunicaciones en tiempo real (voz y video).

El jitter es más difícil de medir y requiere de herramientas específicas como pueden ser iperf o jperf. No puede ser evaluado con herramientas simples como ping o pathping.

Herramientas de los sistemas operativos

Ping
Herramienta basada en paquetes ICMP que permite verificar accesibilidad, RTT y pérdida de paquetes.
Se trata de un programa que utiliza las solicitudes ICMP echo (echo request) para enviar un datagrama a una dirección IP de destino y luego queda en espera de una respuesta (echo reply) a ese datagrama. 
El resultado de esa solicitud de echo puede ser utilizado para evaluar la confiabilidad de la ruta al destino, el delay de esa ruta y si el nodo de destino es “alcanzable” o no.

C:\>ping 8.8.8.8

Haciendo ping a 8.8.8.8 con 32 bytes de datos:
Respuesta desde 8.8.8.8: bytes=32 tiempo=10ms TTL=56
Respuesta desde 8.8.8.8: bytes=32 tiempo=10ms TTL=56
Respuesta desde 8.8.8.8: bytes=32 tiempo=9ms TTL=56
Respuesta desde 8.8.8.8: bytes=32 tiempo=11ms TTL=56

Estadísticas de ping para 8.8.8.8:
    Paquetes: enviados = 4, recibidos = 4, perdidos = 0
    (0% perdidos),
Tiempos aproximados de ida y vuelta en milisegundos:

    Mínimo = 9ms, Máximo = 11ms, Media = 10ms

Es importante tener presente que el resultado de la ejecución del comando no muestra precisamente el delay de la conexión entre origen y destino sino el RTT.

Tracert
El descubrimiento o “traceo” de rutas se puede realizar utilizando el programa traceroute presente en múltiples sistemas operativos. Este programa permite descubrir y revisar salto por salto la ruta que toman los paquetes hacia un destino específico. 
Se envían 3 paquetes UDP al destino, utilizando los puertos 33434 (el primer paquete), 33435 (el segundo paquete) y 33436 (el tercer paquete). El proceso se inicia enviando primero una secuencia de paquetes UDP con TTL = 1 y a partir de allí se va incrementando el valor del campo TTL de uno en uno hasta llegar al destino o al límite de saltos definido (por defecto 30).
Microsoft Windows en su aplicación Tracert no utiliza paquetes UDP sino ICMP echo request.
En todos los casos utiliza respuestas de ICMP, en este caso paquetes time exceeded. 
El valor máximo por defecto del campo TTL es 30, por lo que inicialmente al ejecutar el programa se rastrean los primeros 30 saltos. Si es preciso este valor puede ser ajustado.
Entre la información que proporciona el resultado de la ejecución de traceroute se encuentra:

  • El listado ordenado de direcciones IP de cada salto que recorre el paquete en su ruta hacia el destino.
  • La demora en milisegundos que ha registrado cada uno de los 3 paquetes que se han enviado en cada porción del trayecto. Se trata nuevamente de RTT, no delay.
  • La identidad de cada salto.

C:\>tracert 8.8.8.8

Traza a la dirección google-public-dns-a.google.com [8.8.8.8]
sobre un máximo de 30 saltos:

  1    2 ms      1 ms     1 ms  192.168.0.1
  2    17 ms     8 ms     8 ms  10.96.0.1
  3    11 ms    11 ms    10 ms  10.171.0.109
  4    42 ms    11 ms     8 ms  10.200.0.66
  5    19 ms    17 ms    18 ms  72.14.202.235
  6    28 ms    24 ms    19 ms  108.170.248.225
  7    59 ms     9 ms     9 ms  108.170.227.23
  8    13 ms     8 ms    10 ms  google-public-dns-a.google.com [8.8.8.8]

Traza completa.

Pathping

Herramienta disponible en sistemas operativos Microsoft.
Combina ping y tracert, a la vez que provee información estadística adicional tomada sobre la base de 100 paquetes enviados a cada uno de los saltos de la ruta.
Es una buena herramienta para la evaluación del estado de rutas activas, dada la estadística de tráfico que proporciona.
Como ocurre con ping, esta herramienta también presente un valor de RTT promedio de los 100 paquetes ICMP que envió a cada salto.


C:\>pathping 8.8.8.8

Seguimiento de ruta a google-public-dns-a.google.com [8.8.8.8]
sobre un máximo de 30 saltos:
  0  192.168.0.17
  1  192.168.0.1
  2  10.96.0.1
  3  10.171.0.109
  4  10.200.0.66
  5  72.14.202.235
  6  108.170.248.225
  7  108.170.227.23
  8  google-public-dns-a.google.com [8.8.8.8]

Procesamiento de estadísticas durante 200 segundos...
              Origen hasta aquí   Este Nodo/Vínculo
Salto  RTT    Perdido/Enviado = Pct  Perdido/Enviado = Pct  Dirección
  0                                           192.168.0.17
                                0/ 100 =  0%   |
  1    5ms     8/ 100 =  8%     8/ 100 =  8%  192.168.0.1
                                0/ 100 =  0%   |
  2   11ms     0/ 100 =  0%     0/ 100 =  0%  10.96.0.1
                                0/ 100 =  0%   |
  3   12ms     1/ 100 =  1%     1/ 100 =  1%  10.171.0.109
                                0/ 100 =  0%   |
  4   10ms     3/ 100 =  3%     3/ 100 =  3%  10.200.0.66
                                0/ 100 =  0%   |
  5   12ms     0/ 100 =  0%     0/ 100 =  0%  72.14.202.235
                                1/ 100 =  1%   |
  6   11ms     1/ 100 =  1%     0/ 100 =  0%  108.170.248.225
                                2/ 100 =  2%   |
  7  ---     100/ 100 =100%    97/ 100 = 97%  108.170.227.23
                                0/ 100 =  0%   |
  8   10ms     3/ 100 =  3%     0/ 100 =  0%  google-public-dns-a.google.com [8.8.8.8]

Traza completa.

Lo interesante de esta herramienta es que permite tener información no ya de un paquete individual sino de una ráfaga de 100 paquetes, lo que da una visión más ajustada del estado de una ruta específica.

Aplicaciones

Las abreviaturas y siglas utilizadas en este post puede encontrarlas desarrolladas en
que está disponible en la Librería en Línea de EduBooks.