He estado configurando una configuración de reenvío UDP a un equilibrador de carga en una red privada en Azure con un colega. El intento de configuración fue algo como esto:
- Está el servidor UDP de destino real ejecutándose
172.16.2.2:5075
- El equilibrador de carga UDP se está ejecutando
172.16.1.1:5050
Entonces creamos una regla de reenvío simple desde el balanceador de carga con dicho mapeo.
Sin embargo, el servidor de destino no registró ningún tráfico que llegara a él. Así que intenté solucionar el problema. Usando una máquina virtual Ubuntu ejecutándose en la misma red, verifiqué que el balanceador de carga respondiera al tráfico UDP ejecutando
nc -zvu 172.16.1.1 5050
que reportó un éxito. Sin embargo, 172.16.2.2
no pareció recibir nada.
Entonces probé la máquina de destino directamente (con nc -zvu 172.16.2.2 5075
) y registró la recepción de una llamada.
No pude encontrar ninguna opción, por ejemplo, nc
para seguir el reenvío/redireccionamiento UDP, etc. Entonces, para ver dónde se perdió el tráfico, también intenté ejecutar, por ejemplo, tracepath -4 -p 5050 172.16.1.1
pero solo vi una lista de líneas "sin respuesta".
De hecho, mi colega logró resolver este problema en particular (cambiando la regla de reenvío de una regla de equilibrio de carga a una regla NAT entrante en Azure), por lo que ya no necesito ayuda con eso.
Pero para fines de aprendizaje y resolución de problemas futuros, me encantaría saber cómo puedo solucionar dichos problemas. ¿Existe un comando (preferiblemente uno que se encuentre, por ejemplo, en la distribución Ubuntu de forma predeterminada) o una combinación de comandos para ver qué falla en la regla de reenvío de un balanceador de carga como esta y dónde?
Incluso si el problema en este caso fuera más o menos específico de Azure, estaría más interesado en encontraruna forma independiente de la nube para al menos ver hasta qué punto funciona una cadena de reenvío de tráfico UDP. Cuantos más detalles pueda dar sobre los posibles motivos de no llegar al destino final, mejor.
Editar:
Modifiqué un poco el título y el texto para que quede más claro. Estoy buscando un comando (integrado) para usar y no, por ejemplo, software propietario para esto.