networkadm | Unsorted

Telegram-канал networkadm - Network Admin

12610

Обучающий канал по сетевому и системному администрированию. Сотрудничество: @dad_admin Биржа: https://telega.in/c/networkadm РКН: https://bit.ly/4ioc61C

Subscribe to a channel

Network Admin

❓ ⚙️ Как ускорить процессы развертывания приложений и упростить управление инфраструктурой?

👉 На открытом уроке 12 августа в 19:00 МСК мы разберём, что такое Docker и как использовать его для эффективной контейнеризации. Вы узнаете, как работать с Docker CLI, управлять контейнерами, а также как применять Docker Hub для хранения и обмена образами.

После урока вы будете уверенно устанавливать Docker, запускать контейнеры и собирать свои первые Dockerfile. Это знание — важный шаг для системных администраторов и DevOps-специалистов, желающих упростить развертывание приложений.

🎁 Посетите вебинар и получите скидку на курс «Administrator Linux. Basic»: https://otus.pw/En9i/

👉 Для участия в вебинаре зарегистрируйтесь

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Network Admin

Канал опытного инженера с многолетним стажем!

За свою карьеру он поработал со многими технологиями и языками программирования:
⚙️ Python
👩‍💻 Linux
👣 Golang
🖥 Docker
🖥 Kubernetes
🖥 Bash

RECURA: программирование, проще чем кажется

Читать полностью…

Network Admin

Deckhouse User Community meetup #2
21 августа | Москва


«Флант» приглашает на второй Deckhouse User Community meetup. Три доклада от практиков:

→ управление узлами кластера на всём их жизненном цикле с командой Deckhouse Core;
→ построение платформы обучения K8s на DKP CE с коллегами из КРОКа;
→ автоматизация архитектурного контроля и подход Architecture as Code с экспертами «ДОМ.РФ Технологии».

Регистрируйтесь, если интересны реальные кейсы работы с Kubernetes-платформами.

Читать полностью…

Network Admin

DevOps Bootcamp: профессиональное сообщество начинающих инженеров

👉 разборы рабочих задач
👉 прокачка hard и soft skills
👉 вебинары и прямые эфиры с топами индустрии
👉 статьи, лекции и ответы на вопросы

Автор канала — Вячеслав Федосеев:

🔹TeamLead DevOps в «Честном знаке»;
🔹автор двух из трех существующих русскоязычных курсов по CI/CD;
🔹ментор курса-профессии «DevOps Upgrade» учебного центра Слёрм;
🔹ведущий проекта «Честные вакансии: DevOps Middle».

Подписывайтесь на канал и станьте частью большого и активного комьюнити 🫂

⭐️ DevOps Bootcamp ⭐️

Читать полностью…

Network Admin

Проблема PMTU в 2025 году: почему VPN и туннели всё ещё ломаются

Path MTU Discovery (PMTU) — это механизм, который помогает определить максимально возможный размер пакета на пути между двумя хостами, чтобы он не фрагментировался.

В идеале всё должно работать прозрачно: хост отправляет пакеты, маршрутизаторы при необходимости возвращают ICMP‑сообщение Fragmentation Needed, и клиент снижает размер пакета.

Но в реальности в 2025 году PMTU по‑прежнему часто ломается — особенно в VPN и туннелях. Причина в так называемом ICMP blackhole: провайдеры и межсетевые экраны продолжают фильтровать ICMP, в том числе нужные для PMTU пакеты.

Что происходит при ICMP blackhole

• Клиент отправляет пакет большего размера, чем позволяет канал.
• Маршрутизатор должен сообщить ICMP Fragmentation Needed.
• Сообщение блокируется и клиент не узнаёт об ограничении.
• В итоге TCP «виснет»: пакеты не доходят, соединение рвётся или работает с жуткими задержками.

Чаще всего это проявляется при VPN, GRE, IPsec, WireGuard или других туннелях: MTU «съедается» заголовками, и без ICMP трафик начинает падать.

Как диагностировать проблему

1️⃣Проверяем MTU на интерфейсе

ip link show


Смотрим MTU на туннельном интерфейсе, обычно <1500.

2️⃣ Пробуем ping с указанием размера

ping -M do -s 1472 8.8.8.8


(1472 байта + 28 заголовков = 1500). Если не проходит — уменьшаем.

3️⃣ Трассировка с MTU‑проверкой

tracepath 8.8.8.8


Покажет, где именно пакет «обрезается».

4️⃣ Смотрим tcpdump

tcpdump -i eth0 icmp


Если Fragmentation Needed не приходит — это ICMP blackhole.

Способы решения
Задать меньший MTU вручную на VPN‑ или туннельном интерфейсе, например:

ip link set dev wg0 mtu 1400


Настроить MSS‑clamp в iptables:

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
-j TCPMSS --clamp-mss-to-pmtu

N.A. ℹ️ Help

Читать полностью…

Network Admin

🏖 Инструменты и практические советы для ДИТов и инженеров

🟣 VDI против дефицита кадров
— решение проблемы в инженерных компаниях.

🟣 Сколько стоит инфра
— как посчитать совокупную стоимость владения.

