Missing ARP cache entries

  • ATTENTION! As of November 1, 2020, you will not be able to reply to threads 6 months after the thread is opened. Threads will not be locked, so posts may still be edited by their authors.

David Wolfe

Occasional Visitor
Can anyone enlighten me on why my RT-AC5300's (Merlin 384.19) arp cache wouldn't show a connected device even though the web gui does show the device is connected via WiFi? I have this issue with several devices periodically ranging from IP cameras to printers to full Windows 10 workstations. I can't ping missing devices from the Asus ssh shell and the arp entry for a missing device usually doesn't get auto-discovered via that ping attempt.

If I manually add a device for a missing arp entry, things come to life as expected.

This has been an issue I've had to deal with since buying the AC5300 both with stock firmware and with all versions of Merlin.

Thanks all.
 

ColinTaylor

Part of the Furniture
If a device hasn't sent any traffic for some time (e.g. it's asleep or idle) its ARP table entry will eventually expire.
 

David Wolfe

Occasional Visitor
Shouldn't a ping attempt to the IP of a missing arp entry initiate an arp discovery though? That's where I'm getting confused. My understanding is that there should be an arp broadcast for the device when it's missing from the cache.
 

ColinTaylor

Part of the Furniture
Yes there should be an arp broadcast when you ping a device that is not in the arp table. That's not to say that the device in question will respond to the ping though. For example, my Samsung phone is connected to my WiFi but asleep. There was no arp entry for it on the router until I tried to ping it. Now there is an arp entry but the phone is still not answering pings.
 
Last edited:

David Wolfe

Occasional Visitor
Understood. Some devices do go to sleep. But, most of the problematic devices on my network are always-on devices like IP cameras. As mentioned, if I manually create an arp entry for a missing device, I can immediately begin to ping it. There is something not working right in the arp auto-discovery part of the process on my network.
 

eibgrad

Senior Member
Shouldn't a ping attempt to the IP of a missing arp entry initiate an arp discovery though? That's where I'm getting confused. My understanding is that there should be an arp broadcast for the device when it's missing from the cache.
If you ping a device, then yes, it would normally be preceded by an arp request (provided the device was not already in the arp cache). But many devices in sleep/power-saving mode will NOT respond to arp requests! They're happy to respond to ping though, but it requires a static arp entry because of its unwillingness to respond to arp.

Seems counter-intuitive to me, but I've observed this behavior many times, particularly w/ network printers.

In the case of my Brother laser printer, I decided to bind the printer and router to a second IP network (e.g., 192.168.99.0/24), w/ the router as 192.168.99.1, and the printer as 192.168.99.2. And the router has a static arp entry for the printer. Now I don't have to install/manage static arp entries among all my clients. Those clients know they need to be routed to the other network in order to reach the printer, and when they do, the router isn't dependent on arp discovery to find the printer.

IMO, the underlying cause is power-saving mode. As implemented, it's often incompatible w/ arp. And in some cases, you can't even disable it; it's automatic.
 
Last edited:

GSpock

Senior Member
In the case of my Brother laser printer, I decided to bind the printer and router to a second IP network (e.g., 192.168.99.0/24), w/ the router as 192.168.99.1, and the printer as 192.168.99.2. And the router has a static arp entry for the printer. Now I don't have to install/manage static arp entries among all my clients. Those clients know they need to be routed to the other network in order to reach the printer, and when they do, the router isn't dependent on arp discovery to find the printer.
Hi, may be a bit out of topic, but for my education: do you mean that those clients who know they need be routed to the other network are for example in the range 192.168.1.x ? ... and concretely how to you achieve them to talk to each other ?
Thx,
GS
 

sbsnb

Senior Member
If you ping a device, then yes, it would normally be preceded by an arp request (provided the device was not already in the arp cache). But many devices in sleep/power-saving mode will NOT respond to arp requests! They're happy to respond to ping though, but it requires a static arp entry because of its unwillingness to respond to arp.
For all intents and purposes that's OFF, not sleeping. Perhaps it makes sense for a device that shouldn't expect input as it can wake itself as needed, but it's completely brain-dead stupid for a device that's supposed to be ready to accept user input from the network at any moment.
 

David Wolfe

Occasional Visitor
To cloud things even worse, sometimes the router itself will not be able to arp discover a device missing from cache and other devices on the network may not either. For example, I have a basic file server (Windows 10) on my network that iPads sometimes cannot reach even though other devices on the network can.

If I retry connecting a half dozen times, sometimes the iPad will finally see the file share, sometimes it won't. And, of course, Tim Cook says I shouldn't be allowed to see the arp table on my iPad because Apple controls the vertical and the horizontal of all aspects of life.

But, on devices where I *DO* have arp control I can manually add the arp entry for the file server and the connection comes to life just fine.
 

sbsnb

Senior Member
As long as the devices had a valid DHCP lease, shouldn't the router know their MAC address anyway?
 

sbsnb

Senior Member
DHCP leases and ARP table entries are two unrelated things.
Absolutely, but if the router is tracking a DHCP lease it "knows" the MAC address of that client. It could, in theory, answer the ARP request on behalf of the client. Proxy ARP is a standard, although it's not clear to me if answering for devices on the same subnet is allowable. Just a thought.
 

ColinTaylor

Part of the Furniture
Knowing what the (DHCP) MAC-to-IP assignment is doesn't tell the router whether a device is actually connected to the network and what interface it is connected to. DHCP doesn't "track" clients. Even devices behind a proxy server would need to have ARP table entries.
 

sbsnb

Senior Member
If the router were to answer ARP requests on behalf of devices with current DHCP leases everything behaves exactly as expected other than the router answering an ARP broadcast on behalf of another device. The client will have no way of knowing that the device itself didn't answer. It would still cache the response and use that information to construct Ethernet frames.

"Normal" ARP
192.168.1.3: Who has 192.168.1.2?
192.168.1.2: 192.168.1.2 is at DE:AD:BE:EF:CA:FE
192.168.1.3: Caches DE:AD:BE:EF:CA:FE and send Ethernet frame

Proxy ARP
192.168.1.3: Who has 192.168.1.2?
192.168.1.1 (Router): 192.168.1.2 is at DE:AD:BE:EF:CA:FE
192.168.1.3: Caches DE:AD:BE:EF:CA:FE and sends Ethernet frame

The router could even use gratuitous ARP to broadcast the hardware addresses of current DHCP leases periodically.

It doesn't matter if the device with a DHCP lease is connected or not. All that will happen if it's not is that the sending device won't get a response to their Ethernet frame.
 

ColinTaylor

Part of the Furniture
If the router were to answer ARP requests on behalf of devices with current DHCP leases...
The point is that the router doesn't behave as a proxy for DHCP clients, so your original question "shouldn't the router know their MAC address anyway?" doesn't help the OP's situation.
 

sbsnb

Senior Member
Right. I was meaning that the router could do so in theory, not that it does. I didn't intend to give the impression that there was a potential short term solution here. It was just that the OP's situation seemed to be at least somewhat common and it seemed as though the router holds the information that could be used to address it.
 

David Wolfe

Occasional Visitor
I dug around a little to see if there was any sort of arp proxy service that could be enabled on the router but didn't find anything. My thinking was similar to sbsnb's in that if the router could answer arp queries at least I'd only have one place to worry about when setting up static arp entries.
 

Similar threads

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top