[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