Причина увеличения RX overruns на сетевом адаптере

Заметил однажды на одном из серверов доступа, что немного растет значение RX overruns.

Выполнил несколько раз команды (где p2p1 и p2p2 — имя сетевых интерфейсов):

ifconfig p2p1
ifconfig p2p2

Увеличивалось только значение RX overruns, на 10 пакетов каждую секунду, при трафике около 2Gb/s (100 000 пакетов в секунду).
На сервере был установлен сетевой адаптер «HP NC552SFP 10Gb 2-Port Ethernet Server Adapter» с сетевым контроллером от Emulex.

Посмотрев размер максимального и текущего буфера:

ethtool -g p2p1
ethtool -g p2p2

Обнаружил, что буферы установлены на максимум, TX буфер — 4096, а максимально возможный RX буфер был только 512.
Смотрите также мою статью — Изменение TX и RX буферов сетевых интерфейсов в Linux

Посмотрев правильно ли распределены прерывания сетевой платы по ядрам процессора:

grep p2p1 /proc/interrupts

Обнаружил что у сетевого адаптера 4 IRQ прерывания максимум, и irqbalance соответственно их распределил на 4 ядра, а ядер то 24.

Проблему решил заменой сетевого адаптера на более дорогой — «665249-B21 Контроллер HP Ethernet 10Gb 2-port 560SFP+ Adapter» с сетевым контроллером Intel 82599.
После этого ошибка не наблюдалась, RX и TX буферы были 4096, а IRQ распределено на все 24 ядра.
Спустя пару дней, счетчики ошибок оставались по нулям:

p2p1      RX packets:62535001155 errors:0 dropped:0 overruns:0 frame:0
          TX packets:36343078751 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:77395016742081 (77.3 TB)  TX bytes:10991051263063 (10.9 TB)

p2p2      RX packets:35672087256 errors:0 dropped:0 overruns:0 frame:0
          TX packets:58598868464 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:10996254475480 (10.9 TB)  TX bytes:73378418623349 (73.3 TB)

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

Смотрите также мою статью Настройка сети в Linux

Как сделать загрузочную флешку с CAINE

Чтобы сделать загрузочную флешку с CAINE выполним несколько действий:

1) Скачаем образ CAINE с официального сайта www.caine-live.net

2) Скачаем установщик Universal USB Installer http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/

3) Подключим флешку к компьютеру и запустим установщик Universal USB Installer. В нем согласимся с лицензионным соглашением нажав «I Agree«, во втором окне где «Step 1:» выберем «CAINE Linux«, где «Step 2» нажмем «Browse» и укажем на скачанный образ CAINE (например caine9.0.iso). В «Step 3:» выберем букву флешки, поставим галочку на «Format» (это переразметит таблицу файловой системы и сотрет все данные на флешке).

4) Жмем «Create» и ждем завершения процесса.

IPTables правила для Iperf

Посмотрим текущие правила IPTables:

iptables -nvL

Чтобы открыть порт серверу Iperf добавим правило:

sudo iptables -A INPUT -p tcp --dport 5001 -j ACCEPT

Чтобы открыть порт конкретному IP или сети:

sudo iptables -A INPUT -s 192.168.5.11/32 -p tcp --dport 5001 -j ACCEPT

Смотри также мои статьи:
Настройка IPTables
Тестируем пропускную способности сети с помошью Iperf

IPTables правила для ntopng

Первым делом посмотрим текущие правила IPTables:

iptables -nvL

Чтобы открыть порт ntopng добавим правило:

sudo iptables -A INPUT -m tcp -p tcp --dport 3000 -j ACCEPT

Чтобы открыть порт ntopng только для конкретной сети или IP:

sudo iptables -A INPUT -m tcp -p tcp --dport 3000 -s 10.0.0.0/24 -j ACCEPT

Смотри также мои статьи:
Настройка IPTables
Установка и настройка ntopng

IPTables правила для nprobe

Первым делом посмотрим текущие правила IPTables:

iptables -nvL

Чтобы nprobe мог принимать NetFlow данные, откроем ему порт:

sudo iptables -A INPUT -p udp --dport 2055 -j ACCEPT

Чтобы nprobe мог принимать NetFlow данные только от конкретной сети или IP:

