Linux: bash спец. символы, man, переменные (> >> $ & # ~/$HOME $USER \ | /n \t ^M $? * ; ()), redirect stdout/stderr, ALIAS, bashrc, profile; программирование в bash (полезные скрипты, получение опций в скриптах, функции, условия, циклы, case, массивы)

~ echo $SHELL
/bin/bash

bash-3.2$ echo $SHELL # MACOS
/bin/zsh
  • (ssh, bash) Пересылка сообщений между терминалами

# echo to special terminal
echo "Hello Terminal 3" > /dev/pts/3

# echo to all terminal linux (3 vars)

echo "Your message here" | wall
wall message.txt


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

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

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


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

Несколько полезных JavaScript

  • (linkmeup CDN) В среднем чем больше js кода мы исполняем в браузере, тем больше вероятность что в исполняемом коде может оказаться что-то плохое: bruteforce, dos, bot, etc т.к. несмотря на наличие методов защиты в браузерах они зачастую обходятся.

confirm при нажатии на кнопку

Например кнопку “удалить” в файловой шаре.

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

JAVA заметки

1995 год Язык программирования Java — первый язык программирования с кроссплатформенной поддержкой — был создан компанией Sun Microsystems (в последующем приобретенной компанией Oracle). Ведущим разработчиком в команде был Джеймс Гослинг — он известен как «отец Java».

Производительность
  • Тюнинг производительности JAVA от Oracle

Для тех кто нелюбит Java и говорит что она медленная.

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

Coding: Python

  • Python.org – основной сайт. Тут можно скачать актуальный python на windows/linux/mac os, посмотреть документацию
  • Гвидо ван Россум – творец языка. По сути аналог Линус Торвальдса для Linux. 1989 год Голландский разработчик Гвидо ван Россум в качестве хобби-проекта во время рождественских каникул создает язык программирования Python.


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

Статистика и математика в IT

  • Сюда переношу все, что связано со статистикой и нужно было на практике – в тестировании, разработке и в других инженерных задачах.
  • Нужно уметь применять статистику (с этим часто проблема) и
    • если задача найти максимальное расстояние между значениями ряда/выборки – то среднеквадратичное отклонение не подходит, нужно считать размах
    • если задача найти максимальное расстояние от среднего – то среднеквадратичное отклонение тоже не подходит, нужно считать максимальное относительное отклонение

(статистика, python, сетевое тестирование)

В целом же можно порекомендовать делать pandas describe на выборку для получения разнообразной статистики:

        • count 94248.000000 – количество элементов (размер выборки)
        • mean 1.691554 – среднее
        • std 0.979690 – стандартное отклонение (величина высокая)
        • min -0.108278 – меньше этого гарантировано (на основе выборки) не будет
        • 25% 0.396944 – 25% выборки выше этого значения
        • 50% 2.301407 – медиана (median)
        • 75% 2.348383 – 75% выборки ниже этого значения
        • max 6.486859 – больше этого гарантировано (на основе выборки) не будет

Так же может дополнительно быть необходимо:

        • 1%
          • https://www.rfc-editor.org/rfc/rfc9693.html


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

Основы тестирования (Quality Assurance)

Tests can make good code great!
  • Бажат все, даже такие ведущие вендоры как Cisco (особенно Firepower :D). Важно насколько сырой продукт в текущем состоянии и как быстро исправляют проблемы.
из чатика:
на 65 залипает или вообще не работает вплс, на а1к перестают анонситься маршруты, нцс просто тупо сырые.


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

Системное программирование (C, C++, RUST) и узкоспециализированные языки (fortran, cobol)

  • Для отладки кода C, в том числе даже таких крупных проектов (напр. пропусков атак в них) как snort/suricata можно и нужно использовать отладчик GDB.
The GNU Debugger (GDB) is a portable debugger that runs on many Unix-like systems and works for many programming languages, including Ada, Assembly, C, C++, D, Fortran, Haskell, Go, Objective-C, OpenCL C, Modula-2, Pascal, Rust and partially others.


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

Coding, Network: API и методы работы с ним (SOAP, REST, JSON, XML, YAML, TOML, YANG, TOML, protocol buffers/Apache Thrift, graphQL; SWAGGER, WSDL, WADL; restconf, netconf; Cisco PXGRID)

  • В общем про api и методы взаимодействия с ними (rest, yang, soap, xml, json, restconf/netconf, etc) в отдельной статье
  • CLI зачастую >>> всех других методов, пример яндекс со своей «Аннушкой» работает именно поверх CLI
    • Мы про это расскажем в докладах, но нет, cli – как общий знаменатель для всего.



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

Coding/Network: Автоматизация (общее), программирование для сетевых инженеров, сетевая автоматизация (devnet, netdevops, netops); ZTP

  • Про системы конфигурации отдельная статья – CMS
  • Про NMS отдельная статья – NMS
  • (devnet, CMS annet) Нужно общаться с пользователям очень плотно если вы автоматизируете из работу – собирать требования/фидбеки, реагировать
  • Опрос на habr.
Как Вы управляете конфигурацией?
33.61% Ручное редактирование конфигурационных файлов - 40
31.93% GitOps - 38
20.17% Web UI - 24
14.29% другое - 17
Проголосовали 119 пользователей.


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