How did I get here?(how-did-i-get-here.net)
329 points byzachlatta1 day ago |23 comments
lwouis20 minutes ago
The text bellow the traceroute was wonderful to read. The tone of voice was very pleasant. Thank you for making this joyous educational website~
advisedwang1 day ago
> This reverse traceroute is still helpful. The paths will be roughly the same, likely differing only in terms of which specific routers see your packet.

This is categorically incorrect. While the AS path is often the same, the actual peering points are almost always quite different. Most ASes use hot-potato routing - getting packets to the next AS at the closest peering point to the source of the traffic. (And even if cold-potato routing is used, that's still asymmetric). In addition if there are two options with the same AS-path-length hot-potato routing can lead to different AS paths. This can happen if there's two mutual transit providers between source and destination and various other situations.

(EDIT: fixed hot/cold mixup)

archmaster1 day ago
Anecdotally, I've run a bunch of traceroutes and reverse traceroutes to different locations and they tend to follow the same AS paths — although sometimes the traceroute will surface more routing through your ISP (especially from college networks). In general you are correct, though, and I would love to explain more about hot-potato vs. cold-potato (and other interesting routing decisions) in the future. Either way, the results the reverse traceroute provides are good enough for the purposes of explaining the internet, IMO!
immibis1 day ago
FYI what you described is hot-potato routing: each AS gets rid of it as soon as possible.

You may think this is unfair, and yes, it is, but it's also quite logical when you consider you don't know where the packet is going in the destination AS. If you have a network spanning Berlin and Hamburg and the packet is going to a different network that also spans Berlin and Hamburg, and you interconnect at both points, and you don't know which city it's actually going to, handing it off at the closest interconnect doesn't risk round-tripping it for no good reason.

toast03 hours ago
> You may think this is unfair, and yes, it is

I'm interested in your definition of fairness that makes hot potato routing unfair.

In my mind, hot potato is fair, every packet gets treated the same, and (mostly) every provider does the same thing.

> it's also quite logical when you consider you don't know where the packet is going in the destination AS. If you have a network spanning Berlin and Hamburg and the packet is going to a different network that also spans Berlin and Hamburg, and you interconnect at both points, and you don't know which city it's actually going to, handing it off at the closest interconnect doesn't risk round-tripping it for no good reason.

There are ways to help with this, BGP MED (multi-exit discriminator) or path extention can help guide towards the best place to deliver traffic. But especially for last mile traffic, you do want it on the destination network sooner than later; if traffic is genetated in Berlin, and the ultimate destination is Hannover and the Hannover endpoint is connected to both Berlin and Hamburg on the destination network, delivering at Berlin provides a better experience than delivering to Hamburg, even though Hamburg is closer to Hannover, because the transit to Hamburg was unnecessary. And if the destination is only connected to Hamburg, delivering in Berlin works about the same as delivering in Hamburg (depending on capacity and use from Berlin to Hamburg on both networks).

There's certainly situations where having options would be nice, but having options makes things complex, so typical users can't really influence routing. If you have v4 and v6, you may find that routing differs between the two and that does give you a bit of a choice.

advisedwang1 day ago
ha yes thank you. I worked for a AS that mostly did cold-potato routing so grabbed the wrong term trying to describe the common case.
FredPret1 day ago
> "You may have noticed that the traceroute progressively loads in lines above the bottom line. Web pages can only load forward. Since I didn’t want to use any JavaScript, I did the hackiest thing possible: every time I update the traceroute display, I embed a CSS block that hides the previous iteration! Since browsers render CSS as the page is loading, this made it look like the traceroute was being edited over time."

Love this

tshaddox1 day ago
You can also do out-of-order HTML streaming without JavaScript using declarative shadow DOM. For example:

https://lamplightdev.com/blog/2024/01/10/streaming-html-out-...

archmaster1 day ago
oh yeah i saw this! newer than the website though :)
F00Fbug1 day ago
This is not my beautiful website.
reaperducer1 day ago
This is not my beautiful home-page.
googlryas1 day ago
There are packets at the bottom of the network stack
maybelsyrup1 day ago
And you may find yourself

Behind the keyboard of a large PC

tres23 hours ago
And you may find your site in beautiful cloud, with a beautiful bounce rate.
chickensong21 hours ago
And you may ask yourself

Well, how did ip route here?

helix2787 hours ago
Letting the bytes go by
fragmede23 hours ago
Typing in code you don’t understand
aidenn01 day ago
And if you haven't ever seen it before, run

  tracepath -m60 bad.horse
and also

  openssl s_client -connect signed.bad.horse:443 -servername signed.bad.horse
