As the winter storm warnings rolled through New York, I decided to get nice and warm under my blankets, sip some tea, and roll out IPv6 across a couple networks I manage. Some went great, accepting public prefix delegations from the upstream ISPs and assigning those to the devices within. Others not so well. This, unfortunately, includes my homelab - where I have multiple internet connections but no ability to announce my own IPv6 block via any of them. While I had no intent to use NPTv6 or ULAs due to poor support in my router, I didn’t see very good alternatives at this point.

Following a link in one of the threads to quickly generate a ULA, I got a DNS lookup failure. Whatever. I check the Wayback Machine, and after clicking past 404s and some spam from the spammer that bought the domain after it lapsed, the site’s there - pretty perfectly preserved as far as websites go. It’s a pretty lean clientside application, but it does the trick, and because of its simplicity it was preserved for years before I discovered or needed it.

I generated my ULA and went on my way, but ended up coming back a while later with a new mission for the next eight hours: resurrect the site from its early grave, give it some updates, and make it ready for whoever needs it next without fishing through the Wayback Machine. I have since relaunched as a two-page static site for all your IPv6 ULA generation needs. There are many sites like it - even some sites which implement RFC 4193’s Global ID generation procedure exactly - but this one is operated by me.

Why? It’s one less dead domain. It’s a fun way to spend eight hours. I’ll need to reference it in the future as I roll out more sites. It’s a great reason to fact-check my IPv6 knowledge. Perhaps it’s a little “screw you” to the spammer that bought the domain after the original owner let it lapse. Why not?, a history

The original site was made in 2012-2013 by an unknown author - they didn’t sign their name anywhere on the site as far as I could find, only leaving a cryptic “Copyright 2013” Based on historical WHOIS records, this was probably Manuel Badzong or another affiliate of ANDEV GMBH, as both those entities showed up in WHOIS records for this site at the time of its initial registration. The site was active between 2013 and 2017 before eventually 404ing and then having its domain expire.

During its active years, this little site cultivated a small organic following. As of today, there are ~100 dead links currently visible to Google pointed to it - including everything from GitHub issues, to the thread I was using to troubleshoot, to even slides presented at the Linux Foundation.

A more-or-less complete history of the site is visible through the Wayback Machine archives:

  • The earliest archive on 22 April 2013 features this site with serverside rendering and a simpler layout.
  • On or before 9 February 2014 the site was updated to use Bootstrap 3 and clientside JS for generating ULAs.
  • Before 9 June 2017 the site begins throwing 404 Not Found errors. This is the beginning of the end - after the initial 404 capture, the site was never fixed.
  • The domain registration eventually lapses and is bought by an online spammer sometime in 2019, who run a Wordpress site filled with SEO shit and a $5 logo.
  • Said spammer continues filling the site with shit at least into February 2020 - this is likely autogenerated or scraped from other sites.
  • Sometime in 2020-2021, the spammer lets the domain lapse, and no more archives are saved.1

Resurrecting for fun, but not profit

After deciding to resurrect this project, the actual process of it was straightforward. Copying the archived files out the Wayback Machine and seding them a bit to take out archival information, making minor changes, or fixing formatting issues was done within an hour. As this is an entirely static site, it could be loaded into the dealer’s choice JAMstack provider or cloud-y bucket+CDN.

The longest processes by far were:

  1. Expanding the FAQ and fact-checking its claims, as I don’t want to put my name on bad information.
  2. Debugging a weird issue with Cloudflare (my original choice) before seeing that AWS CloudFront had updated its free limits and pivoting.

The original domain was available as the spammer had let it lapse, so I purchased that to use (and breathe a little more usefulness into those old links that I’d tried following!). This wasn’t a mistake but it came with a minor issue - the domain had been flagged by Google as “pure spam” (yes, that’s really the term they use!) in violation of Google’s Webmaster Guidelines, which lowers or removes it from Google’s results. That’s probably why the spammer let it lapse - no more clicks for them once Google figured out the scam.

