Como obter traceroute no cygwin?

14

A implementação do traceroute (tracert) difere no Windows e no Unix. Eu queria comparar os dois com o Wireshark. Agora estou no Windows 7 e queria obter a implementação de traceroute do Unix rapidamente.

Minha primeira idéia foi obtê-lo usando MSYS ou Cygwin. Instalei o Cygwin com os pacotes "inetutils *" marcados, mas não há nenhum comando traceroute e o executável correspondente no /usr/bin/.

Eu também tentei procurar por "traceroute" com a pesquisa de pacotes Cygwin e encontrei essa substring na lista de arquivos "zsh". Eu instalei o zsh e tentei traceroutee tcptraceroutesem resultados.

Qual pacote devo verificar para a instalação do traceroute e existe algum traceroute para o Cygwin?

Kirill
fonte

Respostas:

14

Não existe traceroutenos pacotes Cygwin, porque tracertestá sempre disponível no Windows. Consulte https://cygwin.com/ml/cygwin/2005-12/msg00443.html para obter uma discussão sobre isso brevemente. Você pode tentar compilar um estilo Unix a traceroutepartir do código-fonte Cygwin.

Se você deseja comparar o estilo Windows com o estilo tracertUnix traceroute, recomendo executar tracerouteno Unix ou Linux, porque as pilhas de rede são diferentes; portanto, executar um estilo Unix tracerouteno Windows não oferece os mesmos traços de rede que o estilo tracerouteUnix no Unix.

Stephen Kitt
fonte
3
pingtambém existe no Windows, mas está disponível para o Cygwin :) De qualquer forma, obrigado pela sua resposta. Talvez eu tente compilar traceroutemanualmente o Cygwin.
Kirill
4
Ponto justo, e tracerouteoferece muito mais recursos do que tracert.
Stephen Kitt
4

Ok, como Stephen Kitt disse que não há binários traceroute prontos para usar no Cygwin. Por isso tentei compilá-lo eu mesmo.

Eu posso ver que existe um traceroute moderno, mas a partir da descrição a seguir, ele não pode ser usado com kernels antigos do Linux e, para mim, a compilação ficou presa na falta de "dccp.h" e desisti.

Consegui compilar a implementação antiga , mas funciona como se não pudesse exceder as respostas ICMP no TTL (existem asteriscos em vez de resultados):

1 * * *

2 * * *

Talvez exija algumas correções para funcionar no Cygwin e essa é a razão pela qual não há um pacote de traceroute para o Cygwin.

Verifiquei com o Wireshark e vi que ele usa pacotes de teste UDP e as respostas ICMP correspondentes são entregues corretamente. Quero notar que esse antigo traceroute funciona lentamente como o de Win tracert("consultando" os nós um por um). O traceroute moderno fornece resultados muito rapidamente.

Kirill
fonte
2

Consegui construir uma porta mtrno Cygwin32 usando as instruções:

https://github.com/traviscross/mtr/

MTR é uma ferramenta alternativa de traceroute de código aberto. Possui interface de texto GUI e Ncurses. Não é exatamente o traceroute clássico, mas eu gosto mais.

LatinSuD
fonte