# Tailscale Subnet Router LXC Deployment — CHECKPOINT

## Status: 2026-06-11 22:20 UTC

### Progress
- ✅ **3030** (MK33): Online, advertising `192.168.0.0/18`, route approved
- ✅ **3031** (MK33): FIXED — tailscaled running, route approved by Bobby in console
- ✅ **Skill created:** `tailscale-lxc-subnet-router` — documents 3031 fix + critical route hijacking pitfall
- ✅ **Artemis LAN partition FIXED:** `tailscale set --accept-routes=false` restored direct L2 routing
- ✅ **Bobby can now SSH directly to Artemis** (was blocked by Tailscale routing table hijacking)
- ⏳ **3032/3033** (MK50): Terraform ready — awaiting deploy signal

### Critical Discovery — Tailscale Route Hijacking
**Root cause of Artemis "network partition":** `tailscale set --accept-routes=true` installed kernel routing rules (table 52) that redirected ALL `192.168.0.0/18` traffic through `tailscale0` instead of direct `eno1`.

| Before Fix | After Fix |
|-----------|-----------|
| `ip route get 192.168.50.41` → `dev tailscale0` | `ip route get 192.168.50.41` → `dev eno1` ✅ |
| Bobby could NOT SSH to Artemis via LAN | Bobby CAN SSH to Artemis via LAN ✅ |
| Artemis could NOT reach fleet nodes via LAN | Artemis routing table correct (pings still fail for some nodes — separate issues) |

**Standing rule:** Artemis must NOT `accept-routes` while advertising `192.168.0.0/18`. Subnet routers (3030/3031) handle tailnet→LAN; Artemis stays direct L2 for LAN peers.

### 3031 Fix Summary
**Root cause:** `/etc/default/tailscaled` missing `PORT` variable → systemd unit `--port=${PORT}` expanded to `--port=` → `INVALIDARGUMENT`
**Solution:** `pct exec` from MK33 host, wrote `PORT=41641` + `FLAGS=`, daemon-reload, restart, re-auth with route-capable key

### Credentials
- Latest LXC auth key stored in `fleet.env` as `TAILSCALE_AUTH_KEY_LXC`
- MK50 PVE API token exists in `fleet.env`

### Next Actions
1. Deploy 3032/3033 on MK50 via Terraform when Bobby signals
2. Verify all 4 LXCs advertise `192.168.0.0/18` and routes approved
3. Investigate remaining LAN unreachability for MK50/MK33/Shield (may be their own accept-routes conflicts)
