Azure VM cannot traceroute to Internet destination?
Hi Everyone,
Just wanted to check — has anyone experienced issues with traceroute not working on Azure VMs? We've tried it on Windows, Linux, and FortiGate on Azure, but it doesn't seem to work on any of them.
Does anyone know if there's an official Microsoft documentation explaining why traceroute is disabled on Azure? And is there a way to enable it or any workaround available?
Thanks!
-
Himanshu Shekhar 6,710 Reputation points • Microsoft External Staff • Moderator
The behavior you are observing is expected by design in Azure, and traceroute is not “disabled”, but the intermediate hops do not respond, which is normal in the Azure SDN (Software Defined Network) fabric.
From your screenshots:
ping 8.8.8.8 works (ICMP echo replies are received)
tracert 8.8.8.8 shows the first hop and the final destination but intermediate hops appear as * (Request timed out)
This is the same behavior on Windows, Linux, and FortiGate VMs
This is not a misconfiguration - it is how Azure’s networking fabric handles ICMP traffic.Traceroute relies on ICMP “TTL Exceeded” (Type 11) replies from intermediate routers.
Azure’s underlying network is software-defined, and intermediate hops (host nodes, load balancers, SDN appliances) do not send ICMP Time Exceeded responses.
Therefore, intermediate hops appear as *, but the packet still reaches the destination — exactly as you’re seeing (hop 11 = 8.8.8.8 reachable).
This is also why ping works while tracert shows missing hops.
Microsoft references -
- Azure ICMP behavior & traceroute limitations
- Azure Network Watcher – Connection Troubleshoot (recommended alternative to traceroute)
- Test connectivity with Azure Network Watcher
-
Himanshu Shekhar 6,710 Reputation points • Microsoft External Staff • Moderator
Just checking if provided response was helpful! please let me know if you have any queries.
Sign in to comment
2 answers
-
Andrew Taylor - COREZENN 980 Reputation points • Volunteer Moderator
Hi @SWiZ
Thank you for reaching out to Microsoft Q&A. I understand you are attempting to use
tracerton a Azure VM.There is no Azure-wide switch that simply turns on
tracertfor every VM. In Azure,tracertis typically limited byICMPbehavior on the path in use, and Microsoft documents two important constraints:- Default outbound access IPs do not support
ICMPpings, which is the sameICMPmechanismtracertrelies on: https://learn.microsoft.com/azure/virtual-network/ip-services/default-outbound-access - Azure Load Balancer outbound rules do not support
ICMPfor outboundNAT; they supportTCPandUDPonly: https://learn.microsoft.com/azure/load-balancer/outbound-rules#limitations
So, if traceroute appears to fail, the first thing to verify is whether your VM is using a path that permits
ICMPand whether the relevant NSG rule allows it. IfICMPis not viable in your design, use Azure Network Watcher connection troubleshoot orTCP/UDP-basedconnectivity tests instead: https://learn.microsoft.com/azure/network-watcher/connection-troubleshoot-overview
Please
Upvote(Thumbs-up) andAccept as answerif the response was helpful. This will be help other community members find relevant help as well.Best regards, Andrew S Taylor
- Default outbound access IPs do not support
-
Sina Salam 30,166 Reputation points • Volunteer Moderator
Hello SWiZ,
Welcome to the Microsoft Q&A and thank you for posting your questions here.
I understand that your Azure VM cannot traceroute to Internet destination.
Regarding your question. YES! Azure VM traceroute is unsupported and unreliable for Internet destination LIKE on-premises.
Internet traceroute from Azure VMs is not a reliable or supported way to diagnose Internet path hops. There is no Azure switch to enable full Internet traceroute for Windows, Linux, or FortiGate VMs. The behavior you experienced is expected because Azure outbound methods and Internet intermediate devices do not guarantee ICMP/TTL-expired responses, and some Azure outbound mechanisms do not support ICMP at all. NAT Gateway supports TCP/UDP only and does not support ICMP; default outbound access also does not support ICMP pings.
Therefore, use Network Watcher Connection Troubleshoot, Next Hop, NSG diagnostics/IP Flow Verify, packet capture, and TCP port tests against the real application port. If real TCP/UDP traffic succeeds, traceroute failure alone is not a network outage. So, change the diagnostic method, not by enabling traceroute.
I hope this is helpful! Do not hesitate to let me know if you have any other questions, steps or clarifications.
Please don't forget to close up the thread here by upvoting and accept it as an answer if it is helpful.
