Blog Post

Windows 11: Run a better traceroute

Published
June 13, 2024
#
 mins read
By 

in this blog post

This is a follow-up to two previously published posts on Pietrasanta Traceroute, Catchpoint’s traceroute alternative. Check out the first for technical details about how it works and the second to understand how it solves firewall and path challenges inherent in existing traceroutes.

We’re continually looking for ways to respond to the evolving demands of the Internet to create the most useful network (& general IPM) monitoring capabilities. Last year, we were excited to release Pietrasanta Traceroute in the Catchpoint portal (for full slicing & dicing of data) and for the community as an open-source tool.  

Traceroute is one of the oldest network diagnostic tools. It was first built to answer the thorny question, where are the packets going? However, various challenges introduced by firewalls and load balancers have made the original traceroute less useful and reliable than it once was. Our crafty network engineers (who are based in Pietrasanta – we followed the convention of naming our traceroute after the place where it was developed) built our own traceroute in-house to introduce new monitoring capabilities and attempt to overcome these challenges.  

We initially released Pietrasanta Traceroute for Linux (indeed, it’s based on Dmitry Butskoy’s Linux Traceroute), but now with Windows Subsystem for Linux (WSL), you can also use it on Windows systems! WSL enables running Linux applications natively on Windows, eliminating the need for a virtual machine or dual-boot setup. This blog explains how you can install Pietrasanta Traceroute on Windows 11 using WSL and Ubuntu 22.

But first, why should you install Pietrasanta Traceroute?

Why use Pietrasanta Traceroute instead of classic tracert

There are multiple reasons to install Pietrasanta Traceroute. Here are the leading ones:

  • Speed! Tracert is notoriously slow. Pietrasanta Traceroute obtains traceroute results as quickly as possible.
  • Run UDP, TCP and QUIC traceroutes for clearer path identification. Tracert is only on ICMP.
  • Run a TCP InSession Traceroute to simulate application packet traffic and prevent false packet loss.
  • Assess ECN and L4S for levels of congestion and throughput analysis, including ECN bleaching detection to determine if your network is ready for L4S. This is not possible on tracert.

+ And many more capabilities (including path MTU performance improvements and reporting ToS/DSCP hop by hop)...  

Learn more and access the code directly on GitHub: https://github.com/catchpoint/Networking.traceroute/

Please share your feedback – we’re eager to hear from you!  

How to install WSL and Ubuntu 22

Step 1 To start, we will need to enable the Virtual Machine Platform module and Windows Subsystem for Linux feature. Open up your Start menu and locate the Turn Windows features on or off menu.

Step 2 Next, find the Virtual Machine Platform and Windows Subsystem for Linux options. Check both of these boxes and then press OK to enable these features.

Step 3 Windows will make the desired changes, which may take a minute or two, then it will ask you to restart your system for the changes to take effect. Proceed with the reboot.

Step 4 Download and update the WSL 2 Linux Kernel:

A screenshot of a computerDescription automatically generated
  • Install the downloaded MSI package.

A screenshot of a computerDescription automatically generated

Step 5 Set WSL 2 as the default version:

  • In PowerShell as Administrator, enter: wsl --set-default-version 2  
A screen shot of a computerDescription automatically generated

Step 6 Get Ubuntu 22 from the Microsoft Store:

  • Open the Microsoft Store app and search for "Ubuntu 22.04 LTS."  
A screenshot of a computerDescription automatically generated
  • Download and install the Ubuntu 22.04 app.  

Step 7 Complete Ubuntu 22 setup:

  • Launch the installed Ubuntu 22 app and create a username and password for your Linux account.  
A screenshot of a computerDescription automatically generated
  • Congratulations, you have successfully installed WSL and Ubuntu 22 on your Windows 11 device! You can now use the terminal window to run Linux commands and applications.

How to install Catchpoint’s Pietrasanta Traceroute on Ubuntu 22

Once Ubuntu 22 is set up within WSL on your Windows 11 device, follow these steps to install and utilize the Pietrasanta Traceroute program:

  1. Download and make the program executable:
    • Open the terminal window within Ubuntu 22.
    • Run:

curl https://raw.githubusercontent.com/catchpoint/Networking.traceroute/main/binaries/ubuntu22/traceroute > ./cp_traceroute  

  • Make the downloaded binary file executable:

chmod +x ./cp_traceroute  

Note: To execute all traceroute modes without requiring sudo or root access, we recommend running the following command:

Command: sudo setcap cap_net_raw+ep ./cp_traceroute  

Run Catchpoint’s Pietrasanta Traceroute for advanced network analysis

As discussed, Catchpoint offers a variety of traceroute enhancements that extend beyond traditional traceroute functionalities. Each of these different enhancements serves a specific purpose in network diagnostics and analysis. Let's break down what each command does and how it can be helpful:  

