Perfect — Camelot ↔ Frodo are alive, the lab net is breathing again ⚡. Let’s address two things:
🛠 1. Make IPs stick (so you don’t fight this again)
Right now you’re using ip addr add ... which dies on reboot or cable shuffle.
You want persistent config that ties to the NIC’s MAC address, not just its current enp0s20u2u1 or enp3s0f4u1u2 label (since those change with USB port order).
On Camelot (10.20.30.1)
-
Find MAC:
ip link show enp3s0f4u1u2(something like
a0:ce:c8:56:e2:4c) -
If you’re using NetworkManager:
nmcli con add type ethernet ifname enp3s0f4u1u2 con-name lab-camelot \ ipv4.method manual ipv4.addresses 10.20.30.1/24 ipv4.never-default yes nmcli con up lab-camelot
tux@camelot:~$ nmcli con add type ethernet ifname enp3s0f4u1u2 con-name lab-camelot \
ipv4.method manual ipv4.addresses 10.20.30.1/24 ipv4.never-default yes
nmcli con up lab-camelot
Connection 'lab-camelot' (7c157bc4-4bf6-48ca-88dd-f5a1da5f71b1) successfully added.
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)-
If you want to pin to MAC so name doesn’t matter:
nmcli con modify lab-camelot connection.interface-name "" \ connection.matching-mac-address a0:ce:c8:56:e2:4c
Now Camelot always comes up at 10.20.30.1/24, never tries to be gateway.
On Frodo (10.20.30.2)
Same idea:
nmcli con add type ethernet ifname enp0s20u2u1 con-name lab-frodo \
ipv4.method manual ipv4.addresses 10.20.30.2/24 ipv4.never-default yes
nmcli con modify lab-frodo connection.interface-name "" \
connection.matching-mac-address <frodo-mac>
nmcli con up lab-frodoResult:
- Even if you unplug/replug, NICs keep their MAC-based config.
-
Camelot =
.1, Frodo =.2every time.
allison@frodo:~$ nmcli con up lab-frodo
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/30)
allison@frodo:~$ ip a show enp0s20u2u1
4: enp0s20u2u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether a0:ce:c8:56:e2:4c brd ff:ff:ff:ff:ff:ff
inet 10.20.30.2/24 brd 10.20.30.255 scope global noprefixroute enp0s20u2u1
valid_lft forever preferred_lft forever
inet6 fe80::b6c1:fa94:8d34:de27/64 scope link noprefixroute
valid_lft forever preferred_lft forever
allison@frodo:~$ ip route
default via 192.168.11.1 dev wlp3s0 proto dhcp src 192.168.11.185 metric 600
10.20.30.0/24 dev enp0s20u2u1 proto kernel scope link src 10.20.30.2 metric 100
allison@frodo:~$ nmcli con up lab-frodo
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/31)
allison@frodo:~$ nmcli con mod lab-frodo -ipv4.gateway ""
allison@frodo:~$ nmcli con mod lab-frodo ipv4.never-default yes
allison@frodo:~$ nmcli con up lab-frodo
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/32)
🛠 2. About the Windows box (Fred)
You’ve got a choice:
-
Keep Windows
- Pro: easy to test firewall rules, RDP, SMB, WinRM (handy in a mixed environment).
- Con: it’s dead weight as a “server” unless you’re testing Windows-specific features.
-
Reformat as Proxmox node
- Pro: you gain a pseudo-server → run VMs + LXC containers, start playing cluster games.
- Con: you lose Windows GUI, and it’ll need some setup (ZFS, storage config, etc).
🏰 My recommendation for your lab
- Keep Camelot + Frodo as Linux workstation + peer.
-
Convert the spare Windows box into Proxmox → that way you have:
- Camelot (main knight, workstation + lab head)
- Frodo (support peer, testing apps)
- “Fred” (becomes Proxmox mini-node, pseudo-server to host containers/VMs).
That would let you:
-
Keep the lab net tidy with
.1/.2/.3. - Test your containers in Proxmox without touching Camelot’s daily OS.
- Still RDP/SSH into Camelot + Frodo for user work.
⚡ TL;DR
- Pin lab NICs to MAC → static IPs survive reboots/cable swaps.
- Reformat Windows into Proxmox if you want more real “server” power in the kingdom.
👉 Do you want me to sketch out what a 3-node layout looks like (Camelot workstation, Frodo peer, Fred as Proxmox pseudo-server) so you can see what you gain vs lose?