🟣 Миграция в облако
— 5 самых частых ошибок.

🟣 Загрузка Linux-системы
— идеальная шпаргалка от с поэтапной схемой.

🟣 Лимиты ресурсов в Kubernetes
как GitLab Runner без лимитов уронил ноду.

🟣 Как не стать мишенью для хакеров в Kubernetes
типичные ошибки в настройке K8s, открывающие двери для атак.

🟣 MinIO урезал UI
— альтернатива OpenMaxIO.

Ещё больше полезного в канале CORTEL

➡️ Подписаться

Реклама ООО "Кортэл"
ИНН: 7816246925

Читать полностью…

Network Admin

С днём сисадмина! 🍺

Предлагаю в очередной раз насладиться классикой :)

localhost › IT-юмор

Читать полностью…

Network Admin

🐧Нашли для вас самый крутой блог Администратора Linux

На своëм канале он уже осветил такие темы, как:

— Что такое ядро Linux и зачем оно нужно?
— Как защитить свой Linux от взлома
— Как создать собственный ISO-образ в Linux
— Linux и управление пакетами
— Процессы в Linux и отладка зависаний


👀Подписывайся, чтобы не потерять

Читать полностью…

Network Admin

WireGuard без лишнего: точка-точка VPN за 5 минут

WireGuard — один из самых простых и быстрых способов поднять VPN.

Особенно, если нужен канал между двумя точками: сервер ↔ клиент, без роутинга сетей и лишних параметров.

Базовая схема
VPS с белым IP (сервер)
Лаптоп/домашний ПК (клиент)

Сервер — 10.0.0.1/24
Клиент — 10.0.0.2/24

Сервер (wg0.conf):

[Interface]
Address = 10.0.0.1/24
PrivateKey = <серверный приватный ключ>
ListenPort = 51820

[Peer]
PublicKey = <публичный ключ клиента>
AllowedIPs = 10.0.0.2/32


Клиент (wg0.conf):

[Interface]
Address = 10.0.0.2/24
PrivateKey = <клиентский приватный ключ>

[Peer]
PublicKey = <публичный ключ сервера>
Endpoint = your-vps-ip:51820
AllowedIPs = 10.0.0.1/32
PersistentKeepalive = 25


Что можно не указывать:
DNS — не нужен, если не используешь этот VPN для выхода в интернет
AllowedIPs = 0.0.0.0/0 — тоже не нужен, если трафик не должен идти через туннель
Маршруты — WireGuard сам добавит маршрут к 10.0.0.0/24

N.A. ℹ️ Help

Читать полностью…

Network Admin

Уже знакомы с Linux, Git и Docker?

Самое время двигаться дальше в DevOps и пройти обучение на курсе-профессии «DevOps Upgrade» от учебного центра Слёрм.

Поток стартовал 30 июня, сейчас идет подготовительный модуль, и еще несколько дней можно присоединиться к учебе 👌

📅 Набор открыт до 28 июля!

Внутри — все необходимые hard skills для позиции DevOps-инженера. В подарок вводные курсы: большой видеокурс по Linux, введение в Ansible и Docker, подготовительный курс по Git.

Длительность курса — 9 месяцев. Начните сейчас, и уже осенью сможете добавить в свое резюме несколько новых инструментов, а к весне будете полностью готовы к новому сезону найма.

Осталось 5 мест ❗️
Занять своё — по ссылке 📌

Читать полностью…

Network Admin

Прокачай свои навыки Kubernetes

Kubernetes — это мощь. Но по-настоящему он раскрывается в руках тех, кто знает, как с ним обращаться.

Хотите уверенно управлять кластерами, настраивать сеть, разруливать инциденты и держать инфраструктуру под контролем? ➡️Тогда вам на курс «Kubernetes Мега» от Слёрма.

На обучении вы: 
👉 Освоите перенос продукта на Kubernetes
👉 Научитесь разворачивать отказоустойчивые кластеры
👉 Ускорите траблшутинг и будете решать инциденты как профи
👉 Повысите стабильность и безопасность инфраструктуры
👉 Настроите автоматическую ротацию сертификатов, автодеплой и защищённое хранение секретов

Это не просто курс. Это путь к 300к/наносек.

Старт — 28 июля, вы как раз успеваете!

Посмотрите программу и забронируйте место ➡️ по ссылке

#реклама
О рекламодателе

Читать полностью…

Network Admin

🎉 Большой розыгрыш от крупнейшего IT-медиа 1337, легендарного паблика Рифмы и Панчи, канала Техно.

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

1. Подписаться на Рифмы и Панчи, 1337 и на Техно.

2. Нажать «Участвовать» под этим постом

Что по призам:

1 место - Iphone 16 Pro
2 место - PS5 Slim
3 место - Nintendo Switch 2
4-10 места - 10 000 рублей на карту


Победителей определим 21 июля в 18:00 МСК. Всем удачи!

Читать полностью…

Network Admin

😊ПРИВЕТ, КОЛЛЕГИ!

Знакомьтесь — «В моём VLAN’е тихо!»


