oxidecomputer / oxidecomputer/omicron

External DNS should permute the order in which it responds for entries with multiple records.

Open
#3,613 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

Noticed that even though I had multiple nexus zones up, my requests were all getting served by the same one all the time. Querying DNS returned them all, but always in the same order:

$ host recovery.sys.oxide-preview.com
recovery.sys.oxide-preview.com has address 172.17.16.12
recovery.sys.oxide-preview.com has address 172.17.16.13
recovery.sys.oxide-preview.com has address 172.17.16.14
$ host recovery.sys.oxide-preview.com
recovery.sys.oxide-preview.com has address 172.17.16.12
recovery.sys.oxide-preview.com has address 172.17.16.13
recovery.sys.oxide-preview.com has address 172.17.16.14

With this setup, I believe most applications will just use the first address returned.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the external DNS response path and reproduce the behavior with repeated host recovery.sys.oxide-preview.com queries from the issue. Trace how multiple records are ordered, then verify that repeated responses can vary while still containing all three addresses. No source file or test is identified in the issue, so locating the relevant implementation and test entry point is part of the work.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.