Hacker News new | past | comments | ask | show | jobs | submit login
The Star Wars Route: Do a traceroute to (network-tools.com)
770 points by fpp on Feb 9, 2013 | hide | past | favorite | 78 comments

The full text of the traceroute

  $ traceroute -m 100 | awk '{print $2}'
  ... cut ...

I have an additional

    60 read.more.at.beaglenetworks.net (  133.716 ms  135.338 ms  136.504 ms
    61  FIN (  137.242 ms * *
So see http://beaglenetworks.net for more info :)

This is super brilliant, but why do so much of these things use Star Wars for context? Anything else would be just as cute as less creepily cultic worshipful of one movie series.

Screen dumps bypass the presentation here. Executing from console gives you slowly scrolling text which is the signature opening for the Star Wars series.

Normally, this is just identifying with a known theme, unless one reserves special vitriol for Star Wars for some reason.

You're forgetting that Star Wars was itself a tribute to other shows and movies, Flash Gordon etc. Lots of them had vertical scrolling text explaining what story you were being dropped into, but Star Wars had good film stock so you could read it even as it receded into the distance. (Edit for clarity: This was done on purpose just to show off.) Most of those shows had tiny "ships" floating around on strings, so Star Wars had a giant star destroyer fill the screen. And so on.

I was inspired by looking endlessly at traceroutes slowly scrolling by. Im snowed in and I decided to give it a try. It only uses 2 routers to do this and VRFs.

I'm snowed in too and this made me happy. Thanks!

I suppose if you're going to this level of effort you want geeks of all flavours to appreciate the joke. I imagine Star Wars is probably the best 'rosetta stone' for this purpose.

Because Star Wars has the famous "upwards scroll" title screen.

Don't forget to watch Episode IV in the terminal!

    $ telnet towel.blinkenlights.nl
When I was younger I went out of my way to get a V6 address just to watch it in color ;)

No color for me:

  Well, the IPv6 version is exactly the same as the IPv4 one.

       The difference is in the visitors...                              
       Je bent een Stoere Bikkel, aka You Rock.

Quoth oliland: > When I was younger I went out of my way to get a V6 address just to watch it in color ;)

Note the semi-colon ;-).

apt-get install miredo

That works as a last resort. Or sign up for SixXS using an AYIYA tunnel, apt-get install aiccu and enjoy.

Miredo? AYIYA? Yuck.

Just use HE.net's tunnelbroker and set up a 6in4 tunnel[1]. FWIW there was no color for me either when I connected via ipv6. Just the same message about different visitors as printed above. Just to be sure ran:

  telnet -6 towel.blinkenlights.nl

[1] http://www.shorewall.net/6to4.htm#SixInFour

Miredo/teredo is yuck indeed. ATIYA is not bad, I am not sure why you turn your nose to it. Practically it just adds 8 bytes to the headers compared to 6in4 yet is a lot easier to set up. Specifically, if you do not have a router that you control and that can do IPv6 and ip6tables, AYIYA is the easiest to set up and have a static address. I would not set it up for a server but for a small LAN it will be no different than 6in4.

I understand what you are saying, AYIYA is not as bad as miredo. But lets face it:

Router That You Control + IPv6 + ip6tables = Any Linux Box

It is even easier with:

Router That You Control + IPv6 + ip6tables + shorewall6 = Any Linux Box

Configuring the linux box is essentially as easy as appending the following to /etc/network/interfaces:

  ### IPv6

  auto he-ipv6

  iface he-ipv6 inet6 v4tunnel
        address  1234:987:1234:743::2
        netmask  64
        ttl      255
        gateway 1234:987:1234:743::1
        post-up sysctl -w net.ipv6.conf.all.forwarding=1
  iface eth1 inet6 static
        address 1234:567:8901:1::1
        netmask 64
Spend five minutes with /etc/shorewall6/shorewall6.conf and you are done. Granted my mom is not going to do that but for anyone on HN that should be a walk in the park.