Это не просто канал, это мой путь становления сетевым инженером. Здесь я делюсь всем, что узнаю, пробую и тестирую в мире Cisco и сетевых технологий.😍😍

Что вы найдёте в канале?


- Подробные инструкции по настройке оборудования Cisco
- Пошаговые руководства с реальными примерами
- Разбор ошибок и их решений
- Полезные команды и конфигурации
- Опыт работы с реальным оборудованием

Почему стоит подписаться?

- Честный подход. Я открыто делюсь своим опытом.
- Практические знания.
- Доступность. Объясняю сложные вещи простым языком.
- Регулярные обновления. Новые материалы каждую неделю.

Мой путь:

- Собственная лаборатория с реальным оборудованием Cisco
- Активное обучение и практика
- Создание подробных руководств
- Обмен опытом с коллегами

Присоединяйтесь к каналу!

Вместе мы сможем создать активное сообщество, где каждый сможет делиться опытом и помогать друг другу.

👉 Подписывайтесь: @inMyVlan

Читать полностью…

Network Admin

Хочешь освоить профессию DevOps-инженер, но не знаешь с чего начать?

Тебе знакомо это чувство: открываешь вакансию DevOps, а там — десятки технологий, и каждая требует опыта?
Ты пытаешься учить всё подряд, но в итоге тратишь месяцы, а работодатели всё равно говорят: "Не хватает знаний, опыта".

DevOps — это не про зубрежку инструментов, а про системный подход. Нужно понимать, что учить в первую очередь, а с чем можно повременить.

Чтобы не метаться между мануалами и не тратить время впустую, подписывайся на канал Евгения Вдовиченко.
Он вырос из эникея в Senior DevOps Engineer и получил опыт работы в Сбере, МТС, TerraLink и других компаниях, а так же вел курс - профессия DevOps-инженер и успешно обучил 500+ учеников.

Недавно он записал гайд - Как освоить профессию DevOps-инженер с нуля в 2025 году. В котором рассказывает о том, какие технологии и инструменты стоит изучать, а на какие не нужно тратить время и силы.
Гайд доступен в закрепе канала Евгения!

Подписывайтесь, здесь личный опыт как и что изучать для успешного вкатывания в DevOps.
👉 evgeniyvdovichenko

Читать полностью…

Network Admin

Приглашаем на летний ИТ-фестиваль — Сетевое лето
 
24 июля в парке у воды состоится открытая встреча ИТ-экспертов — инженеров, архитекторов, CTO и руководителей, отвечающих за эксплуатацию и развитие ИТ-инфраструктуры.
 
Ключевые темы:
🔷Развитие и стандарты ЦОДов
🔷Внедрение ИИ в ИТ-системы
🔷Сетевые фабрики, 5G, UC
 
Также в программе:
🔸Технические лаборатории и сетевые игры
🔸Научно-популярные лекции
🔸Тематические дискуссии
🔸Неформальное общение
 
Формат: офлайн, open-air
Дата: 24 июля

Регистрация

Читать полностью…

Network Admin

MLAG без дорогого железа: LACP и Linux bonding в связке

Часть 2

Настройка bonding на Linux-хосте

Создаём bonding-интерфейс:

sudo modprobe bonding
sudo ip link add bond0 type bond
sudo ip link set bond0 up


Добавляем физические интерфейсы:

sudo ip link set eth0 down
sudo ip link set eth1 down
sudo ip link set eth0 master bond0
sudo ip link set eth1 master bond0
sudo ip link set eth0 up
sudo ip link set eth1 up


Включаем LACP (mode=802.3ad) и настраиваем параметры:

sudo bash -c 'echo 802.3ad > /sys/class/net/bond0/bonding/mode'
sudo bash -c 'echo 100 > /sys/class/net/bond0/bonding/lacp_rate' # быстрый LACP (fast rate)


Назначаем IP на bond0:

sudo ip addr add 192.168.1.10/24 dev bond0
sudo ip link set bond0 up


Настройка коммутатора

На коммутаторах создаём LAG с двумя портами и настраиваем LACP.

Пример для Cisco IOS:

interface Port-channel1
description MLAG to Linux host
switchport mode trunk
!

interface GigabitEthernet1/0/1
channel-group 1 mode active
switchport mode trunk
!

interface GigabitEthernet1/0/2
channel-group 1 mode active
switchport mode trunk
!


И да, если у вас два коммутатора с MLAG (например, Arista или Juniper), они должны быть настроены на работу MLAG и синхронизацию состояния агрегатов.

Ограничения и подводные камни
Linux bonding mode 802.3ad умеет работать только с одним коммутатором, MLAG между коммутаторами — уже задача оборудования и их MLAG протоколов.
Неправильная настройка MLAG или LACP на коммутаторах приведёт к потере пакетов и флуктуирующим состояниям линков.
Балансировка — не всегда равномерная из-за особенностей хеширования.

N.A. ℹ️ Help

Читать полностью…

Network Admin

MLAG без дорогого железа: LACP и Linux bonding в связке