sudo iptables -A INPUT -s 10.0.0.0/24 -p udp --dport 2055 -j ACCEPT

Смотри также мои статьи:
Настройка IPTables
Установка и настройка nprobe

Установка и настройка nprobe

Допустим мы установили ntopng как я описывал в этой статье — Установка и настройка ntopng
То есть выбрали необходимый пакет на http://packages.ntop.org/apt-stable/ и скачали его:

wget wget http://apt-stable.ntop.org/16.04/all/apt-ntop-stable.deb
sudo dpkg -i apt-ntop-stable.deb

Установим nprobe если он не установлен:

sudo apt-get clean all
sudo apt-get update
sudo apt-get install nprobe

Чтобы принимать NetFlow данные и передавать их на ntopng создадим файл (в редакторе nano клавиши CTRL+X для выхода, y/x для сохранения или отмены изменений):

sudo nano /etc/nprobe/nprobe-anyname.conf

Добавим в него:

--zmq="tcp://*:5556"
-3 2055
--flow-version 9
-n=none
-i=none

2055 — это порт на который нужно принимать NetFlow данные, а порт 5556 используется для их передачи к ntopng.
Смотрите мои статьи о настройке NetFlow на коммутаторах:
Настройка NetFlow на Cisco
sFlow на D-Link коммутаторах
Traffic Flow в Mikrotik

Теперь осталось открыть конфигурацию ntopng в текстовом редакторе:

sudo nano /etc/ntopng/ntopng.conf

И добавить в конце строку (тем самым добавим интерфейс nprobe для сбора статистики):

--interface="tcp://127.0.0.1:5556"

Осталось перезапустить ntopng чтобы применить изменения:

sudo service ntopng restart

Проверим все ли работает:

sudo netstat -tulpen | grep 2055
sudo netstat -tulpen | grep 5556
sudo /etc/init.d/nprobe status

Заметил что nprobe не всегда завершает работу после команды:

sudo /etc/init.d/nprobe stop

Поэтому, при необходимости его можно остановить например так:

sudo killall nprobe
sudo kill -9 PID

В бесплатной версии nprobe у меня отображалось сообщение:

NOTE: This is a DEMO version limited to 25000 flows export.

Полную версию можно приобрести на официальном сайте shop.ntop.org.

Смотрите также:
IPTables правила для nprobe

Решение ошибки «Missing /etc/ntopng/ntopng.start. Quitting»

Попробовал запустить однажды ntopng:

sudo /etc/init.d/ntopng start

И получил следующую ошибку запуска:

* Missing /etc/ntopng/ntopng.start. Quitting
…fail!

ntopng запускался только так:

sudo /etc/init.d/ntopng force-start

Чтобы решить ошибку, достаточно создать пустой файл:

sudo touch /etc/ntopng/ntopng.start
sudo /etc/init.d/ntopng restart

Смотрите также:
Установка и настройка ntopng

Почему виртуальные машины Hyper-V не всегда доступны по сети

Допустим на сервере имеется одна сетевая плата и в сетевых подключениях её видно как «Ethernet (или Подключение по локальной сети)», но после добавления роли Hyper-V, создается виртуальный коммутатор vEthernet (…).

Виртуальные машины видно с других компьютеров но не видно с локального.

Поэтому чтобы виртуальные машины были доступны с локальной машины, необходимо отключить DHCP клиент на Ethernet, либо назначить какой нибудь IP адрес вручную, после этого виртуальный коммутатор vEthernet (…) получит IP вместо Ethernet (Подключение по локальной сети) так как у них одинаковые MAC-адреса.

Как удалить страницу ВКонтакте

Чтобы удалить страницу ВКонтакте, необходимо войти используя свой логин и пароль, кликнуть справа вверху по иконке и выбрать «Настройки».
Внизу нажать на ссылку «Вы можете удалить свою страницу».

Далее необходим выбрать причину удаления, можно снять галочку «Рассказать друзьям» если не хотите чтобы все друзья увидели сообщение и причину удаления.
И жмем «Удалить страницу».

В моем случае отобразилось сообщение что страница удалена и её можно восстановить до указанной даты (в течении 7 месяцев).