public:guifinet:cursoinstaladoresguifi2011:monitorizacion:start
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previa | |||
public:guifinet:cursoinstaladoresguifi2011:monitorizacion:start [2011/07/22 07:54] – mperez | public:guifinet:cursoinstaladoresguifi2011:monitorizacion:start [2011/11/22 13:18] (actual) – mperez | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
+ | ====== Detección de problemas. Monitorización ====== | ||
+ | Estos materiales se licencian bajo la «Creative Commons Reconocimiento-CompartirIgual License España». Para ver una copia de esta licencia, se puede visitar http:// | ||
+ | |||
+ | **Autores**: | ||
+ | |||
+ | * Pablo Boronat Pérez (Universitat Jaume I) | ||
+ | * Miguel Pérez Francisco (Universitat Jaume I) | ||
+ | * David Rubert Viana (Universitat Jaume I) | ||
+ | |||
+ | ====== Introducción ====== | ||
+ | |||
+ | |||
+ | La red libre evoluciona continuamente, | ||
+ | |||
+ | La detección y resolución de problemas es una labor compleja, y que se aprende únicamente en base a la experiencia. Veremos en este tema cómo utilizar diferentes herramientas de diagnóstico de red para detectar problemas, o incluso preverlos antes de que sucedan. | ||
+ | |||
+ | ===== Logs. Linux, AirOS i RouterOS ===== | ||
+ | Los archivos de log de nuestro sistema nos proporcionan información histórica y en tiempo real sobre lo que está pasando. Es muy importante revisarlos en el momento en que sospechemos que algo no funciona bien, ya que cualquier cosa que pase en el sistema se debería registrar allí. | ||
+ | |||
+ | Veamos cómo activar y procesar los logs en función del sistema en el que estemos trabajando. | ||
+ | |||
+ | ==== AirOS ==== | ||
+ | AirOS es un sistema operativo que no engloba toda la complejidad de otros sistemas como puede ser Linux o RouterOS, por lo que los logs se activan y procesan de una manera sencilla, dándonos a su vez una información limitada al buen funcionamiento de la antena. | ||
+ | |||
+ | === Activación de los logs === | ||
+ | |||
+ | {{: | ||
+ | |||
+ | === Procesado de los logs === | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | |||
+ | ==== RouterOS ==== | ||
+ | |||
+ | |||
+ | En RouterOS se pueden consultar los logs del sistema en el apartado ''/ | ||
+ | |||
+ | |||
+ | < | ||
+ | [admin@CS-UJI-BiblAP] > /log print | ||
+ | 08:10:07 wireless, | ||
+ | 08:10:07 wireless, | ||
+ | 08:10:07 wireless, | ||
+ | 08:10:07 wireless, | ||
+ | 08:10:07 wireless, | ||
+ | 08:10:07 wireless, | ||
+ | 08:10:07 wireless, | ||
+ | 08:10:07 wireless, | ||
+ | 08:10:07 wireless, | ||
+ | 08:10:07 wireless, | ||
+ | 08:10:07 route, | ||
+ | 08:10:07 route, | ||
+ | 08:10:07 route, | ||
+ | 08:10:10 route, | ||
+ | 08:10:10 route, | ||
+ | 08:10:10 route, | ||
+ | 08:10:11 route, | ||
+ | 08:10:11 route, | ||
+ | 08:10:11 route, | ||
+ | 08:13:27 wireless, | ||
+ | 08:13:27 wireless, | ||
+ | 08:13:27 wireless, | ||
+ | 08:16:14 wireless, | ||
+ | 08:16:14 wireless, | ||
+ | ... | ||
+ | </ | ||
+ | |||
+ | Se pueden consultar las acciones que se están registrando en el apartado ''/ | ||
+ | |||
+ | < | ||
+ | [admin@CS-UJI-BiblAP] /system logging> /system logging print | ||
+ | Flags: X - disabled, I - invalid | ||
+ | # | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Para añadir que se registren nuevas acciones se puede ejecutar la orden | ||
+ | |||
+ | < | ||
+ | [admin@CS-UJI-BiblAP] /system logging> /system logging add action=memory topics=ospf | ||
+ | [admin@CS-UJI-BiblAP] /system logging> /system logging print | ||
+ | # | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | y para eliminarlas | ||
+ | |||
+ | < | ||
+ | /system logging remove 4 | ||
+ | </ | ||
+ | |||
+ | /* FIXME */ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Linux ==== | ||
+ | |||
+ | Como se ha comentado en el tema 5 GNU/Linux dispone de un potente sistema de logs que almacena los mensajes generados por las aplicaciones. Con cada mensaje se almacena qué programa lo generó, la prioridad y la fecha y hora en que se produjo. | ||
+ | |||
+ | Los ficheros de log en un sistema linux, se encuentran habitualmente en el directorio ''/ | ||
+ | |||
+ | El sistema de logs arranca con el script ''/ | ||
+ | |||
+ | Los archivos más importantes son: | ||
+ | |||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | |||
+ | Para ver el contenido (total o parcial) de alguno de estos ficheros se pueden utilizar alguna de las siguientes ordenes: | ||
+ | |||
+ | cat / | ||
+ | |||
+ | muestra el contenido completo del fichero ''/ | ||
+ | |||
+ | less / | ||
+ | |||
+ | |||
+ | muestra el contenido completo del fichero ''/ | ||
+ | |||
+ | tail -50 / | ||
+ | |||
+ | |||
+ | muestra las últimas 50 líneas del fichero ''/ | ||
+ | |||
+ | |||
+ | Los archivos de log suelen crecer mucho ya que en ellos se está guardando información continuamente. Por ello, existe una aplicación, | ||
+ | |||
+ | Existen aplicaciones gráficas para supervisar los logs, por ejemplo GNOME-System-Log, | ||
+ | |||
+ | **GNOME-System-Log** | ||
+ | |||
+ | {{: | ||
+ | |||
+ | **KSystemLog** | ||
+ | |||
+ | {{: | ||
+ | |||
+ | === Enlaces === | ||
+ | |||
+ | http:// | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== TCPDump ===== | ||
+ | * [[http:// | ||
+ | |||
+ | TCPDump es una utilidad de análisis de tráfico de red en línea de comandos. Pese a su complejidad inicial, una vez aprendido su funcionamiento básico será la herramienta que nos resultará más útil para saber qué está pasando en la red. Nos va a permitir examinar en bruto el tráfico que está pasando por la red, así como filtrar por protocolo, IP, MAC, puerto, ect. | ||
+ | |||
+ | Mikrotik tiene también un //sniffer// de red, pero no es tan completo y cómodo como **tcpdump**. | ||
+ | |||
+ | ==== Consideraciones iniciales ==== | ||
+ | |||
+ | * TCPDump únicamente funciona cuando lo ejecutamos en modo **root**. Esto es así por motivos de seguridad. | ||
+ | * El concepto de TCPDump es lo que se muestra en esta imagen, poner en una red un cliente que " | ||
+ | * En las redes switcheadas actuales podemos observar el tráfico de los clientes directamente conectados al switch. En las redes inalámbricas podemos observar el tráfico que fluye por todo el enlace inalámbrico. | ||
+ | * En nuestras máquinas enrutadoras cobra sentido ya que hay mucho tráfico. | ||
+ | * Utilizarlo nos hará ser consciente de lo importante que es cuidar la seguridad en nuestras comunicaciones. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ==== Manual y ejemplos==== | ||
+ | | ||
+ | # man tcpdump | ||
+ | | ||
+ | La mejor manera de entender tcpdump es ponerlo en práctica | ||
+ | |||
+ | |||
+ | Capturar tráfico cuya dirección IP de origen sea 10.228.130.1. | ||
+ | | ||
+ | # tcpdump -i wlan0 src host 10.228.130.1 FIXME | ||
+ | | ||
+ | | ||
+ | root@lateralus: | ||
+ | tcpdump: verbose output suppressed, use -v or -vv for full protocol decode | ||
+ | listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes | ||
+ | 14: | ||
+ | 14: | ||
+ | 14: | ||
+ | 14: | ||
+ | |||
+ | Capturar tráfico con destino a la dirección MAC 50: | ||
+ | | ||
+ | # tcpdump -i eth0 ether dst 50: | ||
+ | | ||
+ | Capturar tráfico con red destino 10.228.0.0 | ||
+ | | ||
+ | # tcpdump -i wlan0 dst net 10.228.0.0/ | ||
+ | | ||
+ | Capturar tráfico con puerto origen o destino el 53 (DNS) | ||
+ | | ||
+ | # tcpdump -i wlan0 port 53 | ||
+ | | ||
+ | Capturar los paquetes de tipo ICMP | ||
+ | | ||
+ | # tcpdump -i eth1 ip proto \\icmp | ||
+ | | ||
+ | Capturar los paquetes de tipo UDP | ||
+ | | ||
+ | # tcpdump -i tunnel0 ip proto \\udp | ||
+ | | ||
+ | Capturar todo el tráfico TCP excepto el de SSH | ||
+ | | ||
+ | # tcpdump -i tunnel0 ip proto \\tcp and not port 22 | ||
+ | | ||
+ | Capturar tráfico para examinarlo posteriormente con wireshark: | ||
+ | |||
+ | | ||
+ | # tcpdump -i < | ||
+ | | ||
+ | |||
+ | ===== Mikrotik. Packet sniffer ===== | ||
+ | |||
+ | Muy similar a la funcionalidad de tcpdump, aunque un tanto incómodo y menos potente. Nos permite analizar paquetes que pasan por el router y filtrar por interfaz, ip origen/ | ||
+ | |||
+ | #Para acceder: | ||
+ | /tool sniffer | ||
+ | | ||
+ | # arrancarlo | ||
+ | /tool sniffer start | ||
+ | | ||
+ | # pararlo | ||
+ | /tool sniffer stop | ||
+ | | ||
+ | # Examinar el tráfico | ||
+ | /tool sniffer packet print | ||
+ | # TIME INTERFACE SRC-ADDRESS | ||
+ | 0 0.001 bridge1 | ||
+ | 1 0.001 ether3 | ||
+ | 2 0.027 ether3 | ||
+ | 3 0.027 bridge1 | ||
+ | 4 0.027 wlan2 | ||
+ | ... | ||
+ | 17 0.043 ether3 | ||
+ | 18 0.043 bridge1 | ||
+ | 19 0.077 wlan2 | ||
+ | 20 0.077 bridge1 | ||
+ | 21 0.077 ether3 | ||
+ | 22 0.249 wlan2 | ||
+ | 23 0.249 bridge1 | ||
+ | |||
+ | La documentación de esta herramienta la podemos ver aquí: | ||
+ | |||
+ | http:// | ||
+ | | ||
+ | |||
+ | ===== Wireshark ===== | ||
+ | |||
+ | * [[http:// | ||
+ | |||
+ | Wireshark es, al igual que TCPDump, una herramienta de análisis del tráfico de red vía interfaz gráfica. Nos permite // | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Debemos ejecutar Wireshark como administrador ya que se necesita acceso a los dispositivos de red. La captura realizada se puede guardar para analizarla posteriormente. | ||
+ | |||
+ | La ventana de la aplicación tiene tres partes. La primera nos muestra los mensajes capturados, la segunda, para el mensaje que seleccionemos, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | Sobre una captura se pueden aplicar filtros para focalizarnos en algún tipo de tráfico. Hay filtros de captura (para limitar el tamaño de los datos recogidos) y filtros que se aplican sobre una captura ya realizada (si quitamos el filtro volveremos a ver todos los mensajes de la captura). | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Una utilidad interesante de Wireshark es //Follow tcp stream//. Con esta utilidad, si seleccionamos un mensaje de una conexión TCP, veremos los mensajes que se intercambian en los dos sentidos de esa conexión. El diálogo se ve con un color para interlocutor. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | El resultado: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | ===== ipcalc ===== | ||
+ | |||
+ | Aunque no se trata de una herramienta de monitorización, | ||
+ | |||
+ | ipcalc 10.228.130.3/ | ||
+ | |||
+ | devuelve | ||
+ | |||
+ | < | ||
+ | Address: | ||
+ | Netmask: | ||
+ | Wildcard: | ||
+ | => | ||
+ | Network: | ||
+ | HostMin: | ||
+ | HostMax: | ||
+ | Broadcast: 10.228.130.31 | ||
+ | Hosts/Net: 30 Class A, Private Internet | ||
+ | </ | ||
+ | |||
+ | ===== Netdiscover ===== | ||
+ | |||
+ | |||
+ | '' | ||
+ | |||
+ | netdiscover -i eth0 | ||
+ | |||
+ | busca ordenadores en la interfaz '' | ||
+ | |||
+ | netdiscover -i ath0 | ||
+ | |||
+ | busca ordenadores en la interfaz '' | ||
+ | |||
+ | netdiscover -i eth0 -r 150.128.2.0/ | ||
+ | |||
+ | busca ordenadores en la interfaz '' | ||
+ | |||
+ | netdiscover -p | ||
+ | |||
+ | busca ordenadores en modo pasivo, sólo «mira» la información que pasa por la red. | ||
+ | |||
+ | netdiscover -P | ||
+ | |||
+ | muestra la salida de forma que se pueda almacenar en un fichero. | ||
+ | | ||
+ | | ||
+ | ===== Traceroute/ | ||
+ | |||
+ | ==== ping ==== | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | Ping es una herramienta de diagnóstico que comprueba el estado de una conexión mandando y recibiendo paquetes ICMP. Útil para comprobar rápidamente el estado de la red, pero parco en datos. | ||
+ | |||
+ | Podemos utilizar un par de parámetros útiles (sólo para Linux): | ||
+ | | ||
+ | * -i time: podemos especificar el tiempo entre cada envío de trama ICMP. | ||
+ | * -t ttl: Especificamos el número máximo de hosts por los que puede pasar el paquete. | ||
+ | | ||
+ | Ejemplo: | ||
+ | | ||
+ | $ ping -i .2 -t 10 10.228.145.1 | ||
+ | | ||
+ | |||
+ | {{: | ||
+ | |||
+ | < | ||
+ | |||
+ | <note important> | ||
+ | |||
+ | En routers que tengan varias IPs asignadas puede ser necesario especificar la IP origen del ping porque si no sabemos la que se envía puede que no obtengamos contestación. Por ejemplo, si hacemos ping desde un punto donde tenemos una ip '' | ||
+ | |||
+ | $ ping -I 10.228.130.1 10.228.132.33 | ||
+ | |||
+ | ==== MTR === | ||
+ | Esta herramienta es la fusión de las dos anteriores, dándonos en un único comando lo mejor de **traceroute** y **ping**. | ||
+ | |||
+ | | ||
+ | boots> mtr 10.228.131.1 | ||
+ | HOST: boots | ||
+ | 1.|-- 10.228.144.189 | ||
+ | 2.|-- 172.16.1.78 | ||
+ | 3.|-- 172.16.1.189 | ||
+ | 4.|-- 172.16.107.69 | ||
+ | 5.|-- 10.228.131.1 | ||
+ | |||
+ | Al igual que con ping, si se quiere forzar la IP origen, se debe utilizar la opción '' | ||
+ | | ||
+ | |||
+ | ===== Pruebas de prestaciones ===== | ||
+ | |||
+ | Para realizar pruebas de velocidad de uno o varios enlaces se puede utilizar la utilidad '' | ||
+ | |||
+ | La forma más sencilla de ejecutarlo es la siguiente: En uno de los extremos se ejecuta '' | ||
+ | |||
+ | iperf -s | ||
+ | | ||
+ | en el otro extremo se ejecuta el test contra el servidor | ||
+ | |||
+ | iperf -c 10.228.134.212 | ||
+ | |||
+ | donde '' | ||
+ | |||
+ | En castello.guifi.net por ejemplo, hay un servidor iperf funcionando continuamente. De esta forma se pueden realizar tests de velocidad fácilmente | ||
+ | |||
+ | < | ||
+ | XM.v5.3# iperf -c 10.228.130.162 -P 5 | ||
+ | ------------------------------------------------------------ | ||
+ | Client connecting to 10.228.130.162, | ||
+ | TCP window size: 16.0 KByte (default) | ||
+ | ------------------------------------------------------------ | ||
+ | [ 5] local 10.228.170.3 port 2798 connected with 10.228.130.162 port 5001 | ||
+ | [ 7] local 10.228.170.3 port 2799 connected with 10.228.130.162 port 5001 | ||
+ | [ 10] local 10.228.170.3 port 2802 connected with 10.228.130.162 port 5001 | ||
+ | [ 8] local 10.228.170.3 port 2800 connected with 10.228.130.162 port 5001 | ||
+ | [ 9] local 10.228.170.3 port 2801 connected with 10.228.130.162 port 5001 | ||
+ | [ ID] Interval | ||
+ | [ 5] 0.0-10.0 sec 8.82 MBytes | ||
+ | [ ID] Interval | ||
+ | [ 7] 0.0-10.0 sec 8.97 MBytes | ||
+ | [ ID] Interval | ||
+ | [ 10] 0.0-10.0 sec 8.66 MBytes | ||
+ | [ ID] Interval | ||
+ | [ 8] 0.0-10.0 sec 8.88 MBytes | ||
+ | [ ID] Interval | ||
+ | [ 9] 0.0-10.0 sec 8.90 MBytes | ||
+ | [SUM] 0.0-10.0 sec 44.2 MBytes | ||
+ | </ | ||
+ | |||
+ | con la opción '' | ||
+ | |||
+ | Si se quiere realizar un test de velocidad entre dos dispositivos de ubiquity se puede utilizar el iperf tal y como se ha comentado anteriormente (entrando a los dispositivos por ssh), para ello deben tener IPs pertenecientes a la misma subred (o se debe poder llegar de una a la otra). La interfaz web del AirOs también dispone de una herramienta para medir la velocidad pero solo de otros dispositivos en la misma subred /* !!!! FIXME !!!! comprobar */ y se debe indicar el usuario y el password. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | También cabe la posibilidad de hacer una descarga utilizando wget: | ||
+ | |||
+ | |||
+ | < | ||
+ | mperez@coscoll: | ||
+ | |||
+ | --2011-07-07 15: | ||
+ | Resolviendo roure.act.uji.es... 150.128.97.53 | ||
+ | Connecting to roure.act.uji.es|150.128.97.53|: | ||
+ | Petición HTTP enviada, esperando respuesta... 200 OK | ||
+ | Longitud: 146276352 (140M) [text/ | ||
+ | Saving to: `v' | ||
+ | |||
+ | 100%[======================================> | ||
+ | |||
+ | 2011-07-07 15:41:48 (11,1 MB/s) - `v' saved [146276352/ | ||
+ | </ | ||
+ | |||
+ | Descarga el fichero | ||
+ | |||
+ | 2011-07-07 15:41:48 (11,1 MB/s) - `v' saved [146276352/ | ||
+ | |||
+ | También la orden scp se puede utilizar para averiguar la velocidad entre dos ordenadores (o nodos): | ||
+ | |||
+ | jlopez@coscoll: | ||
+ | f.tgz | ||
+ | |||
+ | descarga el fichero '' | ||
+ | |||
+ | Análogamente se puede realizar una transferencia del ordenador local a uno remoto mediante: | ||
+ | |||
+ | mperez@coscoll: | ||
+ | f.tgz | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | En RouterOS se puede utilizar | ||
+ | |||
+ | En uno de los mikrotiks se pone en marcha el servidor | ||
+ | |||
+ | /tool bandwidth-server set enables=yes | ||
+ | | ||
+ | y se prueba en el otro mediante | ||
+ | |||
+ | /tool bandwidth-test protocol=tcp address=10.228.145.1 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | /* Ampliación | ||
+ | ===== kismet (http:// | ||
+ | ===== Nagios, Cacti ===== */ |
public/guifinet/cursoinstaladoresguifi2011/monitorizacion/start.txt · Última modificación: por mperez