UDP Traceroute:

  • Command: ./cp_traceroute <target>
  • Purpose: UDP traceroute typically utilizes UDP packets with incremental TTL values, not dependent on specific ports. It sends UDP packets incrementally increasing port numbers at each hop. It's instrumental in diagnosing connectivity issues, revealing the route traversed by UDP traffic across various routers, aiding in understanding potential bottlenecks or disruptions.
A screenshot of a computerDescription automatically generated

TCP Traceroute:

  • Command: ./cp_traceroute -T <target>
  • Purpose: TCP traceroute employs TCP packets and generally operates by sending SYN packets to port 80. It's invaluable for pinpointing the path and latency encountered by TCP traffic, essential for troubleshooting TCP service-related connection problems.  
A screenshot of a computerDescription automatically generated

TCP InSession:

  • Command: ./cp_traceroute --tcpinsession <target>

Purpose: Differently to the classic TCP traceroute, where each traceroute packet is a SYN packet, TCP InSession first establishes a TCP connection with the destination, then it sends 1-byte data packets within the opened session with incremental TTL, until the destination is reached. In order to not bother the destination application, it inserts a gap into the stream of sequence numbers, with the aim of avoiding any data that is delivered to the application level (since it is incomplete).  

The main advantages of TCP InSession are:

  • (1) Each traceroute does not risk being seen as a SYN flood attack and therefore being filtered by firewall protection rules, because only one SYN is sent per traceroute
  • (2) Probes are more likely to cross the same IP-level path, because they belong to the same TCP session, and thus load balancers are more likely to treat them equally.  

Ona drawback of TCP InSession, however, is that it requires an application to listen into the destination port, in order for the TCP session to be established.

QUIC Traceroute:

  • Command: ./cp_traceroute --quic <target>
  • Purpose: QUIC is a modern protocol that is used to run more and more of the Internet (specifically the World Wide Web). Although it’s based on UDP, it provides mechanisms such as connection establishment, congestion control, and encryption. For instance, HTTP/3 utilizes QUIC as its transport layer.  

During traceroute, the probes sent correspond to QUIC Initial packets, instrumental in the initial handshake phase as mandated by the QUIC protocol.  

The primary objective of a QUIC traceroute is to unveil the route taken by these QUIC initial packets and ascertain the destination's support for QUIC. Given the default target port of 443 (HTTPS), this type of traceroute is also beneficial for determining the likelihood of whether the destination will support HTTP/3.  

A screenshot of a computer programDescription automatically generated

ECN / L4S Analysis:

  • Purpose: ECN (Explicit Congestion Notification) and L4S (Low Latency, Low Loss, Scalable throughput) analysis typically operates at the transport layer without specific dedicated ports for their functionality. They are part of the TCP/IP protocol suite and don't rely on separate ports for their analysis functions. Analysing ECN with TCP or QUIC assists in identifying congestion issues and exploring advancements like L4S, aiming to refine network performance and congestion management.  

Classic ECN with TCP:

  • Command: ./cp_traceroute -T --ecn=1 -O info <target>  
A screenshot of a computerDescription automatically generated

AccECN (L4S) with TCP:

  • Command: ./cp_traceroute -T --ecn=1 -O info -O acc-ecn <target>  

ECN over QUIC:

  • Command: ./cp_traceroute --ecn=1 --quic <target>  

Congratulations!

You have now successfully installed WSL, Ubuntu 22, and the Catchpoint Pietrasanta Traceroute program on your Windows 11 device. Don’t forget you can also do it on Linux!  

If you want to gain the ability to run multiple Pietrasanta Traceroutes around the world from the world’s largest global observability network, talk to us about booking a demo!

Good tracerouting!

Further Resources

To try out the Pietrasanta Traceroute program, visit our GitHub page at: https://github.com/catchpoint/Pietrasanta-traceroute

To learn about Pietrasanta Traceroute from Catchpoint’s Luca Sani, Staff Engineer, watch his presentation at RIPE 87, Rome 2023: https://ripe87.ripe.net/archives/video/1171/  

To learn more about detecting ECN bleaching with Pietrasanta Traceroute from Luca, watch his presentation at RIPE 88, Krakow 2024: https://ripe88.ripe.net/archives/video/1298/  

To understand the technical details of how TCP InSession enhancement works, read our blog: https://www.catchpoint.com/blog/traceroute-insession-catchpoints-effort-towards-a-more-reliable-network-diagnostic-tool

To understand more about Traceroute InSession, read our blog: https://www.catchpoint.com/blog/traceroute-insession-a-traceroute-tool-for-modern-networks

