Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Created by
brew bump
Created with
brew bump-formula-pr
.release notes
See the Column Reference for a full list of all available columns.
Column Layout Improvement
The column layout algorithm used in the hop table has been improved to allow the maximum possible space for the
Host
column. The width of theHost
column is now calculated dynamically based on the terminal width and the set of columns currently configured.Calculate and Display Jitter
Trippy can now calculate and display a variety of measurements related to jitter for each hop. Jitter is a measurement of the difference in round trip time between consecutive probes. Specifically, the following new calculated values are available in Trippy
0.10.0
:These values are always calculated and are included in the
json
report. These may also be displayed as columns in the TUI, however they are not shown by default. To enabled these columns in the TUI, please see the Column Reference.Dublin Tracing Strategy for IPv6/UDP
The addition of support for the dublin tracing strategy for IPv6/UDP marks the completion of a multi-release journey to provide support for both Dublin and paris tracing strategies for both IPv4/UDP and IPv6/UDP.
As a reminder, unlike classic traceroute and MTR, these alternative tracing strategies do not encode the probe sequence number in either the src or dest port of the UDP packet, but instead use other protocol and address family specific techniques. Specifically, the Dublin tracing strategy for IPv6/UDP varies the length of the UDP payload for this purpose.
By doing so, these strategies are able to keep the src and dest ports fixed which makes it much more likely (though not guaranteed) that each round of tracing will follow the same path through the network (note that this is not true for the return path).
The following command runs an IPv6/UDP trace using the Dublin tracing strategy with fixed src and dest ports:
Note that, for both Paris and Dublin tracing strategies, if you fix either the src or dest ports (but not both) then Trippy will vary the unfixed port per round rather than per hop. This has the effect that all probes within a round will likely follow the same network path but probes between round will follow different paths. This can be useful in conjunction with flows (
f
key) to visualize the various paths packet flow through the network. See this issue for more details.With UDP support for the Paris and Dublin tracing strategies now complete, what remains is adding support for these for the TCP protocol. Refer to the ECMP tracking issue for details.
IPinfo GeoIp Provider
Trippy currently supports the ability to lookup and display GeoIp information from MMDB files, but prior to
0.10.0
only the MaxMind "GeoLite2 City" (and lite) MMDB files were supported. This release introduces support for the "IP to Country + ASN Database" and "IP to Geolocation Extended Database" MMDB files from IPinfo.The "IP to Country + ASN Database" MMDB file provided by IPinfo can be used as follows:
These settings can be made permanent by setting the following values in the
tui
section of the configuration file:Enhanced DNS Resolution with IPv4/IPv6 Fallback
When provided with a DNS name such as
example.com
Trippy tries to resolve it to an IPv4 or an IPv6 address and fails if no such IP exists for the configuredaddr-family
mode, which must be either IPv4 or IPv6.Starting from version
0.10.0
, Trippy can be configured to supportipv4-then-ipv6
andipv6-then-ipv4
modes foraddr-family
. In the newipv4-then-ipv6
mode Trippy will first attempt to resolve the given hostname to an IPv4 address and, if no such address exists, it will attempt to resolve to an IPv6 address and only fail if neither are available (and the opposite for the newipv6-then-ipv4
mode). Theaddr-family
mode may also be set to beipv4
oripv6
for IPv4 only and IPv6 only respectively.To set the
addr-family
to be IPv6 with fallback to IPv4 you can set the--addr-family
command line parameter:To make the change permanent you can set the
addr-family
value in thestrategy
section of the configuration file:Note that Trippy supports both the
addr-family
entry in the configuration file and also the--ipv4
(-4
) and--ipv6
(-6
) command line flags, all of which are optional. The command line flags (which are mutually exclusive) take precedence over the config file entry and if neither are provided there it defaults toipv4-then-ipv6
.Extended Colors in TUI
Trippy allows the theme to be customized and supports the named ANSI colors:
Black, Red, Green, Yellow, Blue, Magenta, Cyan, Gray, DarkGray, LightRed, LightGreen, LightYellow, LightBlue, LightMagenta, LightCyan, White
The
0.10.0
release adds support for CSS named colors (e.g. SkyBlue). Note that these are only supported on some platforms and terminals and may not render correctly elsewhere.See the Theme Reference
Simulation Testing
Manually testing all Trippy features in all modes and on all supported platforms is an increasingly time consuming and error prone activity. Since the last release a significant effort has been made to increase the testing coverage, including unit and integration testing.
In particular, the introduction of simulation testing allows for full end-to-end testing of all modes and features on Linux, macOS and Windows without the need to mock or stub any behaviour within Trippy.
This is achieved by creating a TUN device to simulate the behavior of network nodes, responding to various pre-configured scenarios like packet loss and out-of-order arrivals.
Whilst not a change that directly benefits end users, this new testing approach should reduce the effort needed to test each release of Trippy and help improve the overall reliability of the tool.
Note that the simulation testing is currently only supported for IPv4. See the Integration Testing tracking issue for more details.
Thanks
My thanks to all Trippy contributors, package maintainers and community members.
Feel free to drop by the Trippy Matrix room for a chat:
Happy Tracing!
Change Log
Added
IPv6/udp
(#272)mmdb
files (#862)IPv4->IPv6
andIPv6->IPv4
DNS fallback modes (#864)S
) and last dest port (P
) custom columns (#974)Q
) custom columns (#976)Changed
paris
anddublin
ECMP strategy are only used with supported protocols (#848)paris
anddublin
ECMP strategies (#1007)&mut
for all Socket operations (#843)Fixed
expand-hosts-max
Tui command (#892)icmp
TimeExceeded "Fragment reassembly time exceeded" packets (#979)icmp
packets forudp
andtcp
protocols (#982)IPv6
(#985)See CHANGELOG.md for details.
Full Changelog: fujiapple852/trippy@0.10.0...0.10.0