Full disclosure: My knowledge of networking is just sufficient to run Linux systems.
I am trying to install Centos on a PC via PXE.
All required services, DHCP, TFTP and HTTP, run on the same server (a Raspberry Pi with raspbian).
DHCP, tftp and pxelinux do their job, then dracut comes in and tries to download
http://....squashfs.img. This fails because dracut can't connect to the http server. dracut eventually drops to a shell prompt.
- Pinging the server from dracut fails.
- Pinging in the other direction, from the server to the PC, succeeds.
- Pinging the server from any other box in reach succeeds.
- Pinging any other box in reach from dracut succeeds.
- The PC has Windows installed already. There used to be no problem, but now Windows also has no connectivity to that server.
- So, there is only one very narrow case where there is no connectivity: From the PC to the server. Any other condition doesn't pose a problem.
- tcpdump on the server reveals something strange:
Code:
12:14:45.419412 74:46:a0:a0:d4:7b > b8:27:eb:3f:a2:ef, ethertype IPv4 (0x0800), length 74: 192.168.1.27 > 192.168.1.16: ICMP echo request, id 1, seq 11, length 40
12:14:45.419624 b8:27:eb:3f:a2:ef > 00:24:a5:d7:f4:ae, ethertype IPv4 (0x0800), length 74: 192.168.1.16 > 192.168.1.27: ICMP echo reply, id 1, seq 11, length 40
74... is the PC running dracut. b8... is the server. 00... is my router. The server receives echo requests from the PC and sends replies to the router. Puzzling!
- The ARP cache on the server looks like this:
Code:
# ip n | grep -e 00:24:a5:d7:f4:ae -e 74:46:a0:a0:d4:7b
192.168.1.27 dev eth0 lladdr 74:46:a0:a0:d4:7b STALE
192.168.1.1 dev eth0 lladdr 00:24:a5:d7:f4:ae REACHABLE
Why does the server insist to sent echo replies to a different box?
EDIT: It seems strange to me that the ARP cache entry is marked as stale. After all, the PC has just acquired its IP address from that same server. Do I have a misconception there?