3 điểm bởi GN⁺ 2025-07-07 | 1 bình luận | Chia sẻ qua WhatsApp
  • Có thể truy vấn thông tin vị trí thời gian thực của Trạm Vũ trụ Quốc tế (ISS) bằng bản ghi DNS LOC
  • Bản ghi LOC lưu trữ thông tin vĩ độ, kinh độ và độ cao, cung cấp một cơ chế phù hợp để theo dõi vị trí vệ tinh
  • Khi truy vấn DNS với tên miền ví dụ (where-is-the-iss.dedyn.io), hệ thống sẽ trả về vị trí mới nhất của ISS
  • Sử dụng N2YO API để lấy dữ liệu vị trí, và bản ghi LOC được tự động cập nhật mỗi 15 phút
  • Có thể cập nhật thông tin LOC hiệu quả thông qua các dịch vụ tên miền hỗ trợ API như deSEC

Tổng quan

  • Xuất phát từ sự hứng thú với những tính năng ít người dùng của DNS, có thể sử dụng bản ghi DNS LOC để phân phối thông tin vị trí vật lý thực tế trên toàn cầu
  • Thông thường, tên miền gắn với vị trí vật lý của máy chủ, và thông qua bản ghi LOC, không chỉ máy chủ mà cả vị trí của các thiết bị đặc biệt cũng có thể được ghi lại

Bản ghi DNS LOC là gì?

  • Là một tiêu chuẩn thử nghiệm được định nghĩa trong RFC 1876, cho phép ghi thông tin vĩ độ, kinh độ, độ cao của máy chủ vào DNS
  • Độ cao tối thiểu là -100.000m (có thể biểu diễn vị trí ngầm như bunker), tối đa là 42.849.672m (có thể biểu diễn tới cả vệ tinh địa tĩnh)
  • Cung cấp khả năng truyền tải thông tin vị trí của nhiều loại thiết bị, bao gồm cả vệ tinh, qua DNS

Triển khai dịch vụ tra cứu vị trí của Trạm Vũ trụ Quốc tế (ISS)

  • Tạo tên miền where-is-the-iss.dedyn.io, hoạt động chỉ bằng truy vấn DNS mà không cần website riêng, ping hay tương tác thông thường

  • Trên Linux và Mac, có thể truy vấn thông tin vị trí ISS bằng lệnh dưới đây

    dig where-is-the-iss.dedyn.io LOC
    
  • Ví dụ kết quả trả về: thông tin vĩ độ/kinh độ/độ cao được cung cấp ở định dạng LOC

    where-is-the-iss.dedyn.io. 1066 IN  LOC 47 24 53.500 N 66 12 12.070 W 430520m 10000m 10000m 10000m
    
  • Được cập nhật bằng thông tin vị trí mới nhất mỗi 15 phút (theo cơ chế best-effort)

Thu thập và chuyển đổi dữ liệu vị trí

  • Thông qua website và API của N2YO, có thể theo dõi nhiều đối tượng đang ở quỹ đạo khác nhau, và dịch vụ này cung cấp API ở gói miễn phí

  • Có thể lấy vị trí vệ tinh mới nhất (vĩ độ, kinh độ, độ cao, v.v.) ở định dạng JSON bằng lời gọi API ví dụ sau

    https://api.n2yo.com/rest/v1/…=_____
    
  • Vĩ độ/kinh độ trả về ở dạng thập phân, còn độ cao ở đơn vị Km → khi chuyển sang bản ghi LOC cần đổi sang định dạng độ-phút-giây (DMS) và đơn vị mét (m)

Tự động hóa cập nhật bản ghi LOC

  • Với deSEC (tổ chức phi lợi nhuận có trụ sở tại Berlin), có thể dùng API để tạo và cập nhật bản ghi LOC lần đầu
  • Ví dụ đăng ký LOC ban đầu
    curl https://desec.io/api/v1/domains/where-is-the-iss.dedyn.io/rrsets/ ... --data '{"type": "LOC", "records": ["..."], "ttl": 900}'
    
  • Việc cập nhật sử dụng HTTP PATCH để chỉ gửi phần thông tin đã thay đổi
  • Đặt TTL (900 giây, 15 phút) để mã tự động cập nhật mỗi 15 phút
  • Cung cấp dữ liệu mới nhất một cách hiệu quả trong khi vẫn tuân thủ giới hạn sử dụng API
  • Ngoài ra còn có thể mở rộng theo nhiều cách khác, chẳng hạn ghi lại thời điểm cập nhật bằng bản ghi TXT

Kết luận

  • Thử nghiệm này là một màn trình diễn kỹ thuật cho thấy khả năng ứng dụng khác lạ của DNS
  • Về sau, còn mở ra khả năng biểu diễn vị trí của nhiều đối tượng không gian hơn như Mars Rover bằng bản ghi DNS LOC
  • Đây là một ví dụ ứng dụng sáng tạo của DNS, đồng thời cho thấy khả năng mở rộng sang tự động hóa công việc hạ tầng/IT, quản lý thông tin vị trí, v.v.

