BGP. Балансировка каналов на Quagga

Приведу пример балансировки только входящего трафика при двух каналах используя Quagga.

На тесте буду использовать Ubuntu 16.04.4 LTS и Quagga 0.99.24.1, сетевой интерфейс ens1f0 для второго провайдера с одним neighbors и ens2f0 для первого провайдера с двумя neighbors, в ens2f1 будет подключена локальная сеть. Оба провайдера анонсируют «default».
3.3.3.0/23 это будет моя сеть с белыми IP адресами.
Читать далее «BGP. Балансировка каналов на Quagga»

Настройка DHCP+TFTP для DOCSIS

Недавно нужно было настроить выдачу IP адресов нескольким старым DOCSIS модемам и хосту находящемуся после модема.
Под рукой был Arris Cadant C3 и модемы Thomson TCM-420.

Первым делом запустим DHCP сервер который будет выдавать IP адреса модемам, например как я описывал в этой статье — Установка и настройка isc-dhcp-server.
А также запустим TFTP сервер на котором будут файлы для модемов, например как я описывал в статье — Установка и настройка TFTP сервера

Читать далее «Настройка DHCP+TFTP для DOCSIS»

Как поднять сетевой интерфейс в Linux без IP адреса

Чтобы поднять сетевой интерфейс в Linux без IP адреса, достаточно выполнить команду:

Читать далее «Как поднять сетевой интерфейс в Linux без IP адреса»

Установка xrdp в Ubuntu

xrdp — RDP сервер для Linux

Устанавливается в Ubuntu следующей командой:

sudo apt-get install xrdp

Для подключения к серверу xrdp из Windows можно использовать стандартный клиент удаленного рабочего стола, набрав в командной строке mstsc.exe.
Конфигурация находится тут /etc/xrdp/, логи пишутся сюда — /var/log/xrdp-sesman.log

Перезапустить xrdp можно так:

sudo /etc/init.d/xrdp restart

Можно также установить графическую оболочку Xfce:

sudo apt-get -y install xfce4

И указать её графической оболочкой по умолчанию:

echo xfce4-session >~/.xsession

Рекомендую не использовать root пользователя для работы в графической среде, а создать отдельного пользователя.
Смотрите мою статью — Администрирование пользователей Ubuntu

Решение ошибки «Job for puppetserver.service failed because the control process exited with error code»

Заметил однажды при запуске Puppet сервера, после установки, следующую ошибку:

Job for puppetserver.service failed because the control process exited with error code. See «systemctl status puppetserver.service» and «journalctl -xe» for details.

Ошибка возникает из-за того что не хватает оперативной памяти и чтобы устранить ошибку, откроем файл конфигурации Puppet сервера:

sudo nano /etc/default/puppetserver

И уменьшим объем выделяемой оперативной памяти для Puppet сервера (например я указал 512m вместо 2g):

JAVA_ARGS="-Xms512m -Xmx512m"

Теперь попробуем запустить Puppet сервер:

sudo systemctl start puppetserver

Причина увеличения 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

Установка и настройка 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