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


Thursday 9 November 2017

Отличные инженерные вакансии компании Cloudflare Inc

Всем привет! :)

Знаю, что меня читает много отличных инженеров! Поэтому предлагаю рассмотреть замечательную компанию, в которой очень много прекрасных инженерных позиций - Cloudflare. Полный список вакансий тут: https://www.cloudflare.com/careers/departments/

Если Вам нравится Linux, C, Go или Вам более близок фроентед - милости просим :) 

Monday 6 November 2017

Как сделать из Mac OS NAT сервер чтобы дать доступ в интернет через машину на Mac?

Я все буду делать в macOS High Sierra.

Включаем форвардинг в ядре:
sudo sysctl -w net.inet.ip.forwarding=1
На внутреннем ифейсе задаем IP адрес (без этого не создаст, но потом почему-то поменяет на новый, очень странно он ведет себя):
sudo ifconfig en6 10.10.10.1
Если внешний интерфейс (с интернетом) это en0, а внутренний, которому требуется дать интернет - en6, то сделать это так:
echo "nat on en0 from en6:network to any -> (en0)" > rules
sudo pfctl -f ./rules -e
Очистка правил так: 
sudo pfctl -d
Источник: https://roelant.net/2015/share-your-vpn-mac-el-capitan.html 

Создание загрузочного USB диска на Ubuntu

Отличный вариант - Etcher, https://etcher.io Не требует никаких низкоуровневых команд и все можно сделать из GUI.