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

Reply via email to