Skip to content

fix(platform): stop advertising IPv6 until the server can serve it - #2641

Merged
ExtraToast merged 1 commit into
mainfrom
fix/2638-stop-advertising-ipv6
Oct 27, 2026
Merged

ExtraToast merged 1 commit into
mainfrom
fix/2638-stop-advertising-ipv6

Conversation

@ExtraToast

Copy link
Copy Markdown
Contributor

Closes #2638

Why

DNS publishes 2a02:c207:2316:2642::1 for mail.esa-blueshell.nl, the MX target derived from it, and as an origin for every proxied web host. Nothing answers on it:

  • Contabo doesn't route the range yet. Both routers resolve on the link, but neither answers and no IPv6 traffic leaves the host.
  • The cluster is IPv4-only. The hostPorts Stalwart and Traefik listen on forward IPv4 only.

Senders that prefer IPv6 time out before falling back to IPv4, so mail arrives late. Doing IPv6 properly is #2640.

What changes

  • DNS sources: infra/dns/esa-blueshell.nl.zone has no AAAA records, and every IngressRoute's external-dns.alpha.kubernetes.io/target is IPv4 only.
  • Host: platform/nix/hosts/frankfurt-contabo-1/default.nix no longer configures the address or its route.
  • mail.sh: it checks that DNS gives exactly the addresses the server serves: IPv4 alone while SERVER_V6 is empty, and it flags a published IPv6 address. Reverse DNS checks the same list.
  • Docs: infra/dns/README.md and platform/docs/bringup-v2.md say IPv6 waits on Platform: serve mail and the web over IPv6 #2640.

Not done by this PR

  • Cloudflare records: the zone file is imported by hand and external-dns runs upsert-only, so neither removes the existing AAAA records. Delete them in the Cloudflare dashboard: every AAAA record with content 2a02:c207:2316:2642::1, and the aaaa-* ownership TXT external-dns made for them.
  • The live host: the config only applies at the next boot. To remove it now: sudo ip -6 route del default; sudo ip -6 addr del 2a02:c207:2316:2642::1/64 dev ens18.

Verified

  • shellcheck passes.
  • mail.sh without the cluster, against today's DNS: it flags the MX target and mail.esa-blueshell.nl for resolving to the IPv6 address, and passes reverse DNS for IPv4.

…2638)

Nothing answers on 2a02:c207:2316:2642::1: Contabo does not route it yet,
and the IPv4-only cluster could not serve it anyway (#2640). Senders that
prefer IPv6 timed out before falling back, delaying mail.

- The zone file and every IngressRoute's external-dns target publish IPv4
  only.
- The host no longer configures the address or its route.
- mail.sh checks the addresses the server serves, IPv4 alone until
  SERVER_V6 is set again, and flags a published IPv6 address.
@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Changes

Bucket Files Added Removed
platform 13 ████ 44 ░░░░░░ 54
total 13 +44 −54

No production or test lines added.

Coverage

No coverage summary reached this report.

Patch coverage: this pull request changes no line that coverage measures.

No coverage reached this report for api (api-unit-test-reports).
No coverage reached this report for frontend (frontend-unit-coverage).
No coverage reached this report for imaging (imaging-unit-coverage).

@ExtraToast
ExtraToast merged commit 846267b into main Oct 27, 2026
36 checks passed
@ExtraToast
ExtraToast deleted the fix/2638-stop-advertising-ipv6 branch October 27, 2026 14:19
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.

Platform: stop advertising IPv6 until the server can serve it

1 participant