Newer
Older
openstack-caracal-dc-dc / docs / audit / container-elim-pass / pass6-ipv6-feasibility-note-20260810.md

IPv6 FEASIBILITY note (pass6) -- fresh, ruling-INDEPENDENT research

Date: 2026-08-10. Status: FINDINGS ONLY (GA-R5 -- nothing ruled, nothing built). Records under D-144; CORRECTS the pass5 note (ipv6-unlock-design-note-20260810.md), which relied on prior rulings for the links that had them instead of assessing feasibility fresh.

Why this pass exists (operator, 2026-08-10): "the object of this review was not to follow what was previously ruled but to take a fresh look at whether or not IPv6 was feasible on any of the links that had had previous rulings or decisions or testing attached to them." Pass5 did NOT do that for the ruled links -- it cited D-101/D-139 ("PXE is v4-first", "provider-public dual-stack because the internet is v4") as the answer, and explicitly punted the researchable question ("do not import outside knowledge"). This pass researches actual platform capability, against the DEPLOYED versions (MAAS 3.7.2, Juju 3.6.27, Caracal 2024.1, OVN 24.03.2, OPNsense 26.7, Ceph Reef-era), with real upstream citations. Per-link detail + URLs: pass6-w1-maas-ipv6-feasibility.md, pass6-w2-openstack-ipv6- feasibility.md, pass6-w3-juju-charm-ceph-feasibility.md.

The honest answer: IPv6 is substantially MORE feasible than the prior rulings held

The two "forced-v4 anchors" pass5/D-101/D-139 leaned on do NOT hold up as feasibility statements -- both were judgements or conflations, not measured infeasibility:

Link (had a prior ruling/decision) FRESH verdict (ruling-independent) Real blocker / work vs the prior position
metal-admin: DHCPv6 commissioning FEASIBLE-WITH-WORK no MAAS-side blocker @3.7.2 (the 2 historical bugs closed 2017/3.1); owed a live test CHALLENGES D-101 "PXE v4-first"
metal-admin: UEFI HTTP boot over v6 FEASIBLE-WITH-WORK firmware supports it; boot path not doc-confirmed end-to-end CHALLENGES
metal-admin: legacy-BIOS PXE over v6 INFEASIBLE firmware (Intel Boot Agent / PXE-2.1 is v4-only) -- but applies ONLY to legacy-BIOS-mode nodes, NOT UEFI NARROWS the ruling to a firmware-mode edge case (our VMs are UEFI by choice)
MAAS rack<->region RPC over v6 FEASIBLE-NOW MAAS source prefers AF_INET6; the one bug (LP#2020142) fixed in 3.5.0, before 3.7.2 CHALLENGES
provider-public external over v6 FEASIBLE-NOW direct GUA routing, no NAT, no floating IP -- FIP is simply the wrong model for v6 CHALLENGES D-139 "dual-stack because internet is v4" (a conflation -- see below)
Octavia LB VIP over v6 FEASIBLE-NOW vip_subnet_id takes v6 natively (Caracal) --
API VIP (hacluster) over v6 FEASIBLE-WITH-WORK ONE charm bug: hard-coded ip_version: ipv4 in the corosync template (LP#2111852, fix committed, unreleased) -- not a corosync/platform limit NARROWS D-141/pass5 "v6 stack not ready"
container-hosted API-charm VIP over v6 INFEASIBLE (today) juju LP#1723240 -- live-verified still Triaged/Low, unfixed in 3.6.27 and 4.0 CONFIRMS D-141's core premise
core charm IPv6 endpoint binding FEASIBLE-WITH-WORK v6-capable; gated by LP#1723240 + charm gates (ceph-osd LP#2109798 New; ceph-mon/hacluster fix-committed) MATCHES the repo's existing table
simulated-ISP uplink edge over v6/dual FEASIBLE-WITH-WORK OPNsense 26.7 needs zero work (native dual-stack); gap is repo-side (site-wan module is v4-only NAT); correct v6 model is routed, not NAT66 CHALLENGES "forced v4" (it's a build choice, not a capability limit)
Ceph cross-DC replication over v6 (DEC-24 leg) FEASIBLE-WITH-WORK new constraint: Ceph binds one family per daemon (ms_bind_ipv6/ms_bind_ipv4), so v6 needs the WHOLE cluster single-family, not just the replication leg NEW -- pass5/repo left this UNASSESSED
OVN data-plane IPv6 (internal ref doc) FEASIBLE (already proven) the repo's OWN geneve-over-v6 audit (2026-08-09) proved VM->VM v6 geneve 8/8 0% loss STALE INTERNAL DOC: charm-ip-family-compatibility.md still says "No" -- never reconciled

The three genuine, surviving blockers (what fresh research CONFIRMS is hard)

  1. Legacy-BIOS PXE over IPv6 -- a real firmware constraint, but avoidable: UEFI HTTP boot is the path, and we define the VMs, so choosing UEFI removes it. Not a reason metal-admin must be v4.
  2. juju LP#1723240 -- container-hosted API-charm VIPs genuinely cannot pick their address family (unsorted-query addrs[0]); still open in 3.6.27. D-141's v4-active/v6-reserved holds for THAT specific case. (Note: this is the LXD API-charm container layer -- unrelated to D-144's containment-VM elimination.)
  3. External IPv6 internet reachability -- the actual upstream internet in the rehearsal is v4; a v6-native provider NETWORK is feasible now, but real external v6 transit is a separate, real-world item D-101 deliberately defers. This is the ONE place "because the internet is v4" is a true constraint -- but it constrains EXTERNAL REACHABILITY, not the provider network's family.

The key conceptual correction

IPv6 does not use floating IPs at all -- direct GUA routing is the native v6 model, not a lesser substitute. The prior "provider-public must be dual-stack because the internet is v4" conflated two different things: (a) the provider network's ADDRESS FAMILY (can be v6-native today) and (b) EXTERNAL v6 INTERNET reachability (genuinely deferred). (a) is feasible now; only (b) forces a v4 presence, and only for actual internet egress.

What this means for D-144's owed work (surfaced for the operator, NOT ruled)

  • metal-admin can plausibly be IPv6 for commissioning if the fleet is UEFI + a DHCPv6/HTTP-boot path is built and LIVE-TESTED. This reopens whether D-101/D-139's "metal-admin dual-stack / PXE v4-first" should stand as-is for the redeploy -- a decision for the operator, backed now by capability evidence, not a ruling this pass makes.
  • provider-public, Octavia, the uplink edge are v6-feasible now / with modest repo-side work; the only true external-v4 need is real internet egress.
  • DEC-24 gains a hard design constraint: v6 cross-DC replication requires whole-cluster single-family v6 (Ceph one-family-per-daemon).
  • Two internal corrections owed (DOCFIX candidates, not done here): reconcile charm-ip-family-compatibility.md's OVN "No" row against the repo's own geneve proof; and soften D-101's absolute "PXE is v4-first" to the researched reality (legacy-BIOS-only firmware limit + owed UEFI-v6 test) so a future session does not inherit the overstatement.

Honest scope note

Every "FEASIBLE-NOW/WITH-WORK" here is a CAPABILITY finding cited to upstream docs/source/bug-trackers for the deployed versions -- NOT a live proof on this cloud. Where a live test is the last mile (DHCPv6 commissioning, UEFI-v6 boot), it is named as owed. This pass corrects the METHODOLOGY error of pass5 (citing rulings as feasibility); it does not itself execute or rule.