So every time I swap the connectors the network thinks I'm swapping NICs.
Needless to say, the ones here are backwards ;)
So now I'm going to use mac address
camelot
tux@localhost:~$ sudo ip addr flush dev enp3s0f4u1
sudo ip addr add 10.20.30.1/24 dev enp3s0f4u1
sudo ip link set enp3s0f4u1 up
[sudo] password for tux:
tux@localhost:~$ ping -c 3 10.20.30.2
PING 10.20.30.2 (10.20.30.2) 56(84) bytes of data.
64 bytes from 10.20.30.2: icmp_seq=1 ttl=64 time=2.66 ms
64 bytes from 10.20.30.2: icmp_seq=2 ttl=64 time=1.64 ms
64 bytes from 10.20.30.2: icmp_seq=3 ttl=64 time=1.35 ms
--- 10.20.30.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 1.352/1.885/2.661/0.561 ms
tux@localhost:~$ sudo nmcli con add type ethernet ifname enp3s0f4u1 con-name camelot-static \
ipv4.method manual ipv4.addresses "10.20.30.1/24" ipv4.gateway "" ipv4.dns ""
Connection 'camelot-static' (370362b6-8c83-4889-a187-d692a5a39ace) successfully added.
tux@localhost:~$ sudo nmcli con mod camelot-static connection.autoconnect yes
tux@localhost:~$ updated
tux@localhost:~$ sudo nmcli con add type ethernet con-name camelot-static \
ipv4.method manual ipv4.addresses "10.20.30.1/24" \
802-3-ethernet.mac-address "A0:CE:C8:56:E2:4C" \
connection.autoconnect yes
Connection 'camelot-static' (1281ac5f-da9b-450f-882b-923566b5ce9c) successfully added.
tux@localhost:~$ sudo nmcli con up camelot-static
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/176)
tux@localhost:~$ ip addr show
tux
allison@frodo:~$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
link/ether 9e:f1:18:ab:92:36 brd ff:ff:ff:ff:ff:ff permaddr 84:3a:4b:d3:95:50
16: enp0s20u2u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether a0:ce:c8:56:e2:4c brd ff:ff:ff:ff:ff:ff
allison@frodo:~$ sudo ip addr flush dev enp0s20u2u1
sudo ip addr add 10.20.30.2/24 dev enp0s20u2u1
sudo ip link set enp0s20u2u1 up
allison@frodo:~$ sudo nmcli con add type ethernet ifname enp0s20u2u1 con-name frodo-static \
ipv4.method manual ipv4.addresses "10.20.30.2/24" ipv4.gateway "" ipv4.dns ""
[sudo] password for allison:
Connection 'frodo-static' (d79bb57b-d3f2-468a-8b23-ba0673f1d306) successfully added.
allison@frodo:~$ sudo nmcli con mod frodo-static connection.autoconnect yes
allison@frodo:~$ sudo nmcli con down "Wired connection 1" 2>/dev/null
sudo nmcli con delete "Wired connection 1" 2>/dev/null
allison@frodo:~$ sudo nmcli con up frodo-static
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/204)
🏡 Home Network 10.20.30
A simple, stable, no-DHCP, no-surprises wired LAN that connects my personal machines directly:
|
Hostname |
IP Address |
Interface |
Role |
|---|---|---|---|
|
Camelot |
10.20.30.1 |
|
Anchor / Server |
|
Frodo |
10.20.30.2 |
|
Client / Peer |
|
JohnnyCamelot |
10.20.30.3 |
(future) |
Optional |
|
WindowsBox |
10.20.30.x |
(future) |
Optional |
This mini-LAN is used for direct Linux-to-Linux communication without DHCP, without router involvement, and without NetworkManager auto-assigning unwanted subnets like 10.42.x.x.
The goal:
Two machines that always come back with the same IPs, every reboot, every cable-move, every day.
🏰 1. Purpose of the Network
This network provides:
- A small, private wired LAN independent of Wi-Fi
- Stable static IPv4 addressing
- Predictable connectivity between machines
- Zero interference from DHCP, USB-tethering, or sharing modes
- A clean foundation for development, file transfer, testing, or just “making the machines talk”
- A sanity-preserving antidote to automatic volatile network profiles
This is “The Camelot Bridge.”
🔌 2. Physical Layout
Machines are directly connected with:
- USB-to-Ethernet adapters
- Standard Ethernet cable
- (Or via a passive switch — optional)
No router is required.
No gateway is used.
This is a flat Layer-2 link.
🗺️ 3. Subnet Details
Network: 10.20.30.0/24
Camelot: 10.20.30.1
Frodo: 10.20.30.2
Broadcast: 10.20.30.255
Gateway: None (not used)
DNS: None (not needed)
This is a standalone LAN segment.
🧱 4. Permanent Static Config (NetworkManager)
Camelot (10.20.30.1)
Interface: enp3s0f4u1
sudo nmcli con add type ethernet ifname enp3s0f4u1 con-name camelot-static \
ipv4.method manual ipv4.addresses "10.20.30.1/24"
sudo nmcli con mod camelot-static connection.autoconnect yes
sudo nmcli con down "Wired connection 1" 2>/dev/null
sudo nmcli con delete "Wired connection 1" 2>/dev/null
sudo nmcli con up camelot-static
Frodo (10.20.30.2)
Interface: enp0s20u2u1
sudo nmcli con add type ethernet ifname enp0s20u2u1 con-name frodo-static \
ipv4.method manual ipv4.addresses "10.20.30.2/24"
sudo nmcli con mod frodo-static connection.autoconnect yes
sudo nmcli con down "Wired connection 1" 2>/dev/null
sudo nmcli con delete "Wired connection 1" 2>/dev/null
sudo nmcli con up frodo-static
Once these are set, the IP assignments survive:
- Reboots
- Cable unplug/replug
- NetworkManager resets
- Device renaming
- 10.42.x.x “shared connection” pitfalls
🧪 5. Connectivity Test
Run from either machine:
ping 10.20.30.1
ping 10.20.30.2
You should always see:
0% packet loss
If not, check:
ip addr
ip link
ip neigh
✨ 6. The Camelot Bridge Rules
- Use static IPs only.
- Never leave NetworkManager in shared or auto-tether mode.
-
Bind IPs to the correct Ethernet NIC (Frodo:
enp0s20u2u1, Camelot:enp3s0f4u1). -
Leave Wi-Fi (
wlp3s0) untouched. - Never mix Wi-Fi and this LAN — they’re separate networks.
-
If something breaks, run:
ip addr show ip neigh showThese two always reveal which interface is in use.
- The subnet does not route to the internet — and it shouldn’t.
🧭 7. Future Nodes
You can safely add:
- JohnnyCamelot = 10.20.30.3
- WindowsBox = 10.20.30.100 (example)
Once you’re ready to deal with Windows, we’ll do:
- Static IP
- Disable automatic metric
- Disable random MAC
- Ensure proper Ethernet interface
- Add route appropriately
But not on a Sunday.
🗃️ 8. Backup of Profiles
To backup current profiles:
nmcli con show camelot-static > camelot-static.nmcli
nmcli con show frodo-static > frodo-static.nmcli
To restore:
nmcli con load camelot-static.nmcli
nmcli con load frodo-static.nmcli
🏁 9. Goal Achieved
This project gives me a:
- predictable,
- stable,
- frustration-free,
- two-machine wired LAN
that Just Works™ every time.
If you want, I can also:
✔ create a matching network-map.png diagram
✔ generate a setup script (setup-camelot-bridge.sh)
✔ add Windows instructions
✔ add troubleshooting section
✔ turn this into a tiny GitHub repo
Just say “Add it”.
- Log in to post comments