概要
- DNS LOCレコード を使い、サーバーや衛星の位置情報をDNSで公開する技術の紹介
- where-is-the-iss.dedyn.io で国際宇宙ステーション(ISS)の位置をLOCレコードとして配信
- API連携 により15分ごとに位置情報を自動更新
- RFC 1876 に基づくLOCレコードの仕様と活用例
- DNSの意外な使い道と、実装のポイントを解説
DNS LOCレコードでISSの位置を公開する遊び
- DNS LOCレコード は、サーバーやデバイスの 緯度・経度・標高 をDNSに記録できる仕組み
- RFC 1876(実験的標準)により、 地球上から静止衛星軌道まで 幅広い高さをカバー
- LOCレコード例:
where-is-the-iss.dedyn.io. 1066 IN LOC 47 24 53.500 N 66 12 12.070 W 430520m 10000m 10000m 10000m - digコマンド でLOCレコードを取得可能(Linux/Macのみ対応)
- 15分ごと にISSの現在位置に更新、リアルタイム性を確保
位置情報の取得と変換
- N2YO API を活用し、ISSの最新位置(緯度・経度・高度)を JSON形式 で取得
- 例:
"satlatitude": -21.25409321, "satlongitude": 140.3335763, "sataltitude": 420.09
- 例:
- LOCレコード形式へ変換時に必要な処理
- 緯度・経度 :小数点表記から度分秒(DMS)形式へ変換
- 高度 :キロメートルからメートルへ単位変換
- LOCレコードの標高範囲: -100,000m~42,849,672m (地下施設から静止衛星まで対応)
DNSプロバイダとAPI操作
- deSEC (ベルリンのチャリティ団体)をDNSプロバイダに選定、LOCレコードのAPI経由更新が可能
- 初回登録: POST でLOCレコード作成
- 更新時: PATCH で変更部分のみ送信、効率的なアップデート
- TTL(Time To Live)は 900秒 に設定し、API制限内で自動更新
応用例・今後の展望
- LOCレコード以外にも TXTレコード で更新時刻や追加情報を記録可能
- DNSを使った 分散型データ配信 の可能性
- 静的・更新頻度が低いデータ配信に適する
- Mars Roverの座標表現や、他の珍しいDNS活用例への発展性
参考リンク・補足情報
- BIMI や SVG in DNS TXT など、他のDNSの変わった使い方についても紹介
- Windows環境ではLOCレコードの標準的な参照方法がない点に注意
- 本記事はあくまで 技術デモ であり、正確な運用や宇宙船の誘導には利用不可
まとめ DNSは単なる名前解決だけでなく、 位置情報やメタデータの分散配信 にも利用可能。RFC 1876のLOCレコードを活用し、API連携と自動更新によって、ユニークなDNS活用事例を実現。今後もDNSの新たな可能性に注目。