Índice del artículo

Monitoreo de la red

Unix nos puede dar mucha información con tan sólo dos comandos de monitoreo de la red, uno es el comnado snoop que monitorea los paquetes de la red y el otro es el comando netstat que nos muestra el estatus actual de la red.

{mosgoogle}

Comando snoop

Este comando nos ayuda a ver todos los paquetes que pasan a través de las interfaces de red, podemos indicarle que únicamente revise una interface:

$ snoop -d interface

Podemos también decirle que sólo verifique los paquetes de protocolo tcp de dicha interface, lo cual ser haría con el comando:

$ snoop -d interface tcp

Los protocolos válidos para el monitoreo de la red son ip, arp, rarp, udp, tcp, icmp, apple, decnet

De igual forma podemos límitar para el monitoreo el tráfico de paquetes entre dos equipos escribiendo el hostname de orign y el hostname del destino antes del protocolo de la siguente manera:

$ snoop -d interface host_origen host_destino tcp

Para enviar el resultado del monitoreo a un archivo se utiliza el parámetro -o nombre_del_archivo, en el siguiente ejemplo podemos ver un comando con todas las opciones mencionadas.

$ snoop -d bge0 -o tcp.out test craco tcp

Este ejemplo envía al archivo tcp.out todos los paquetes tcp que se envían desde el host "test" al host "craco".

De entre los parámetros más utilizados del comando snoop nos reta aún el parámentro -i nombre_del_archivo que nos sirve para ver el contenido del archivo generado por el comando -o, siguiendo el ejemplo anterior podríamos utilizar:

$ snoop -i tcp.out | page

Comando netstat

El otro comando que nos ayuda a monitorear detalladamente la red es el comando netstat, que tiene los siguientes como parámentros principales:

$ netstat -i (estadística de las interfaces)
$ netstat -n (direcciones de internet)
$ netstat -s (estadística de protocolos)
$ netstat -r (tablas de ruteo)

Utilizando la opción -i [intervalo] nos dará la informácion para los segundos determinados en el intervalos. La información que muestra está expresada en bytes.

Ejemplo:

$ netstat -i 3
input eri0 output input (Total) output
packets errs packets errs colls packets errs packets errs colls
12492 0 13003 1 7932 58405 0 58016 1 732
7 0 5 0 0 13 0 11 0 0
47 0 56 0 0 268 0 277 0 0
38 0 52 0 0 89 0 103 0 0
9 0 9 0 0 15 0 15 0 0
7 0 7 0 0 13 0 13 0 0
^C

La primera línea muestra el total de bytes enviados y recibidos y las posteriores muestra dentro de los 3 segundos (como se determinó en el intervalo) siguientes y así se podría seguir.

Como podrás notar para salir de este comando se utiliza Control-C

Si quisieras que sólo lo midiera cada 3 segundos con 10 repeticiones, es decir que este conteo sólo se lleve a cabo durante 30 segundos, se escribe también el parámetro de repeticiones, por ejemplo:

$netstat -i 3 10

Comando ping

El comando ping es utilizado para determinar si el host que se pasa en el parámetro está en línea y funcionando, su sintaxis es de la siguiente manera:

$ ping [hostname]

Este comando funciona enviando peticiones de eco al host y reporta cuando la respuesta es recibida, estos son algunos ejemplos de su uso.

$ ping craco
craco is alive

Con el parámetro -s le indicamos que mande continuamente paquetes e informe el resultado, para terminar de enviar paquetes se teclea Control-C, Veamos el siguiente ejemplo.

$ ping -s craco
PING craco: 56 data bytes
64 bytes from craco (192.33.6.232): icmp_seq=0. time=0.477 ms
64 bytes from craco (192.33.6.232): icmp_seq=1. time=0.576 ms
64 bytes from craco (192.33.6.232): icmp_seq=2. time=0.586 ms
64 bytes from craco (192.33.6.232): icmp_seq=3. time=0.438 ms
64 bytes from craco (192.33.6.232): icmp_seq=4. time=0.553 ms
^C
----craco PING Statistics----
8 packets transmitted, 5 packets received, 0% packet loss
round-trip (ms) min/avg/max/stddev = 0.438/0.521/0.586/0.055