Chapters: 

🛠️ Home Network Recovery + Connectivity Sanity Guide (Frodo edition)

📦 1. Understand the Current Picture

You're seeing:

  • camelot has <incomplete> in ARP — which means Frodo doesn’t see a MAC address for it (Camelot not online or not on same network interface).
  • nmap sees only Frodo.
  • Your /etc/hosts defines static IPs:

    10.20.30.1    camelot
    10.20.30.2    frodo
    10.20.30.3    johnnycamelot

🧰 2. Checklist to Run When “It’s Broken Again”

✅ Step 1: Check Interfaces on Frodo

ip a
allison@frodo:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 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
inet 192.168.11.185/24 brd 192.168.11.255 scope global dynamic noprefixroute wlp3s0
valid_lft 3264sec preferred_lft 3264sec
inet6 fd82:6dbd:3692:80c4:17ca:b91f:9b62:951a/64 scope global dynamic noprefixroute
valid_lft 1593sec preferred_lft 1593sec
inet6 fe80::6aea:944e:9fdd:2461/64 scope link noprefixroute
valid_lft forever preferred_lft forever
23: enp0s26u1u2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether c8:4d:44:29:ae:57 brd ff:ff:ff:ff:ff:ff
inet 10.20.30.2/24 brd 10.20.30.255 scope global noprefixroute enp0s26u1u2
valid_lft forever preferred_lft forever
inet6 fd82:6dbd:3692:80c4:1b5d:e866:369c:53b4/64 scope global dynamic noprefixroute
valid_lft 1593sec preferred_lft 1593sec
inet6 fe80::a559:bafd:2881:9ecc/64 scope link noprefixroute
valid_lft forever preferred_lft forever

Look for:

  • enp0s26u1u2 (wired)
  • wlp3s0 (wireless)

Confirm which interface is connected to the switch.

✅ Step 2: Check Camelot Is Powered On

From Frodo, try:

ping 10.20.30.1

If it fails:

  • Is Camelot booted?
  • Is its Ethernet plugged in?
  • Are you using Wi-Fi and wired simultaneously? Sometimes that breaks routing.

Log into Camelot and check:

ip a

Make sure its IP is indeed 10.20.30.1.

Also:

ping frodo

📡 3. Switch Reset Woes – How to Tame DHCP vs Static

Your switch likely doesn’t assign IPs (unless it’s a smart switch). DHCP probably comes from your Wi-Fi router, but your 10.20.30.x scheme suggests you may be setting manual static IPs.

If that’s the case:

  • Make sure each host is truly set with static IP (not DHCP-assigned).
  • If any host switches to Wi-Fi or boots up late, the 10.20.30.x route might get messed up.

🔁 4. Quick Reconnect Fix (for Frodo)

Make this into a script (~/fix-network.sh):

#!/bin/bash
echo "Checking known hosts..."
for host in camelot johnnycamelot; do
    echo -n "$host: "
    ping -c 1 $host &> /dev/null && echo "✅ reachable" || echo "❌ unreachable"
done

echo ""
echo "Current ARP table:"
arp -a | grep 10.20.30

Make it executable:

chmod +x ~/fix-network.sh

🛜 5. Mount Camelot’s Drive from Frodo

Once Camelot is reachable:

On Frodo:

sudo mkdir -p /mnt/camelot
sudo mount -t nfs camelot:/home/allison /mnt/camelot

You can add this to /etc/fstab if you want it persistent:

camelot:/home/allison  /mnt/camelot  nfs  defaults  0  0

Or, if you're using SSH instead of NFS:

sshfs allison@camelot:/home/allison /mnt/camelot

💻 6. When Windows is in Charge

On Windows:

  • Assign a static IP in the 10.20.30.x range.
  • Enable file sharing, or run python -m http.server in a folder to share it quickly.
  • From Frodo:

    smbclient -L //camelot -U youruser

💖 Welcome back, Frodo rider! You're doing great — and Camelot is reachable from both Wi-Fi and Ethernet on Frodo, based on this:

camelot (10.20.30.1) at a0:ce:c8:56:e2:4c [ether] on wlp3s0
camelot (10.20.30.1) at a0:ce:c8:56:e2:4c [ether] on enp0s26u1u2

That means Camelot’s MAC address is now in Frodo’s ARP table on both interfaces — Wi-Fi and Ethernet — which can happen if Camelot temporarily broadcast on both or if Frodo is listening on both interfaces.


🧩 Why This Fails:

cat /sys/class/net/enp3s0f3u2u1/carrier

Gives:

No such file or directory

That’s because you’re now on Frodo, and enp3s0f3u2u1 is the Ethernet interface on Camelot — not on this machine.

On Frodo, your Ethernet interface is probably:

enp0s26u1u2

So from Frodo, to check its cable state:

cat /sys/class/net/enp0s26u1u2/carrier

Expected:

  • 1 = cable is in, link up
  • 0 = cable unplugged

✅ So Your Fix-Network Plan (From Frodo)

You're already good! But here's a cleaned-up, host-aware version of your notes for future reference:


🧭 On Camelot:

cat /sys/class/net/enp3s0f3u2u1/carrier   # Only valid on Camelot
sudo ip addr add 10.20.30.1/24 dev enp3s0f3u2u1
sudo ip link set enp3s0f3u2u1 up

🧭 On Frodo:

cat /sys/class/net/enp0s26u1u2/carrier   # Frodo's own Ethernet link
ping camelot                             # Test Camelot reachability
arp -a | grep camelot                    # Confirm MAC and interface

Would you like to enhance your fix-network.sh script to:

  • Detect which host it's on (Frodo vs Camelot)?
  • Adjust interface checks accordingly?

Or leave it beautifully minimalist for now?