cancel
Showing results for 
Search instead for 
Did you mean: 

LTM - Monitor with "arping" relies on ARP-Cache

Ichnafi
Nimbostratus
Nimbostratus

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 15.1.2.1) arpings will get answered from LTMs own ARP-Cache instead of sending a real request over the network. This can easily be tested by:

  1. Run a tcpdump that filters for arps: tcpdump -nni <vlan> arp
  2. On another console execute an arping: rdexec <rd> arping -c1 -I <vlan> <node-ip>

 

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?

 

Cheers,

Stefan

 

1 REPLY 1

Ichnafi
Nimbostratus
Nimbostratus

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

the network.

 

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).

[...]