Some checks failed
CI / skip-ci-check (pull_request) Successful in 7s
CI / lint-and-test (pull_request) Successful in 12s
CI / ansible-validation (pull_request) Failing after 5s
CI / secret-scanning (pull_request) Successful in 6s
CI / dependency-scan (pull_request) Successful in 8s
CI / sast-scan (pull_request) Failing after 6s
CI / license-check (pull_request) Successful in 10s
CI / vault-check (pull_request) Failing after 5s
CI / playbook-test (pull_request) Failing after 6s
CI / container-scan (pull_request) Failing after 6s
CI / sonar-analysis (pull_request) Failing after 3s
CI / workflow-summary (pull_request) Successful in 5s
Use ansible.builtin.su, spaces in caddy blockinfile, relax MD060/MD036 and line length for homelab documentation tables. Co-authored-by: Cursor <cursoragent@cursor.com>
97 lines
3.5 KiB
Markdown
97 lines
3.5 KiB
Markdown
# UniFi static DHCP (10.0.10.x homelab)
|
||
|
||
**Controller:** https://192.168.2.1/
|
||
**Goal:** Pin Proxmox VM MAC addresses to stable `10.0.10.x` addresses so Caddy and Ansible inventory do not drift.
|
||
|
||
LXCs on pve10 (**210, 215–219**) are already static via `pct set` — **no UniFi lease needed** for those rows.
|
||
This guide is for **VMs** (and pve201 guests) that still use DHCP.
|
||
|
||
---
|
||
|
||
## Before you start
|
||
|
||
1. Confirm guests get addresses on **`10.0.10.0/24`** (not only `192.168.2.x`). In UniFi, open the network that faces Proxmox `vmbr0`.
|
||
2. Gateway for homelab guests should be **`10.0.10.1`** (or your router’s IP on that VLAN).
|
||
3. Use the MAC table in [vm-static-ip-router-reservations.md](vm-static-ip-router-reservations.md).
|
||
|
||
---
|
||
|
||
## Method A — From a connected client (easiest)
|
||
|
||
1. Open **https://192.168.2.1/** and sign in.
|
||
2. Go to **Clients** (or **UniFi Devices** → **Clients**).
|
||
3. Find the device (hostname like `gitea`, `vaultwarden`, or MAC from Proxmox `qm config <vmid>`).
|
||
4. Click the client → **Settings** (gear) or **⋮**.
|
||
5. Enable **Fixed IP** / **Use fixed IP address**.
|
||
6. Set IP to the target from the table (e.g. `10.0.10.169` for gitea).
|
||
7. **Apply** / **Save**.
|
||
8. On the VM: renew DHCP or reboot:
|
||
```bash
|
||
sudo dhclient -r && sudo dhclient
|
||
# or: reboot
|
||
```
|
||
9. Verify: `ip -4 addr show` shows the reserved IP.
|
||
|
||
---
|
||
|
||
## Method B — DHCP static mapping (manual MAC)
|
||
|
||
1. **Settings** → **Networks**.
|
||
2. Open the LAN/VLAN that serves **10.0.10.x** (name varies: `Default`, `Homelab`, `10.0.10`).
|
||
3. **DHCP** section → **DHCP Static IP** / **Static leases** → **Create new**.
|
||
4. Enter:
|
||
- **MAC address** (from Proxmox, e.g. `BC:24:11:E9:BD:E5`)
|
||
- **IP address** (e.g. `10.0.10.169`)
|
||
- **Name** (optional, e.g. `giteaVM`)
|
||
5. Save. Repeat for each row in the reservations table.
|
||
6. Renew DHCP on each VM or reboot.
|
||
|
||
---
|
||
|
||
## Already static (skip UniFi DHCP)
|
||
|
||
| VMID | Name | IP | How |
|
||
|------|------|-----|-----|
|
||
| 210 | cal | 10.0.10.228 | `pct set` |
|
||
| 215 | caseware | 10.0.10.105 | `pct set` |
|
||
| 216 | auto | 10.0.10.59 | `pct set` |
|
||
| 217 | identity | 10.0.10.21 | `pct set` |
|
||
| 218 | monitoring | 10.0.10.22 | `pct set` |
|
||
| 219 | portfolio | 10.0.10.106 | `pct set` (`iliadobkin.com`) |
|
||
| 106 | caddy | 10.0.10.50 | static in `/etc/network/interfaces` |
|
||
|
||
---
|
||
|
||
## Priority order — UniFi reservations (VMs / pve201)
|
||
|
||
| Order | Guest | IP | MAC | Notes |
|
||
| ----- | ----- | --- | --- | ----- |
|
||
| 1 | giteaVM | 10.0.10.169 | BC:24:11:E9:BD:E5 | |
|
||
| 2 | vaultwardenVM | 10.0.10.142 | BC:24:11:58:DB:DC | |
|
||
| 3 | n8n (WRA) | 10.0.10.154 | BC:24:11:61:DE:7A | |
|
||
| 4 | hermes | 10.0.10.36 | BC:24:11:51:1E:99 | |
|
||
| 5 | actual | 10.0.10.158 | BC:24:11:10:7B:64 | |
|
||
| 6 | jellyfin | 10.0.10.232 | BC:24:11:29:B8:84 | stopped until NAS OK |
|
||
| 7 | listmonk (pve201 VM 113) | 10.0.10.148 | BC:24:11:11:53:9A | |
|
||
| 8 | Mailcow (pve201) | 10.0.10.132 | BC:24:11:34:75:2D | |
|
||
| 9 | TrueNAS | 10.0.10.107 | BC:24:11:14:DE:B5 | optional pin |
|
||
| 10 | PVE.BU.SVR | 10.0.10.200 | BC:24:11:DA:95:3B | lab VM |
|
||
|
||
Full MAC table: [vm-static-ip-router-reservations.md](vm-static-ip-router-reservations.md).
|
||
|
||
---
|
||
|
||
## If you only see 192.168.2.x in UniFi
|
||
|
||
Your Mac may be on `192.168.2.0/24` while Proxmox guests use a separate **`10.0.10.0/24`** network. In that case:
|
||
|
||
- Add or edit a UniFi network/VLAN for `10.0.10.0/24`, or
|
||
- Ensure the router bridges/routes between `192.168.2.x` and `10.0.10.x`, and
|
||
- Put DHCP reservations on the network that actually serves the Proxmox bridge.
|
||
|
||
---
|
||
|
||
## After reservations
|
||
|
||
Mark `✅ router` in [host-list.md](host-list.md) for each guest.
|