Позднее Ctrl + ↑

тестируем китайский оптический патчкорд 10Гбит/с

Позарился я на дешевый оптический патчкорд на 10Гбит/с из Китая

2 SFP+ модуля и оптика всего за 1000 руб.

Продавец молодец, сразу спрашивает для какого оборудования нужно, т. к. брендовые производители стараются защитить свою продукцию и не работают с «левыми» SFP.

К моему сожалению, я пропустил этот вопрос китайского друга и увидел когда уже был выслан универсальный патчкорд.

Честно, я переживал, так как у нас свитчи HP и получилось так, что я просто выкинул деньги.

После получения посылки проверить все равно решили, выкладываю результаты небольшого теста
в тесте участвовали две машины с сетевыми картами Asus 10-Gigabit XG-C100C, подключенные медью к свитчам HPE 1950 24G 2SFP+ 2XGT Switch и HPE 1950 48G 2SFP+ 2XGT Switch.

Первый iperf замер был произведен при соединении свитчей медью

результат со стороны клиента
результат со стороны сервера

Второй iperf замер был произведен при соединении свитчей оптикой

результат со стороны клиента
результат со стороны сервера

Вывод: такие патчкорды — работают, хоть и дешево, но заявленные показатели мы увидели.

PS проверили соединение с еще одним свитчом D-Link DGS-1510-52X, уже без тестов скорости, по индикации свитчей поднялся линк 10Гбит/с.

создание пакетов synology (1 часть, подготовка рабочего пространства)

Сейчас я вам расскажу простым и доступным языком как создавать пакеты Synology. За основу возьму официальную статью с сайта https://help.synology.com/developer-guide/create_package/build_and_create_package.html

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

Для начала нам понадобится linux сервер, например Ubuntu

раскатываем малявку mini http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/mini.iso

я делал виртуальный...

после установки работаем из под sudo (обязательно)

sudo su

устанавливаем python, git, gpg

apt install python git gpg

создаем папку toolkit в корне системы (для этого и нужны root права)

mkdir -p /toolkit
cd /toolkit

скачиваем toolkit

git clone https://github.com/SynologyOpenSource/pkgscripts-ng pkgscripts
cd /toolkit/pkgscripts/

готовим среду для сборки, например для DSM 6.x и архитектуры x64

./EnvDeploy -v 6.0 -p x64

посмотреть список доступных платформ можно так:

./EnvDeploy -v 6.0 --list

создаем GPG ключ

gpg --gen-key

в процессе генерации нам надо будет указать свое имя и свой e-mail, а так же придумать фразу-пароль... но, на самом деле это просто пароль, т. к. не сработало с кириллицей, с латиницей с пробелами, получилось только указать длинный пароль из латинских символов заглавных строчных и цифр.

все что мы сгенерировали попадает в папку /root/.gnupg/, которую надо скопировать сюда /toolkit/build_env/ds.x64-6.0/root/

теперь проверяем что у нас получилось

cd /toolkit/build_env/ds.x64-6.0/
chroot .
gpg -K

в результате видим примерно следующее:

/root/.gnupg/pubring.kbx
------------------------
sec   rsa3072/6BFF2816 2021-05-07 [expires: 2023-05-07]
uid       [ultimate] Aleksey Voronin <mail@domain.ru>
ssb   rsa3072/15BC6096 2021-05-07 [expires: 2023-05-07]

все получилось, выходим из chroot

exit

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

отслеживаем подключения по vpn на pfsense

Пандемия 2020 дала свои плоды: удаленная работа, массовое использование VPN. Конечно, любое руководство захочет контролировать удаленное подключение/отключение сотрудников. У себя в компании мы интегрировали VPN в пропускную систему создав виртуальный контроллер. Теперь отдел кадров видит кто посещал рабочее место зайдя в офис или подключался удаленно. Полностью расписывать весь механизм я не стану, лишь опубликую как можно организовать получение событий со шлюза на pfsense.

Для начала создаём сервер на ubuntu, например, виртуальный. Требования минимальны: 1 CPU, 256Мб памяти, 10Гб диск. Я щедро выделил 1Гб памяти и 100 Гб диска, вот что реально потребляет система:

Качаем минимальный дистрибутив в 74Мб http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/current/legacy-images/netboot/mini.iso

устанавливаем syslog-ng

sudo apt update
sudo apt install syslog-ng

создаем конфиг /etc/syslog-ng/conf.d/external_log.conf

source s_udp {
    udp(port(514));
};
destination d_PFSENSE_VPN {
     program("/usr/bin/php /home/user/pfsense_vpn.php" );
};
filter f_PFSENSE_VPN {
    host("192.168.#.#");
    match(",l2tp," value ("MESSAGE"));
};
log {
    source(s_udp);
    filter(f_PFSENSE_VPN);
    destination(d_PFSENSE_VPN);
};
destination d_PFSENSE_OPENVPN {
     program("/usr/bin/php /home/user/pfsense_vpn.php" );
};
filter f_PFSENSE_OPENVPN {
    host("192.168.#.#");
    program("openvpn");
};
log {
    source(s_udp);
    filter(f_PFSENSE_OPENVPN);
    destination(d_PFSENSE_OPENVPN);
};

где 192.168.#.# — ip-адрес pfsense

перенаправим логи с pfsense на наш маленький сервер, здесь мы их будем парсить и обрабатывать как нам нужно

в моём примере, мы создаем два фильтра f_PFSENSE_VPN и f_PFSENSE_OPENVPN для того чтобы скриптом обрабатывать только события связанные с подключением и отключением по протоколам l2tp и OpenVPN (актуально для формата логов pfsense версии 2.5.1

есть два destination, но по сути они ссылаются на один и тот же скрипт d_PFSENSE_VPN и d_PFSENSE_OPENVPN

со стороны pfsense настраиваем пересылку логов на наш сервер

Status -> System Logs -> Settings

указываем ip-адрес и порт нашего сервера и ставим галочку «VPN Events (IPsec, OpenVPN, L2TP, PPPoE Server)», т. к. нам нужны только события удаленных подключений

с парсером, я думаю, вы справитесь, приведу пример логов для OpenVPN:
подключение

Jun 25 18:29:57 192.168.#.# openvpn: user ’user_name’ authenticated

отключение

Jun 25 18:57:34 192.168.#.# openvpn[16766]: user_name/132.252.198.166:6182 Connection reset, restarting [-1]

С l2tp еще проще:
подключение

Jun 25 18:29:57 192.168.#.# root: login,l2tp,192.168.111.#,user_name

отключение

Jun 25 18:57:34 192.168.#.# root: logout,l2tp,192.168.111.#,user_name

Ранее Ctrl + ↓