Desktop traceroute map · Windows, macOS, Linux · v0.2.0-beta.5

See where your packets actually went.

Route Map is a free, open source visual traceroute for Windows, macOS and Linux. It runs the trace on your own computer and draws every hop on a world map: each router is placed by its operator's own hostname before any IP database is asked, every placement the round-trip time makes impossible is rejected, and each hop says where its location came from.

Also: Windows Installer Windows Zip macOS Apple silicon macOS Intel Linux Debian, Ubuntu (.deb) Linux Fedora, RHEL, openSUSE (.rpm) Linux AppImage Linux tar.gz. v0.2.0-beta.5, checksums and install steps.

Free and open source, AGPL-3.0 github.com/osintph/routemap

Route Map 0.2.0-beta.3 with a live trace from Manila to heise.de: great-circle lines through Stockholm and Frankfurt to Stuttgart, coloured by the round-trip time each step added; beside the map the AS path with RPKI badges, the countries crossed, a RIPE Atlas baseline, the RIS view and 48 hours of BGP updates; below, the hop table with ASN and RPKI, and the details of hop 7 in Stockholm

A live trace from Manila to heise.de with the built-in prober, origin set in Settings. The first six hops, the home network and the ISP, are shown with documentation addresses.

How it places a hop

Hostname first

Operators name routers after their sites: ffm-bb2-link.ip.twelve99.net is Arelion in Frankfurt, and sto, hnk, sng and prs are Stockholm, Hong Kong, Singapore and Paris. For backbone routers an IP database often knows only the country, or the place where the address block was registered. Route Map reads the names first, with CAIDA's Hoiho rules and a table of carrier site codes, and falls back to an IP database only when the name says nothing: DB-IP Lite on your machine, or RIPEstat online.

The hop table: hops 1 to 3 local and 4 to 6 the ISP; hops 7 to 9 placed by carrier site code in Stockholm and Frankfurt on Arelion's network, AS1299 with valid RPKI; hop 10 not placed; hops 11 to 15 placed by an IP database in France and Germany, AS1299 and AS12306

Checked against physics

Light in fibre covers about 200 km per millisecond, so each millisecond of round trip allows about 100 km: a hop that answers in 5 ms is within about 500 km, plus 300 km of slack for an approximate origin. Any placement farther than that is rejected, whatever its source, and the reason is shown. So is a database answer that would need a detour the round trip did not pay for.

The Unplaced panel for a live trace to www.spiegel.de: hop 9, link11-ic-369430.ip.twelve99-cust.net, location impossible for RTT: 10,744 km away but the round trip allows at most 3,054 km; hop 11 rejected the same way

The IP database puts hop 9 in France, 10,744 km from Manila. It answered in 27 ms, which allows at most 3,054 km, so the placement is rejected.

Nothing guessed, nothing dropped

Every hop carries its source, and a hop the database knows only to a country is drawn hollow. A hop that cannot be placed stays in the table and in the Unplaced panel, with the reason it is not on the map.

The Unplaced panel for a live trace to amazon.com: hop 6 and hops 12 to 30 did not answer, so there is nothing to locate

Beyond where the hops are

Beside the map: the networks your packets crossed (the AS path, from DB-IP Lite ASN on your machine) with an RPKI badge for each, the countries they went through, what RIPE's route collectors see for the destination prefix, its BGP activity over the last 48 hours, and a typical latency for the same trip from RIPE Atlas anchors. Lines follow the great circle and warm with the round-trip time each step added; switch to the globe to see the path as the packets flew it. Trace again and the app compares the two runs.

The same route on the globe, centred on the path from Manila to Frankfurt, with the RTT chart and hop 7's details beside it
Globe, centred on the route; drag to turn it.
Today's live run compared with the run of 3 October: the earlier path through Hong Kong, Singapore, Marseille and Paris faint and dashed, and the summary saying the route now goes through Stockholm
Trace again and compare: two days later the route went through Stockholm instead of Hong Kong, Singapore, Marseille and Paris.

No submarine cables or exchange points yet: the cable data is sold under licence, and PeeringDB's terms do not allow bundling its list. The FAQ has the details.

On your machine, with your tools

The trace runs on your computer with its own tracert, traceroute or mtr, and the status bar says which, with which flags, and which lookups answered. Hops appear on the map and in the table as the trace runs; click a marker to find its rows, or a row to find its marker. Paste a trace someone else ran, say where it came from, and it is mapped the same way. Export a PNG map, the full trace as JSON, or a PDF report with every hop, its source and the raw tool output, from the window or the command line. The same engine powers the Route Map tab in OSINTPH's FalconEye.

The status bar: origin Manila, NCR, PH, set in Settings; the built-in prober's settings icmp -m 30 -q 3 -w 1; and checks for the trace, PTR, Hoiho and the IP database

The source labels

hoiho
A CAIDA Hoiho rule for that operator matched the hostname and names the city.
site-code
The hostname carries a carrier's own site code, from the bundled table.
ip-db
An IP database placed it, DB-IP Lite on your machine or RIPEstat online (the label says which): a hint, since backbone addresses often sit where the prefix was registered.
ip-db, country only
Only the country is known; hollow marker, kept out of the map's fit.
local
Your network or your ISP's carrier NAT; never looked up anywhere.

What leaves your machine

WhatToWhen
Public router hostnamesCAIDA Hoihoeach trace, unless switched off; cached 30 days
Public hop addresses DB-IP Lite does not placeRIPEstateach trace, unless switched off; cached 30 days
Public addresses, prefixes and AS numbers, for route detailsRIPEstatafter each trace, unless Online lookups are off
Two country codes and an anchor nameRIPE Atlasafter each trace, for the typical latency; public data
A download requestDB-IPonly when you choose to download DB-IP Lite
Reverse DNS queriesyour own resolverfor public hops without a name
Your public IPRIPEstatonly while no origin is set in Settings
Target, key, your network's ASRIPE Atlasonly for an Atlas trace, with your own key; public

No account, no telemetry, no automatic update check. One switch, Online lookups, turns every lookup off. Private, CGNAT and reserved addresses are never looked up. The full list: privacy.

Support the project

Route Map is free. Donations pay for code signing, hosting, the RIPE Atlas probe, and maintenance time.

Ko-fi PayPal Bitcoin and Monero