Die Position der ISS per DNS abrufen
(shkspr.mobi)- Mit einem DNS-LOC-Record lassen sich Echtzeit-Positionsdaten der Internationalen Raumstation (ISS) abfragen
- LOC-Records speichern Breiten-, Längen- und Höhenangaben und eignen sich damit gut für die Positionsverfolgung von Satelliten
- Bei einer DNS-Abfrage der Beispiel-Domain
where-is-the-iss.dedyn.iowird die aktuelle Position der ISS zurückgegeben - Über die N2YO API werden Positionsdaten abgerufen, und der LOC-Record wird alle 15 Minuten automatisch aktualisiert
- Mit Domain-Diensten mit API-Unterstützung wie deSEC lassen sich LOC-Informationen effizient aktualisieren
Überblick
- Ausgehend vom Interesse an den esoterischen Seiten von DNS lässt sich mit DNS-LOC-Records reale physische Positionsinformation weltweit verteilen
- Normalerweise sind Domain-Namen mit dem physischen Standort von Servern verbunden; per LOC-Record lässt sich aber nicht nur der Standort von Servern, sondern auch der ungewöhnlicher Geräte festhalten
Was ist ein DNS-LOC-Record?
- Ein in RFC 1876 definierter experimenteller Standard, mit dem sich Breiten-, Längen- und Höhenangaben eines Servers in DNS eintragen lassen
- Minimale Höhe: -100.000 m (zur Darstellung unterirdischer Orte wie Bunker), maximale Höhe: 42.849.672 m (bis hin zu geostationären Satelliten)
- Bietet die Möglichkeit, Positionsdaten verschiedenster Geräte einschließlich Satelliten per DNS zu übermitteln
Umsetzung eines Dienstes zur Abfrage der ISS-Position
-
Erstellung der Domain
where-is-the-iss.dedyn.io, die ausschließlich über DNS-Abfragen funktioniert, ganz ohne separate Website, Ping oder sonstige allgemeine Interaktion -
Unter Linux und Mac lässt sich die ISS-Position mit folgendem Befehl abfragen
dig where-is-the-iss.dedyn.io LOC -
Beispiel einer Rückgabe: Breiten-/Längen-/Höhenangaben werden im LOC-Format geliefert
where-is-the-iss.dedyn.io. 1066 IN LOC 47 24 53.500 N 66 12 12.070 W 430520m 10000m 10000m 10000m -
Alle 15 Minuten wird mit den neuesten Positionsdaten aktualisiert (best effort)
Beschaffung und Umwandlung der Positionsdaten
-
Über die Website und API von N2YO lassen sich verschiedene Objekte im Orbit verfolgen; es gibt auch einen API-Free-Tier
-
Mit dem Beispiel-API-Aufruf lassen sich aktuelle Satellitenpositionen (Breitengrad, Längengrad, Höhe usw.) im JSON-Format abrufen
https://api.n2yo.com/rest/v1/…=_____ -
Die zurückgegebenen Breiten- und Längengrade liegen im Dezimalformat vor, die Höhe in km → für die Umwandlung in einen LOC-Record ist eine Konvertierung in Grad/Minuten/Sekunden (DMS) sowie Meter (m) erforderlich
Automatisierung der LOC-Record-Aktualisierung
- Über die API von deSEC (gemeinnützige Organisation mit Sitz in Berlin) lassen sich LOC-Records initial anlegen und aktualisieren
- Beispiel für die erste Registrierung eines LOC-Records
curl https://desec.io/api/v1/domains/where-is-the-iss.dedyn.io/rrsets/ ... --data '{"type": "LOC", "records": ["..."], "ttl": 900}' - Für Aktualisierungen wird HTTP PATCH verwendet, sodass nur geänderte Informationen übertragen werden
- Mit TTL (900 Sekunden, 15 Minuten) konfiguriert, führt der Code alle 15 Minuten automatisch eine Aktualisierung durch
- So lassen sich API-Nutzungslimits einhalten und zugleich aktuelle Daten effizient bereitstellen
- Zusätzlich sind Erweiterungen wie das Protokollieren des Aktualisierungszeitpunkts über TXT-Records möglich
Fazit
- Dieser Versuch ist eine technische Demonstration, die die ungewöhnlichen Einsatzmöglichkeiten von DNS zeigt
- Künftig könnten auch die Positionen weiterer Raumobjekte wie eines Mars Rovers über DNS-LOC-Records dargestellt werden
- Als originelles Anwendungsbeispiel für DNS bietet es Erweiterungspotenzial für die Automatisierung von Infrastruktur-/IT-Aufgaben und das Management von Positionsdaten
1 Kommentare
Hacker-News-Kommentare
http://open-notify.org/
https://www.ckdhr.com/dns-loc/