1 bình luận

 
GN⁺ 2025-07-07
Ý kiến trên Hacker News
  • Một bản ghi khác là Name Authority Pointer (NAPTR) cung cấp thông tin số điện thoại của Johnson Space Center ở Houston
    > dig where-is-the-iss.dedyn.io NAPTR
    
    ; <<>> DiG 9.10.6 <<>> where-is-the-iss.dedyn.io NAPTR
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31786
    ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 1232
    ;; QUESTION SECTION:
    ;where-is-the-iss.dedyn.io. IN NAPTR
    
    ;; ANSWER SECTION:
    where-is-the-iss.dedyn.io. 3600 IN NAPTR 100 100 "u" "E2U+voice:tel" "!^.*$!tel:+12814830123!" .
    
    ;; Query time: 84 msec
    ;; SERVER: 100.100.100.100#53(100.100.100.100)
    ;; WHEN: Sun Jul 06 10:53:39 EDT 2025
    ;; MSG SIZE rcvd: 111
    
  • Biết là API có giới hạn, nhưng với một vật thể bay quanh toàn bộ Trái Đất chỉ trong 90 phút thì khoảng cập nhật 15 phút có vẻ khá lớn; trung bình có thể tạo ra sai số khoảng 1/12 chu vi Trái Đất, tương đương quãng đường từ Lisbon đến Istanbul
    • Tôi cũng nghĩ vậy; bài viết cũng có nói là đừng dùng nó cho thao tác docking, và nếu có DNS miễn phí nào cập nhật được mỗi phút thì tôi sẽ chuyển sang ngay
  • Có người chia sẻ đã đọc nhầm câu mở đầu thành "I love DNS erotica", rồi chợt nhận ra mình ở trong nhà quá lâu và cần đi dạo
    • Có lẽ sẽ khiến bạn ngạc nhiên, nhưng tôi tin là rất nhiều người sẽ thấy mấy thứ như thế này thú vị
    • Đùa rằng thực ra chính dự án này chẳng phải là DNS erotica đó sao, có lẽ cần đi tắm nước lạnh
    • Xin kiềm chế vì tôi không muốn rẽ hướng thành nhà sáng tạo OnlyFans
    • Đùa rằng meme "It's always DNS" nay lại có thêm một ý nghĩa mới
  • Cho rằng đây là một dự án quá tuyệt, và đã thêm ngay vào dns.toys
    dig iss.sky +short @dns.toys
    
    • Thật sự rất tiện và thú vị, cảm ơn; đồng thời thắc mắc liệu mọi công cụ có chỉ dùng bản ghi TXT hay cũng tận dụng cả LOC và NAPTR
  • Khen đây là một ý tưởng thật khéo léo và giàu tính giáo dục; ngay lập tức tự hỏi liệu có thể áp dụng cách tương tự cho JWST không; tiếc là bản ghi DNS LOC chỉ hỗ trợ tới khoảng 42 triệu mét (42.000 km), trong khi JWST ở xa hơn 38 lần nên có giới hạn trong việc biểu diễn vị trí; còn với Hubble thì có thể vẫn khả thi
    • JWST quay quanh điểm Lagrange thứ hai nên không dễ gán tọa độ GPS, gần giống như đòi tọa độ GPS trên Mặt Trăng; năm 2023 NASA từng thử dùng LRO để nhận tín hiệu GPS yếu ở Mặt Trăng, nhưng không thực tế cho việc dẫn đường; còn ISS thì ngoài điểm dưới vệ tinh còn có thể nhận tín hiệu GPS bất kể độ cao so với mặt đất; TLE (two-line element) có thể áp dụng cho các vệ tinh quỹ đạo thấp quanh Trái Đất như ISS, dùng các mô hình như SGP4 để tính toán vị trí và vận tốc
    • Có ý kiến cho rằng độ cao của GSO (vệ tinh địa tĩnh) gần như trùng với giới hạn của bản ghi LOC
  • Có ý kiến cho rằng ngoài cache hardcode, giá trị TTL của chính hạ tầng DNS cũng nên giúp ích cho việc cache, nhất là khi có nhiều public DNS resolver lớn như Cloudflare 1.1.1.1 và Google 8.8.8.8; DNS có đặc tính như một cơ sở dữ liệu hoạt động nhất quán trên toàn cầu, có thể lưu dữ liệu tạm thời và là một giao thức ngây thơ khó bị firewall chặn, dù thực tế cũng thường bị chặn hoặc can thiệp
  • Giới thiệu một tài nguyên khác là OpenNotify (tính năng hạn chế hơn và không hào nhoáng)
    http://open-notify.org/
  • Giới thiệu thông tin chi tiết về bản ghi DNS LOC
    https://www.ckdhr.com/dns-loc/
  • Đọc RFC mà không thấy giải thích vì sao tính năng này lại cần thiết; đặt câu hỏi liệu vào năm 1996 có phải nó liên quan đến logistics ở trường đại học hay trung tâm dữ liệu hay không
    • Mục 5.1 của RFC (Suggested Uses) có nêu ra vài khả năng ứng dụng dù khá mơ hồ, chẳng hạn bản đồ luồng backbone USENET, ứng dụng traceroute trực quan hóa đường đi địa lý của gói IP, hay ứng dụng quản trị mạng để tạo bản đồ host và router
    • RFC thường không định nghĩa rõ vấn đề cần giải quyết; có người cho rằng với bản ghi LOC, không nhất thiết phải là tọa độ mà chỉ cần chuỗi địa chỉ mà con người đọc được cũng đã đủ
  • Tóm lại, DNS là một kho lưu trữ key-value có tính liên hợp, tối ưu cho đọc, sao chép theo địa lý và mang tính eventual consistency