16.03.12 09:35, Alexander Panyushkin написав(ла):
Хороше бы на правила фаера взглянуть, какие лимиты выставлены, что тюнили?




Здравствуйте!

Правила такие:
set skip on lo
set timeout { udp.first 20, udp.single 20, udp.multiple 20 }
set timeout tcp.first 5
set timeout tcp.established 86400
set limit { states 5000000, src-nodes 300000 }
set optimization aggressive
set block-policy drop

up_if="em0"
up_gw="..."
down_if="igb0"
down_gw="..."

table <whitelist> persist {}
table <srvips> persist {}
rdr-anchor whitelist on $down_if proto tcp from <whitelist> to <srvips> port 80

pass out quick on $up_if route-to ($down_if $down_gw) from $down_if to any no state
pass all no state
pass in on $down_if reply-to ($down_if $down_gw) proto tcp to $down_if flags S/SA label "$dstaddr" no state

Маршрут по умолчанию - через интерфейс к бекендам, он же менеджмент (em0, up_if).
На интерфейсе down_if висят несколько алиасов.
Для части из них (те, которые в srvips) включен ряд проверок (реализованы в nginx), после прохождения которых клиенты добавляются в вайтлист, клиенты из вайтлиста с помощью rdr правил в якоре переадресуются прямо на бекенд.

Тюнилось, главным образом, для поддержки большего числа соединений и собственно против ддос.
sysctl.conf
net.inet.tcp.blackhole=2
net.inet.tcp.syncookies_only=1
net.inet.tcp.maxtcptw=524280
net.inet.tcp.nolocaltimewait=1
net.inet.tcp.fast_finwait2_recycle=1
kern.maxfiles=204800
kern.maxfilesperproc=200000
kern.ipc.maxsockets=204800
kern.ipc.nmbclusters=2048000
kern.ipc.somaxconn=8192
net.inet.tcp.drop_synfin=0
kern.ipc.maxsockbuf=33554432
net.inet.tcp.sendbuf_max=33554432
net.inet.tcp.recvbuf_max=33554432

loader.conf
net.inet.tcp.tcbhashsize=10240

Заметил, что после ддоса, о котором шла речь ранее, появилась нехватка timewait буферов.
ITEM                   SIZE  LIMIT     USED     FREE      REQ FAIL SLEEP
...
tcptw:                   72, 262150,      13,   65537,11602703,2548093,   0

после чего увеличивал net.inet.tcp.maxtcptw.

Могла ли эта нехватка стать причиной подобного поведения?

Ответить