Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ARP weirdness on local networks #23

Open
mbbrutman opened this issue Feb 2, 2022 · 0 comments
Open

ARP weirdness on local networks #23

mbbrutman opened this issue Feb 2, 2022 · 0 comments

Comments

@mbbrutman
Copy link

mbbrutman commented Feb 2, 2022

Host machine: Linux (Ubuntu 20.04) with the primary Ethernet disabled, leaving the esp_slip_router device as the only network connection. I'm using the pre-built firmware that is current as of yesterday.

What works:

  • Pinging to my home router (192.168.2.1)
  • Pinging the outside world (8.8.8.8 or brutman.com)

What fails:

  • Pinging any other machine on my home network from the Ubuntu machine.
  • Pinging the esp_slip_router from any device on my home network on it's WiFi (external) address.

Tcpdump on the Ubuntu machine shows me the request is going to the esp_slip_router device. Tcpdump on a target machine (a Linux laptop) shows no ICMP packets arriving from the esp_slip_router device, and the esp_slip_router device is also not even responding to ARP.

NAT should be properly routing ICMP originating from the Ubuntu machine, and it's doing so for external addresses. And of course you should be able to ARP it.

Here is what I think is going wrong:

The esp_slip_router has a problem responding to ARP. It doesn't seem to be responding at all.

  • Getting an initial address works because it has to broadcast the DHCP request, allowing the home router to harvest the MAC address. Which then allows the router to talk to the esp_slip_router device, enabling access to the outside world.
  • Internal machines do not respond to ARP and can not ping the esp_slip_router device if it does not send or receive ARP.
  • I can make a specific machine respond to pings from the Ubuntu machine or be able to ping the esp_slip_router device directly if I prime that machine's ARP cache with the MAC address of the esp_slip_router. (Priming the ARP cache allows the ICMP packet to get to the esp_slip_router device, and it has the return MAC address, so that gets around the need to explicitly ARP. The esp_slip_router device is luckily caching the hardware address.)

So the short story is that I think ARP caching is working, but something is preventing the esp_slip_router device from ARPing or responding to ARP requests.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant