All existing content moved from repo root into proxmox/ to make room for other Debian machine configs. Adds pihole/ with: - config/pihole.toml — snapshot of current Pi-hole v6 config - config/dnsmasq.d/99-ipxe-chainload.conf — custom PXE DHCP rules (EFI/BIOS iPXE chainload, fixed tag-specificity bug for UEFI boot) - pull-config.sh <source-host> <dest-dir> — pull live config to disk - apply-config.sh <source-dir> <dest-host> — push config to a Pi-hole Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XRzqNDrbnYR22ZgZj1Bg3s
2.5 KiB
Networking
pve1 as built (Stage 1, current)
Single NIC (2.5GbE), single bridge vmbr0 on the flat LAN
(192.168.2.0/24), no VLANs. There is no corosync or Ceph traffic to
separate yet — this node isn't clustered. Segmentation for Stage 1 is
done at the firewall, not the network: scripts/deploy-firewall.sh
restricts SSH (22) and the web UI (8006) to the management CIDR via the
PVE datacenter firewall (default-deny inbound otherwise). That's
sufficient until Stage 2 needs actual separate physical/VLAN paths for
corosync and Ceph traffic — see below.
pve-test as built (sandbox, current)
Different node, different design, not a Stage 1/2 example to generalize
from: pve-test runs vmbr0 bridged over a wifi NIC in 4addr client mode
(active-backup bonded with a wired NIC as an automatic fallback). Full
detail, including why this is normally impossible and how it was
validated before trusting it with the management IP, in
06-pve-test-wifi-network.md. This is intentionally a one-off for a
standalone sandbox box — never extend it to a node that's clustered or
Ceph-connected (see the Stage 2 note in 00-overview.md).
Target design (Stage 2, future cluster)
Required separation
Keep these on logically separate networks/VLANs, ideally separate NICs:
- Management — web UI (8006), SSH
- Corosync — cluster quorum. Low, consistent latency (well under 5ms) matters more than bandwidth. Never share with VM/storage traffic.
- Ceph public — VM-to-OSD traffic (once Ceph is live)
- Ceph cluster/backend — OSD-to-OSD replication, heaviest load
Practical layout
2x 10/25GbE bonded or split:
- Link pair A → Ceph (public + backend, or split further if 4 NICs available)
- Link pair B → management + corosync + VM traffic, with corosync on its own VLAN even when sharing a physical NIC with the rest
Cluster join requirements
- All nodes reachable to each other on SSH (22) and the corosync network
- Same PVE version across nodes
- NTP-synced clocks
Firewall
Proxmox's built-in firewall operates at datacenter and node level. Default-deny, then whitelist:
- SSH from the management network/VLAN only
- Web UI (8006) from the management network/VLAN only
- Corosync ports between cluster nodes
- Ceph ports between cluster nodes (once Ceph is live)
Enforce the network separation above at the firewall — corosync and Ceph traffic shouldn't be reachable from the VM network even if they end up sharing a physical link.
See config/pve-firewall/ for a starting rule set.