Don't forget gogoc.

That's so awesome. I can't believe this exists. How did they make it?

From the creator:


From his page he says he just ported what this guy did to telnet.

It should be noted that the Star Wars asciimation guy also did the thoroughly awesome Jet Powered Beer Cooler using a jet engine built in his shed (in NZ) to chill his guinness to a respectable 2c, of which I am in awe.


Oh my God he made it in a simple text editor using copy and paste. Mind blown.

And then read this too (if you wonder about the origin of the domain name): http://www.catb.org/jargon/html/B/blinkenlights.html

Related project from Berlin: http://blinkenlights.net/

Han does shoot first!

This is hilarious - though I wish they had more of an artificial delay between the hops to keep the suspense. If you're curious how you might implement this without actually needing a whole bunch of different hosts with routes between them, see this tool by Moxie Marlinspike:


You still need a big block of IP addresses though since you want the reverse DNS lookup for each IP address to return a different line from the scroll. Definitely a waste of IPv4 addresses; someone some do a IPv6 implementation ;-)

Edit: I just noticed http://beaglenetworks.net/ at the bottom of the traceroute - this was implemented by carefully setting up routing tables and VRFs on a Cisco router. fakeroute seems easier but not a bad way to keep busy during a blizzard.

There's a Star Trek version as well, but it only works if you're on IPv6.

  $ traceroute6 -m 120 tng.prolixium.com
  traceroute to tng.prolixium.com (2001:48c8:1:137::32), 120 hops max, 24 byte packets
  11  v6-seattle-ix.voxel.net (2001:504:16::745f)  209.28 ms  207.781 ms  207.18 ms
  12  3890.te6-2.tsr1.lga3.us.voxel.net (2001:48c8::8c9)  277.482 ms  279.604 ms  277.079 ms
  13  0.ae1.tsr1.lga5.us.voxel.net (2001:48c8::822)  282.205 ms  286.997 ms  276.887 ms
  14  0.ae2.csr2.lga6.us.voxel.net (2001:48c8::82e)  280.187 ms  284.989 ms  277.817 ms
  15  em0.dax.prolixium.net (2001:48c8:1:2::2)  277.495 ms  277.68 ms  277.61 ms
  16  si3.starfire.prolixium.net (2001:48c8:1:1ff::1a)  311.417 ms  305.949 ms  305.109 ms
  17  0.re0.ra.prolixium.net (2001:48c8:1:119::2)  307.72 ms  305.633 ms  305.915 ms
  18  0.fx0.voyager.prolixium.net (2001:48c8:1:11f::2)  304.583 ms  303.806 ms  304.216 ms
  19  . (2001:48c8:1:137::2)  307.199 ms  303.983 ms  303.874 ms
  20  Space (2001:48c8:1:137::6)  310.575 ms  308.043 ms  307.941 ms
  21  the.Final.Frontier (2001:48c8:1:137::a)  307.198 ms  304.489 ms  305.967 ms
  22  These.are.the.voyages.of.the.starship (2001:48c8:1:137::e)  306.484 ms  308.383 ms  308.094 ms
  23  Enterprise (2001:48c8:1:137::12)  305.924 ms  305.817 ms  307.77 ms
  24  Its.continuing.mission (2001:48c8:1:137::16)  308.692 ms  316.396 ms  306 ms
  25  to.explore.strange.new.worlds (2001:48c8:1:137::1a)  306.123 ms  307.447 ms  312.365 ms
  26  to.seek.out.new.life.forms (2001:48c8:1:137::1e)  308.785 ms  309.842 ms  308.362 ms
  27  and.new.civilizations (2001:48c8:1:137::22)  309.347 ms  315.072 ms  307.912 ms
  28  to.boldly.go (2001:48c8:1:137::26)  309.336 ms  306.98 ms  309.354 ms
  29  where.no.one.has.gone.before (2001:48c8:1:137::2a)  308.284 ms  311.138 ms  310.111 ms
  30  . (2001:48c8:1:137::2e)  310.227 ms  309.217 ms  309.752 ms
  31  EOF (2001:48c8:1:137::32)  309.623 ms  311.074 ms  313.958 ms

