Azure Network Watcher

Para la monitorización de recursos en Azure tenemos herramientas como:

                • Azure Monitor (métricas y alertas)

                • Azure Log Activity

                • Azure Log Analytics

Estas son herramientas genéricas de monitorización de recursos.

Para el caso concreto de recursos de red, tenemos Network Watcher, que nos permite hacer un análisis detallado del funcionamiento de las redes, subredes, grupos de seguridad, ..

Network Watcher es un servicio que tenemos que habilitar a nivel de cada región donde queramos usarlo.

Incluye un conjunto de herramientas de diagnóstico que nos pueden ser muy útiles al comprobar la funcionalidad de nuestras redes:

Para nuestros ejemplos vamos a utilizar la topología de la figura:

En la que tenemos una red virtual (VNET1) en la que hemos creado 2 subredes (Subnet1-1 y Subnet1-2) y en cada subred tenemos una máquina virtual para hacer pruebas de conectividad.

Hemos creado la infraestructura en una región en la que tenemos habilitado Network Watcher. Una de las primeras herramientas que podemos utilizar es Topology, donde nos muestra de forma gráfica la topología de nuestra red:

Si lo que queremos es monitorizar la conectividad, latencia y los cambios en la topología, podemos usar Connection Monitor. Cuando detecta un problema puede decirnos la causa y cómo solucionarlo. Veamos un ejemplo:

Por defecto comprobará la conectividad vía el puerto 22 desde la máquina VM1 a la maquina VM2 cada 60 segundos (se puede modificar en las opciones avanzadas). Si las pruebas tienen éxito, no aparecerá algo como esto:

En cambio, si falla la conectividad (por ejemplo, bloqueando el puerto 22 en el NSG), obtendremos este resultado:

Y nos muestra la causa de la falta de conectividad:

Otra herramienta que podemos usar para comprobar la conectividad es IP Flow Verify. A diferencia de Connection Monitor, IP Flow Verify no realizará pruebas de conexión de forma periódica, sino que se harán a demanda y nos permite comprobar si un paquete tiene permitido llegar a una determinada IP en base a la IP de origen/destino, puerto de origen/destino y protocolo TCP/UDP:

Realmente no comprueba la conectividad, sino si hay alguna regla de un NSG que pueda impedir el tráfico. En el siguiente ejemplo hacemos la comprobación de si nuestra máquina podría llegar al puerto 22 en la IP 8.8.8.8 y nos dice que sí podría llegar, aunque en esa IP no está abierto el puerto 22:

Si lo que queremos es comprobar la conectividad real, podemos usar Connection Troubleshoot, que usando los mismos parámetros que en IP Flow Verify, sí que tratará de llegar al puerto 22 de la IP 8.8.8.8:

Y vemos que no lo consigue porque el puerto de destino no está abierto.

Otra herramienta que nos puede ser útil para comprobar si las tablas de enrutamiento están correctamente configuradas es Next Hop. En el siguiente ejemplo nos dice la ruta que seguirá un paquete para llegar desde la máquina VM1 a la IP 8.8.8.8:

Y si necesitamos capturar un flujo de paquetes para hacer un diagnóstico de fallo detallado, podemos usar Packet Capture, donde podemos establecer filtros para acotar el tráfico que queremos capturar:

Podemos establecer un tiempo máximo de captura, bytes por cada paquete a capturar, número máximo de bytes por sesión y también podemos elegir si la captura la vamos a almacenar en una cuenta de almacenamiento o en un archivo. El archivo será en formato .cap y podríamos leerlo con una herramienta como Wireshark.