2010/05/13

Сетевая оптимизация во FreeBSD

Задача — построить роутер, который будет пропускать много трафика :) На примере ОС FreeBSD 7.2 и сетевой карты igb.
# cat /boot/loader.conf
if_igb_load="YES"
hw.igb.rxd=2048
hw.igb.txd=4096
hw.igb.num_queues=0
hw.igb.enable_aim=1
hw.igb.low_latency=2000
hw.igb.ave_latency=4000
hw.igb.bulk_latency=6000
hw.igb.rx_process_limit=200
hw.igb.fc_setting=0
hw.igb.lro=0

* This source code was highlighted with Source Code Highlighter.
Желательно слить последние драйвера для igb. Кстати, заметили, что загрузка FreeBSD происходит намного медленнее если загружать igb через loader (kld). Не знаю с чем это связано.
# egrep -v '^(#|$)' /etc/sysctl.conf
net.inet.ip.dummynet.io_fast=1
net.inet.ip.portrange.first=5700
net.inet.icmp.icmplim=500
net.inet.ip.intr_queue_maxlen=400
net.route.netisr_maxqlen=1024
net.inet.ip.dummynet.hash_size=32768
net.inet.ip.dummynet.max_chain_len=1024
net.inet.ip.fw.dyn_ack_lifetime=60
net.inet.ip.fw.dyn_syn_lifetime=10
net.inet.ip.fw.dyn_fin_lifetime=10
net.inet.ip.fw.dyn_max=65000
net.inet.ip.fw.dyn_buckets=4096
net.isr.direct=1
net.inet.ip.fastforwarding=1
kern.timecounter.hardware=HPET


* This source code was highlighted with Source Code Highlighter.
Совет по ipfw — не злоупотребляйте большим кол-ом правил, пользуйтесь стейтами, старайтесь избегать nat :)

# netstat -I igb1 -h 1
input (igb1) output
packets errs bytes packets errs bytes colls
40K 0 15M 52K 0 36M 0
40K 0 14M 52K 0 39M 0
40K 0 14M 51K 0 39M 0
40K 0 15M 50K 0 38M 0
40K 0 14M 52K 0 40M 0
38K 0 13M 49K 0 36M 0
39K 0 15M 50K 0 34M 0


* This source code was highlighted with Source Code Highlighter.
На данный момент наша карточка пропускает через себя порядка 320 Мбит/с, около 52 тысяч пакетов в секунду (pps). Машина почти не нагружена. У нас используется два quad-ядра, 2Гб памяти.

Комментариев нет:

Ярлыки

perl (30) infosec (26) links (21) freebsd (16) url (16) zabbix (14) ipv6 (13) linux (12) asterisk (10) mojo (10) monitoring (10) snmp (10) fun (8) openssl (7) security (7) bgbilling (6) cisco (6) mysql (6) ubuntu (6) blogs (5) dlink (5) kannel (5) crypto (4) exploits (4) ipv4 (4) java (4) js (4) law (4) microsoft (4) mikrotik (4) mojolicious (4) oracle (4) performance (4) postfix (4) radio (4) ssl (4) tools (4) utf-8 (4) vmware (4) windows (4) android (3) apache (3) books (3) debug (3) dns (3) google (3) hp (3) json (3) latex (3) openbsd (3) python (3) quotes (3) rhel (3) ripe ncc (3) syslog (3) ubnt (3) vim (3) vm (3) agi (2) ansible (2) atlassian (2) backup (2) bgp (2) bind (2) centos (2) console (2) cpan (2) cpanmin (2) css (2) ctf (2) docker (2) dwpd (2) edge-core (2) editors (2) elasticsearch (2) endurance (2) git (2) gns3 (2) graphite (2) hack (2) hdd (2) hyper-v (2) isp (2) mac (2) management (2) mibs (2) movie (2) msa (2) ntp (2) pentest (2) puppet (2) qa tests (2) reverse engeenering (2) shell (2) smpp (2) social engineering (2) spf (2) ssd (2) statistic (2) storage (2) switches (2) tbw (2) tcp/ip (2) tex (2) usb (2) websec (2) wsl (2) xsrf (2) yandex (2) ПДн (2) электронное правительство (2) #snmp #cisco (1) ESNI (1) Xorg (1) amavis (1) amazon s3 (1) analyze (1) anonymous (1) applications (1) as (1) ascii (1) autofs (1) balancer (1) bandwidth (1) bem (1) bl (1) brendan gregg (1) cache (1) certificate (1) chef (1) chief (1) cluster (1) cnupm (1) cnupmsave (1) confluence (1) cpu (1) cvs (1) dbi (1) ddos (1) deploy (1) devices (1) dhcp (1) dht (1) diet (1) disk (1) diskarray (1) dummynet (1) dynax60 (1) epub (1) equipment (1) esx (1) esxi (1) fax (1) firefox (1) firmware (1) fitness (1) form (1) fs (1) fsb (1) ftp (1) go (1) golf (1) gprs (1) graphics (1) gsm (1) honeypot (1) hpe (1) hpe ilo manager (1) html (1) img (1) iops (1) ios (1) ipn (1) ipsec (1) iptv (1) iso (1) itil (1) itsm (1) jabber (1) jira (1) joke (1) jsonp (1) kafka (1) kubernetes (1) law. simcards (1) lens (1) logstash (1) mem (1) memory (1) metasploit (1) microscope (1) mindmap (1) mobile (1) modem (1) mp3 (1) music (1) nano (1) nas (1) netbox (1) netdev (1) netmiko (1) noc (1) nvme (1) ocfs2 (1) ocs2 (1) openfire (1) openvpn (1) oscm (1) ospf (1) otrs (1) packet filter (1) packet tracer (1) parsing (1) pass-the-hash (1) pf (1) pgu.mos.ru (1) phd (1) php (1) poe (1) ports (1) postfixadmin (1) ppp (1) presentation (1) profiler (1) protobuf (1) quickspecs (1) rabbitmq (1) radmin (1) raid (1) repo (1) rest (1) riemann (1) rkn (1) rrd (1) rs-232 (1) rss (1) rtp (1) ruby (1) runet (1) scanners (1) serialization (1) sip (1) skype (1) sms (1) snmptranslate (1) soap (1) spam (1) spamcop (1) specs (1) sql (1) ssrf (1) standarts (1) strategy (1) sudoers (1) svn (1) syslog-ng (1) tde200 (1) tftp (1) tls (1) tomcat (1) tuning (1) uce (1) underground (1) ups (1) video (1) voip (1) vpn (1) wds (1) web (1) websockets (1) wifi (1) wireless (1) x-plane (1) xml (1) xss (1) zabbix snmp (1) верстка (1) гибдд (1) гипервизоры (1) здоровье (1) панчеры (1)