Hi,
Another one for Solaris!
If I define a stick-table in a frontend, like this
frontend from-internet
stick-table type ip size 1m expire 60s store gpc0
tcp-request connection track-sc1 src
and update the gpc0 in a backend like this
backend dynamic-content
stick-table type ip size 1m expire 30s store conn_rate(30s)
acl click_too_fast sc2_conn_rate gt 250
acl mark_as_abuser sc1_inc_gpc0
tcp-request content track-sc2 src
tcp-request content accept if click_too_fast mark_as_abuser
I would expect the tables to fill up with client IP addresses.
Why then does my table contain
> show table from-internet
# table: from-internet, type: ip, size:1048576, used:1
ad6cc: key=0.0.0.0 use=9 exp=59994 gpc0=1990
> show table dynamic-content
# table: dynamic-content, type: ip, size:1048576, used:1
5d8e44: key=0.0.0.0 use=5 exp=29695 conn_rate(30000)=80
The key 0.0.0.0 is storing a global connection rate. I want to track each
individual client IP.
By the way, I have put "tcp-request content accept" instead of reject
because at this stage I don't want to break my site, even if it is a test
site.
I admit I am unsure of the way that this works, and may have got things
wrong here.
Regards
John
--
John Helliwell