Linux: DPDK, HYPERSCAN, SNABB; NETMAP DNA, PFRING, XDP; hugepages

  • Хорошие таблицы, взяты отсюда https://habr.com/ru/companies/garda/articles/985596/

Производитель Модель Скорость Ключевые особенности Применение
NVIDIA BlueField-3

 

DPU

400 Gbps 16x ARM Cortex-A78,

 

аппаратный eBPF

Cloud security, Zero-Trust
Intel IPU E2000 200 Gbps Интеграция с Open vSwitch, поддержка QAT Виртуализация,

 

SDN

AMD/Xilinx Alveo SN1000 100 Gbps FPGA + ARM-ядра,

 

анализ TLS/SSL

Финансовый мониторинг
Marvell OCTEON 10

 

DPU

100 Gbps 8x ARM Neoverse N2,

 

аппаратный DPI

Телеком (5G UPF)

Программные методы Аппаратные методы
  AF_PACKET PF_RING /

 

PF_RING ZC

DPDK (PMD) DPDK (AF_XDP) FPGA SmartNIC
Скорость До 10 Gbps 10 Gbps

 

40-100 Gbps

До 200+ Gbps До 100 Gbps Многократные 100G порты (400G, 800G) До 200 Gbps

 

на порт

Задержка

 

(Latency)

Высокая Средняя

 

Низкая

Очень низкая Низкая Экстремально низкая детерминированная Очень низкая детерминированная
Сложность реализации Низкая (стандартный

 

API)

Средняя (свои драйверы и библиотеки) Высокая (выделенные ядра, управление памятью) Высокая

 

(работа с еВРЕ)

Очень

 

высокая (HDL/Verilog/V

HDL, RTL-дизайна)

Высокая (ASIC,

 

C/OpenCL)

Стоимость Бесплатно (входит в состав ОС) Бесплатно /

 

Платная

Бесплатно, но мощные CPU

 

совместимые NIC

Бесплатно Очень высокая Высокая
Ключевые особенности Простота использ-ниЯ, стандартность Улучшенная производите-ть.


Читать дальше

WordPress разные хинты

Разное
  • Usage статистика WordPress по  используемым версиях WordPress, PHP, Mysql, locale, etc
  • Для проигрывания GIF нужно выбирать full size при insert картинки в пост, иначе она будет статичной
  • Чтобы постить source-code почти без изменений (скобки пришлось подменять все равно) нужно использовать плагин SyntaxHighlighter.


Читать дальше

Linux: permissions/права/sudo & user/group management

  • POSIX based file permissions пришли еще с UNIX (поэтому актуальны и для MacOS), они определили формат назначания прав read/write/execute для user/group/others; подробнее ниже
  • ACL based file permissions позволяют назначать разные права для разных пользователей и групп, в отличии от классического POSIX подхода; подробнее ниже
  • Удобный калькулятор разрешений в десятичом виде в зависимости от типа прав (r/w/e) и scope (u/g/o)

  • Грамотные админы в повседневной работе не работают из под root, а заходят в эту учетку только если нужно что-то сделать – защита от случайных поломок, безопасность (как минимум пароль нужно ввести для входа под root)
  • Изначально ownership придуман чтобы собственник даже в случае некорректной установки прав не потерял доступ

 

sudo/su
su – тоже самое что su root.


Читать дальше

Linux: ядро (kernel), процессы /proc в ОС и работа с ними (proc, ps, lsof, nice, kill, killall, top, lscpu, interrupts, smp irq affinity, isolcpus, taskset, cpuset/cset shield), утилизация процессора (user/system/idle/iowait/softirq)

  • kernel parameters /proc/cmdline (можно редактировать конфигом GRUB)
  • kernel parameters modification /etc/sysctl.conf
  • В Linux все рассматривается как файлы, включая устройства (/dev) и процессы (/proc)
  • Любые изменения в /proc директории немедленно применяются kernel
All changes to files in /proc/ are immediately recognized by the kernel.


Читать дальше

Основы VCS на примере Git, patch/diff

  • https://git-scm.com/ – тут крутые entry видео, документация и прочее
  • с помощью ChatGPT Deep Research можно изучить любой GitHub проект

 

