Jump to content

Recommended Posts

Posted

Добрый день.

 

Есть сервер 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 упирается.

Posted

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

Posted

Я полгода назад пробовал переключиться с прерываний сетевой на isr, опят был негативный. Думаете сейчас лучше стало? Стоит попробовать? (Пока ЧНН нету, подожду, тогда можно будет экспериментировать.).

Posted

А какие ещё варианты?

Прерывания штука серьёзная, в том смысле что они блокируют другие прерывания и процессы, и предназначены для обслуживания обрудования, а обработка трафика вещь затратная.

Это тюнится на лету, ребут не нужен. (только биндинг потоков в лоадере, но по дефолту вроде и так биндится)

Posted

На лету не вышло.

Проц один был указан и бинд выключен.

Сейчас ребутнул, посмотрим.

Я вообще думал сетевая сама лучше разгребет. Зачем тогда умные сетевые нужны?

Posted

Чуть-чуть легче стало, но все равно далеко от гига. Выигрыш около 5-10%.

Итого все те же 550-600 со всем перечисленным.

Posted

Не помогло.

Сейчас в ЧНН 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% пропускает весь гиг. Понятно что не шейпит и не натит, но ожидал большего от железяки.

Posted (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 by replicant
Posted
Я вообще думал сетевая сама лучше разгребет. Зачем тогда умные сетевые нужны?

Ну разгребает. Дальше то с пакетами что делать она не знает.

Больше очередей - на больших потоках одна очередь хуже, ибо будут большие задержки (потому что сразу много пакетов будет прилетать за прерывание) либо прерывания будут слишком частыми и ядро проца не вывезет.

 

vmstat -z

на мбуфы не ругается?

 

Ещё проверить аппаратные фичи через ифконфиг (lro, gso, контрольные суммы на выход тоже) - вырубить нафик.

Поискать на форуме про тюниг таких сетевух.

нетфлоу имхо всё таки должен отжирать ощутимые значения проца.

нат - его можно разнести по процам без блокировок: только натить придётся в разные адреса, средствами ipfw не уверен что без блокировок получится, а вот ng_nat точно должны быть автономные экземпляры.

Posted

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). Как только подключаю, пишет что в файр добавлены, но трафик перестает вообще весь по машине бегать. Кто-нибудь уже пробовал его раскачать?

Posted

netstat -w1 -h

netstat -idbhWn

 

Ещё есть PF nat но и там чудес не будет.

 

PS: у меня тоже есть сомнения по поводу 1 IP на гигабит. Возможность прокачать зависит от пакетрейта и количества трансляций/абонентов.

Posted

Подождите, вы хотите отнатить гиг через 1 IP ?

А что в этом такого нереального? Или существует какой-то лимит на 1 IP не более 1 Гбит/с? Да хоть 10 Гбит пусть натит, если мощности машинки и способностей софта хватит.

Posted

Пытался на стенде запустить ipfw-user от Луиджи через netmap и 2 em (9400). Как только подключаю, пишет что в файр добавлены, но трафик перестает вообще весь по машине бегать. Кто-нибудь уже пробовал его раскачать?

там нет nat'а, надо дописывать.

Posted (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 by Hawk128
Posted

там нет nat'а, надо дописывать.

Я не смог даже просто IPFW запустить. Сразу вырубается вся передача... У кого-нибудь получилось?

а зачем? из спортивного интереса? ната же все равно нет.

 

как вы определили, что "вырубается передача"? учтите, что при переводе в режим нетмап интерфейс детачится от ип-стека. я особо не ковырялся в ipfw-user, не уверен что там реализована передача/прием пакетов в хост-систему.

Posted

Очень просто, машина полностью отваливалась от сети. Tcpdump на сетевых переставал что либо слышать.

М.б. не так готовлю, но никак не могу найти хоть какую-нибудь документацию.

Скорее да, из спортивного. Там шейпер по крайней мере уже есть. Попробовать то интересно.

 

http://www.slideshare.net/profyclub_ru/netmap-by-luigi-rizzo-opensource

 

http://ruscreen.ru/ru/main.html

 

Ребята на этой хрени написали фильтр флуда на 14 mpps. Так что поковырять очень даже интересно.

Posted (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 by boco
Posted (edited)

Если стэк полностью отцеплен, то как тогда IP задавать интерфейсам?

Если кто-то запускал - пусть пример выложит.

Edited by Hawk128
Posted

Если стэк полностью отцеплен, то как тогда IP задавать интерфейсам?

а зачем? фаерволу не нужны ип на интерфейсах. в частности, ipfw-user открывает интерфейсы с ringid == 0

void
netmap_add_port(const char *dev)
{
...
       if (netmap_open(&port->me, 0, 0 /* promisc */)) {

что означает, что все кольца - аппаратные, в хост ничего писаться не будет. т.е. функционирует в режиме бриджа.

Posted (edited)

Хм. Кажется дошло. Сейчас пройду на стенде проверю.

 

Опыт не удался. Не работает.

 

Нужен четкий пример.

Edited by Hawk128
Posted

Эммм ... доклад по ссылку выше - это всего лишь перевод, если почиать оригинал, то станет понятно, что IPFW уже умеет netmap, но в какой-степени реализованы те или иные функции, я так и не понял.

Далее по поводу Russcreen, скорее всего - это переписанный / дописанный bridge c pcap-фильтрацией, который есть в примерах NETMAP.

Posted

Это все понятно. Доклад - перевод + пара своих примеров в сторону фильтров. Остальное у них ком. тайна.

 

И все же хочется для себя разобраться и заставить на стенде отработать ipfw-user через netmap. Неужели никому больше не интересно?

Posted

Итого получилось примерно так, может кому еще поможет:

Включил НТ, похоже его действительно допилил, как и пишут.

Isr раскидал с прибиванием по первым 7-ми ядрам (0-6), прерывания сетевух прибил по всем ядрам (0-7), дамминет к 7-му.

НАТ - ng_nat. Ng_netflow. Dummynet на шейпер.

 

Думаю под 800-900 должен вытянуть, сейчас канал кончился, расширю - проверю.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.