Hi, On Thu, Feb 02, Ricardo Fraile wrote: > Taking as starting point the following rate limit sticky table, in which > the requests are tracked by the "X-Client-IP" header and have an acl to > limit if there are more than 250 in 1 second: > > stick-table type ip size 1m expire 1h store gpc0,http_req_rate(1s) > http-request track-sc0 req.hdr_ip(X-Client-IP,1) > > acl rule_average sc0_http_req_rate gt 250 > > http-request deny if rule_average > > With this configuration, a user is blocked if have more than 250 request > in a second. For example, at the same time, 192.168.1.1 can have 250 > requests and 192.168.1.2 an other 250 requests. > > But is it possible to apply this limit behaviour taking into account the > subnet?, for example, if the load balancer receive more than 250 request > from the 192.168.1.0/24, limit each particular IP, for example, at the > same time, 192.168.1.1 can have 100 and 192.168.1.2 the other 150, but > not more than 250 together.
ipmask (https://cbonte.github.io/haproxy-dconv/1.7/configuration.html#7.3.1-ipmask) might work. So something like: http-request track-sc0 req.hdr_ip(X-Client-IP,1),ipmask(24) -Jarno -- Jarno Huuskonen