patch/diff
  • Утилита patch позволяет создать код на основе diff одной версии кода от другой
  • До сих пор на kernel.org есть возможность обновить одну версию ядра на другую используя diff между последовательными версиями через утилиту patch, это позволяет не выкачивать весь код, а скачать diff и применить его через patch
  • В целом patch/diff старый допотопный способ vcs (один разраб отправлял diff другому и тот через patch мог получить версию кода разраба), сейчас при разработке ядра linux не используется в пользу git, но при этом патчи до сих пор используются, например
    • для поддержки драйвера RAID в каком то ядре поставщик может предоставлять софт в виде патча для определенной версии ядра
    • для задач безопасности, например, grsecurity, выпускающий ранее бесплатно (теперь платно) патчи безопасности для ядра и доп.


Читать дальше

Network/Linux: Shaping, Policing, Impairment, Traffic Control. Ограничение полосы пропускания (Linux: tc, wondershaper; Network: Cisco, Mellanox), внесение задержек и потерь в сетевой трафик

Влияние потери и задержек на Throughput подробно описано в отдельной статье.

Пример кейсов использования impairment:

    • эмуляция гео-распределенной сети
    • эмуляция wireless/satellite/mobile
    • приближение к real world
    • тестирование edge case сценариев

При этом в сетевом тестировании с impairment нужно обращаться “аккуратно”.

EANTC Carsten Rossenhoevel
The benchmarking methodology could be complemented with synthetic loss/delay, but this is out of scope of this draft ((netsecopen)). 


Читать дальше

VRF: базовая настройка в Linux и на сетевых устройствах Cisco, Huawei

Linux
  • База на xgu
  • При настройке VRF в linux свой интерфейс в vrf не пингуется – это ок. Интерфейс в другом vrf при этом будет отвечать нашему. Можно интерфейсы соединить кабелем напрямую (в одной подсети, но разных vrf) или через промежуточный роутер (в разных подсетях) – без разницы.


Читать дальше

Windows: полезные вещи и команды (cmd, powershell)

MISC
  • Для просмотра девайсов в системе на Windows/инфы с датчиков/стресс тестирования хороша утилита Everest (aida64). aida64 – everest тот же, часть вещей лучше.
  • Замена telnet
Test-NetConnection 192.168.1.90 -port 3389
  • Развитие IT в странах СНГ в среднем значительно хуже РФ/Москвы, не говоря о USA/Китае – в Азербайджане в основном все on-prem и напр.


Читать дальше

Резервное копирование

Конспект вебинара HonorCup E=DC2 для сдачи HCNA Storage.

Связанные по вебинару посты:

Разное:

  • (Резервное копирование, LVM) Если говорить в целом про snapshot:
    • snapshot =! Backup как минимум потому, что
      • он обычно хранит только diff от данных от текущего состояния системы и того состояния, которое было при снятии snapshot
      • snapshot хранятся на тех же носителях, что и основная система
    • snapshot на storage/СХД (EMC/IBM) устройствах
      • snapshot используются на всю катушку – есть банки которые все бекапы делают только на них -> напр, каждые 15мин делается snapshot всей базы и их хранятся сотни штук
      • разработчики таких устройств поддерживают использование snapshot, но полноценные backup это не snapshot, рекомендуется использовать snapshot + backup
    • удобно и правильно комбинировать snapshot и backup – snapshot получаешь консисентное состояние в один момент времени всех элементов системы (к примеру файлов сайта и файлов БД), а backup-ом это состояние уже сохраняешь, при этом нужно учитывать, что иногда при снятии snapshot есть некоторое «подмораживание системы на запись» на некоторое время
  • (Обучение Lpic-2) Делать бекапы очень важно (в том числе на ленте/ленточном хранилище – подробнее про ленты ниже), сценариев потери данных без бекапов миллион и тележка
    • почистили память RAID контроллера и весь RAID потерял данные (восстановление с ленты)
    • обновили записи в БД и вместо того, чтоб обновление получил один оно привело к апдейту у 700к  (спас лог транзакций Oracle)
  • (Обучение Lpic-2) Ленты вообще используется очень часто в крупных компаниях, особенно банках (включая зеленый – за разными RAID/СХД “обязана” быть лента, с которой если что можно восстановится ; «3 года должно быть хранение в банках, как без ленты») – ленты позволяют хранить огромные объемы данных дешевле (1 картридж до 50ТБ) и дольше/надежнее, чем на других носителях

  • Backup желательно делать с отключенным сервисом, backup которого делается.


Читать дальше

Linux: Docker, conrainerd, container security (hardening)

Basics
  • Container security – три основных риска/угрозы/проблемы
    • плохая конфигурация
    • проблемы runtime
    • цепочки поставок
  • Процессы контейнеров видны на “хостовой” машине в ps -aux
  • Применение bestpractice до/после

  • Установка docker на debian12 требует установку репозитория docker в систему.
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian


Читать дальше