This is a follow-up to two previously published posts on Pietrasanta Traceroute, Catchpoint’s traceroute alternative. Check out the first for technical details about how it works and the second to understand how it solves firewall and path challenges inherent in existing traceroutes.

We’re continually looking for ways to respond to the evolving demands of the Internet to create the most useful network (& general IPM) monitoring capabilities. Last year, we were excited to release Pietrasanta Traceroute in the Catchpoint portal (for full slicing & dicing of data) and for the community as an open-source tool.  

Traceroute is one of the oldest network diagnostic tools. It was first built to answer the thorny question, where are the packets going? However, various challenges introduced by firewalls and load balancers have made the original traceroute less useful and reliable than it once was. Our crafty network engineers (who are based in Pietrasanta – we followed the convention of naming our traceroute after the place where it was developed) built our own traceroute in-house to introduce new monitoring capabilities and attempt to overcome these challenges.  

We initially released Pietrasanta Traceroute for Linux (indeed, it’s based on Dmitry Butskoy’s Linux Traceroute), but now with Windows Subsystem for Linux (WSL), you can also use it on Windows systems! WSL enables running Linux applications natively on Windows, eliminating the need for a virtual machine or dual-boot setup. This blog explains how you can install Pietrasanta Traceroute on Windows 11 using WSL and Ubuntu 22.

But first, why should you install Pietrasanta Traceroute?

Why use Pietrasanta Traceroute instead of classic tracert

There are multiple reasons to install Pietrasanta Traceroute. Here are the leading ones:

  • Speed! Tracert is notoriously slow. Pietrasanta Traceroute obtains traceroute results as quickly as possible.
  • Run UDP, TCP and QUIC traceroutes for clearer path identification. Tracert is only on ICMP.
  • Run a TCP InSession Traceroute to simulate application packet traffic and prevent false packet loss.
  • Assess ECN and L4S for levels of congestion and throughput analysis, including ECN bleaching detection to determine if your network is ready for L4S. This is not possible on tracert.

+ And many more capabilities (including path MTU performance improvements and reporting ToS/DSCP hop by hop)...  

Learn more and access the code directly on GitHub: https://github.com/catchpoint/Networking.traceroute/

Please share your feedback – we’re eager to hear from you!  

How to install WSL and Ubuntu 22

Step 1 To start, we will need to enable the Virtual Machine Platform module and Windows Subsystem for Linux feature. Open up your Start menu and locate the Turn Windows features on or off menu.

Step 2 Next, find the Virtual Machine Platform and Windows Subsystem for Linux options. Check both of these boxes and then press OK to enable these features.

Step 3 Windows will make the desired changes, which may take a minute or two, then it will ask you to restart your system for the changes to take effect. Proceed with the reboot.

Step 4 Download and update the WSL 2 Linux Kernel:

A screenshot of a computerDescription automatically generated
  • Install the downloaded MSI package.

A screenshot of a computerDescription automatically generated

Step 5 Set WSL 2 as the default version:

  • In PowerShell as Administrator, enter: wsl --set-default-version 2  
A screen shot of a computerDescription automatically generated

Step 6 Get Ubuntu 22 from the Microsoft Store:

  • Open the Microsoft Store app and search for "Ubuntu 22.04 LTS."  
A screenshot of a computerDescription automatically generated
  • Download and install the Ubuntu 22.04 app.  

Step 7 Complete Ubuntu 22 setup:

  • Launch the installed Ubuntu 22 app and create a username and password for your Linux account.  
A screenshot of a computerDescription automatically generated
  • Congratulations, you have successfully installed WSL and Ubuntu 22 on your Windows 11 device! You can now use the terminal window to run Linux commands and applications.

How to install Catchpoint’s Pietrasanta Traceroute on Ubuntu 22

Once Ubuntu 22 is set up within WSL on your Windows 11 device, follow these steps to install and utilize the Pietrasanta Traceroute program:

  1. Download and make the program executable:
    • Open the terminal window within Ubuntu 22.
    • Run:

curl https://raw.githubusercontent.com/catchpoint/Networking.traceroute/main/binaries/ubuntu22/traceroute > ./cp_traceroute  

  • Make the downloaded binary file executable:

chmod +x ./cp_traceroute  

Note: To execute all traceroute modes without requiring sudo or root access, we recommend running the following command:

Command: sudo setcap cap_net_raw+ep ./cp_traceroute  

Run Catchpoint’s Pietrasanta Traceroute for advanced network analysis

As discussed, Catchpoint offers a variety of traceroute enhancements that extend beyond traditional traceroute functionalities. Each of these different enhancements serves a specific purpose in network diagnostics and analysis. Let's break down what each command does and how it can be helpful:  

