Skip to content

smp-py: alias microwave.box instead of duplicating its addresses - #26

Merged
shenanigansd merged 2 commits into
mainfrom
claude/smp-py-cname-dns-tem74m
Aug 30, 2026
Merged

smp-py: alias microwave.box instead of duplicating its addresses#26
shenanigansd merged 2 commits into
mainfrom
claude/smp-py-cname-dns-tem74m

Conversation

@shenanigansd

@shenanigansd shenanigansd commented Aug 30, 2026

Copy link
Copy Markdown
Member

Replaces smp-py's duplicated A/AAAA pair with a single CNAME to microwave.box.letsbuilda.dev., so renumbering the Droplet is a hosts-box.yaml-only change.

Why this is safe

#19 chose duplication over a CNAME citing RFC 2782, but that rule constrains the SRV target — which is microwave.box and stays an address record. smp-py itself is not an SRV target, so aliasing it violates nothing. The one rule the alias imposes: SRV targets must keep naming microwave.box, never smp-py.

Meanwhile the predicted renumbering cost came due for real: #23 moved microwave.box's AAAA and missed smp-py, and #25 had to clean it up. The CNAME makes that class of drift impossible.

Client behavior is unchanged

  • The SRV lives at _minecraft._tcp.smp-py, a different owner name, so it coexists with the alias (CNAME is not DNAME) and Java clients keep resolving through it.
  • Clients that skip SRV — explicit host:port connects, Bedrock, naive pingers — chase the alias to the same addresses. (SRV-only was considered and rejected for exactly these: the Java client only consults SRV for portless addresses.)
  • Still unproxied: Cloudflare's HTTP proxy does not carry TCP/25565.

Verification

  • octodns-validate --config-file=dns/production.yaml passes locally.
  • The dry-run plan on this PR should show exactly one owner changing: delete A + AAAA, create CNAME for smp-py.letsbuilda.dev.
  • Post-merge: dig +short smp-py.letsbuilda.dev A/AAAA resolves via the CNAME to 146.190.196.51 / 2604:a880:400:d1:0:4:e4cf:6001; the SRV answer is unchanged. No downtime — the alias lands on the same addresses cached records held.

🤖 Generated with Claude Code

https://claude.ai/code/session_01T6ZEghUNVjxqHrDS134XwK

33cb842 duplicated microwave.box's A/AAAA at smp-py to keep the door
open for an SRV target naming smp-py, since RFC 2782 forbids a target
from resolving through an alias. That door was never used -- the SRV
targets microwave.box directly -- while the predicted renumbering cost
came due for real: f3b0ab0 moved microwave.box's AAAA and missed
smp-py, and 14ce20c had to clean it up. A CNAME makes that drift
impossible; renumbering the Droplet is now a hosts-box.yaml-only
change.

Nothing changes for clients. The SRV lives at _minecraft._tcp.smp-py,
a different owner name, so it coexists with the alias (CNAME is not
DNAME) and Java clients keep resolving through it; clients that skip
SRV -- explicit host:port connects, Bedrock, naive pingers -- chase
the alias to the same addresses. Going SRV-only instead was considered
and rejected for exactly those clients: the Java client only consults
SRV for portless addresses. The rule the alias does impose, SRV
targets keep naming microwave.box and never smp-py, is now a comment
in the file.

Still unproxied: Cloudflare's HTTP proxy does not carry TCP/25565.

Claude-Session: https://claude.ai/code/session_01T6ZEghUNVjxqHrDS134XwK

Co-authored-by: Claude <noreply@anthropic.com>
@shenanigansd
shenanigansd requested a review from a team as a code owner August 30, 2026 04:31
@github-actions

Copy link
Copy Markdown

OctoDNS Plan for claude/smp-py-cname-dns-tem74m

letsbuilda.dev.

cloudflare

Operation Name Type TTL Value Source
Delete smp-py A 300 146.190.196.51
Delete smp-py AAAA 300 2604:a880:400:d1:0:4:e4cf:6001
Create smp-py CNAME 300 microwave.box.letsbuilda.dev. zone_config

Summary: Creates=1, Updates=0, Deletes=2, Existing=13, Meta=False

The RFC 2782 rationale lives in the commit history; the record stands
on its own.

Claude-Session: https://claude.ai/code/session_01T6ZEghUNVjxqHrDS134XwK

Co-authored-by: Claude <noreply@anthropic.com>
@shenanigansd
shenanigansd merged commit 8db7f6a into main Aug 30, 2026
5 checks passed
@shenanigansd
shenanigansd deleted the claude/smp-py-cname-dns-tem74m branch August 30, 2026 04:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants