FastNetMon

Tuesday 21 November 2017

Сборка актуальной версии trafgen из пакета netsniff-ng на Ubuntu 14.04

cd /usr/src
git clone git://github.com/netsniff-ng/netsniff-ng.git
cd netsniff-ng
apt-get install -y libcli-dev libnet1-dev libnacl-dev  libpcap-dev liburcu-dev ccache libgeoip-dev libnetfilter-conntrack-dev  libncurses5-dev libnl-3-dev flex bison libnl-genl-3-dev libnl-3-dev libnl1 zlib1g-dev libnl-route-3-dev
./configure  --prefix=/opt/netsniff-ng
make
make install

Потом берем шаблон флуда: https://raw.githubusercontent.com/netoptimizer/network-testing/master/trafgen/udp_example01.trafgen


Кроме этого обязательно нужно обновить ядро до версии 4.4 и выше из пакета hardware support! Ибо используются модные AF_PACKET и чем новее ядро - тем будет быстрее.

Потом открываем файл udp_example01.trafgen и корректируем там MAC адрес целевой машины. А также программируем порты и прочее.

После этого запускаем:
/opt/netsniff-ng/sbin/trafgen --cpp --dev eth1 --rand --num 0 -i udp_example01.trafgen --cpp --ring-size 500KiB  --cpu 8
В случае ошибки "Cannot allocate TX_RING" рекомендую убрать --ring-size вовсе.

 Итого, на Intel(R) Core(TM) i7 CPU         950  @ 3.07GHz удалось выжать 3.5 MPPS ценой полной загрузки всех ядер машины:

  1  [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%]     5  [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%]
  2  [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%]     6  [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%]
  3  [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%]     7  [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%]
  4  [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%]     8  [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%]
  Mem[|||                                                   190/48400MB]     Tasks: 32, 65 thr; 9 running
  Swp[|                                                        3/8190MB]     Load average: 0.64 1.37 4.28
                                                                             Uptime: 01:23:24

  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
 3728 root       20   0 13616  1760  1364 R 100.  0.0  0:09.22 /opt/trafgen --cpp --dev eth1 --rand --num 0 -i udp_example01.trafgen --cpp --ring-size
 3732 root       20   0 13616  1780  1384 R 100.  0.0  0:09.22 /opt/trafgen --cpp --dev eth1 --rand --num 0 -i udp_example01.trafgen --cpp --ring-size
 3721 root       20   0 13620  1780  1384 R 100.  0.0  0:09.22 /opt/trafgen --cpp --dev eth1 --rand --num 0 -i udp_example01.trafgen --cpp --ring-size
 3722 root       20   0 13616  1764  1368 R 99.0  0.0  0:09.20 /opt/trafgen --cpp --dev eth1 --rand --num 0 -i udp_example01.trafgen --cpp --ring-size
 3724 root       20   0 13616  1780  1384 R 99.0  0.0  0:09.21 /opt/trafgen --cpp --dev eth1 --rand --num 0 -i udp_example01.trafgen --cpp --ring-size
 3723 root       20   0 13616  1768  1372 R 99.0  0.0  0:09.21 /opt/trafgen --cpp --dev eth1 --rand --num 0 -i udp_example01.trafgen --cpp --ring-size
 3725 root       20   0 13616  1780  1384 R 99.0  0.0  0:09.20 /opt/trafgen --cpp --dev eth1 --rand --num 0 -i udp_example01.trafgen --cpp --ring-size
 3730 root       20   0 13616  1768  1372 R 98.0  0.0  0:09.12 /opt/trafgen --cpp --dev eth1 --rand --num 0 -i udp_example01.trafgen --cpp --ring-size


No comments :

Post a Comment

Note: only a member of this blog may post a comment.