[Sysadmins] iptables performance
Andriy Khavryuchenko
=?iso-8859-1?q?akhavr_=CE=C1_khavr=2Ecom?=
Пт Апр 11 14:26:31 MSD 2008
Подскажите тёмному какие ручки в ядре нужно дёргать, чтобы через
iptables можно было прогонять поток syn-flood-а в 20-40Mbps? Правил
фильтрации где-то от сорока тысяч.
Сейчас при превышении потоком определённой границы (1-2Mbps кажется),
начинается дикая потеря пакетов, 100%-я загрузка одного из ядер оптерона
hardware и software interrupts и следующие сообщения в логах:
TCP: too many of orphaned sockets
Out of socket memory
Openvz ядро.
По результатам гугленья, ручки tcp сейчас подкручены следующим образом:
echo "20" > /proc/sys/net/ipv4/tcp_fin_timeout
echo "2048" > /proc/sys/net/core/netdev_max_backlog
echo "2048" > /proc/sys/net/core/somaxconn
echo "300" > /proc/sys/net/ipv4/tcp_keepalive_time
echo "15" > /proc/sys/net/ipv4/tcp_keepalive_intvl
echo "2" > /proc/sys/net/ipv4/tcp_keepalive_probes
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "2" > /proc/sys/net/ipv4/tcp_synack_retries
echo "2" > /proc/sys/net/ipv4/tcp_syn_retries
echo "28000" > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo "10" > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_syn_recv
echo "40" > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_syn_sent
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "220000" > /proc/sys/net/ipv4/ip_conntrack_max
echo "1" > /proc/sys/net/ipv4/tcp_window_scaling
echo "0" > /proc/sys/net/ipv4/tcp_sack
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo 0 > /proc/sys/net/ipv4/tcp_abort_on_overflow
sysctl -w net.core.rmem_default=2097152
sysctl -w net.core.rmem_max=2097152
sysctl -w net.core.wmem_max=2097152
sysctl -w net.core.wmem_default=2097152
sysctl -w "net.ipv4.tcp_mem= 786432 1048576 1572864"
sysctl -w net.ipv4.tcp_max_orphans = 30000
Где узкое место и что крутить?
--
Это задействует левый ALT (кнопка такая, а не характеристика
дистрибутива $)
-- genix in #8201
Подробная информация о списке рассылки Sysadmins