UDP Traceroute:

  • Command: ./cp_traceroute <target>
  • Purpose: UDP traceroute typically utilizes UDP packets with incremental TTL values, not dependent on specific ports. It sends UDP packets incrementally increasing port numbers at each hop. It's instrumental in diagnosing connectivity issues, revealing the route traversed by UDP traffic across various routers, aiding in understanding potential bottlenecks or disruptions.
A screenshot of a computerDescription automatically generated

TCP Traceroute:

  • Command: ./cp_traceroute -T <target>
  • Purpose: TCP traceroute employs TCP packets and generally operates by sending SYN packets to port 80. It's invaluable for pinpointing the path and latency encountered by TCP traffic, essential for troubleshooting TCP service-related connection problems.  
A screenshot of a computerDescription automatically generated

TCP InSession:

  • Command: ./cp_traceroute --tcpinsession <target>

Purpose: Differently to the classic TCP traceroute, where each traceroute packet is a SYN packet, TCP InSession first establishes a TCP connection with the destination, then it sends 1-byte data packets within the opened session with incremental TTL, until the destination is reached. In order to not bother the destination application, it inserts a gap into the stream of sequence numbers, with the aim of avoiding any data that is delivered to the application level (since it is incomplete).  

The main advantages of TCP InSession are:

  • (1) Each traceroute does not risk being seen as a SYN flood attack and therefore being filtered by firewall protection rules, because only one SYN is sent per traceroute
  • (2) Probes are more likely to cross the same IP-level path, because they belong to the same TCP session, and thus load balancers are more likely to treat them equally.  

Ona drawback of TCP InSession, however, is that it requires an application to listen into the destination port, in order for the TCP session to be established.

QUIC Traceroute:

  • Command: ./cp_traceroute --quic <target>
  • Purpose: QUIC is a modern protocol that is used to run more and more of the Internet (specifically the World Wide Web). Although it’s based on UDP, it provides mechanisms such as connection establishment, congestion control, and encryption. For instance, HTTP/3 utilizes QUIC as its transport layer.  

During traceroute, the probes sent correspond to QUIC Initial packets, instrumental in the initial handshake phase as mandated by the QUIC protocol.  

The primary objective of a QUIC traceroute is to unveil the route taken by these QUIC initial packets and ascertain the destination's support for QUIC. Given the default target port of 443 (HTTPS), this type of traceroute is also beneficial for determining the likelihood of whether the destination will support HTTP/3.  

A screenshot of a computer programDescription automatically generated

ECN / L4S Analysis:

  • Purpose: ECN (Explicit Congestion Notification) and L4S (Low Latency, Low Loss, Scalable throughput) analysis typically operates at the transport layer without specific dedicated ports for their functionality. They are part of the TCP/IP protocol suite and don't rely on separate ports for their analysis functions. Analysing ECN with TCP or QUIC assists in identifying congestion issues and exploring advancements like L4S, aiming to refine network performance and congestion management.  

Classic ECN with TCP:

  • Command: ./cp_traceroute -T --ecn=1 -O info <target>  
A screenshot of a computerDescription automatically generated

AccECN (L4S) with TCP:

  • Command: ./cp_traceroute -T --ecn=1 -O info -O acc-ecn <target>  

ECN over QUIC:

  • Command: ./cp_traceroute --ecn=1 --quic <target>  

Congratulations!

You have now successfully installed WSL, Ubuntu 22, and the Catchpoint Pietrasanta Traceroute program on your Windows 11 device. Don’t forget you can also do it on Linux!  

If you want to gain the ability to run multiple Pietrasanta Traceroutes around the world from the world’s largest global observability network, talk to us about booking a demo!

Good tracerouting!

Further Resources

To try out the Pietrasanta Traceroute program, visit our GitHub page at: https://github.com/catchpoint/Pietrasanta-traceroute

To learn about Pietrasanta Traceroute from Catchpoint’s Luca Sani, Staff Engineer, watch his presentation at RIPE 87, Rome 2023: https://ripe87.ripe.net/archives/video/1171/  

To learn more about detecting ECN bleaching with Pietrasanta Traceroute from Luca, watch his presentation at RIPE 88, Krakow 2024: https://ripe88.ripe.net/archives/video/1298/  

To understand the technical details of how TCP InSession enhancement works, read our blog: https://www.catchpoint.com/blog/traceroute-insession-catchpoints-effort-towards-a-more-reliable-network-diagnostic-tool

To understand more about Traceroute InSession, read our blog: https://www.catchpoint.com/blog/traceroute-insession-a-traceroute-tool-for-modern-networks

This is some text inside of a div block.

You might also like

Blog post

Catchpoint Expands Observability Network to Barcelona: A Growing Internet Hub

Blog post

Learnings from ServiceNow’s Proactive Response to a Network Breakdown

Blog post

Don’t get caught in the dark: Lessons from a Lumen & AWS micro-outage