lenova1 day ago
Nice! Dr. Horrible would be proud of this geeky tribute:

  > tracepath -m60 bad.horse
  [...]
  16:  bad.horse                                            81.233ms asymm 10
  19:  he.rides.across.the.nation                           85.365ms asymm 11
  20:  he.got.the.application                               96.067ms asymm 13
  23:  it.needs.evaluation                                 112.377ms asymm 15
  24:  a.heinous.crime                                     114.826ms asymm 17
  25:  a.show.of.force                                     120.842ms asymm 18
  26:  bad.horse                                           133.089ms asymm 20
fragmede1 day ago
also

    ssh funky.nondeterministic.computer
avipars14 hours ago
noice, got rick rolled
avipars14 hours ago
also

ssh watch.ascii.theater

mjmas1 day ago
> Seems like this hit the Hacker News front page again, and the server's having some trouble pinging all of you. Feel free to read the article, but if you want to see your tracereoute you might need to bookmark and check back tomorrow :)

> - Lexi, Nov 7, 3:16 PM PST

archmaster23 hours ago
somewhat better now! added a bit more concurrency. lesson learned: use tokio next time
arionmiles1 day ago
I thought this was going to play a Talking Heads song
fredland1 day ago
letting the days go by
archmaster1 day ago
check the html :)
arionmiles12 hours ago
Nice!
PeterStuer7 hours ago
I can't help it. The Once in a Lifetime link is tattooed on my brainstem.

I read this title and that opening bass line just starts flowing.

kgwxd6 hours ago
I instantly started having an existential crisis.
bagels18 hours ago
I tried it out, and found out that my primary internet connection had failed, and I was on the backup due to a power outage earlier today. Useful!
mr_toad5 hours ago
The route less travelled.
aiiotnoodle13 hours ago
Sometimes my 'You are here' top part reads,

  Host                             ASN     Network                 Region
  123-456-789-101.static.kc.net.uk AS19905 UltraDDoS Protect       Global
And other times it reads,

  Host                             ASN     Network                 Region
  123-456-789-101.static.kc.net.uk AS12390 Kingston Communications Europe
What's going on here? I found the provider but what's with the 50/50 swap? It seems to randomly alternate between the two.
chrismorgan13 hours ago
The page started out working without JavaScript as it says, but then the replacement HTML was encoded as text:

  <noscript>
    <style>#strYQt8 { display: none; }</style>
    &lt;div id=&#39;stro29i&#39;&gt;
      …
(Edit: filed https://github.com/hackclub/how-did-i-get-here/pull/3.)
donatj12 hours ago
I have old components on my personal site that used to do a similar trick for streaming data without JavaScript but between nginx buffering and cloudflare I have not been able to sort out getting it to actually work these days. Worked fine on Apache in 2005 lol
o11c1 day ago
Hmm, after several seconds it gave up and displayed raw markup ... I'm not sure exactly why in this case, but ...

One of the major infelicities of the web is that CSS is specified to ignore truncation, and there is no way to fix this. Now think about what happens if something like `display: inline-block` gets truncated before the `-`.

msephton14 hours ago
I see the trace route, but none is glowing green
reisse10 hours ago
So they blocked me by IP (I guess) and I didn't get there! Nice.
captainkrtek3 hours ago
Or ICMP is blocked on your network
ChrisArchitect1 day ago
Previous Show HN: from the dev in 2023:

https://news.ycombinator.com/item?id=38531604

andrewshadura1 day ago
Same as it ever was.
bongodongobob1 day ago
Doesn't work. Traceroute showed only 1 hop.
decafbad1 day ago
Mine too. Maybe it's CGNAT.
metabagel1 day ago
Read the green text
paulddraper1 day ago
Doesn't seem to be working?
ninju1 day ago
HN Hug of death ?
archmaster1 day ago
It's like when your uncle squeezes you at Christmas. You're glad to see him again, but it's just a liiiitttleee... too... much... for... your... lungssss,.,.,.,
basilikum10 hours ago
502
archmaster7 hours ago
check again!
cat-whisperer16 hours ago
it's not loading for me. :'(
IncreasePosts16 hours ago
Now you must visit how-didnt-i-get-there.net
Razengan1 day ago
I thought this was going to be a review of life choices
einpoklum1 day ago
The review of life choices happens in our heads when we click this link on the main HN page.

(sigh) I'm just thinking those thoughts right now.

lloydatkinson12 hours ago
Hetzner, yuck.
loloquwowndueo6 hours ago
Why is Hetzner yuck?
immibis12 hours ago
Does it really exist if it's not a pile of AWS Lambdas?
lloydatkinson7 hours ago
Lambda is even more yuck.