smp-py: alias microwave.box instead of duplicating its addresses - #26
Merged
Conversation
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>
OctoDNS Plan for
|
| 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces smp-py's duplicated A/AAAA pair with a single CNAME to
microwave.box.letsbuilda.dev., so renumbering the Droplet is ahosts-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.boxand stays an address record.smp-pyitself is not an SRV target, so aliasing it violates nothing. The one rule the alias imposes: SRV targets must keep namingmicrowave.box, neversmp-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
_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.host:portconnects, 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.)Verification
octodns-validate --config-file=dns/production.yamlpasses locally.smp-py.letsbuilda.dev.dig +short smp-py.letsbuilda.dev A/AAAAresolves 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