Use any traceroute site/program (not just the one in the link):

TraceRoute to episode.iv a.new.hope it.is.a.period.of.civil.war rebel.spaceships striking.from.a.hidden.base have.won.their.first.victory against.the.evil.galactic.empire during.the.battle rebel.spies.managed to.steal.secret.plans to.the.empires.ultimate.weapon the.death.star an.armored.space.station with.enough.power.to destroy.an.entire.planet pursued.by.the.empires sinister.agents princess.leia.races.home aboard.her.starship custodian.of.the.stolen.plans that.can.save.her

Trace complete

[update: additional hops ] people.and.restore freedom.to.the.galaxy by.ryan.werber when.ccies.get.bored ccie.38168 fin

It goes somewhat further if you let it/your system is compatible.

On Ubuntu `traceroute` only goes 30 hops by default, but you can see more with this:

    traceroute -m 100

traceroute defaults to 30 hops, hence the trim. Depending on your location you may need to bump it up to 40-50 if not more to get the full version.

You haven't heard of the tracert? She made the kessel route in less than 30 hops

I see what you did there.

No wonder we're out of IPv4 addresses...

On MIT campus you can tell which building you're in by your IP...

Yeah /8 what a waste.

Many organizations were asked to return /8 in exchange to /16, but snobs at MIT refused.

Why should MIT have to pay for someone else's historical mistakes? The IP addresses are just as valuable as any other part of MIT's endowment, and universities don't typically give their assets away for no reason. (If someone wants MIT to change to a /16, I'm sure there's some sum of money that could convince them.)

Ultimately, even if everyone gave their IPv4 addresses back, there would still be a tiny supply of addresses that can't scale. So we need IPv6 regardless of who is greedy about their IPv4 space.

Doesn't work for me... Strange.

I tried tweaking a few flags (such as much longer timeout: -w 30), still no luck.

$ traceroute -m 100 -e -w 30 obiwan.scrye.net

(...all normal here...)

8 core2-te0-0-0-4.faraday.ukcore.bt.net ( 6.795 ms core1-te0-0-0-5.faraday.ukcore.bt.net ( 11.500 ms core1-te0-0-0-4.faraday.ukcore.bt.net ( 13.669 ms

9 host213-121-193-129.ukcore.bt.net ( 5.964 ms 6.068 ms host213-121-193-137.ukcore.bt.net ( 7.362 ms

10 * * *

11 * * *

12 * * *

(...and so on...)

I have that same issue!

Works great with "mtr" (known as "mtr-tiny" in Debian?) - much better than with the regular traceroute :)

mtr in debian, but if you're running it in X, you might want to use mtr -t

For the less technically able amongst us, how does this work?

Two Cisco 1841's running many vrfs bouncing packets back and forth. Source: I did it.


Although, I'd have done it differently. using some packet capture tools, fake replies with the various different IP addresses. That way you don't even have to run a physical router that bounces it back and forth.

If you are committed to maintaining it, you might even give it a memorable DNS name. (Though, some of the coolness comes from it just being "out there" in the bowels of the Internets.)

Might I also suggest a Spaceballs sequel. :)

Any practical downsides to this, such as increased latency or increased load on the hardware? It's very interesting and creative nonetheless!

If you have control over a block of IPs, you can set the PTR records to whatever you feel like. Having invalid PTR records will cause headaches for you in a limited set of cases (e.g. sane mail servers won't accept mail from a host which has a PTR record that doesn't have A and PTR records which refer to each other) but outside of that, the owner of the IP block can do essentially whatever they want with the records.

Someone clever decided to have a very long route to a box, and very clever PTR records.

They probably set up a long series of gateways along the route, and added reverse DNS names to match up.

And as likely, it could just be a series of light VMs running on the same host, if not just elaborate masquerading on a bunch of virtual interfaces.

In a period when people are complaining about IPv4 address-shortage, this seems a tad excessive.

If only ARIN started to revoke IPv4 blocks based on this kind of waste.

It's in the middle of a /20 allocated to Epik Networks, and he's only using roughly a /27 of it. I think the Internet will survive.

If ARIN did ever want to recover space, there are much bigger fish in the sea (I doubt Apple is using all 16.7 million IPs in their allocation, for example).

He's using much more than a /27

Each hop is using a /30. There's 47 useless hops in the mix before reaching the end.

That's 188 IP addresses just wasted. Much, much more than a /27. In fact that's 6 times the waste of a /27.

Yeah, using a /30 per hop is a bit of a waste, but one /24 is still insignificant to the Internet as a whole, especially when it's in the middle of a parent allocation.

Presumably if Epik runs out of IP space in their /20, they'll just shut this down. It's not like some other company could use that /24.

Again, if ARIN/IANA really wanted to reclaim "wasted" space, they'd be looking at the holders of big blocks like /8-16, and asking them to justify usage, not one random /24 which is ultimately insignificant.

By that logic, petit theft is fine since the police should be looking for people committing grand theft and the petit theft is "ultimately insignificant"

It's reasons like this why people now have to fill out forms justifying the need for additional IPv4 blocks.

Your analogy is nonsensical, since this is in no way "theft". He's borrowing some IP space inside an already allocated /20 that Epik isn't using at the moment.

Epik already went to ARIN, said "we need a /20 to meet our IPv4 needs", filled out the paperwork to justify the allocation, and ARIN said "yes". Out of those 16 /24's, they have one that doesn't have any hosts on it at the moment, so they let him play with it.

The only people this MIGHT be hurting is Epik, if they need to justify getting more space from ARIN at some point. For the other millions of people on the Internet: it's awesome. Lighten up and enjoy it.

(edit: grammar)

'by that logic' is a phrase i see and immediately judge whoever said it as closedminded who's opinions are now worthless

I think you're going a little over the top there.

Yes, this is a perfectly good class C network wasted. What a shame.

It's a shame that people are still (incorrectly) using the term "class C" 15+ years since classless addressing has been address too. =)

It's a shame people still value and use IPv4 addresses when IPv6 has been around for 15+ years....

It's a shame people don't understand that IPv6 addresses are ~twice as costly to route.

Not all things that are better are free.

Are you joking?


Considering computers double in power every 18 months, most people stopped caring about IPv6's extra overhead in 1994.

(At some level, 128 > 32, so unless all the algorithms used for routing are constant-time over the addresses, IPv6 will always cost more. But if you add up a bunch of layers of NAT, that's not free either. So this argument boils down to "if nobody used the Internet, it would require less hardware to run". Well, yeah.)

while what you are saying is true, the upper bounds of all things limit the costs required to deploy infinite amounts of memory and processor cycles at scale.

As always, a happy medium is required. That being said, once you boot up another stack, allocate various caches, and have your engineers maintain an additional set of configuration, the costs come down. But for ~10k routes, the costs to route those ips is greater than routing v4.

touché :)

This reminds me of what happens if you hack this in your terminal:

telnet towel.blinkenlights.nl

"hack this"?

No wonder we're running out of IPv4 addresses!

in windows, this will get the entire thing tracert -h 100

related: "Star Wars Traceroute - How I did it" http://news.ycombinator.com/item?id=5193725

Hilarious - does anyone have any backstory or more info?

    60  by.ryan.werber (  153.282 ms  154.264 ms  149.479 ms
    61  when.ccies.get.bored (  154.085 ms  150.249 ms  147.620 ms
    62  ccie.38168 (  148.633 ms  150.156 ms  152.908 ms
    63  fin (  155.715 ms *  429.865 ms

It's by Ryan Werber [0]


It's so simple but brilliant!

that was a good chuckle... thanks for sharing.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact