NetworkAdmin.ru – Telegram
NetworkAdmin.ru
4.75K subscribers
226 photos
25 videos
2 files
499 links
Авторский блог про сетевое и системное администрирование.

Сайт: networkadmin.ru
Реклама: @dad_admin
Биржа: https://telega.in/c/networkadminru
Download Telegram
✍️ Практика работы с tcpdump: фильтры и полезные примеры

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

▪️ Базовый запуск


tcpdump -i eth0


Смотрим весь трафик интерфейса eth0. Часто этого уже достаточно для первичной диагностики.

▪️ Полезные фильтры

1️⃣ Фильтрация по IP


tcpdump host 192.168.1.10


Только пакеты от/к указанному IP.

2️⃣ Фильтрация по порту


tcpdump port 22


Видим весь SSH-трафик.

3️⃣ Только входящие или исходящие пакеты


tcpdump src host 10.0.0.5
tcpdump dst port 80


4️⃣ Комбинация условий (AND, OR, NOT)


tcpdump src host 192.168.1.100 and port 443
tcpdump not port 22


5️⃣ Фильтрация по протоколу


tcpdump icmp
tcpdump tcp
tcpdump udp


▪️ Практические примеры

1️⃣ Смотреть весь HTTP-трафик


tcpdump -i eth0 tcp port 80 -A


Ключ -A выводит полезную нагрузку пакетов в ASCII. Удобно, если нужно подсмотреть запросы.

2️⃣ Анализ TLS (SNI и handshake)


tcpdump -i eth0 tcp port 443 -vvv


С подробной детализацией можно увидеть домены, к которым идёт подключение.

3️⃣ Отследить DNS-запросы


tcpdump -i eth0 udp port 53


4️⃣ Сохранить дамп для анализа в Wireshark


tcpdump -i eth0 -w dump.pcap


А потом открыть dump.pcap в Wireshark.

5️⃣ Ограничить количество пакетов


tcpdump -c 100 -i eth0


Собираем только первые 100 пакетов.

▪️ Резюме:

Используйте -nn - чтобы ip-адреса и порты не переводились в имена (ускоряет работу).
-vvv - максимально подробный вывод.
Для длительного мониторинга всегда сохраняйте в файл (-w) и анализируйте в wireshark или tshark.

#linux #tcpdump

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Пушистый стажер, работает за вискас

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁185🔥2
🔄 strace и ltrace: отладка процессов

Часто возникает ситуация: программа подвисает, работает странно или вообще не запускается. В таких случаях на помощь приходят два инструмента - strace и ltrace. Оба они позволяют заглянуть внутрь процесса, но делают это на разных уровнях.

▪️ strace - системные вызовы. strace перехватывает системные вызовы, которые делает процесс, и возвращаемые значения. Это удобно для анализа проблем с доступом к файлам, сетевыми подключениями или зависаниями.

📍 Запуск с приложением:


strace ls /nonexistent


Вывод покажет, что ls пытается открыть директорию и получает ENOENT (нет такого файла).

📍 Подключение к уже работающему процессу:


strace -p 1234


Теперь видно, чем занимается процесс с PID 1234.

📍 Фильтрация вызовов:


strace -e open,read,write -p 1234


Будут показаны только вызовы open, read, write.

▪️ ltrace - вызовы библиотек. Если strace работает с системными вызовами ядра, то ltrace отслеживает вызовы функций библиотек. Это особенно полезно, если программа спотыкается не на уровне ядра, а на уровне glibc или других библиотек.

📍 Пример:


ltrace ls


Вы увидите вызовы функций вроде malloc(), strlen(), fopen().

📍 Фильтрация по конкретным функциям:


ltrace -e malloc,free ./myprog


Будут показаны только вызовы функций управления памятью.

▪️ Совместное применение. Часто эти инструменты используют вместе:

strace → понять, что происходит на уровне системных вызовов (например, программа не может открыть файл из-за прав).
ltrace → отследить логику внутри библиотек (например, неверно передаются параметры в функцию).

▪️ Практические кейсы

📍 Отладка зависающих процессов:


strace -p <PID>


Сразу видно, ждёт ли программа I/O или зациклилась.

📍 Диагностика ошибок "файл не найден":


strace ./prog 2>&1 | grep ENOENT


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

📍 Поиск утечек памяти:


ltrace -e malloc,free ./prog


Если много malloc(), но мало free() - повод задуматься.

#linux #debug

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
🌟 Подводные камни при копировании файлов в linux

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

▪️ Базовый пример. Хочется скопировать содержимое одной директории в другую:


cp /dir_a/* /dir_b


Кажется логичным, но так скопируются только файлы верхнего уровня, без вложенных директорий. Чтобы взять все целиком (с поддиректориями и атрибутами), используем:


cp -a /dir_a/* /dir_b


Ключ -a = рекурсия + права доступа + даты + симлинки. В общем, максимально правильное копирование.

▪️ Подводные камни

Звездочка раскрывается в bash. Символ * обрабатывает сама оболочка, а не cp. То есть bash разворачивает список файлов и передаёт их в виде длинной команды:


cp -a /dir_a/file1 /dir_a/file2 ... /dir_b


Если файлов слишком много - можно упереться в ограничение длины команды.

Скрытые файлы теряются. Файлы, начинающиеся с точки (.htaccess, .env и т.п.), по умолчанию не попадут в *. В результате копирование окажется не точным.

Пустая директория = ошибка. Если в исходной папке нет файлов, то * не развернётся, и cp просто вернет ошибку.

▪️ Как сделать правильно. Лучше вообще избегать *, когда речь о копировании директорий. Надежный способ:


cp -aT /dir_a /dir_b


Здесь:

-a - копирование со всеми атрибутами
-T - воспринимать /dir_b как саму директорию назначения, а не поддиректорию внутри неё

Таким образом, копирование отрабатывает корректно: и вложенные каталоги, и скрытые файлы будут на месте.

#linux #cp

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍242🔥1😱1👌1
ℹ️ Тонкая настройка swap для производительности

Swap в linux играет роль страховочного пространства на диске для выгрузки неиспользуемых страниц памяти. Но работать с ним можно по-разному: от полного отключения до использования современных технологий сжатия. Разберем основные практики.

▪️ Проверка текущего состояния. Посмотреть активные swap-разделы и файлы можно так:


swapon --show
free -h


▪️ Полное отключение swap. Если на сервере достаточно оперативной памяти, swap часто отключают, чтобы избежать лишних задержек:


swapoff -a


Чтобы выключить swap навсегда - закомментируйте его строки в /etc/fstab.

▪️ Настройка приоритета. Если используется несколько swap-устройств (например, раздел и файл), то можно указать приоритет. Чем выше значение, тем раньше будет использоваться swap:


# swapon /swapfile --priority 100


Текущие приоритеты видно в выводе swapon --show.

▪️ Управление swappiness. Параметр vm.swappiness задает, как активно ядро будет использовать swap.

0 - максимально избегать использования swap.
60 (по умолчанию) - сбалансированный вариант.
100 - активно выгружать память в swap.

Пример настройки:


sysctl -w vm.swappiness=10


Для постоянного применения добавьте в /etc/sysctl.conf:


vm.swappiness=10


▪️ Zswap и Zram. Чтобы уменьшить нагрузку на диск и ускорить работу используют сжатие памяти:

📍 Zswap - сжатый кэш для swap в оперативке.
Активация через параметры ядра:


zswap.enabled=1


📍 Zram - сжатый блочный девайс в RAM, который можно подключить как swap. Это будет полезно на ноутбуках и в контейнерах.
Установка и включение в Debian/Ubuntu:


apt install zram-tools
systemctl enable --now zramswap.service


#linux #swap

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
🏷 Как избежать ошибок с монтированием в Linux

Когда речь заходит о работе с внешними или сетевыми хранилищами, важно проверять, что файловая система действительно подключена и смонтирована. В Linux для этого есть две удобные утилиты - findmnt и findfs.

▪️ findmnt - контроль точек монтирования. Запуск без параметров показывает все точки монтирования. Но есть и практичный режим проверки fstab:


findmnt -x

Success, no errors or warnings detected


Если в конфигурации есть ошибка - получите подробное сообщение:


findmnt -x

/mnt/backup
[E] unreachable on boot required source: UUID=151ea24d-977a-412c-818f-0d374baa5012


Также можно проверять наличие конкретной точки монтирования:


if findmnt -rno TARGET "$1" >/dev/null; then
echo "$1 mounted."
else
echo "$1 not mounted."
fi


▪️ findfs - поиск по UUID и меткам. findfs ищет файловые системы по UUID, LABEL, PARTLABEL, PARTUUID. Пример:


findfs "UUID=151ea24d-977a-412c-818f-0d374baa5013"

/dev/sda2


Выходной код тоже полезен в скриптах:

0 → устройство найдено
1 → файловая система не найдена


if findfs "UUID=$1" >/dev/null; then
echo "$1 connected."
else
echo "$1 not connected."
fi


⚠️ Почему это важно?

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

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

#findmnt #findfs

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Покупка нового корпуса - это что-то на богатом

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁18👍3👎1
⌛️ Быстрый способ отладки bash-скриптов

Когда в скрипте что-то идет не так, часто хочется понять, какая команда выполнилась последней и какие значения получили переменные. Вместо того чтобы расставлять десятки echo, в bash есть встроенный инструмент - set -x.

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

▪️ Пример: резервное копирование файла

Создадим простой скрипт, который проверяет наличие файла и копирует его в директорию резервных копий:


#!/bin/bash
set -x

src="/etc/hosts"
dst="/tmp/backup"

mkdir -p "$dst"
timestamp=$(date +%Y%m%d_%H%M%S)
cp "$src" "$dst/hosts_$timestamp"

echo "Backup created: $dst/hosts_$timestamp"


Вывод консоли:


Запуск
# ./backup.sh
+ src=/etc/hosts
+ dst=/tmp/backup
+ mkdir -p /tmp/backup
+ date +%Y%m%d_%H%M%S
+ timestamp=20251007_121330
+ cp /etc/hosts /tmp/backup/hosts_20251007_121330
+ echo 'Backup created: /tmp/backup/hosts_20251007_121330'
Backup created: /tmp/backup/hosts_20251007_121330


Мы видим каждое действие: какие переменные подставились, как отработала команда date, куда скопировался файл.

#linux #debug

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124
🎆 Удобная веб-панель для управления linux серверами

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

▪️ Установка и запуск. В большинстве систем Cockpit есть прямо в репозиториях.

debian/ubuntu:


apt install cockpit -y
systemctl enable --now cockpit.socket


RHEL/centOS/fedora:


dnf install cockpit -y
systemctl enable --now cockpit.socket


После этого панель доступна по HTTPS на порту 9090: https://IP-сервера:9090

Авторизация выполняется через обычный системный логин и пароль.

📍 Возможности Cockpit

Мониторинг ресурсов (CPU, RAM, диски, сеть) в реальном времени
Управление сервисами systemd (запуск, остановка, перезапуск)
Просмотр логов journald
Управление пользователями и правами
Настройка сетевых интерфейсов и firewall
Работа с дисками, RAID и LVM
Подключение Docker/Kubernetes для управления контейнерами
Возможность администрировать несколько серверов через одну панель

📍 Почему это удобно?

Минимальная настройка: поставил и сразу работает.
Не требует сторонних агентов - все идет через systemd и встроенные механизмы.
Легко интегрируется с SELinux, firewalld и другими системными компонентами.

#linux #cockpit

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍153
🔫 Шпаргалка по systemctl status

Обычно мы проверяем состояние конкретной службы:


systemctl status mariadb


Но если запустить без указания сервиса:


systemctl status


то получим сводку по всей системе. Очень полезная штука

Что покажет systemctl status без аргументов:

State - общее состояние (например: running, degraded)
Failed - количество упавших юнитов
Uptime - время работы systemd
Версия systemd
Количество активных units
Дерево зависимостей сервисов в удобном виде


▪️ Как найти упавшие службы


systemctl list-units --failed


Посмотреть детали по конкретному юниту:


systemctl status <unit>
journalctl -u <unit>


Пример:


systemctl status


Вывод:


State: degraded
Failed: 1 units


Проверяем, что упало:


systemctl list-units --failed


например, systemd-modules-load.service.

Дальше копаемся в логах:


journalctl -u systemd-modules-load.service


▪️ Итоги

systemctl status → быстрый обзор состояния системы.
systemctl list-units --failed → список проблемных юнитов.
journalctl -u <unit> → подробные логи конкретной службы.

#linux #systemctl

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍122
🏃 PowerShell шпаргалки для linux админа

Админы, привыкшие к bash и linux, часто недооценивают powershell. А зря - это также неплохая оболочка, которая умеет не только выполнять команды, но и работать с объектами, сервисами и API windows. Ниже несколько полезных сценариев, которые пригодятся, если админите и linux, и windows.

▪️ Мониторинг процессов и портов. Аналог ps aux | grep и ss -tulpn:


# Процессы по имени
Get-Process | Where-Object { $_.ProcessName -like "*chrome*" }

# Открытые TCP-порты
Get-NetTCPConnection | Where-Object { $_.State -eq "Listen" }


▪️ Массовая работа с файлами. Аналог find + xargs:


# Найти все *.log файлы и удалить старше 7 дней
Get-ChildItem -Path "C:\Logs" -Filter *.log -Recurse |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } |
Remove-Item -Force


▪️ Проверка доступности хостов. Аналог ping + for:


$hosts = "8.8.8.8","1.1.1.1","networkadmin.ru"
foreach ($h in $hosts) {
Test-Connection -ComputerName $h -Count 2 -Quiet |
ForEach-Object { "$h -> $($_ -replace 'True','OK' -replace 'False','Fail')" }
}


▪️ Работа с сервисами. Аналог systemctl:


# Проверить статус службы
Get-Service -Name "Spooler"

# Перезапустить службу
Restart-Service -Name "Spooler"


▪️ Сетевые запросы и API. Аналог curl:


Invoke-RestMethod -Uri "https://api.ipify.org?format=json"


▪️ Сбор информации о системе. Аналог lshw и df -h:


# Системная информация
Get-ComputerInfo | Select-Object CsName, WindowsVersion, OsArchitecture

# Диски
Get-PSDrive -PSProvider FileSystem


#powershell #windows

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍2🔥2
⬆️ Netplan в ubuntu - альтернативный способ настройки сетей

Ubuntu давно перешла от классического /etc/network/interfaces к новому инструменту - netplan. Он появился начиная с ubuntu 17.10 и стал основным способом настройки сетевых интерфейсов.

❗️ Netplan - это уровень абстракции для сетевых конфигураций.

Использует YAML-файлы в /etc/netplan/.

Работает через рендереры:

systemd-networkd - для серверов и headless-систем.
NetworkManager - для десктопов.

Позволяет централизованно и декларативно описывать сеть.


▪️ Где лежат конфиги

Все настройки находятся в /etc/netplan/*.yaml.
По умолчанию обычно есть файл 01-netcfg.yaml или 50-cloud-init.yaml.

▪️ Примеры конфигураций
1️⃣ DHCP (получение адреса автоматически)


network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: true


2️⃣ Статический IP


network:
version: 2
renderer: networkd
ethernets:
ens33:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]


3️⃣ Несколько IP на одном интерфейсе


network:
version: 2
ethernets:
ens33:
addresses:
- 192.168.1.101/24
- 192.168.1.102/24


4️⃣ Bonding (для отказоустойчивости и агрегации)


network:
version: 2
bonds:
bond0:
interfaces: [ens33, ens34]
parameters:
mode: balance-rr
addresses:
- 192.168.1.200/24
gateway4: 192.168.1.1


5️⃣ VLAN


network:
version: 2
vlans:
vlan100:
id: 100
link: ens33
addresses: [192.168.100.10/24]


▪️ Применение настроек

После изменения файлов:


sudo netplan apply


Для теста перед применением можно использовать:


sudo netplan try


(дает 120 секунд на подтверждение, если сеть отвалилась - конфиг откатывается).

#linux #netplan

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍131
Степаныч, выкидывай этот верхний ящик. Мне лежать то как? 🐈

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20😁4
✉️ Отправка почты через curl

Многие для отправки писем из консоли ставят дополнительные утилиты вроде mailx или mutt. Но часто этого не нужно - все умеет curl.

▪️ Простейшая отправка письма


curl -v \
--url "smtp://smtp.networkadmin.ru:587" \
--mail-from "admin@networkadmin.ru" \
--mail-rcpt "user@domain.ru" \
--user "admin@networkadmin.ru:MySecurePass" \
--upload-file ~/letter.txt


Пример letter.txt:


From: "Admin" <admin@networkadmin.ru>
To: "User" <user@domain.ru>
Subject: Test mail from curl

Hello from curl!


Заголовки (From, Subject и др.) задаются прямо в файле, и можно указывать любые значения.

▪️ Как спрятать пароль

Хранить пароль в команде небезопасно. Вместо этого используем ~/.netrc:


machine smtp.networkadmin.ru login admin@networkadmin.ru password MySecurePass
machine smtp.another.ru login user@another.ru password StrongPass123


Теперь команда проще и безопаснее:


curl -v \
--url "smtp://smtp.networkadmin.ru:587" \
--mail-from "admin@networkadmin.ru" \
--mail-rcpt "user@domain.ru" \
--netrc \
--upload-file ~/letter.txt


▪️ Работа с шифрованием
📍 Требовать TLS:


curl --ssl-reqd ...


📍 Автоматически использовать TLS, если поддерживается:


curl --ssl ...


📍 Для SMTPS (порт 465) достаточно:


curl --url "smtps://smtp.networkadmin.ru" ...


▪️ Указание HELO/EHLO. Можно явно задать имя клиента:


curl --url "smtp://smtp.networkadmin.ru/myhost.domain.ru" ...


#SMTP #curl

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍151
Чтобы рабочие будни были веселее

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18👎2
📌 Проверка изменений системных конфигов в Debian/Ubuntu

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


apt install debsums


Что делает debsums

Утилита сравнивает MD5-суммы файлов из пакетов с эталонными значениями. Это помогает:

📍проверить целостность пакетов;
📍выявить модифицированные файлы;
📍понять, какие стандартные конфиги редактировались.


▪️ Пример: проверка конфигов. Особенно полезно искать изменения в конфигурационных файлах:


debsums --config --changed


Результат может быть таким:


/etc/ssh/ssh_config
/etc/default/ssh


То есть видно, что системные конфиги OpenSSH редактировались.

▪️ debsums проверяет:

файлы из базовой системы (/etc/default, /etc/pam.d, /etc/grub.d);
юниты systemd;
конфиги сервисов вроде nginx, mariadb, apache2.

#linux #audit

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
👩‍🎨 Шпаргалка по debsums

▪️ Основные ключи

Проверить все пакеты:


debsums


Показать только измененные файлы:


debsums --changed


Проверять только конфиги (/etc):


debsums --config


Только измененные конфиги:


debsums --config --changed


Показать отсутствующие файлы пакета:


debsums --missing


Игнорировать отсутствующие файлы (проверять только существующие):


debsums --ignore-missing


Проверка конкретного пакета


debsums nginx


▪️ Примеры

Найти какие конфиги менялись руками:


debsums --config --changed


Проверить целостность пакета OpenSSH:


debsums openssh-server


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

#linux #audit

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
Отключение лишних сервисов через systemd

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

1️⃣ Смотрим активные сервисы


systemctl list-unit-files --state=enabled


Команда покажет список всех юнитов, которые стартуют при загрузке. Также полезно посмотреть реально работающие процессы:


systemctl list-units --type=service


2️⃣ Отключение ненужного. Чтобы сервис не запускался при старте системы:


systemctl disable avahi-daemon.service


Чтобы остановить прямо сейчас:


systemctl stop avahi-daemon.service


Если сервис не нужен вообще - можно замаскировать, чтобы исключить случайный запуск:


systemctl mask avahi-daemon.service


(при этом запуск будет невозможен даже вручную, пока не сделаете unmask).

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

avahi-daemon.service - autodiscovery (не нужен на сервере)
bluetooth.service - если нет блютуза
ModemManager.service - если не используется мобильный модем
rpcbind.service - устаревший RPC, не нужен большинству

Далее уже зависит конкретно от Ваших потребностей и ситуации.

3️⃣ Проверка. После внесенных изменений убедитесь, что лишние службы не стартуют:


systemctl list-unit-files --state=enabled


#linux #systemd

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥21
🖥 Неочевидные возможности ethtool для работы с сетевыми интерфейсами

ethtool - это не только утилита для просмотра информации о сетевой карте. С ее помощью можно управлять сетевыми интерфейсами в linux: от настройки скорости линка до оптимизации производительности под конкретные задачи.

▪️ Проверка состояния интерфейса


ethtool eth0


Покажет: скорость, дуплекс, поддержку offload-функций, драйвер, версию прошивки и т.д.

▪️ Управление скоростью и режимом. Принудительная установка скорости 100 Мбит/с в full-duplex:


ethtool -s eth0 speed 100 duplex full autoneg off


Можно использовать для тестов или если автосогласование работает некорректно.

▪️ Offload-функции (ускорение или отладка)

Проверить поддержку:


ethtool -k eth0


Отключить контрольную сумму (будет полезно для отладки):


ethtool -K eth0 tx off rx off


Также можно управлять GRO, LRO, TSO и другими функциями.

▪️ Диагностика линка

Проверка кабеля и физики:


ethtool --test eth0
ethtool -t eth0 offline


А команда:


ethtool eth0 | grep detected


покажет, есть ли линк и его скорость.

▪️ Статистика и дропы пакетов


ethtool -S eth0


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

▪️ Управление очередями и ring buffer. Посмотреть текущие значения:


ethtool -g eth0


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


ethtool -G eth0 rx 4096 tx 4096


▪️ Блокировка Wake-on-LAN. Если не используете WoL — отключите:


ethtool -s eth0 wol d


#network #ethtool

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
Доставка пакетов

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁20👍4
♥️ Что такое blackhole в сети

Часто говорят, что при DDoS провайдер отправляет трафик в blackhole. Это не метафора - blackhole (или nullroute) - реальная запись в таблице маршрутизации, которая заставляет ядро молчаливо отбрасывать пакеты к указанному адресу/сети.

▪️ Создание черной дыры для одного IP:


ip route add blackhole 10.20.30.40
ip route show | grep blackhole


Теперь все пакеты к 10.20.30.40 будут просто выброшены, без попытки доставить и без ICMP-ответа.

Для сети:


ip route add blackhole 203.0.113.0/24


Для IPv6:


ip -6 route add blackhole 2001:db8::/32


▪️ Удаление:


ip route del blackhole 203.0.113.0/24


▪️ Отличия blackhole от unreachable и от prohibit

blackhole - молча дропает пакеты (никаких ICMP).
prohibit - отсылает ICMP administratively prohibited (полезно, если нужно, чтобы источник получил уведомление).
unreachable - возвращает host unreachable.

Команды выглядят похоже:


ip route add prohibit 10.0.0.0/8
ip route add unreachable 10.0.0.0/8


Выбор зависит от сценария: для имитации «исчезновения» хоста - blackhole, чтобы сигнализировать отправителю - prohibit/unreachable.

▪️ Где это реально используют

Провайдеры - при крупном DDoS обычно ставят null-route на адрес жертвы на своей инфраструктуре. Это позволяет дропать трафик до границ сети провайдера, защищая инфраструктуру дальше по пути.

#network #blackhole

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16