MLAG (Multi-Chassis Link Aggregation Group) — это технология, которая позволяет объединить несколько физических каналов с разных физических устройств (чаще всего коммутаторов) в один логический канал для повышения пропускной способности и отказоустойчивости.

В дата-центрах её обычно делают на дорогом оборудовании Cisco, Juniper, Arista.

Но что если бюджет ограничен, а отказоустойчивость и балансировка нужны? Можно реализовать MLAG на базе Linux с помощью LACP и bonding.

Основные задачи и ограничения
Linux bonding — объединяет несколько интерфейсов в один логический с разными режимами (round-robin, active-backup, LACP).
LACP (802.3ad) — протокол динамической агрегации каналов.
MLAG — предполагает, что к нескольким коммутаторам (или Linux-серверам) подключён один и тот же хост с несколькими каналами, которые агрегируются логически.

На практике Linux bonding с mode=802.3ad умеет работать с одним коммутатором, который поддерживает LACP. 


Для MLAG нужно, чтобы коммутаторы между собой синхронизировали состояние агрегатов и работали как один логический агрегат.

Пример топологии


+--------------------+
| Коммутатор 1 |
+----+------------+--+
| |
+----+ +----+
| |
eth0 (bond0) eth1 (bond0)
| |
+---+---+ +---+---+
| Linux хост (bond0) с двумя NIC |
+------------------------------+


Коммутаторы 1 и 2 объединены MLAG, а Linux хост настроен с bonding mode=802.3ad с двумя интерфейсами.

В следующей части разберем настройку на практике

N.A. ℹ️ Help

Читать полностью…

Network Admin

Протокол BFD - быстрая детекция отказов

BFD — лёгкий протокол для быстрого обнаружения недоступности соседних маршрутизаторов или линков.

Работает поверх UDP и значительно сокращает время реакции сетевого оборудования при сбоях.


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

Два узла устанавливают BFD-сессию и обмениваются маленькими пакетами «heartbeat» с частотой до нескольких десятков миллисекунд.

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

Интеграция с BGP и OSPF
• В BGP использование BFD сокращает время обнаружения падения соседа с десятков секунд до сотен миллисекунд.
• В OSPF можно включить BFD для всех интерфейсов, чтобы повысить отказоустойчивость.

Пример настройки в FRRouting (FRR)

router bgp 65001
neighbor 192.0.2.2 remote-as 65002
neighbor 192.0.2.2 bfd
!
bfd
interval 50 min_rx 50 multiplier 3


• interval 50 — отправка пакетов каждые 50 мс
• multiplier 3 — считаем сессию упавшей, если три пакета подряд не получены (примерно 150 мс)

Для OSPF:

router ospf
bfd all-interfaces


Проверка статуса

Команда в FRR:

show bfd peers


Показывает состояние BFD сессий и статистику.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Overlay‑сети без Kubernetes: VXLAN для микросервисов и VM вручную

Не всегда для микросервисов нужен Kubernetes или OpenStack. Иногда достаточно пары серверов и лёгкой overlay‑сети, чтобы изолировать сервисы и связать их в едином L2 поверх L3‑инфраструктуры.

Для этого отлично подходит VXLAN (Virtual eXtensible LAN).


Как работает VXLAN

VXLAN инкапсулирует Ethernet‑кадры в UDP‑пакеты (порт 4789).
Это позволяет создать виртуальную L2‑сеть поверх обычной IP‑маршрутизации.

Каждая VXLAN‑сеть идентифицируется VNI (VXLAN Network Identifier) — 24‑битное поле, что даёт до 16 миллионов сегментов.

По сути, у вас появляется свой виртуальный коммутатор, распределённый между хостами.

Настройка вручную

1️⃣На обоих хостах создаём VXLAN‑интерфейс

ip link add vxlan10 type vxlan id 10 \
dev eth0 remote 203.0.113.2 dstport 4789
ip addr add 10.10.10.1/24 dev vxlan10
ip link set vxlan10 up


На втором хосте:

ip link add vxlan10 type vxlan id 10 \
dev eth0 remote 203.0.113.1 dstport 4789
ip addr add 10.10.10.2/24 dev vxlan10
ip link set vxlan10 up


2️⃣Проверяем связность

ping 10.10.10.2 -I vxlan10


Если всё ок — пакеты идут через VXLAN.

3️⃣ Добавляем бридж, если нужно несколько VM

brctl addbr br0
ip link set vxlan10 master br0
ip link set vnet0 master br0


Теперь VM, подключённые к br0, находятся в общей overlay‑сети.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Wi‑Fi 7 на практике: что изменилось и как настраивать (802.11be)

Wi‑Fi 7 (802.11be) — новый стандарт беспроводной связи, который приходит на смену Wi‑Fi 6/6E.

Он обещает до 40 Гбит/с, меньшие задержки и стабильность для потоков AR/VR, видеоконференций и облачного гейминга.

Что нового по сравнению с Wi‑Fi 6?

Ширина каналов до 320 МГц (в Wi‑Fi 6 максимум 160 МГц).
16 потоков MIMO (против 8 в Wi‑Fi 6).
Многоканальная агрегация (MLO) — устройство может использовать одновременно каналы в разных диапазонах (5 ГГц + 6 ГГц).
1024‑QAM → 4096‑QAM — выше скорость на том же спектре.
Задержка < 2 мс в оптимальных условиях.

Настройка на Aruba / Cisco

Aruba (пример через ArubaOS 10):

wlan ssid-profile WIFI7-DEMO
ssid-name "Office-WiFi7"
opmode wpa3-aes
band 5ghz-6ghz
channel-width 320mhz
qos-profile voice


Cisco Catalyst 9800 (пример):

wireless profile policy WIFI7-POLICY
qos wmm
dot11be enable
!
wlan WIFI7 10 WIFI7-DEMO WIFI7-POLICY
security wpa3
band 5ghz 6ghz
channel width 320


Совместимость: устройства без поддержки Wi‑Fi 7 продолжат работать в сетях на базе нового стандарта, но только в режимах Wi‑Fi 6/5. Основные ограничения касаются мульти‑линков (MLO) и диапазона 6 ГГц: первые пока поддерживаются не всеми клиентами, а второй не в каждой стране разрешён регуляторами.

QoS и приоритеты

Для приложений реального времени:

mls qos trust dscp
class-map match-any VOICE
match dscp ef
policy-map WIFI7-QOS
class VOICE
priority percent 30


Такой профиль даст RTP/VoIP максимальный приоритет и снизит джиттер.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Статус-сайт за 10 минут: как следить за аптаймом своих сервисов

Uptime Kuma — простой и красивый инструмент для мониторинга сайтов, серверов и локальных сервисов. Он проверяет доступность, собирает статистику аптайма и отправляет уведомления, если что-то упало.

Отлично подходит для личных проектов, домашних серверов или небольших команд.

Зачем это нужно?

Сайт перестал открываться - ты узнаешь сразу
VPS внезапно перезагрузился - уведомление уже в почте
Умный дом не отвечает - ты в курсе
Удобная страничка статуса для команды или клиентов

Возможности

Проверка HTTP, ping, TCP-портов, DNS
Частота проверок от 20 секунд
Графики аптайма и задержки
Telegram, email, Discord, Slack и десятки других интеграций
Темы, кастомные домены, доступ по паролю

Установка (через Docker)

Самый быстрый способ — через Docker:

docker run -d \
--name uptime-kuma \
-p 3001:3001 \
-v uptime-kuma:/app/data \
louislam/uptime-kuma


После запуска заходишь на http://localhost:3001 и настраиваешь мониторинг через веб-интерфейс.

Настройка уведомлений

Uptime Kuma умеет отправлять алерты в десятки сервисов. Пример — email:
1️⃣Заводи SMTP-профиль (например, через Gmail или Mailgun)
2️⃣ Добавляешь его в разделе «Уведомления»
3️⃣ Привязываешь к нужному мониторингу

Теперь, если сервер ляжет — тебе придёт письмо через пару секунд.

N.A. ℹ️ Help

Читать полностью…

Network Admin

🎉 С днем системного администратора! 🎉

Сегодня не будет познавательных постов, но будет не менее важное - поздравление! Сегодня - день тех, кто всегда остается за кулисами, но без кого не работает ничего. Это вы начинающие или уже опытные - волшебники командной строки, мастера uptime и защитники серверов от хаоса.

Именно Вы держите на плаву сети, базы данных, почту, бэкапы, мониторинг, безопасность и еще тысячу вещей, о которых никто не догадывается... пока все не сломается, ну или им не покажется, что все сломалось..

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

За вас, сисадмины! С праздником! 🎆

N.A. ℹ️ Help

Читать полностью…

Network Admin

Кэшируем APT, pip и Docker локально

Когда часто разворачиваешь новые среды или работаешь в команде, каждый apt install, pip install или docker pull превращается в гонку с интернетом.

Но можно всё кэшировать локально — и сэкономить десятки гигабайт трафика и часы ожидания.

APT: apt-cacher-ng

apt-cacher-ng — это прокси, который кэширует .deb-пакеты.

Установка (на сервере кэша):

sudo apt install apt-cacher-ng


По умолчанию он слушает на 3142. Теперь клиенты могут использовать его так:

echo 'Acquire::http { Proxy "http://IP_СЕРВЕРА:3142"; };' | sudo tee /etc/apt/apt.conf.d/01proxy


После этого всё, что тянется через apt, будет сохраняться в кэше и переиспользоваться другими машинами.

pip: кэш и локальный индекс

Способ 1: использовать локальный кэш

pip сам кэширует пакеты в ~/.cache/pip, но можно переиспользовать его для других машин.
Просто синхронизируй папку или вынеси её на общий диск.

Способ 2: поднять pypiserver

pip install pypiserver
pypi-server -p 8080 /path/to/packages


Теперь можно указать в pip.conf:

[global]
index-url = http://IP_СЕРВЕРА:8080/simple


Так ты избегаешь зависания при отключении от PyPI и получаешь повторно используемые пакеты.

Docker Registry локально

Если в команде все собирают одинаковые образы, локальный реестр — маст-хэв.

Запуск:

docker run -d -p 5000:5000 --restart=always --name registry registry:2


Теперь пушим образы так:

docker tag my-image localhost:5000/my-image
docker push localhost:5000/my-image


И на других машинах:

docker pull localhost:5000/my-image


N.A. ℹ️ Help

Читать полностью…

Network Admin

Прозрачный MITM с redir и iptables

Перехватываем и анализируем трафик IoT-устройств


После настройки прозрачного перенаправления HTTP-трафика через redir, можно посмотреть, куда и что отправляет устройство без вашего ведома.

👤Смотрим, кто и с кем говорит

Простой способ — использовать tcpdump или ngrep:

tcpdump -i any port 8080 -A


Или:

ngrep -d any -W byline '' tcp port 8080


📁Альтернатива: использовать mitmproxy в режиме transparent

Если вы готовы заморочиться и перехватывать HTTPS, используйте mitmproxy в transparent-режиме:

mitmproxy --mode transparent --showhost --listen-port 8080


Нужно добавить CA-сертификат mitmproxy в доверенные на устройстве, иначе HTTPS не будет работать. С IoT это чаще всего невозможно — так что срабатывает только на HTTP.

Кейсы использования

Проверка, что отправляет «умный» чайник на китайские сервера
Анализ трафика детских игрушек, пылесосов и камер
Мониторинг активности телевизора в ночное время

N.A. ℹ️ Help

Читать полностью…

Network Admin

Прозрачный MITM с redir и iptables: изучаем HTTP-трафик без прокси

Настройка перехвата в локальной сети


Обычно для перехвата HTTP/S-трафика нужно настроить прокси на клиентском устройстве.

Но что делать, если это «умная колонка» или телевизор без доступа к настройкам? Ответ — прозрачный MITM.

Мы будем перехватывать трафик устройств в своей сети без изменения их конфигурации.

Что понадобится

Linux-машина с двумя сетевыми интерфейсами (или одной с iptables)
Устройство в локальной сети (через Wi-Fi или кабель)
Утилита redir или mitmproxy (в режимах прозрачного прокси)

Схема

1️⃣Устройство делает HTTP-запрос через шлюз (например, Wi-Fi роутер)
2️⃣ Мы подменяем маршрут: весь трафик с 80 порта уходит на Linux-машину
3️⃣ iptables делает DNAT и отправляет его в redir
4️⃣ redir перенаправляет на локальный сокет (где можем логировать, анализировать и т.д.)

Настройка iptables и redir

# Перенаправляем весь трафик на порт 80 на нашу машину (192.168.1.100)
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.100:8080

# Разрешаем маршрутизацию
echo 1 > /proc/sys/net/ipv4/ip_forward

# Запускаем redir
redir --lport=8080 --laddr=192.168.1.100 --cport=80 --caddr=0.0.0.0


Теперь весь HTTP-трафик будет проходить через вашу машину.

В следующей части анализируем запросы и смотрим, с кем общается ваш телевизор или чайник.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Anycast своими руками: отказоустойчивость через BGP

Anycast — это способ раздавать один и тот же IP-адрес с разных точек мира, чтобы трафик шёл к ближайшему узлу.

Используется повсюду: от DNS-серверов Google и Cloudflare до балансировки API.

Например: у тебя есть два VPS — в Германии и Сингапуре. Оба отдают сайт с одного IP. Пользователь из Европы попадёт на немецкий хост, из Азии — на сингапурский.

Anycast реализуется на уровне маршрутизации (BGP).

Несколько серверов объявляют один и тот же IP-адрес, а провайдеры маршрутизируют клиента к ближайшему узлу по числу hop’ов или времени отклика.


Минимальный стек для Anycast

VPS с поддержкой BGP (например, у Vultr BGP, Path, Fraxle, [HostHatch], [Netcup BGP LIR))
ASN (можно арендовать или получить свой)
Bird2 или FRRouting для работы с BGP
GRE-туннели или IPIP между VPS (чтобы “соединить” их в одну точку приёма трафика)
Health-checkи: чтобы при падении одной ноды трафик не шёл туда

Разворачиваем простейшую Anycast-сеть

1️⃣Собираем сеть GRE-туннелей между нодами

# На DE VPS:
ip tunnel add gre-sg mode gre remote SG_PUBLIC_IP local DE_PUBLIC_IP ttl 255
ip addr add 10.10.10.1/30 dev gre-sg
ip link set gre-sg up

# На SG VPS:
ip tunnel add gre-de mode gre remote DE_PUBLIC_IP local SG_PUBLIC_IP ttl 255
ip addr add 10.10.10.2/30 dev gre-de
ip link set gre-de up


Это как бы “соединяет” две точки — внутри ты можешь передавать Anycast-трафик.

2️⃣Настраиваем BGP в Bird2 (пример)

# bird.conf (на VPS DE)
router id 1.1.1.1;
protocol bgp myuplink {
local as 64512;
neighbor 192.0.2.1 as 12345;
import all;
export where net = 203.0.113.1/32;
}
protocol static {
route 203.0.113.1/32 via "gre-sg";
}


Теперь ты анонсируешь один и тот же IP с двух точек.

