Forum Discussion

niboto_335022's avatar
niboto_335022
Icon for Nimbostratus rankNimbostratus
Sep 29, 2017

keep alive and tcp idle connections

Hello,

 

in a cloud deployement, big ip is used as reverse proxy for websockets load balancing between clients and backend softwares. data path is as follow:

 

client-------(TCP1)------------F5_LB_VS--------(TCP2)----------HAPROXY----(TCP3)-------Backend

 

we have implemented tcp keep Alive thanks to tcp client custom profile on LB. this keep-Alive permits to supervise client availability when TCP1 is ILDE. AS soon as, the client goes down, keep alives are no more acked by the client. F5 releases the TCP1 and TCP2 by sending TCP RST on both side (client and server). This is the behavior we want. but a drawback of that keep-alive is that TCP connections remains for a long time if the client never disconnects. this have an impact on the server where we may have many TCP connections hanging without any data traffic exchange.

 

what can we implement beside the keep alive in order to overcome this drawback?

 

does F5 support specific timers for websocket tunnel? or TCP timer still apply?

 

it seems that an TCP idle timout on client side (in profile) has no effect, probably because keep alive is probably considered as minimal traffic hence idle timout never expires. hence tcp idle session is still maintained.