Update tech_docs/its_the_new_style_design.md
This commit is contained in:
@@ -1163,3 +1163,102 @@ Golden rules (to keep it “perfect”)
|
|||||||
• Never put anything in `90_local/` that you expect to keep—treat it as a parking lot for today’s emergency patch.
|
• Never put anything in `90_local/` that you expect to keep—treat it as a parking lot for today’s emergency patch.
|
||||||
|
|
||||||
Drop this tree into Git, clone to any new Debian box, run `apply.sh`, and your decade scheme is live.
|
Drop this tree into Git, clone to any new Debian box, run `apply.sh`, and your decade scheme is live.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Below is a **symmetry-preserving IPv6 catch-up plan** that plugs straight into the single-box dnsmasq design you already run.
|
||||||
|
It keeps the same four axioms (clock-face splits, piano-key roles, monospaced logs, prime silence) and **does not break any existing IPv4 or ACME flow**.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 1. Pick a **static, provider-independent** prefix
|
||||||
|
- Ask your ISP for a **/48** (or use Hurricane-Electric tunnel-broker /48 if native is unavailable).
|
||||||
|
- Slice it **exactly like the IPv4 /8** you already carved:
|
||||||
|
|
||||||
|
| IPv6 zone | Prefix | Mirror of IPv4 zone |
|
||||||
|
|-----------|-------------------------------|---------------------|
|
||||||
|
| LAN | `2001:db8:c0de:1000::/64` | 10.0.0.0/24 |
|
||||||
|
| DMZ | `2001:db8:c0de:2000::/64` | 10.0.1.0/24 |
|
||||||
|
| INFRA | `2001:db8:c0de:ffff::/64` | 10.0.255.0/28 |
|
||||||
|
|
||||||
|
> The **final nibble** (`1000`, `2000`, `ffff`) keeps the Mondrian colour map intact.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. dnsmasq dual-stack delta (only three new lines)
|
||||||
|
Create `/etc/dnsmasq.d/30-ipv6.conf`
|
||||||
|
|
||||||
|
```ini
|
||||||
|
# ---- GLOBAL V6 ----
|
||||||
|
enable-ra
|
||||||
|
dhcp-range=lan,2001:db8:c0de:1000::,ra-names,slaac,12h
|
||||||
|
dhcp-range=dmz,2001:db8:c0de:2000::,ra-names,slaac,12h
|
||||||
|
dhcp-range=infra,2001:db8:c0de:ffff::,static,64,12h
|
||||||
|
|
||||||
|
# Mirror the IPv4 half-split
|
||||||
|
dhcp-range=lan,2001:db8:c0de:1000::1000,2001:db8:c0de:1000::7ffe,12h
|
||||||
|
dhcp-range=dmz,2001:db8:c0de:2000::1000,2001:db8:c0de:2000::7ffe,12h
|
||||||
|
```
|
||||||
|
|
||||||
|
- `ra-names` auto-creates AAAA from the existing IPv4 lease → **monospaced Zen** preserved.
|
||||||
|
- `.1000` → `.7ffe` keeps the **clock-face split** (first half static, second half stateful).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3. Reverse zones (RFC 3596)
|
||||||
|
Add to the same single file:
|
||||||
|
|
||||||
|
```ini
|
||||||
|
# ---- V6 REVERSE ----
|
||||||
|
# 0.0.1.0.e.d.o.c.8.b.d.0.1.0.0.2.ip6.arpa
|
||||||
|
auth-zone=0.0.1.0.e.d.o.c.8.b.d.0.1.0.0.2.ip6.arpa
|
||||||
|
auth-zone=0.0.2.0.e.d.o.c.8.b.d.0.1.0.0.2.ip6.arpa
|
||||||
|
auth-zone=f.f.f.f.0.e.d.o.c.8.b.d.0.1.0.0.2.ip6.arpa
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4. Static hosts (mirror the IPv4 file)
|
||||||
|
Append to `/etc/dnsmasq-static-hosts`:
|
||||||
|
|
||||||
|
```
|
||||||
|
# INFRA IPv6
|
||||||
|
2001:db8:c0de:ffff::1 ns-01.infra.mycorp.net
|
||||||
|
2001:db8:c0de:ffff::2 gw-01.infra.mycorp.net
|
||||||
|
|
||||||
|
# LAN IPv6
|
||||||
|
2001:db8:c0de:1000::1 gw-01.lan.mycorp.net
|
||||||
|
2001:db8:c0de:1000::2 wifi-01.lan.mycorp.net
|
||||||
|
|
||||||
|
# DMZ IPv6
|
||||||
|
2001:db8:c0de:2000::1 gw-01.dmz.mycorp.net
|
||||||
|
2001:db8:c0de:2000::5 web-01.dmz.mycorp.net
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 5. ACME / certs
|
||||||
|
- **AAAA records** are auto-published by `ra-names` → same CN (`ns-01.infra.mycorp.net`) now resolves to both A and AAAA.
|
||||||
|
- **No change** to the existing ACME flow; dnsmasq still answers `_acme-challenge` over IPv4 or IPv6.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 6. Quick verification
|
||||||
|
```bash
|
||||||
|
# RA is live
|
||||||
|
ip -6 addr show dev eth0
|
||||||
|
# dnsmasq hands out addresses
|
||||||
|
dig +short AAAA ns-01.infra.mycorp.net @::1
|
||||||
|
# → 2001:db8:c0de:ffff::1
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 7. Future-proof checklist
|
||||||
|
- **Privacy extensions** disabled via `ra-names` (keeps reverse symmetry).
|
||||||
|
- **ULA fallback** optional (`fd00:0:0:1000::/64`) for offline labs; same split rules apply.
|
||||||
|
- **Firewall** mirrors IPv4 policy (ip6tables stateful, same prime-hour reloads).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Result: you now have **dual-stack, zero-drift, haiku-grade addressing** without touching the existing IPv4 or ACME automation.
|
||||||
Reference in New Issue
Block a user