Healthchecks и отказоустойчивость

Добавь мониторинг: если nginx умер или ping перестал идти — убирай маршрут.

Пример: скрипт, который мониторит порт 80, и если он падает — отключает анонс в Bird:

if ! nc -z 127.0.0.1 80; then
birdc "disable protocol static"
fi


Можно завернуть это в systemd timer или cron.

N.A. ℹ️ Help

Читать полностью…

Network Admin

ZeroTier как шлюз в локальную сеть: доступ к домашним устройствам из любой точки

В первой части мы объединили три устройства в виртуальную L2-сеть. 


Теперь сделаем следующее: подключим к ZeroTier всю локальную домашнюю сеть, чтобы с ноутбука можно было попасть, например, к принтеру, NAS или управлять «умным домом».

Сценарий
У тебя дома стоит ПК (или Raspberry Pi) с ZeroTier.
Там же — локальная сеть 192.168.0.0/24.
Ноутбук и VPS — участники ZeroTier, находятся где угодно.
Хочешь с ноутбука подключаться, например, к 192.168.0.10 (локальный NAS).

Что нужно сделать:
1️⃣Включаем маршрутизацию на домашнем ПК

echo 1 > /proc/sys/net/ipv4/ip_forward


Либо добавляем net.ipv4.ip_forward=1 в /etc/sysctl.conf и применяем:

sysctl -p


2️⃣Настраиваем ZeroTier как шлюз в локалку

На сайте my.zerotier.com:
• Открываем вкладку нужной сети.
• В разделе Managed Routes добавляем:

192.168.0.0/24 via 192.168.192.10


(где 192.168.192.10 — ZeroTier-адрес домашнего ПК)

3️⃣Настраиваем iptables для SNAT

Чтобы пакеты с ноутбука корректно возвращались от локальных устройств:

iptables -t nat -A POSTROUTING -s 192.168.192.0/24 -o eth0 -j MASQUERADE


(где eth0 — интерфейс, ведущий в локальную сеть)

4️⃣Готово!

Теперь с ноутбука можно сделать:

ping 192.168.0.10
ssh user@192.168.0.10


— и ты окажешься в домашней сети, даже если дома CG-NAT, а у тебя в руках только Wi-Fi в отеле.

Безопасность

Добавь iptables-правила, чтобы ZeroTier-доступ был только с нужных устройств. Например:

iptables -A FORWARD -i zt+ -s 192.168.192.101 -d 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -i zt+ -j DROP


N.A. ℹ️ Help

Читать полностью…

Network Admin

SR-IOV: прямой доступ к сетевой карте из виртуальной машины для максимальной скорости

SR-IOV (Single Root I/O Virtualization) — технология виртуализации ввода-вывода, которая позволяет «разбить» одну физическую сетевую карту (NIC) на несколько виртуальных функций (VF).

Эти виртуальные функции можно напрямую назначать виртуальным машинам, обеспечивая почти нативную производительность и минимальную задержку.

Преимущества SR-IOV
Значительно снижает задержки (latency)
Увеличивает пропускную способность сети для виртуалок
Снижает нагрузку на CPU хоста
Улучшает масштабируемость виртуальной инфраструктуры

Ограничения и подводные камни
- Не все сетевые карты поддерживают SR-IOV — нужна проверка совместимости.
- Требуется поддержка со стороны гипервизора (KVM, VMware, Hyper-V поддерживают).
- VF ограничены в функциональности: например, не все функции NIC доступны через VF.
- Настройка требует аккуратности — например, VF нужно «пробросить» в виртуальную машину через IOMMU (VFIO).
- Возможны сложности с миграцией VM, если используется SR-IOV.

Практика: включение и настройка SR-IOV на Linux KVM

1️⃣Проверяем поддержку SR-IOV на NIC

lspci | grep -i eth


Ищем нужный адаптер, например 03:00.0 Ethernet controller

2️⃣ Включаем SR-IOV в драйвере и создаём виртуальные функции

echo 4 > /sys/bus/pci/devices/0000:03:00.0/sriov_numvfs


Здесь 4 — количество виртуальных функций.

3️⃣ Проверяем появление VF

ip link show


VF появятся как новые интерфейсы, обычно с префиксом типа eth0vf0 или ens...

4️⃣Привязываем VF к виртуальной машине

Используем VFIO для безопасного проброса PCI устройств:

modprobe vfio-pci
virsh nodedev-detach pci_0000_03_10_0


Добавляем VF в конфигурацию VM как PCI passthrough.

5️⃣Настраиваем сеть внутри VM

VF видится как обычный сетевой интерфейс, который можно настраивать через ip, systemd-networkd или NetworkManager.

N.A. ℹ️ Help

Читать полностью…

Network Admin

Linux Bonding и Teaming: как правильно объединить сетевые интерфейсы

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

В Linux для этого есть два основных механизма: bonding и team.


Разберём, чем они отличаются, в каких случаях что лучше использовать, и как настраивать.

Bonding — классика с мощной поддержкой в ядре

Bonding — давно известный и надёжный способ агрегировать сетевые интерфейсы. Работает на уровне ядра Linux.

