Hawk128 Posted January 7, 2013 Posted January 7, 2013 Добрый день. Есть сервер E3 1270 @ 3.40GHz, S1200BTL, 8G RAM, igb 2-х портовая (76-я). Настроил на нем НАТ (ipfw nat), shaper (dummynet), ng_netflow. Проблема в том, что не пропускает он более 600 Мбит. Примерно при трафике 600 Мбит к пользователям и 300-400 от них НАТ резко начинает сжирать все 4 ядра в 100% и дальше трафик не увеличивается. Может ли кто посоветовать тюнинг для пропуска с таким набором полного гига к и от пользователей? uname -a FreeBSD gw01.micron-media.ru 9.1-STABLE FreeBSD 9.1-STABLE #0: Mon Jan 7 01:34:14 MSK 2013 hawk@gw01.micron-media.ru:/usr/obj/usr/src/sys/Hawk amd64 cat /boot/loader.conf autoboot_delay="3" alias_ftp_load="YES" if_tap_load="YES" # pf_load="YES" # net.isr.maxthreads=2 # net.isr.bindthreads=1 hw.igb.rx_process_limit=4096 # hw.ix.rx_process_limit=4096 net.graph.maxalloc=65536 net.graph.maxdata=65536 # vm.kmem_size=1G hw.igb.rxd=4096 hw.igb.txd=4096 # hw.ix.rxd=4096 # hw.ix.txd=4096 hw.igb.max_interrupt_rate=32000 # net.isr.defaultqlimit=4096 hw.em.rxd=4096 hw.em.txd=4096 hw.em.rx_int_delay=200 hw.em.tx_int_delay=200 hw.em.rx_abs_int_delay=4000 hw.em.tx_abs_int_delay=4000 hw.em.rx_process_limit=4096 cat /etc/sysctl.conf # $FreeBSD: src/etc/sysctl.conf,v 1.8.40.2 2012/11/17 11:36:10 svnexp Exp $ # # This file is read when going to multi-user and its contents piped thru # ``sysctl'' to adjust kernel values. ``man 5 sysctl.conf'' for details. # # Uncomment this to prevent users from seeing information about processes that # are being run under another UID. #security.bsd.see_other_uids=0 net.inet.ip.fw.one_pass=0 net.inet.icmp.icmplim=20000 # net.inet.tcp.blackhole=1 # net.inet.udp.blackhole=1 # kern.threads.max_threads_per_proc=5000 kern.ipc.nmbclusters=128000 kern.ipc.maxsockbuf=16000000 # kern.maxfiles=2048000 # kern.maxfilesperproc=200000 # net.inet.tcp.sendspace=3217968 # net.inet.tcp.recvspace=3217968 # kern.ipc.somaxconn=32768 net.graph.maxdgram=8388608 net.graph.recvspace=8388608 # dev.ix.0.rx_processing_limit=4096 # dev.ix.1.rx_processing_limit=4096 # net.inet.ip.dummynet.hash_size=1024 # net.inet.ip.fw.dyn_buckets=1024 # net.inet.ip.dummynet.pipe_slot_limit=2048 net.inet.ip.fastforwarding=1 net.inet.ip.dummynet.io_fast=1 # net.isr.direct=1 # net.isr.direct_force=1 net.inet.ip.dummynet.pipe_slot_limit=1000 # 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 ipfw show 00020 36256437 29432740042 allow ip from table(20) to table(20) 00050 87824 5071872 deny ip from table(50) to any 00101 334193242 322946945559 nat 1 ip from not table(20) to 91.219.164.11 00110 351271786 337731273918 pipe tablearg ip from any to table(110) out 00120 342020238 265755075402 pipe tablearg ip from table(120) to any out 00210 379732841 358387367277 ngtee 210 ip from not table(20) to table(20) out 00220 392988573 290016074845 ngtee 220 ip from table(20) to not table(20) out 10001 578928643 398332362681 nat 1 ip from table(2) to not table(20) 65530 1549051808 1302881795146 allow ip from any to any 65535 4 208 deny ip from any to any ipfw nat 1 show config ipfw nat 1 config ip 91.219.164.11 log ipfw nat 1 show nat 1: icmp=150, udp=175528, tcp=265313, sctp=0, pptp=0, proto=1, frag_id=11500 frag_ptr=0 / tot=452492 last pid: 39013; load averages: 2.48, 2.50, 2.34 up 0+04:52:36 13:02:35 124 processes: 5 running, 91 sleeping, 28 waiting CPU 0: 0.0% user, 0.0% nice, 15.0% system, 40.2% interrupt, 44.9% idle CPU 1: 0.0% user, 0.0% nice, 0.0% system, 37.8% interrupt, 62.2% idle CPU 2: 0.0% user, 0.0% nice, 0.4% system, 33.9% interrupt, 65.7% idle CPU 3: 0.0% user, 0.0% nice, 0.0% system, 35.8% interrupt, 64.2% idle Mem: 43M Active, 28M Inact, 719M Wired, 96M Buf, 6834M Free Swap: 4096M Total, 4096M Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 11 root 155 ki31 0K 64K CPU2 2 237:58 66.26% [idle{idle: cpu2}] 11 root 155 ki31 0K 64K CPU3 3 239:18 64.60% [idle{idle: cpu3}] 11 root 155 ki31 0K 64K RUN 1 239:10 60.69% [idle{idle: cpu1}] 11 root 155 ki31 0K 64K CPU0 0 217:53 58.69% [idle{idle: cpu0}] 12 root -92 - 0K 448K WAIT 1 30:05 27.39% [intr{irq265: igb0:que 12 root -92 - 0K 448K WAIT 3 28:41 25.59% [intr{irq267: igb0:que 12 root -92 - 0K 448K WAIT 0 29:08 24.37% [intr{irq264: igb0:que 12 root -92 - 0K 448K WAIT 2 30:30 22.17% [intr{irq266: igb0:que 12 root -92 - 0K 448K WAIT 1 22:24 18.36% [intr{irq270: igb1:que 12 root -92 - 0K 448K WAIT 2 23:11 18.16% [intr{irq271: igb1:que 12 root -92 - 0K 448K WAIT 0 20:52 17.87% [intr{irq269: igb1:que 12 root -92 - 0K 448K WAIT 3 23:39 16.16% [intr{irq272: igb1:que 0 root -92 0 0K 352K - 0 23:41 2.98% [kernel{dummynet}] 12 root -60 - 0K 448K WAIT 3 2:40 0.10% [intr{swi4: clock}] netstat -hdw1 -q3 -Iigb0 input (igb0) output packets errs idrops bytes packets errs bytes colls drops 44k 0 0 43M 39k 0 26M 0 0 44k 0 0 43M 39k 0 26M 0 0 44k 0 0 43M 39k 0 24M 0 0 netstat -hdw1 -q3 -Iigb1 input (igb1) output packets errs idrops bytes packets errs bytes colls drops 38k 0 0 25M 43k 0 44M 0 0 38k 0 0 25M 43k 0 44M 0 0 37k 0 0 23M 42k 0 44M 0 0 Сейчас еще утро. В ЧНН будет 100% по всем. Нетфлоу и шейпер отключал. Они мало потребляют. Без них примерно в 700 на 400 упирается. Вставить ник Quote
Ivan_83 Posted January 7, 2013 Posted January 7, 2013 net.isr.dispatch=deferred # direct / hybrid / deffered // Interrupt handling via multiple CPU, but with context switch. net.isr.bindthreads=1 # Bind netisr threads to CPUs net.inet.ip.fastforwarding=0 # packets are forwarded directly to the appropriate network interface with a min validity checking, which greatly improves the throughput Вставить ник Quote
Hawk128 Posted January 7, 2013 Author Posted January 7, 2013 Я полгода назад пробовал переключиться с прерываний сетевой на isr, опят был негативный. Думаете сейчас лучше стало? Стоит попробовать? (Пока ЧНН нету, подожду, тогда можно будет экспериментировать.). Вставить ник Quote
Ivan_83 Posted January 7, 2013 Posted January 7, 2013 А какие ещё варианты? Прерывания штука серьёзная, в том смысле что они блокируют другие прерывания и процессы, и предназначены для обслуживания обрудования, а обработка трафика вещь затратная. Это тюнится на лету, ребут не нужен. (только биндинг потоков в лоадере, но по дефолту вроде и так биндится) Вставить ник Quote
Hawk128 Posted January 7, 2013 Author Posted January 7, 2013 На лету не вышло. Проц один был указан и бинд выключен. Сейчас ребутнул, посмотрим. Я вообще думал сетевая сама лучше разгребет. Зачем тогда умные сетевые нужны? Вставить ник Quote
Hawk128 Posted January 7, 2013 Author Posted January 7, 2013 Чуть-чуть легче стало, но все равно далеко от гига. Выигрыш около 5-10%. Итого все те же 550-600 со всем перечисленным. Вставить ник Quote
Hawk128 Posted January 8, 2013 Author Posted January 8, 2013 Не помогло. Сейчас в ЧНН 600-650 пропускает, но вместо 50 дает 20-30. И пинг взлетел на нем. last pid: 89220; load averages: 2.56, 2.33, 2.12 up 0+21:11:43 18:02:29 117 processes: 6 running, 81 sleeping, 27 waiting, 3 lock CPU 0: 0.0% user, 0.0% nice, 24.2% system, 60.0% interrupt, 15.8% idle CPU 1: 0.0% user, 0.0% nice, 0.0% system, 57.3% interrupt, 42.7% idle CPU 2: 0.0% user, 0.0% nice, 0.0% system, 57.9% interrupt, 42.1% idle CPU 3: 0.0% user, 0.0% nice, 0.2% system, 65.3% interrupt, 34.5% idle Mem: 36M Active, 176M Inact, 981M Wired, 799M Buf, 6432M Free Swap: 4096M Total, 4096M Free PID USERNAME PRI NICE SIZE RES STATE C TIME CPU COMMAND 12 root -72 - 0K 496K *per-i 0 185:10 73.29% [intr{swi1: netisr 0}] 12 root -72 - 0K 496K *per-i 3 198:50 64.45% [intr{swi1: netisr 3}] 12 root -72 - 0K 496K CPU1 1 195:28 59.47% [intr{swi1: netisr 1}] 12 root -72 - 0K 496K *per-i 2 198:46 58.79% [intr{swi1: netisr 2}] 11 root 155 ki31 0K 64K RUN 1 812:02 43.26% [idle{idle: cpu1}] 11 root 155 ki31 0K 64K RUN 2 811:46 41.46% [idle{idle: cpu2}] 11 root 155 ki31 0K 64K CPU3 3 814:24 38.38% [idle{idle: cpu3}] 11 root 155 ki31 0K 64K CPU0 0 675:47 27.10% [idle{idle: cpu0}] 0 root -92 0 0K 352K - 0 167:19 2.20% [kernel{dummynet}] 12 root -92 - 0K 496K WAIT 3 108:24 1.46% [intr{irq272: igb1:que 12 root -92 - 0K 496K WAIT 2 111:35 1.37% [intr{irq271: igb1:que 12 root -92 - 0K 496K WAIT 1 114:56 1.27% [intr{irq270: igb1:que 12 root -92 - 0K 496K WAIT 3 145:00 1.07% [intr{irq267: igb0:que 12 root -92 - 0K 496K WAIT 1 144:21 1.07% [intr{irq265: igb0:que 12 root -92 - 0K 496K WAIT 0 131:39 0.98% [intr{irq264: igb0:que 12 root -92 - 0K 496K WAIT 0 107:32 0.98% [intr{irq269: igb1:que 12 root -92 - 0K 496K WAIT 2 144:39 0.88% [intr{irq266: igb0:que 12 root -60 - 0K 496K WAIT 2 12:42 0.20% [intr{swi4: clock}] netstat -hdw1 -q3 -Iigb0 input (igb0) output packets errs idrops bytes packets errs bytes colls drops 68k 0 0 69M 56k 0 31M 0 0 68k 0 0 67M 57k 0 32M 0 0 71k 0 0 70M 60k 0 34M 0 0 netstat -hdw1 -q3 -Iigb1 input (igb1) output packets errs idrops bytes packets errs bytes colls drops 53k 0 0 32M 64k 0 65M 0 0 53k 0 0 31M 65k 0 68M 0 0 54k 0 0 31M 67k 0 70M 0 0 ATOP - gw01 2013/01/08 18:05:43 --------- 1s elapsed PRC | sys 0.01s | user 0.00s | #proc 30 | #zombie 0 | #exit 0 | CPU | sys 27% | user 0% | irq 226% | idle 147% | wait 0% | CPL | avg1 2.55 | avg5 2.39 | avg15 2.18 | csw 175644 | intr 65965 | MEM | tot 7.7G | free 6.3G | cache -0.0M | wired 989.1M | activ 32.9M | SWP | tot 4.0G | free 4.0G | | vmcom 0.0M | vmlim 0.0M | NET | transport | tcpi 1060 | tcpo 1 | udpi 1469 | udpo 139 | NET | network | ipi 129461 | ipo 2656 | ipfrw 127022 | deliv 2531 | NET | igb0 63% | pcki 73693 | pcko 57953 | si 631 Mbps | so 249 Mbps | NET | igb1 62% | pcki 55748 | pcko 71530 | si 252 Mbps | so 629 Mbps | NET | vlan500 8% | pcki 9793 | pcko 10846 | si 55 Mbps | so 80 Mbps | PID THR SYSCPU USRCPU VGROW RGROW RDDSK WRDSK ST EXC S CPUNR CPU CMD 1/1 89238 1 0.00s 0.00s 0K 0K 0K 0K -- - R 0 0% atop 568 1 0.00s 0.00s 0K 0K 0K 0K -- - S 1 0% ospfd Есть идеи? Точно такой же конфиг у бордера. Так он на 12% пропускает весь гиг. Понятно что не шейпит и не натит, но ожидал большего от железяки. Вставить ник Quote
replicant Posted January 8, 2013 Posted January 8, 2013 (edited) Точно такой же конфиг у бордера. Так он на 12% пропускает весь гиг. Понятно что не шейпит и не натит, но ожидал большего от железяки. Если машина не шейпит и не натит, то странно что такая высокая нагрузка для простого пропуска трафика. 12% для чистого форварда трафика все равно очень много. У меня на E3-1270 много машин с шейпером, натом и/или авторизацией. Чистый пропуск трафика без шейпера и ната в полку забивает 4 Гбит/с при нагрузке около 15% даже на более слабом процессоре Intel Xeon X3440 2.53GHz. На E3-1270 уже в проекте апгрейд до 10 Гб/с карт, потому что слишком много медных веревок не есть хорошо. Device bond0.2 [192.168.X.X] (2/40): ================================================================================ Incoming: .. . . . . .. . ||.....|#||#############|########|.########||..|###|| ##################################################### Curr: 147.59 MByte/s ##################################################### Avg: 149.84 MByte/s ##################################################### Min: 135.43 MByte/s ##################################################### Max: 163.20 MByte/s ##################################################### Ttl: 1268817.25 GByte Outgoing: Curr: 70.32 MByte/s . ... . .. . . Avg: 77.38 MByte/s .........|.||#####||#|#################|####|#|||#||| Min: 61.17 MByte/s ##################################################### Max: 88.46 MByte/s ##################################################### Ttl: 720394.50 GByte Нагрузка на CPU при таком трафике около 3-5%. С NAT'ом нагрузка будет выше и при таком трафике около 25-30% может достигать на том же X3440, но все равно 2 Гбит/с точно в полку забьет. Железяка у вас нормальная. В софте проблемы какие-то. Edited January 8, 2013 by replicant Вставить ник Quote
Ivan_83 Posted January 8, 2013 Posted January 8, 2013 Я вообще думал сетевая сама лучше разгребет. Зачем тогда умные сетевые нужны? Ну разгребает. Дальше то с пакетами что делать она не знает. Больше очередей - на больших потоках одна очередь хуже, ибо будут большие задержки (потому что сразу много пакетов будет прилетать за прерывание) либо прерывания будут слишком частыми и ядро проца не вывезет. vmstat -z на мбуфы не ругается? Ещё проверить аппаратные фичи через ифконфиг (lro, gso, контрольные суммы на выход тоже) - вырубить нафик. Поискать на форуме про тюниг таких сетевух. нетфлоу имхо всё таки должен отжирать ощутимые значения проца. нат - его можно разнести по процам без блокировок: только натить придётся в разные адреса, средствами ipfw не уверен что без блокировок получится, а вот ng_nat точно должны быть автономные экземпляры. Вставить ник Quote
Hawk128 Posted January 9, 2013 Author Posted January 9, 2013 netstat -m 34855/4070/38925 mbufs in use (current/cache/total) 34853/3169/38022/128000 mbuf clusters in use (current/cache/total/max) 34853/3163 mbuf+clusters out of packet secondary zone in use (current/cache) 0/104/104/12800 4k (page size) jumbo clusters in use (current/cache/total/max) 0/0/0/6400 9k jumbo clusters in use (current/cache/total/max) 0/0/0/3200 16k jumbo clusters in use (current/cache/total/max) 78913K/7771K/86685K bytes allocated to network (current/cache/total) 0/0/0 requests for mbufs denied (mbufs/clusters/mbuf+clusters) 0/0/0 requests for jumbo clusters denied (4k/9k/16k) 0/0/0 sfbufs in use (current/peak/max) 0 requests for sfbufs denied 0 requests for sfbufs delayed 0 requests for I/O initiated by sendfile 0 calls to protocol drain routines vmstat -z ITEM SIZE LIMIT USED FREE REQ FAIL SLEEP UMA Kegs: 208, 0, 84, 1, 84, 0, 0 UMA Zones: 896, 0, 84, 0, 84, 0, 0 UMA Slabs: 568, 0, 4650, 5, 5722, 0, 0 UMA RCntSlabs: 568, 0, 19115, 2, 19115, 0, 0 UMA Hash: 256, 0, 2, 13, 4, 0, 0 16 Bucket: 152, 0, 128, 22, 128, 0, 0 32 Bucket: 280, 0, 135, 5, 135, 0, 0 64 Bucket: 536, 0, 123, 3, 123, 57, 0 128 Bucket: 1048, 0, 847, 2, 847, 697, 0 VM OBJECT: 232, 0, 1687, 1193, 1715737, 0, 0 MAP: 232, 0, 7, 25, 7, 0, 0 KMAP ENTRY: 120, 268677, 37, 490, 62670, 0, 0 MAP ENTRY: 120, 0, 931, 2386, 4576462, 0, 0 fakepg: 120, 0, 0, 0, 0, 0, 0 mt_zone: 4112, 0, 328, 15, 328, 0, 0 16: 16, 0, 2662, 698, 287461, 0, 0 32: 32, 0, 3652, 691, 176338, 0, 0 64: 64, 0, 13645, 1587,685438652, 0, 0 128: 128, 0, 442439, 5814,24833047, 0, 0 256: 256, 0, 9061, 3134,439410176, 0, 0 512: 512, 0, 1651, 421, 326396, 0, 0 1024: 1024, 0, 66, 190, 57313, 0, 0 2048: 2048, 0, 5219, 451, 26051, 0, 0 4096: 4096, 0, 437, 386, 111096, 0, 0 Files: 80, 0, 107, 433, 741217, 0, 0 TURNSTILE: 136, 0, 325, 95, 325, 0, 0 rl_entry: 40, 0, 157, 263, 157, 0, 0 umtx pi: 96, 0, 0, 0, 0, 0, 0 MAC labels: 40, 0, 0, 0, 0, 0, 0 PROC: 1184, 0, 49, 179, 80970, 0, 0 THREAD: 1160, 0, 292, 32, 293, 0, 0 SLEEPQUEUE: 80, 0, 325, 52, 325, 0, 0 VMSPACE: 392, 0, 31, 199, 85653, 0, 0 cpuset: 72, 0, 85, 215, 111, 0, 0 audit_record: 960, 0, 0, 0, 0, 0, 0 mbuf_packet: 256, 0, 34833, 3183,1444015176, 0, 0 mbuf: 256, 0, 4, 905,1282769980, 0, 0 mbuf_cluster: 2048, 128000, 38016, 6, 38016, 0, 0 mbuf_jumbo_page: 4096, 12800, 0, 104, 29800, 0, 0 mbuf_jumbo_9k: 9216, 6400, 0, 0, 0, 0, 0 mbuf_jumbo_16k: 16384, 3200, 0, 0, 0, 0, 0 mbuf_ext_refcnt: 4, 0, 0, 0, 0, 0, 0 NetGraph items: 72, 65540, 0, 290, 13446, 0, 0 NetGraph data items: 72, 65540, 1, 695,1570737892, 0, 0 ttyinq: 160, 0, 180, 84, 540, 0, 0 ttyoutq: 256, 0, 95, 40, 287, 0, 0 g_bio: 232, 0, 0, 272, 29492, 0, 0 ata_request: 328, 0, 0, 0, 0, 0, 0 ata_composite: 336, 0, 0, 0, 0, 0, 0 FPU_save_area: 832, 0, 0, 0, 0, 0, 0 VNODE: 504, 0, 1081, 71, 1184, 0, 0 VNODEPOLL: 112, 0, 0, 0, 0, 0, 0 NAMEI: 1024, 0, 0, 96, 1572726, 0, 0 S VFS Cache: 108, 0, 1082, 205, 3264, 0, 0 STS VFS Cache: 148, 0, 0, 0, 0, 0, 0 L VFS Cache: 328, 0, 0, 0, 0, 0, 0 LTS VFS Cache: 368, 0, 0, 0, 0, 0, 0 NCLNODE: 568, 0, 1, 13, 1, 0, 0 DIRHASH: 1024, 0, 220, 36, 220, 0, 0 Mountpoints: 824, 0, 3, 9, 3, 0, 0 pipe: 728, 0, 1, 89, 28734, 0, 0 ksiginfo: 112, 0, 215, 841, 816, 0, 0 itimer: 344, 0, 0, 0, 0, 0, 0 KNOTE: 128, 0, 0, 232, 36293, 0, 0 socket: 680, 25602, 37, 113, 105882, 0, 0 unpcb: 240, 25600, 18, 206, 48410, 0, 0 ipq: 56, 4032, 0, 315, 340, 0, 0 udp_inpcb: 392, 25600, 6, 94, 25185, 0, 0 udpcb: 16, 25704, 6, 666, 25185, 0, 0 tcp_inpcb: 392, 25600, 9, 91, 11956, 0, 0 tcpcb: 976, 25600, 9, 87, 11956, 0, 0 tcptw: 72, 5150, 0, 150, 5, 0, 0 syncache: 152, 15375, 0, 125, 5986, 0, 0 hostcache: 136, 15372, 1, 111, 5, 0, 0 tcpreass: 40, 8064, 0, 252, 4, 0, 0 sackhole: 32, 0, 0, 0, 0, 0, 0 ripcb: 392, 25600, 2, 88, 20324, 0, 0 rtentry: 200, 0, 291, 51, 293, 0, 0 IPFW dynamic rule: 120, 4123, 0, 0, 0, 0, 0 divcb: 392, 25600, 0, 0, 0, 0, 0 selfd: 56, 0, 291, 780, 1070046, 0, 0 SWAPMETA: 288, 975988, 0, 0, 0, 0, 0 FFS inode: 168, 0, 1038, 172, 1139, 0, 0 FFS1 dinode: 128, 0, 0, 0, 0, 0, 0 FFS2 dinode: 256, 0, 1038, 87, 1139, 0, 0 NetFlow IPv4 cache: 88, 262160, 131022, 2001,35492150, 0, 0 Сейчас изменил схему. НАТ через ng_nat, нагрузка резко меньше, но как-то ощущение, что просто не показывает ее. + 3 очереди на isr и оставшееся ядро под дамминет. Прерывания сетевой (очереди) размазаны по всем. Пытался на стенде запустить ipfw-user от Луиджи через netmap и 2 em (9400). Как только подключаю, пишет что в файр добавлены, но трафик перестает вообще весь по машине бегать. Кто-нибудь уже пробовал его раскачать? Вставить ник Quote
terrible Posted January 9, 2013 Posted January 9, 2013 Подождите, вы хотите отнатить гиг через 1 IP ? Вставить ник Quote
Ivan_83 Posted January 9, 2013 Posted January 9, 2013 netstat -w1 -h netstat -idbhWn Ещё есть PF nat но и там чудес не будет. PS: у меня тоже есть сомнения по поводу 1 IP на гигабит. Возможность прокачать зависит от пакетрейта и количества трансляций/абонентов. Вставить ник Quote
replicant Posted January 9, 2013 Posted January 9, 2013 Подождите, вы хотите отнатить гиг через 1 IP ? А что в этом такого нереального? Или существует какой-то лимит на 1 IP не более 1 Гбит/с? Да хоть 10 Гбит пусть натит, если мощности машинки и способностей софта хватит. Вставить ник Quote
boco Posted January 10, 2013 Posted January 10, 2013 Пытался на стенде запустить ipfw-user от Луиджи через netmap и 2 em (9400). Как только подключаю, пишет что в файр добавлены, но трафик перестает вообще весь по машине бегать. Кто-нибудь уже пробовал его раскачать? там нет nat'а, надо дописывать. Вставить ник Quote
Hawk128 Posted January 10, 2013 Author Posted January 10, 2013 (edited) Подождите, вы хотите отнатить гиг через 1 IP ? В идеале - да. На практике - чуть меньше, там еще и реальники бегают немного. там нет nat'а, надо дописывать. Я не смог даже просто IPFW запустить. Сразу вырубается вся передача... У кого-нибудь получилось? netstat -w1 -h netstat -idbhWn Правда утро, в чнн на интерфейсах до 70 kpps в каждую сторону на каждом интерфейсе.. netstat -hdw1 -q3 input (Total) output packets errs idrops bytes packets errs bytes colls drops 29k 0 0 26M 26k 0 19M 0 0 30k 0 0 26M 26k 0 19M 0 0 29k 0 0 26M 26k 0 19M 0 0 netstat -idbhWn Name Mtu Network Address Ipkts Ierrs Idrop Ibytes Opkts Oerrs Obytes Coll Drop igb0 1500 <Link#1> 00:1b:21:36:52:b4 2.3G 0 0 2.2T 2.2G 0 1.4T 0 0 igb0 1500 91.219.164.0/ 91.219.164.11 104M - - 6.6G 109M - 14G - - igb1 1500 <Link#2> 00:1b:21:36:52:b5 2.1G 277 0 1.4T 2.2G 0 2.2T 0 0 igb1 1500 10.50.0.0/24 10.50.0.1 42k - - 13M 0 - 0 - - igb1 1500 91.219.164.40 91.219.164.41 142k - - 13M 0 - 0 - - em0* 1500 <Link#3> 00:1e:67:3c:b8:1f 0 0 0 0 0 0 0 0 0 usbus0 0 <Link#4> 0 0 0 0 0 0 0 0 0 em1* 1500 <Link#5> 00:1e:67:3c:b8:1e 0 0 0 0 0 0 0 0 0 usbus1 0 <Link#6> 0 0 0 0 0 0 0 0 0 ipfw0 65536 <Link#7> 0 0 0 0 0 0 0 0 0 lo0 16384 <Link#8> 248 0 0 1.4M 248 0 1.4M 0 0 lo0 16384 127.0.0.0/8 127.0.0.1 223 - - 1.4M 248 - 1.4M - - vlan500 1500 <Link#9> 00:1b:21:36:52:b5 488M 0 0 457G 435M 2 332G 0 0 vlan500 1500 91.219.164.22 91.219.164.225 124k - - 11M 12k - 712k - - vlan500 1500 91.219.165.32 91.219.165.33 124k - - 11M 6.1k - 305k - - vlan501 1500 <Link#10> 00:1b:21:36:52:b5 33M 0 0 34G 23M 0 14G 0 0 vlan501 1500 10.50.1.0/24 10.50.1.1 131 - - 4.9k 9.6k - 499k - - vlan502 1500 <Link#11> 00:1b:21:36:52:b5 45M 0 0 26G 52M 0 55G 0 0 vlan502 1500 10.50.2.0/24 10.50.2.1 4.4k - - 212k 63k - 3.1M - - vlan503 1500 <Link#12> 00:1b:21:36:52:b5 28M 0 0 23G 21M 0 16G 0 0 vlan503 1500 10.50.3.0/24 10.50.3.1 79 - - 2.9k 8.1k - 398k - - vlan504 1500 <Link#13> 00:1b:21:36:52:b5 23M 0 0 13G 28M 0 30G 0 0 vlan504 1500 10.50.4.0/24 10.50.4.1 58 - - 3.1k 2.1k - 112k - - vlan505 1500 <Link#14> 00:1b:21:36:52:b5 15M 0 0 5.6G 22M 0 27G 0 0 vlan505 1500 10.50.5.0/24 10.50.5.1 109 - - 4.2k 1.6k - 78k - - vlan506 1500 <Link#15> 00:1b:21:36:52:b5 21M 0 0 18G 17M 0 11G 0 0 vlan506 1500 10.50.6.0/24 10.50.6.1 288 - - 42k 34k - 1.7M - - vlan507 1500 <Link#16> 00:1b:21:36:52:b5 44M 0 0 34G 43M 0 36G 0 0 vlan507 1500 10.50.7.0/24 10.50.7.1 5.4k - - 263k 77k - 3.4M - - vlan508 1500 <Link#17> 00:1b:21:36:52:b5 15M 0 0 5.7G 20M 0 21G 0 0 vlan508 1500 10.50.8.0/24 10.50.8.1 114 - - 4.1k 13k - 701k - - vlan509 1500 <Link#18> 00:1b:21:36:52:b5 18M 0 0 12G 19M 0 19G 0 0 vlan509 1500 10.50.9.0/24 10.50.9.1 83 - - 4.8k 12k - 625k - - vlan510 1500 <Link#19> 00:1b:21:36:52:b5 37M 0 0 36G 27M 0 21G 0 0 vlan510 1500 10.50.10.0/24 10.50.10.1 158 - - 8.3k 25k - 1.2M - - vlan511 1500 <Link#20> 00:1b:21:36:52:b5 54M 0 0 26G 72M 0 80G 0 0 vlan511 1500 10.50.11.0/24 10.50.11.1 250 - - 12k 33k - 1.6M - - vlan512 1500 <Link#21> 00:1b:21:36:52:b5 90M 0 0 55G 117M 0 128G 0 0 vlan512 1500 10.50.12.0/24 10.50.12.1 1.3k - - 61k 74k - 3.7M - - vlan513 1500 <Link#22> 00:1b:21:36:52:b5 46M 0 0 24G 58M 0 62G 0 0 vlan513 1500 10.50.13.0/24 10.50.13.1 6.3k - - 301k 19k - 934k - - vlan514 1500 <Link#23> 00:1b:21:36:52:b5 22M 0 0 8G 29M 0 35G 0 0 vlan514 1500 10.50.14.0/24 10.50.14.1 2.3k - - 111k 8k - 441k - - vlan515 1500 <Link#24> 00:1b:21:36:52:b5 27M 0 0 5.4G 41M 0 49G 0 0 vlan515 1500 10.50.15.0/24 10.50.15.1 163 - - 8.6k 6.9k - 339k - - vlan516 1500 <Link#25> 00:1b:21:36:52:b5 38M 0 0 25G 43M 0 43G 0 0 vlan516 1500 10.50.16.0/24 10.50.16.1 38 - - 2k 3.1k - 156k - - vlan517 1500 <Link#26> 00:1b:21:36:52:b5 22M 0 0 13G 24M 0 23G 0 0 vlan517 1500 10.50.17.0/24 10.50.17.1 63 - - 2.3k 9k - 460k - - vlan518 1500 <Link#27> 00:1b:21:36:52:b5 82M 0 0 31G 99M 0 111G 0 0 vlan518 1500 10.50.18.0/24 10.50.18.1 3k - - 622k 55k - 2.6M - - vlan519 1500 <Link#28> 00:1b:21:36:52:b5 17M 0 0 6.4G 22M 0 25G 0 0 vlan519 1500 10.50.19.0/24 10.50.19.1 197 - - 8.1k 15k - 754k - - vlan520 1500 <Link#29> 00:1b:21:36:52:b5 0 0 0 0 0 0 0 0 0 vlan520 1500 10.50.20.0/24 10.50.20.1 0 - - 0 0 - 0 - - vlan521 1500 <Link#30> 00:1b:21:36:52:b5 75M 0 0 82G 64M 0 42G 0 0 vlan521 1500 10.50.21.0/24 10.50.21.1 15 - - 568 8.9k - 387k - - vlan522 1500 <Link#31> 00:1b:21:36:52:b5 16M 0 0 5.7G 22M 0 23G 0 0 vlan522 1500 10.50.22.0/24 10.50.22.1 80 - - 2.9k 4.6k - 232k - - vlan523 1500 <Link#32> 00:1b:21:36:52:b5 7.5M 0 0 954M 18M 0 25G 0 0 vlan523 1500 10.50.23.0/24 10.50.23.1 589 - - 26k 1.1k - 67k - - vlan524 1500 <Link#33> 00:1b:21:36:52:b5 23M 0 0 18G 19M 0 17G 0 0 vlan524 1500 10.50.24.0/24 10.50.24.1 35 - - 1.3k 12k - 620k - - vlan525 1500 <Link#34> 00:1b:21:36:52:b5 41M 0 0 30G 38M 0 31G 0 0 vlan525 1500 10.50.25.0/24 10.50.25.1 72 - - 2.6k 19k - 911k - - vlan526 1500 <Link#35> 00:1b:21:36:52:b5 21M 0 0 5.2G 25M 0 23G 0 0 vlan526 1500 10.50.26.0/24 10.50.26.1 0 - - 0 5.5k - 269k - - vlan527 1500 <Link#36> 00:1b:21:36:52:b5 21M 0 0 19G 18M 0 15G 0 0 vlan527 1500 10.50.27.0/24 10.50.27.1 3.3k - - 159k 8.7k - 441k - - vlan528 1500 <Link#37> 00:1b:21:36:52:b5 15M 0 0 8.4G 16M 0 16G 0 0 vlan528 1500 10.50.28.0/24 10.50.28.1 112 - - 4.1k 19k - 972k - - vlan529 1500 <Link#38> 00:1b:21:36:52:b5 21M 0 0 18G 17M 0 13G 0 0 vlan529 1500 10.50.29.0/24 10.50.29.1 48 - - 2.0k 12k - 613k - - vlan530 1500 <Link#39> 00:1b:21:36:52:b5 34M 0 0 15G 42M 0 46G 0 0 vlan530 1500 10.50.30.0/24 10.50.30.1 7.6k - - 469k 44k - 2.3M - - vlan531 1500 <Link#40> 00:1b:21:36:52:b5 2.1M 0 0 2.4G 1.2M 0 862M 0 0 vlan531 1500 10.50.31.0/24 10.50.31.1 51 - - 1.9k 2.4k - 116k - - vlan532 1500 <Link#41> 00:1b:21:36:52:b5 15M 0 0 2.5G 26M 0 33G 0 0 vlan532 1500 10.50.32.0/24 10.50.32.1 24 - - 960 1.1k - 91k - - vlan533 1500 <Link#42> 00:1b:21:36:52:b5 82M 0 0 68G 65M 0 48G 0 0 vlan533 1500 10.50.33.0/24 10.50.33.1 3k - - 226k 39k - 2.1M - - vlan534 1500 <Link#43> 00:1b:21:36:52:b5 21M 0 0 13G 17M 0 15G 0 0 vlan534 1500 10.50.34.0/24 10.50.34.1 30 - - 6.7k 3.4k - 189k - - vlan535 1500 <Link#44> 00:1b:21:36:52:b5 40M 0 0 32G 40M 0 38G 0 0 vlan535 1500 10.50.35.0/24 10.50.35.1 103 - - 3.7k 6.7k - 339k - - vlan536 1500 <Link#45> 00:1b:21:36:52:b5 913k 0 0 73M 1.6M 0 2.2G 0 0 vlan536 1500 10.50.36.0/24 10.50.36.1 0 - - 0 2 - 656 - - vlan537 1500 <Link#46> 00:1b:21:36:52:b5 0 0 0 0 1 0 42 0 0 vlan537 1500 10.50.37.0/24 10.50.37.1 0 - - 0 0 - 0 - - vlan538 1500 <Link#47> 00:1b:21:36:52:b5 0 0 0 0 0 0 0 0 0 vlan538 1500 10.50.38.0/24 10.50.38.1 0 - - 0 0 - 0 - - vlan539 1500 <Link#48> 00:1b:21:36:52:b5 0 0 0 0 0 0 0 0 0 vlan539 1500 10.50.39.0/24 10.50.39.1 0 - - 0 0 - 0 - - vlan540 1500 <Link#49> 00:1b:21:36:52:b5 0 0 0 0 0 0 0 0 0 vlan540 1500 10.50.40.0/24 10.50.40.1 0 - - 0 0 - 0 - - vlan541 1500 <Link#50> 00:1b:21:36:52:b5 10M 0 0 4.5G 13M 0 13G 0 0 vlan541 1500 10.50.41.0/24 10.50.41.1 232 - - 10k 10k - 642k - - vlan542 1500 <Link#51> 00:1b:21:36:52:b5 5.2M 0 0 2.0G 8.5M 0 8.8G 0 0 vlan542 1500 10.50.42.0/24 10.50.42.1 2.0k - - 96k 2.2k - 111k - - vlan543 1500 <Link#52> 00:1b:21:36:52:b5 3.6M 0 0 443M 4.5M 0 4.1G 0 0 vlan543 1500 10.50.43.0/24 10.50.43.1 25 - - 1k 498 - 59k - - vlan544 1500 <Link#53> 00:1b:21:36:52:b5 5.6M 0 0 6G 4M 0 1.9G 0 0 vlan544 1500 10.50.44.0/24 10.50.44.1 38 - - 1.4k 851 - 46k - - vlan545 1500 <Link#54> 00:1b:21:36:52:b5 33M 0 0 9.8G 50M 0 61G 0 0 vlan545 1500 10.50.45.0/24 10.50.45.1 30 - - 1.1k 5.7k - 370k - - vlan546 1500 <Link#55> 00:1b:21:36:52:b5 21M 0 0 17G 20M 0 17G 0 0 vlan546 1500 10.50.46.0/24 10.50.46.1 2.0k - - 161k 6k - 372k - - vlan547 1500 <Link#56> 00:1b:21:36:52:b5 5.8M 0 0 1.7G 8M 0 8G 0 0 vlan547 1500 10.50.47.0/24 10.50.47.1 17 - - 670 128 - 10k - - vlan548 1500 <Link#57> 00:1b:21:36:52:b5 26M 0 0 19G 31M 0 34G 0 0 vlan548 1500 10.50.48.0/24 10.50.48.1 475 - - 63k 45k - 2.1M - - vlan549 1500 <Link#58> 00:1b:21:36:52:b5 39M 0 0 22G 47M 0 54G 0 0 vlan549 1500 10.50.49.0/24 10.50.49.1 1.9k - - 88k 9.6k - 620k - - vlan550 1500 <Link#59> 00:1b:21:36:52:b5 0 0 0 0 55 0 2.3k 0 0 vlan550 1500 10.50.50.0/24 10.50.50.1 0 - - 0 0 - 0 - - vlan551 1500 <Link#60> 00:1b:21:36:52:b5 5.8M 0 0 570M 11M 0 15G 0 0 vlan551 1500 10.50.51.0/24 10.50.51.1 36 - - 1.4k 473 - 22k - - vlan552 1500 <Link#61> 00:1b:21:36:52:b5 0 0 0 0 0 0 0 0 0 vlan552 1500 10.50.52.0/24 10.50.52.1 0 - - 0 0 - 0 - - vlan553 1500 <Link#62> 00:1b:21:36:52:b5 0 0 0 0 0 0 0 0 0 vlan553 1500 10.50.53.0/24 10.50.53.1 0 - - 0 0 - 0 - - vlan554 1500 <Link#63> 00:1b:21:36:52:b5 0 0 0 0 0 0 0 0 0 vlan554 1500 10.50.54.0/24 10.50.54.1 0 - - 0 0 - 0 - - vlan555 1500 <Link#64> 00:1b:21:36:52:b5 0 0 0 0 0 0 0 0 0 vlan555 1500 10.50.55.0/24 10.50.55.1 0 - - 0 0 - 0 - - vlan556 1500 <Link#65> 00:1b:21:36:52:b5 0 0 0 0 0 0 0 0 0 vlan556 1500 10.50.56.0/24 10.50.56.1 0 - - 0 0 - 0 - - vlan557 1500 <Link#66> 00:1b:21:36:52:b5 0 0 0 0 0 0 0 0 0 vlan557 1500 10.50.57.0/24 10.50.57.1 0 - - 0 0 - 0 - - vlan580 1500 <Link#67> 00:1b:21:36:52:b5 34M 0 0 16G 41M 0 45G 0 0 vlan580 1500 10.50.80.0/24 10.50.80.1 148 - - 5.8k 10k - 499k - - vlan581 1500 <Link#68> 00:1b:21:36:52:b5 16M 0 0 6.3G 22M 0 24G 0 0 vlan581 1500 10.50.81.0/24 10.50.81.1 1 - - 48 5.1k - 249k - - vlan582 1500 <Link#69> 00:1b:21:36:52:b5 85M 0 0 31G 122M 0 146G 0 0 vlan582 1500 10.50.82.0/24 10.50.82.1 61 - - 2.3k 39k - 1.8M - - vlan583 1500 <Link#70> 00:1b:21:36:52:b5 61M 0 0 50G 54M 0 49G 0 0 vlan583 1500 10.50.83.0/24 10.50.83.1 2.6k - - 3.2M 39k - 2M - - vlan584 1500 <Link#71> 00:1b:21:36:52:b5 12M 0 0 7.9G 12M 0 10G 0 0 vlan584 1500 10.50.84.0/24 10.50.84.1 46 - - 1.8k 7.5k - 368k - - vlan585 1500 <Link#72> 00:1b:21:36:52:b5 34M 0 0 32G 27M 0 21G 0 0 vlan585 1500 10.50.85.0/24 10.50.85.1 45 - - 1.7k 15k - 779k - - vlan586 1500 <Link#73> 00:1b:21:36:52:b5 39M 0 0 16G 61M 0 72G 0 0 vlan586 1500 10.50.86.0/24 10.50.86.1 27 - - 1.0k 6.3k - 438k - - vlan587 1500 <Link#74> 00:1b:21:36:52:b5 24M 0 0 6.8G 39M 0 46G 0 0 vlan587 1500 10.50.87.0/24 10.50.87.1 76 - - 3.3k 7.6k - 337k - - vlan588 1500 <Link#75> 00:1b:21:36:52:b5 19M 0 0 12G 28M 0 30G 0 0 vlan588 1500 10.50.88.0/24 10.50.88.1 46 - - 1.7k 7k - 441k - - vlan591 1500 <Link#76> 00:1b:21:36:52:b5 7.3M 0 0 8.7G 4M 0 1.2G 0 0 vlan591 1500 10.50.91.0/24 10.50.91.1 0 - - 0 58 - 3.2k - - vlan592 1500 <Link#77> 00:1b:21:36:52:b5 6.7M 0 0 3.1G 8.6M 0 8.3G 0 0 vlan592 1500 10.50.92.0/24 10.50.92.1 24 - - 960 1.2k - 62k - - vlan593 1500 <Link#78> 00:1b:21:36:52:b5 740k 0 0 58M 1.5M 0 2.1G 0 0 vlan593 1500 10.50.93.0/24 10.50.93.1 0 - - 0 2 - 656 - - vlan594 1500 <Link#79> 00:1b:21:36:52:b5 2.0M 0 0 139M 3.6M 0 4.9G 0 0 vlan594 1500 10.50.94.0/24 10.50.94.1 0 - - 0 10 - 512 - - vlan595 1500 <Link#80> 00:1b:21:36:52:b5 3.5M 0 0 3.8G 2.1M 0 927M 0 0 vlan595 1500 10.50.95.0/24 10.50.95.1 4k - - 189k 4.4k - 224k - - Последний тюнинг показал себя очень хорошо, вчера сервак был нагружен процентов на 50%. Внешний канал в полку уперся... Edited January 10, 2013 by Hawk128 Вставить ник Quote
boco Posted January 10, 2013 Posted January 10, 2013 там нет nat'а, надо дописывать. Я не смог даже просто IPFW запустить. Сразу вырубается вся передача... У кого-нибудь получилось? а зачем? из спортивного интереса? ната же все равно нет. как вы определили, что "вырубается передача"? учтите, что при переводе в режим нетмап интерфейс детачится от ип-стека. я особо не ковырялся в ipfw-user, не уверен что там реализована передача/прием пакетов в хост-систему. Вставить ник Quote
Hawk128 Posted January 10, 2013 Author Posted January 10, 2013 Очень просто, машина полностью отваливалась от сети. Tcpdump на сетевых переставал что либо слышать. М.б. не так готовлю, но никак не могу найти хоть какую-нибудь документацию. Скорее да, из спортивного. Там шейпер по крайней мере уже есть. Попробовать то интересно. http://www.slideshare.net/profyclub_ru/netmap-by-luigi-rizzo-opensource http://ruscreen.ru/ru/main.html Ребята на этой хрени написали фильтр флуда на 14 mpps. Так что поковырять очень даже интересно. Вставить ник Quote
boco Posted January 10, 2013 Posted January 10, 2013 (edited) Очень просто, машина полностью отваливалась от сети. Tcpdump на сетевых переставал что либо слышать. tcpdump работает через libpcap. очевидно, нужно использовать враппер, который идет в исходниках netmap (examples/pcap.c). из README: pcap.c a simple libpcap-over-netmap library, and some test code, to help porting pcap applications to netmap. The library compiles as libnetmap.so, you can use it to replace your libpcap.so.* Edited January 10, 2013 by boco Вставить ник Quote
Hawk128 Posted January 10, 2013 Author Posted January 10, 2013 (edited) Если стэк полностью отцеплен, то как тогда IP задавать интерфейсам? Если кто-то запускал - пусть пример выложит. Edited January 10, 2013 by Hawk128 Вставить ник Quote
boco Posted January 10, 2013 Posted January 10, 2013 Если стэк полностью отцеплен, то как тогда IP задавать интерфейсам? а зачем? фаерволу не нужны ип на интерфейсах. в частности, ipfw-user открывает интерфейсы с ringid == 0 void netmap_add_port(const char *dev) { ... if (netmap_open(&port->me, 0, 0 /* promisc */)) { что означает, что все кольца - аппаратные, в хост ничего писаться не будет. т.е. функционирует в режиме бриджа. Вставить ник Quote
Hawk128 Posted January 10, 2013 Author Posted January 10, 2013 (edited) Хм. Кажется дошло. Сейчас пройду на стенде проверю. Опыт не удался. Не работает. Нужен четкий пример. Edited January 10, 2013 by Hawk128 Вставить ник Quote
Dm1try Posted January 10, 2013 Posted January 10, 2013 Эммм ... доклад по ссылку выше - это всего лишь перевод, если почиать оригинал, то станет понятно, что IPFW уже умеет netmap, но в какой-степени реализованы те или иные функции, я так и не понял. Далее по поводу Russcreen, скорее всего - это переписанный / дописанный bridge c pcap-фильтрацией, который есть в примерах NETMAP. Вставить ник Quote
Hawk128 Posted January 10, 2013 Author Posted January 10, 2013 Это все понятно. Доклад - перевод + пара своих примеров в сторону фильтров. Остальное у них ком. тайна. И все же хочется для себя разобраться и заставить на стенде отработать ipfw-user через netmap. Неужели никому больше не интересно? Вставить ник Quote
Hawk128 Posted January 10, 2013 Author Posted January 10, 2013 Итого получилось примерно так, может кому еще поможет: Включил НТ, похоже его действительно допилил, как и пишут. Isr раскидал с прибиванием по первым 7-ми ядрам (0-6), прерывания сетевух прибил по всем ядрам (0-7), дамминет к 7-му. НАТ - ng_nat. Ng_netflow. Dummynet на шейпер. Думаю под 800-900 должен вытянуть, сейчас канал кончился, расширю - проверю. Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.