I found this out when I loaded the domain into Google Search Console - the violation (and some other errata, like sitemaps and metadata about indexed pages) carries over to the new owner, and I’ve filed for it to be reviewed by Google’s staff. Hopefully it doesn’t impact my other sites or my account in general, but hey, that’d be interesting to find out anyway. Edit: after some back-and-forth with Google Webmaster support, I did get this violation removed.

And with that, it’s … done. It’s very similar to the original site. It has exactly one less dependency to function, but is still 100% clientside. It doesn’t have ads or tracking (that was one thing I removed actually - Google Analytics’ tracker code). I archived the new version in the Wayback Machine too, and it works great.

Perfectly preserved (by the Internet Archive), as all things should be

Why this was so trivial to resurrect is really tied to the design decisions the author of the original site made. They kept the logic clientside, maintained a fairly lean list of dependencies, and avoided UI/UX destroying crapware - so as mentioned before, this site was usable even within the Wayback Machine. There was nothing to recreate, only redeploy - if this had relied on any serverside components, it would obviously not work in the Wayback Machine and would have taken much more effort to rejeuvenate.

Small/isolated project sites like this very frequently fall into disrepair - they have a single owner who may eventually move on from the project, forget to pay some bills (or run out of money to pay said bills), and eventually die. This is why I believe firmly in making websites that you want to keep around simple, without popups or complex dependencies, which could break them when archived.2 Advertisements and “zomg!! subscribe to my email list nao!!” popups are not just intrusive - they can detract from your sites usability when preserved. Any information or functionality you want to outlive you should be accessible and clientside, respectively.

The Wayback Machine is honestly a miracle of technology. Thinking about it, it’s incredible to be provided access to data and functionality that would have otherwise been lost, completely functional within its archive and probably archived without any human intervention.

To be doubly clear, this is a success story in digital preservation only because of the Internet Archive. None of my actions are actually “digital preservation” - hence why I called this “resurrection” instead. I’ve rejeuvenated something I found useful and am lending it a little new life. I am not, fundamentally, ensuring that this is preserved in any sense. I am still one person running a project site. Eventually I will die, and my bills stop getting paid. We’ll still be relying on resources like the Internet Archive to continue hosting their vast library of history and knowledge.

If you would like to do something to solve fundamental problems with digital preservation and access to knowledge, please consider making a one-time or recurring donation to the Internet Archive. I am a recurring donor and highly recommend it to anyone who has the means or interest.

The future of Math.random() as a service

I’ll keep running this tiny niche site for the forseeable future, maintaining convenience and speed for anyone who seeks the same links as I once did. I hope helps you as it helped me. :)

The site is also now open source on GitHub at tweedge/unique-local-ipv6, though I’ve no idea if/how to license it given the original ambiguous “copyright by this domain” on each footer so I apologize for the ambiguity there.3 If you have any corrections or suggestions, please feel free to submit an issue or CR and I’m happy to review.

Lastly, if any of the original author(s) take issue with anything I’ve done here, I’m happy to take the site back down, but wanted to give their work a longer lifespan. I’ve left the original copyright (only adding a note to be clear that I made modifications as well), but would happily amend it if requested by the original author to reflect the copyright holder’s name or affiliation. Hopefully there is no issue here though and I’m assuming “no news is good news.”

Author’s Notes

  1. Minor update - based on Google Search Console’s data about what pages were indexed which is also exposed to the new site owner, the last successful indexing of spam pages happened on February 28th, 2020. The site may have just gone down or the domain may have lapsed at that time - not sure. 

  2. This blog follows that idea very closely, and is intentionally simple/lightweight, as this is part of whatever legacy I leave behind. A drop of water in the ocean, of course - but it’s my drop. 

  3. Yes, it’s raw HTML instead of pretty Markdown. No, I don’t think the original author was using a content management system - it was pretty messy in there. No, I won’t be migrating this to Jekyll or such, as I don’t really expect to be updating it enough to care.