C
C
CTOPMbI42014-07-31 10:12:16
linux
CTOPMbI4, 2014-07-31 10:12:16

How to configure ipfw for heavy loads?

FreeBSD 8.1-RELEASE
Hangs under high loads. When the traffic is under the ceiling.
It is treated only by reboot, or by juggling the higher-level interface.
Who came across how to tune ipfw under heavy loads?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
S
Sergey Petrikov, 2014-07-31
@RicoX

Except for the fact that on 8.1 IPFW there is nowhere more buggy, then something like this:
In /etc/sysctl.conf add:

net.inet.ip.fw.one_pass=1               #пакеты, прошедшие пайпы вылетают из фаервола, и дальше не идут по нему
net.inet.tcp.blackhole=2                #ядро убивает tcp пакеты, приходящие в систему на непрослушиваемые порты
net.inet.udp.blackhole=1                #ядро убивает udp пакеты, приходящие в систему на непрослушиваемые порты
net.inet.icmp.drop_redirect=1           #не обращаем внимания на icmp redirect
net.inet.icmp.log_redirect=0            #(N) и не логируем их
net.inet.icmp.maskrepl=0                #не отдавать по icmp маску своей подсети
net.inet.icmp.icmplim=100
net.inet.icmp.bmcastecho=0              #(N) защита от SMURF атак
net.inet.ip.redirect=0                  #(N) не реагируем на icmp redirect
net.inet.ip.sourceroute=0               #(N) отключение маршрутизации от источника
net.inet.ip.accept_sourceroute=0        #(N) старый и бесполезный механизм
net.inet.ip.ttl=226                     #(N)почему бы не поставить ttl побольше было 64 ;)
net.inet.tcp.drop_synfin=1              #(N)небольшая защита
net.inet.tcp.syncookies=1               #(N)от доса
kern.ipc.somaxconn=32768                #(N)увеличиваем размер очереди для сокетов
kern.maxfiles=204800                    #(N)увеличиваем число открытых файловых дескрипторов
kern.maxfilesperproc=200000             #(N)кол-во ф.д. на каждоый процесс
kern.ipc.nmbclusters=524288             #(N)увеличиваем число сетевых буферов
kern.ipc.maxsockbuf=83886080            #(N)
kern.random.sys.harvest.ethernet=0      #(N)не использовать трафик и прерывания
kern.random.sys.harvest.interrupt=0     #(N)как источник энтропии для random'a
net.inet.ip.intr_queue_maxlen=10240     #(N)размер очереди ip-пакетов
net.route.netisr_maxqlen=4096

If you also use dummynet, then
net.inet.ip.dummynet.io_fast=1          #заставляет dummynet работать побыстрее
net.inet.ip.dummynet.max_chain_len=2048 #(N)
net.inet.ip.dummynet.hash_size=65535    #(N)Было 256
net.inet.ip.dummynet.pipe_slot_limit=2048 #

Further depending on the network, for em
dev.em.0.rx_int_delay=200
dev.em.0.tx_int_delay=200
dev.em.0.rx_abs_int_delay=4000
dev.em.0.tx_abs_int_delay=4000
dev.em.0.rx_processing_limit=4096

cat /boot/loader.conf
hw.em.rxd=4096
hw.em.txd=4096
hw.em.max_interrupt_rate=32000

for igb assemble
the core with a larger HZ.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question