The timeout depends on the state of the session; the "idle timeout" only applies in the normal, fully established state. In any other of TCPs numerous states (e.g. last-ack, close-wait, time-wait etc.), other/shorter timeouts apply, for a good reason. These shouldn't really cause problems in practice, as they won't affect a properly established connection.
From /sys/contrib/ipfilter/netinet/ip_state.c:
u_long fr_tcpidletimeout = IPF_TTLVAL(9000), fr_tcpclosewait = IPF_TTLVAL(2 * TCP_MSL), fr_tcplastack = IPF_TTLVAL(30), fr_tcptimeout = IPF_TTLVAL(2 * TCP_MSL), fr_tcptimewait = IPF_TTLVAL(2 * TCP_MSL), fr_tcpclosed = IPF_TTLVAL(30), fr_tcphalfclosed = IPF_TTLVAL(240), fr_udptimeout = IPF_TTLVAL(120), fr_udpacktimeout = IPF_TTLVAL(240), fr_icmptimeout = IPF_TTLVAL(60), fr_icmpacktimeout = IPF_TTLVAL(6), fr_iptimeout = IPF_TTLVAL(60);
These can be tuned by changing the appropriate sysctls (ipf needs to be disabled and re-enabled for the sysctls to be writable); you could probably do this using <earlyshellcmd> tags in config.xml. However, I don't think changing the non-established timeouts will solve your problem.
|