fir3net
PPS-Firenetbanner-780.5x190-30-03-17

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.

About the Author

RDonato

R Donato

Rick Donato is the Founder and Chief Editor of Fir3net.com. He currently works as a Principal Network Security Engineer and has a keen interest in automation and the cloud.

You can find Rick on Twitter @f3lix001