Samplicator — клонируем и форвардим UDP (sflow) потоки

Время от времени возникает ситуация когда необходимо распараллелить приём sflow потоков на несколько анализаторов, для последующей обработки оных. Дабы реализовать возникшую потребность воспользуемся утилитой Samplicator.

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

Устанавливаем программу:

cd /opt
git clone https://github.com/sleinen/samplicator.git
cd samplicator
./autogen.sh
# PS Для запуска скрипта требуются automake и autoconf, если 
# скрипт завершиться с ошибкой установите их и перезапустите оный
./configure
make
make install
Читать далее

Увеличение скорости rebuild’a software RAID в Linux

Перестроение большого software RAID в Linux может занимать длительное время. Скорость синхронизации mdraid зависит от заданных параметров в proc-переменных /proc/sys/dev/raid/speed_limit_max и /proc/sys/dev/raid/speed_limit_min, задающих максимальную и минимальную пропускную способность синхронизации данных.

По умолчанию значения этих переменных выставлены в 200000 и 1000 (Кб). Манипулируя данными параметрами можно существенно увеличить скорость перестроения RAID-массива. Подобрать оптимальные значения можно в зависимости от производительности текущей дисковой системы, чем выше скорость синхронизации, чем меньше ресурсов остается для обработки текущих дисковых операций.

Установим минимальную скорость в 20 Мб/сек, а максимальную в 300 Мб/cек:

echo 20000 > /proc/sys/dev/raid/speed_limit_min
echo 300000 > /proc/sys/dev/raid/speed_limit_max

Посмотреть текущую скорость ресинхронизации можно в выводе команды:

cat /proc/mdstat

Проверим на системе:

[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1] 
md0 : active raid1 sdb2[1] sda2[0]
      1046528 blocks super 1.2 [2/2] [UU]
          resync=DELAYED
      bitmap: 1/1 pages [4KB], 65536KB chunk
md1 : active raid1 sdb3[1] sda3[0]
      967191552 blocks super 1.2 [2/2] [UU]
      [=======>.............]  resync = 37.5% (363386240/967191552) finish=923.4min speed=10896K/sec
      bitmap: 7/8 pages [28KB], 65536KB chunk
unused devices: <none>
 
[root@localhost ~]# cat /proc/sys/dev/raid/speed_limit_min
1000
 
[root@localhost ~]# echo "20000" > /proc/sys/dev/raid/speed_limit_min 
 
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid1] 
md0 : active raid1 sdb2[1] sda2[0]
      1046528 blocks super 1.2 [2/2] [UU]
          resync=DELAYED
      bitmap: 1/1 pages [4KB], 65536KB chunk
md1 : active raid1 sdb3[1] sda3[0]
      967191552 blocks super 1.2 [2/2] [UU]
      [=======>.............]  resync = 37.7% (365001088/967191552) finish=472.3min speed=21248K/sec
      bitmap: 7/8 pages [28KB], 65536KB chunk
unused devices: <none>

Оптические делители

Если длина волны1310 нм:
— погонное затухание — 0,36 дБ/км;
— соединение волокна сваркой — 0,05 дБ;
— механическое соединение (коннектор — адаптер — коннектор) — 0,4 дБ.

Затухание в реальных оптических делителях

Соотношение деления, % Максимальные вносимые потери, Дб
Однооконный Двухоконный
50 / 50 3,4 / 3,4 3,6 / 3,6
45 / 55 3,8 / 2,9 4,1 / 3,1
40 / 60 4,4 / 2,5 4,7 / 2,7
35 / 65 5,0 / 2,2 5,3 / 2,4
30 / 70 5,6 / 1,8 6,0 / 1,9
25 / 75 6,3 / 1,5 6,9 / 1,6
20 / 80 7,4 / 1,2 7,9 / 1,3
15 / 85 8,8 / 0,9 10,0 / 0,9
10 / 90 10,8 / 0,6 11,3 / 0,6
5 / 95 13,8 / 0,4 15,2 / 0,45

Читать далее

Изменение размера диска на виртуальной машине (Fix GPT and resize LVM)

Данный вариант не прентендует на правильность, возможно куда более правильно просто добавить в ВМ еще один диск.
В примере исправим GPT и увеличим размер LVM.

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

После загрузки ОС проверяем информацию о диске:
fdisk -l или gdisk -l /dev/sda

fdisk -l

GPT PMBR size mismatch (146800639 != 2097151999) will be corrected by w(rite).
Disk /dev/sda: 1000 GiB, 1073741824000 bytes, 2097152000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 47A7D05D-BC6C-486A-853B-5388B9732ECD

Device       Start       End   Sectors Size Type
/dev/sda1     2048      4095      2048   1M BIOS boot
/dev/sda2     4096   2101247   2097152   1G Linux filesystem
/dev/sda3  2101248 146798591 144697344  69G Linux filesystem