Основные режимы bonding:

mode=0 (balance-rr, round-robin) — циклическая отправка пакетов по всем интерфейсам. Максимальная пропускная способность, но не всегда совместимо с коммутаторами.
mode=1 (active-backup) — только один интерфейс активен, остальные — резервные. Надёжно, но скорость — как у одного интерфейса.
mode=2 (balance-xor) — выбор интерфейса по хешу адресов, обеспечивает балансировку и отказоустойчивость.
mode=4 (802.3ad, LACP) — динамическое агрегация с поддержкой LACP. Требует поддержки на коммутаторе.
mode=5 (balance-tlb) — адаптивная балансировка передачи, приём на одном интерфейсе.
mode=6 (balance-alb) — адаптивная балансировка приёма и передачи.

Пример настройки bonding с LACP (mode 4)

modprobe bonding

ip link add bond0 type bond
ip link set eth0 down
ip link set eth1 down
ip link set eth0 master bond0
ip link set eth1 master bond0

ip link set bond0 type bond mode 802.3ad lacp_rate fast
ip link set bond0 up
ip link set eth0 up
ip link set eth1 up

ip addr add 192.168.1.10/24 dev bond0
ip route add default via 192.168.1.1


Team — современный инструмент с гибкой логикой

Team — более новый механизм, который реализуется в userspace с поддержкой разных драйверов для агрегации. Используется systemd-networkd и NetworkManager.

Пример настройки team с активным резервированием (activebackup):

teamd -t team0 -d

cat > /etc/teamd/team0.conf <<EOF
{
"runner": {
"name": "activebackup"
},
"link_watch": {
"name": "ethtool"
}
}
EOF

ip link set eth0 down
ip link set eth1 down
ip link set eth0 master team0
ip link set eth1 master team0
ip link set team0 up
ip link set eth0 up
ip link set eth1 up

ip addr add 192.168.1.20/24 dev team0
ip route add default via 192.168.1.1


Диагностика и полезные команды
Для bonding:

cat /proc/net/bonding/bond0
ip link show bond0
dmesg | grep bonding


Для team:

teamdctl team0 state
teamdctl team0 config dump
ip link show team0


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

N.A. ℹ️ Help

Читать полностью…

Network Admin

Real-Time Transport Protocol (RTP): практика и диагностика качества потоков

Теперь, когда мы разобрали теорию RTP и основные проблемы, давай посмотрим, как на практике работать с RTP в Linux и VoIP-системах.

Захват и анализ RTP-трафика

Для начала полезно уметь захватывать и анализировать RTP-пакеты.
Используй tcpdump для записи трафика UDP в диапазоне портов RTP (например, 10000–20000):

sudo tcpdump -i eth0 udp portrange 10000-20000 -w rtp_capture.pcap


Затем открой файл в Wireshark и применяй фильтр rtp для выделения RTP-пакетов.
В Wireshark посмотри Statistics → RTP → Show All Streams — здесь можно увидеть данные о jitter, потерях пакетов, задержках.

Настройка QoS для RTP-трафика на Linux

Чтобы минимизировать jitter и packet loss, важно выделить RTP-трафик с приоритетом. Маркируем RTP-пакеты DSCP классом EF (Expedited Forwarding):

iptables -t mangle -A OUTPUT -p udp --dport 10000:20000 -j DSCP --set-dscp-class EF
iptables -t mangle -A INPUT -p udp --sport 10000:20000 -j DSCP --set-dscp-class EF


Создаем приоритетную очередь с tc:

tc qdisc add dev eth0 root handle 1: htb default 12
tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit
tc class add dev eth0 parent 1:1 classid 1:11 htb rate 80mbit ceil 100mbit prio 0
tc class add dev eth0 parent 1:1 classid 1:12 htb rate 20mbit ceil 100mbit prio 1
tc filter add dev eth0 parent 1: protocol ip prio 1 handle 46 fw flowid 1:11


Так RTP-трафик с DSCP 46 получает высший приоритет, снижая задержки.

Работа с RTP в Asterisk
• В конфиге /etc/asterisk/rtp.conf задай диапазон портов:

[general]
rtpstart=10000
rtpend=20000


• Убедись, что фаервол пропускает этот диапазон UDP-портов.
• В CLI Asterisk можно включить отладку RTP:

rtp set debug on


Это поможет видеть реальный трафик и обнаружить проблемы с потерями или задержками.

Jitter buffer и сглаживание потока

Чтобы компенсировать jitter, в Asterisk и других системах используют jitter buffer — буфер, который временно хранит пакеты, выравнивая задержки.

В SIP-конфиге можно задать параметры:

[jitterbuffer]
enabled=yes
autofix=yes
maxjitterbuffer=200


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

Мониторинг RTCP

RTCP — протокол контроля качества RTP. Используй rtpdump и rtpstat из пакета rtptools для анализа RTCP-отчетов:

rtpdump -F rtp,rtcp -f rtp_capture.pcap


Это даст статистику по потере пакетов, задержкам и jitter.

N.A. ℹ️ Help

Читать полностью…
Subscribe to a channel