Brilliant! This is both clever and educational. I immediately wondered if it would be possible to do something similar for JWST.
Unfortunately LOC DNS records top out at ~42 million meters (42,000 km altitude) and JWST is 38x further out (~1.5 million km away). So you can’t represent its location with a LOC altitude field. Maybe Hubble?
I understand there are API limitations, but isn't 15 minutes a lot for an object that orbits around the entire Earth in 90 minutes? On average you're going to be off by about a twelfth of the circumference of the Earth, or roughly the distance between Lisbon and Istanbul
At orbital speed of ~7.66 km/s, the ISS travels approximately 6,900 km during a 15-minute interval, which is indeed significant for precise location tracking.
Looking at the RFC it's never explained why this is needed. Or was needed back in 1996, perhaps something to go with universities and data center logistics back then?
Could you calculate the position from the Ephemeris data in realtime instead of using an API? This would allow you to return the current location on every request potentially.
Besides the hard-coded cache, shouldn't DNS infrastructure already help with the caching just by the TTL value itself? Given quite many & large public DNS resolvers out there, like Cloudflare's 1.1.1.1 and Google's 8.8.8.8
I overall like the DNS, it is a global database with eventual consistency. Possible to store transient data. Usually not blocked by firewalls just by the sheer innocent nature. (Although gets intercepted quite a lot...)
A slightly more complex, but much more responsive way would be to set an NS record of `where-is-the-iss.shkspr.mobi` that points to the IP of your VPS.
Then run a program that listens to UDP/53 and TCP/53. Have it respond with a DNS packet that's only dynamic in the LOC record and message ID. Not fully compliant with the DNS spec, but good enough for this use case.
You could cache API response to combat rate limiting.
31 comments
[ 4.6 ms ] story [ 69.2 ms ] threadUnfortunately LOC DNS records top out at ~42 million meters (42,000 km altitude) and JWST is 38x further out (~1.5 million km away). So you can’t represent its location with a LOC altitude field. Maybe Hubble?
There's no reason this couldn't be a human-readable string like "42 Wallaby Way, Sidney".
Chapter 5.1 (Suggested Uses) has at least some vague suggestions:
> Some uses for the LOC RR have already been suggested, including the
> USENET backbone flow maps, a "visual traceroute" application showing
> the geographical path of an IP packet, and network management
> applications that could use LOC RRs to generate a map of hosts and
> routers being managed.
I'm going to take a walk now...
I overall like the DNS, it is a global database with eventual consistency. Possible to store transient data. Usually not blocked by firewalls just by the sheer innocent nature. (Although gets intercepted quite a lot...)
That has been a very long running experiment [1]:
> University of Warwick, January 1996
[1] https://datatracker.ietf.org/doc/html/rfc1876
Then run a program that listens to UDP/53 and TCP/53. Have it respond with a DNS packet that's only dynamic in the LOC record and message ID. Not fully compliant with the DNS spec, but good enough for this use case.
You could cache API response to combat rate limiting.