=============================================================

gdisk -l /dev/sda

GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 2097152000 sectors, 1000.0 GiB
Model: QEMU HARDDISK   
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 47A7D05D-BC6C-486A-853B-5388B9732ECD
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 146800606
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048            4095   1024.0 KiB  EF02  
   2            4096         2101247   1024.0 MiB  8300  
   3         2101248       146798591   69.0 GiB    8300  

Из примера выше видно что система видит 2097152000 секторов, но использовать может только 146800606
Исправим раздел GPT:
parted -l

Читать далее

NfSen — Сбор и анализ трафика

Предисловие

Основная польза для сетевого инженера от анализатора трафика, это пожалуй поиск флуда и DDoS-атак. Если к вам летит какая-то гадость из интернетов, канал к узлу агрегации стал в «полку», свитчи пингуются с потерями и вы не знаете как искать виновника «гирлянды» в пингере — загляните в NfSen

Хороший и понятный мануал к программе лежит на сайте проекта http://nfsen.sourceforge.net/ и если после прочтения написанного ниже у вас возникнет желание копнуть глубже, появятся вопросы, а возможно вам больше нравится сразу обращаться к первоисточнику за информацией… вы знаете что делать 😉

1. Интерфейс


Домашняя страница — графическая статистика по количеству потоков, пакетов и трафику на одной странице. В нашем случае из-за нагромождения источников flow на графиках, практически не несет смысловой нагрузки. При крепком DDoSe можно заметить всплеск, но информативности мало.

Читать далее

FreeNAS. Установка Zabbix агента

Включаем SSH для root’а

Для удобства включаем SSH на сервере. Для этого переходим по цепочке ниже:

Web-interface => Services => SSH => Enable SSH => Edit => Enable «Log in as root with password»

Скачиваем и распаковываем Zabbix agent

Скачиваем агента отсюда https://www.zabbix.com/download_agents Я выбрал агента для LTS версии 

mkdir /root/zabbix
cd /root/zabbix
# Download Zabbix agent from https://www.zabbix.com/download_agents
wget https://www.zabbix.com/downloads/4.0.19/zabbix_agent-4.0.19-freebsd-11.2-amd64.tar.gz
tar xvf zabbix_agent-4.0.19-freebsd-11.2-amd64.tar.gz
Читать далее

NfSen + Nginx. Установка и базовая настройка

Ликбез или вместо предисловия

Базовые знания о Netflow можно почерпнуть из wiki и более подробно с habra
Extreme Networks использует sFlow, Mikrotik — NetFlow.

Различия между NetFlow и sFlow

В роли коллектора и анализатора будем использовать связку NFDump(NetFlow Dump) и NFSen(NetFlow Sensor)

Установка будет производиться на Ubuntu Server 18.04 из под root’a

1. Обновление ОС и установка пакетов

Первым делом обновим систему
apt update && apt upgrade
Если в процессе обновления было обновлено ядро лучше перезагрузить систему

Устанавливаем необходимые пакеты:

apt install perl php php-fpm nginx libmailtools-perl librrd-dev rrdtool librrds-perl libio-socket-ssl-perl  apt install libtool build-essential mrtg nfdump nfdump-sflow mc 

Читать далее

Включаем LLDP на Linux-сервере

Для работы Link Discovery и возможности получать информацию о линках через SNMP необходимо установить два пакета snmpd и lldpd, а также добавить пару строк в конфиг. В данном примере мы не рассматриваем настройку файла snmpd.conf а просто добавляем в него требуемые строки

apt install -y snmpd lldpd
systemctl enable lldpd
service lldpd start
echo "# enable agentx for lldp
master agentx" >> /etc/snmp/snmpd.conf
echo 'DAEMON_ARGS="-x -c -s -e"' >> /etc/default/lldpd
service lldpd restart
service snmpd restart
Читать далее

Как работает DHCP?

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

DHCPDISCOVER

Это сообщение обозначает начало DCHP взаимодействия между клиентом и сервером. Данное сообщение отправляется клиентом (компьютером или устройством), подключенным к сети. В этом сообщении используется 255.255.255.255 как IP-адрес доставки, тогда как исходным адресом является 0.0.0.0

DHCPOFFER

Это сообщение отправляется в ответ на DHCPDISCOVER от сервера DCHP для подключенных клиентов. В этом сообщении содержатся необходимые сетевые настройки.

DHCPREQUEST

Данное сообщение является ответом на DHCPOFFER, и обозначает, что клиент принял отправленные настройки.

DHCPACK

Данное сообщение отправляется на сервер протокола DCHP в ответ на DHCPREQUEST от клиента. Сообщение обозначает конец процесса, начатого с сообщения DHCPDISCOVER. Т.е. DHCPACK — это не что иное, как подтверждение от сервера начала авторизации клиента и принятие параметров конфигурации, полученных в самом начале от сервера.

Читать далее