Hello fellow F5ers,
I have devices, that can only be monitored via "arping" (don't ask, the devices are stupidly designed, some people may call that "secure"). There are several threads here on devcentral covering the use of "arping" in external monitors, but I see a behavior that is not mentioned at all.
At least on my LTMs (running Version 188.8.131.52) arpings will get answered from LTMs own ARP-Cache instead of sending a real request over the network. This can easily be tested by:
If there is no ARP-Entry in LTMs ARP-Cache, you will see an arp request with tcpdump. Any subsequent arpings will not be send over the network as long as there is a valid entry in the ARP-Cache (default timeout 5 minutes). The moment you clear the ARP-Cache manually, the next arping will be send over the network again.
This means, that even when the system that you arping is offline (shutdown, no power, you name it), you will still receive successfull arpings until the ARP-Cache entry times out.
Has anyone encountered a simmilar behavoir?
Any idea how I can use arping to reliable determ wether the node is still alive?
I will post an answer from F5-Support.
The behavior is "as designed"
Nonetheless after doing some additional information please be noted that Linux
traffic not destined to the management network is picked up and forwarded by
TMM which maintains its own ARP table. As a result there are two arp tables
the TMM one and the Linux host one.
The first time that IP address is being resolved to a MAC address (i.e. when
TMM doesn't know about that IP yet), TMM will send a broadcast ARP request to
Once TMM becomes aware of where that IP address lives, and while it considers
its entry fresh, TMM will not ask the network again, even if the Linux host
(e.g. arping) is trying to resolve it again.
This is behavior is per design but may lead to unexpected result such as
marking pool member up based on TMM's cached response rather than based on
actual ARP request send out towards the destination server.
Maintaining both ARP tables with the external monitor script (for instance
clearing ARP tables) is generally also not recommended (as tmsh commands such
as clearing arp table is not scalable might consume cause to consume more
CPU/memory resources and may lead to unexpected results for instance when next
instance of the script is executed before end of previous tmsh execution).
As alternative for external monitoring using arping tool - please consider
applying ICMP_gateway monitor (you can strict ICMP traffic in network to
specific IP's only - that belongs to BIgIP's non-floating self-ip and
destination pool members).