Recommended Tracing Settings
Trippy provides a variety of configurable features which can be used to perform different types of analysis. The choice of settings will depend on the analysis you wish to perform and the environment in which you are working. This guide lists some common options along with some basic guidance on when they might be appropriate.
ICMP
By default Trippy will run an ICMP trace to the target. This will typically produce a consistent path to the target (a single flow) for each round of tracing which makes it easy to read and analyse. This is a useful mode for general network troubleshooting.
However, many routers are configured to rate-limit ICMP traffic which can make it difficult to get an accurate picture of packet loss. In addition, ICMP traffic is not typically subject to ECMP routing and so may not reflect the path that would taken by other protocols such as UDP and TCP.
To run a simple ICMP trace:
Due to the rate-limiting of ICMP traffic, some people prefer to hide the Loss%
and Recv
columns in the Tui as
these are easy to misinterpret.
These settings can be made permanent by adding them to the Trippy configuration file:
UDP/Dublin with fixed ports
UDP tracing provides a more realistic view of the path taken by traffic that is subject to ECMP routing.
Setting a fixed target port in the range 33434-33534 may allow Trippy to determine that the probe has reached the target as many routers and firewalls are configured to allow UDP probes in that range and will respond with a Destination Unreachable response.
However, running a UDP trace with a fixed target port and a variable source port will typically result in different paths being followed for each probe within each round of tracing. This can make it difficult to interpret the output as different hosts will reply for a given hop (time-to-live) across rounds.
By using the dublin
ECMP strategy, which encodes the sequence number in the IP identifier
field, Trippy can fix both
the source and target ports, typically resulting in a single path for each probe within each round of tracing.
To run a UDP trace with fixed source and target ports using the dublin
ECMP strategy:
These settings can be made permanent by adding them to the Trippy configuration file:
UDP/Dublin with fixed target port and variable source port
As an extension to the above, if you do not fix the source port when using the dublin
ECMP strategy, Trippy will
vary the source port per round of tracing (i.e. each probe within a given round will share the same source port, and
the source port will vary for each round). This will typically result in the same path being followed for each probe
within a given round, but different paths being followed for each round.
These individual flows can be explored in the Trippy Tui by pressing the toggle-flows
key binding (f
key by
default).
Adding the columns Seq
, Sprt
and Dprt
to the Tui will show the sequence number, source port and destination port
respectively which makes this easier to visualize.
These settings can be made permanent by adding them to the Trippy configuration file:
To make the flows easier to visualize, you can generate a Graphviz DOT file report of all tracing flows:
UDP/Paris
UDP with the paris
ECMP strategy offers the same benefits as the dublin
strategy with fixed ports and can be used
in the same way.
They differ in the way they encode the sequence number in the probe. The dublin
strategy uses the IP identifier
field, whereas the paris
strategy uses the UDP checksum
field.
To run a UDP trace with fixed source and target ports using the paris
ECMP strategy:
The paris
strategy does not work behind NAT as the UDP checksum
field is typically modified by NAT devices.
Therefore the dublin
strategy is recommended when NAT is present.
TCP
TCP tracing is similar to UDP tracing in that it provides a more realistic view of the path taken by traffic that is subject to ECMP routing.
TCP tracing defaults to using a target port of 80 and sets the source port as the sequence number which will typically result in a different path being followed for each probe within each round of tracing.
To run a TCP trace:
TCP tracing is useful for diagnosing issues with TCP connections and higher layer protocols such as HTTP. Often UDP tracing can be used in place of TCP to diagnose IP layer network issues and, as it provides ways to control the path taken by the probes, it is often preferred.