Brocade ADX – The keepalive command

Within this article we will look into the ‘keepalive’ command. As this command isn’t greatly documented I thought this would be a good opportunity to explain in a little more detail how it works.

Keepalive vs Keep-alive

First of all it is worth noting that the ‘keepalive’ command (which is configured under the real server) should not be confused with the ‘keep-alive’ command that is configured under the virtual server. Where as the ‘keep-alive’ command enables HTTP 1.1 functionality under the virtual server the keepalive command has a different role.

What does it do ?

The ‘keepalive’ command is configured within the real server using the syntax ‘port <port> keepalive’, as shown below.

server real 192.168.1.1-web1 192.168.1.1
 port 80
 port 80 keepalive
 port 80 url “GET /”

When keepalive is enabled the loadbalancer periodically checks the real server based on the configured healthchecks.

However without the keepalive option enabled the ADX initally checks the port using the configured healthcheck (in this example HTTP GET /) at the point the port is bound.
The ADX then monitors the traffic and will only mark the port as FAILED if the real server fails to respond to multiple SYN packets.

Gotcha

At the point of a server being disabled, though no new connections are permitted existing connections will remain active until they gracefully finish. This in turn means that (as the ADX still sees these active connections) at the point the server is re-enabled the port status will return to ACTIVE without the initial healthcheck (in our case HTTP GET / ) being sent.

Rick Donato

Want to become a networking expert?

Here is our hand-picked selection of the best courses you can find online:
Cisco CCNA 200-301 Certification Gold Bootcamp
Complete Cyber Security Course – Network Security
Internet Security Deep Dive course
Python Pro Bootcamp
and our recommended certification practice exams:
AlphaPrep Practice Tests - Free Trial