Estou configurando uma configuração de encaminhamento UDP para um balanceador de carga em uma rede privada no Azure com um colega. A tentativa de configuração foi mais ou menos assim:
- Há o servidor UDP de destino real em execução
172.16.2.2:5075
- O balanceador de carga UDP está em execução
172.16.1.1:5050
Portanto, criamos uma regra de encaminhamento simples do balanceador de carga com esse mapeamento.
No entanto, o servidor de destino não registrou nenhum tráfego que o atingiu. Então tentei solucionar o problema. Usando uma VM Ubuntu rodando na mesma rede, verifiquei se o balanceador de carga respondeu ao tráfego UDP executando
nc -zvu 172.16.1.1 5050
que relatou um sucesso. No entanto, 172.16.2.2
não parecia receber nada.
Então testei a máquina de destino diretamente (com nc -zvu 172.16.2.2 5075
) e ela registrou uma chamada sendo recebida.
Não consegui encontrar nenhuma opção, por exemplo, nc
para seguir o encaminhamento/redirecionamento UDP, etc. Então, para ver onde o tráfego foi interrompido, também tentei executar, por exemplo, tracepath -4 -p 5050 172.16.1.1
mas só vi uma lista de linhas "sem resposta".
Na verdade, meu colega conseguiu resolver esse problema específico (alterando a regra de encaminhamento de uma regra de balanceamento de carga para uma regra NAT de entrada no Azure), então não preciso mais de ajuda com isso.
Mas, para fins de aprendizado e solução de problemas futuros, adoraria saber como poderia solucionar esses problemas. Existe um comando (de preferência encontrado, por exemplo, na distribuição Ubuntu por padrão) ou uma combinação de comandos para ver o que falha na regra de encaminhamento de um balanceador de carga como esta e onde?
Mesmo que o problema neste caso fosse mais ou menos específico do Azure, eu estaria mais interessado em encontraruma maneira independente de nuvem para pelo menos ver até que ponto funciona uma cadeia de encaminhamento de tráfego UDP. Quanto mais detalhes puder fornecer sobre os possíveis motivos para não chegar ao destino final, melhor.
Editar:
Modifiquei um pouco o título e o texto para deixar mais claro. Estou procurando um comando (integrado) para usar e não, por exemplo, software proprietário para isso.