2017-03-16 5 views
1

Ich habe eine Linux Azure VM erstellt. Und ich möchte Traceroutes davon an meine IP-Adresse senden. Traceroute läuft jedoch auf jedem Hop aus. Ich habe die VM so konfiguriert, dass sie eine öffentliche statische IP-Adresse hat. Und eingehende und ausgehende Regeln für alle Ports zu haben.Ist es möglich, Traceroutes von Linux Azure VM zu senden?

Weiß jemand, was noch konfiguriert werden muss, um eine Traceroute erfolgreich zu senden?

Eine interessante Tatsache ist, dass traceroutes von Windows Server Azure VM, aber nicht von Linux Ubuntu 16.04.

Die VM hat in beiden Fällen eine statische IP-Adresse: Linux und Windows.

Noch ein Detail: Auf Windows Azure VM erste 5 Hops nicht antworten, aber andere tun. Auf der Linux Azure-VM antwortet jeder Hop nicht.

Antwort

1

Weil tracert und traceroute auf verschiedene Arten arbeiten.
In Windows, tracert basiert auf ICMP, können wir Tracert verwenden, um die Verbindung von Azure VM nach außen zu testen.
In Linux basiert traceroute standardmäßig auf UDP. wir können einen Parameter hinzufügen, um Traceroute an ICMP zu arbeiten, aber in meinem Test, selbst wenn traceroute in ICMP arbeitet, ist es verschieden von tracert.

[email protected]:~# traceroute -I 8.8.8.8 
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets 
1 * * * 
2 * * * 
3 * * * 
4 * * * 
5 * * * 
6 * * * 
7 * * * 
8 * * * 
9 * * * 
10 * * * 
11 google-public-dns-a.google.com (8.8.8.8) 1.599 ms 1.593 ms 1.783 ms 

Als Abhilfe können wir andere Werkzeuge verwenden, um die Verbindung zu testen, zum Beispiel, sind tracepath

+0

Danke Jason. Tracepath gibt wirklich ein Ergebnis. Ja, zuerst haben mehrere Hops keine Antwort, aber das entspricht dem Verhalten von Windows Azure VM. –

+0

Ich frage mich, ob Sie eine Erklärung haben, warum das übliche Traceroute nicht funktioniert (alle Hops antworten nicht). –

+0

@MaksymBondarenko Es scheint, dass einer der Router 'Typ 11 (TTL-abgelaufen)' blockiert, so dass wir nicht die Mitte des Routers finden können, aber sehen können, dass das Paket das endgültige Ziel erreicht. –

1

Jason Ye - MSFT ‚s Informationen korrekt, aber seine Antwort Ihre Frage nicht wirklich beantworten.

Traceroue funktioniert nicht auf Azure seit Azure, standardmäßig blocks all ICMP traffic. Da traceroute durch den Empfang eines ICMP-Pakets (ICMP Time to Live abgelaufen) von jedem Hop Hops identifiziert, werden keine Hops angezeigt.

Dies ist der gleiche Grund, warum Ping nicht vom Internet zu den Computern in Azure funktioniert.

Um das zu umgehen, können Sie give your VM an instance IP address.

+0

Danke Malz! Ich habe vergessen zu bemerken, dass statische IP tatsächlich Azure Linux und Windows VM zugewiesen wurde. Ohne statische IP funktionieren Tracerouten nicht einmal unter Windows. Es ist immer noch nicht klar, warum der Befehl traceroute bei jedem von Linux gesendeten Sprung ausläuft. Ich endete mit Scamper von CAIDA: https://www.caida.org/tools/measurement/scamper/. Scamper funktioniert gut. –

Verwandte Themen