Серверная Админа | Компьютерные сети
27.1K subscribers
1.13K photos
6 videos
7 files
1.19K links
Я действующий сетевой инженер, расскажу вам о сетях в доступной форме.

Реклама - @bashmak_media
Мы на бирже: https://telega.in/c/school_network

РКН: https://vk.cc/cHYqt5
Download Telegram
👋 Привет, сетевой друг!

Сегодня поговорим об инструменте
wsock-trace

🟣Что это: wsock-trace - это tracing-библиотека для Winsock. Она встраивается между приложением и ws2_32.dll и логирует все сетевые вызовы: socket(), connect(), send(), recv(), select(), AcceptEx() и т.д. По сути, это strace, но для Windows-сокетов.

🟣Чем реально полезен: вы видите не просто факт сетевого вызова, а кто именно его вызвал - файл, строку кода, имя функции, смещение в бинаре. Плюс точные таймстемпы, параметры вызовов и коды ошибок Winsock. Отлично заходит, когда приложение «что-то делает с сетью», но Wireshark не даёт ответа почему.

🟣Как работает: приложение линкуется не с ws2_32.lib, а с wsock_trace.lib. DLL перехватывает вызовы Winsock, логирует вход/выход функций и через PDB-символы восстанавливает стек вызовов. В итоге видно, какая строка кода инициировала сетевую активность и с каким результатом.

🟣Фишки в реальной жизни: цветной вывод, миллисекундные таймстемпы через QueryPerformanceCounter, трейс Microsoft-специфичных функций (ConnectEx, AcceptEx), GeoIP/ASN информация по IP, детект попаданий в Spamhaus DROP-листы, логирование событий Windows Filtering Platform и даже искусственное замедление send/recv для тестов гонок и таймингов.

🟣Быстрый старт: Собирается под MSVC / clang-cl:

cd src
nmake -f makefile.vc6


Дальше линкуете приложение с нужной библиотекой:

wsock_trace-x64.lib   // для x64
wsock_trace-x86.lib // для x86


И запускаете бинарь как обычно, все Winsock-вызовы сразу начинают логироваться.

Серверная Админа | #Инструмент
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94👾1
This media is not supported in your browser
VIEW IN TELEGRAM
👋 Привет, сетевой друг!

Сегодня разберём ещё 5 полезных фишек для Cisco IOS, которые реально экономят время и нервы.

🟣Условная отладка (Conditional Debugging): Вместо того чтобы заливать консоль логами, включайте debug только для конкретного трафика или интерфейса. Экономит CPU и нервы.

debug condition interface Gi1/0/5 debug condition mac 0011.2233.4455 debug ip packet detail no debug all (не забудьте выключить)


🟣Object Tracking + IP SLA для надёжного failover: Настраивайте мониторинг достижимости и автоматически меняйте маршрут или интерфейс при падении.

ip sla 1 icmp-echo 8.8.8.8 source-interface Gi0/0 frequency 5 track 1 ip sla 1 reachability ip route 0.0.0.0 0.0.0.0 10.0.0.1 track 1 ip route 0.0.0.0 0.0.0.0 10.0.0.2 10


🟣Embedded Packet Capture (EPC): Захватывайте пакеты прямо на устройстве без внешнего SPAN - удобно на роутерах, где нет свободных портов.

monitor capture MYCAP interface Gi1/0/1 both match any monitor capture MYCAP start monitor capture MYCAP stop show monitor capture MYCAP buffer brief export: copy monitor capture MYCAP tftp://10.0.0.100/capture.pcap


🟣EEM-скрипты для автоматизации реакции: Пусть устройство само реагирует на события - от перезагрузки порта при ошибках до отправки уведомлений.

event manager applet CLEAR_ERR event syslog pattern “INTERFACE.*UPDOWN.*down” action 1.0 cli command “enable” action 2.0 cli command “conf t” action 3.0 cli command “interface $_syslog_msg” action 4.0 cli command “shutdown” action 5.0 cli command “no shutdown”


🟣NetFlow + Flexible - NetFlow для детального анализа трафика: Стандартный NetFlow уже устарел - используйте Flexible для кастомных ключей и коллекторов.

flow record MYRECORD match ipv4 source address match ipv4 destination address match transport tcp destination-port collect counter bytes long flow exporter MYEXP destination 10.0.0.100 flow monitor MYMON exporter MYEXP record MYRECORD interface Gi1/0/1 ip flow monitor MYMON input


Серверная Админа | #Cisco
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🥴84
👋 Привет, сетевой друг!

Сегодня разберём, в чём разница между Segment Routing и MPLS.

🟣MPLS - проверенная классика. Работает на основе меток (label stacking): ingress-роутер ставит стек меток по заранее рассчитанному LSP (Label Switched Path). Интермедиатные LSR просто свопают верхнюю метку и форвардят по таблице LFIB. Контрольная плоскость - LDP/RSVP-TE. RSVP-TE даёт явные пути, резервирование bandwidth и FRR.

Примеры команд:

show mpls ldp neighbor
show mpls traffic-eng tunnels
interface Gi0/1
mpls ip
mpls traffic-eng tunnels


🟣Segment Routing - современная эволюция, упрощает всё до минимума. Источник (ingress) сам кодирует весь путь в пакете как список сегментов (Segment List) в SR-MPLS это стек меток, в SRv6 - IPv6 Extension Header. Core stateless: промежуточные роутеры просто следуют инструкциям в пакете, без per-flow состояния.

Примеры:

show segment-routing mpls
show isis segment-routing
segment-routing mpls
router isis 1
segment-routing mpls
segment-routing traffic-eng policy LOW-DELAY
color 10 endpoint 10.255.255.255
candidate-paths
preference 100
explicit segment-list PATH1
index 10 mpls label 16010


🟣Короче говоря, MPLS - мощный, но тяжёлый инструмент с состоянием везде и сложным сигналингом. SR - лёгкий, масштабируемый, stateless core, полный контроль на headend, проще автоматизация и миграция. Сейчас многие провайдеры и крупные DC переходят на SR-MPLS/SRv6, оставляя MPLS для легаси или сложных сценариев.

Серверная Админа | #SR #MPLS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥4👾21
This media is not supported in your browser
VIEW IN TELEGRAM
👋 Привет, сетевой друг!

Сегодня расскажу про 5 команд в Linux, которые могут превратить твой сервер в кирпич.

🟣:(){ :|:& };: Классическая fork-bomb на уровне shell. Процессы начинают порождать сами себя, быстро заканчиваются PID и системные лимиты. Сервер перестаёт отвечать, новые подключения невозможны, лечение обычно одно - жёсткая перезагрузка.

🟣dd if=/dev/random of=/dev/sda: Пишет поток случайных данных напрямую на диск. Данные уничтожаются полностью, а параллельно система получает экстремальную нагрузку на I/O, из-за чего может «зависнуть» ещё до завершения команды.

🟣mount /dev/sda1 /var: Монтирование поверх системного каталога скрывает его содержимое. Для /var это означает мгновенные сбои логов, пакетного менеджера и сервисов, которые ожидают увидеть свои файлы, но получают пустую директорию.

🟣iptables -F: Очищает все правила фильтрации. На удалённом сервере это часто либо потеря SSH-доступа, либо внезапное открытие всех портов наружу - в зависимости от того, как была построена политика.

🟣echo b > /proc/sysrq-trigger: Немедленная перезагрузка ядра без синхронизации файловых систем. Инструмент аварийный, но при ошибочном применении почти гарантирует повреждение данных.

Серверная Админа | #network
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26😱105
Сам себе VoLTE. Запускаем сотовую сеть 4G LTE с поддержкой звонков и SMS

Автор берёт обычные звонки и SMS и показывает, что за ними стоит вполне понятная инженерная система, с которой можно разобраться самому. Это история про то, как из базовой 4G-сети с интернетом дорасти до полноценного LTE с VoLTE: голосом, сообщениями и всей логикой переключений, как у настоящих операторов. По ходу дела становится понятно, что современные звонки это вообще не “голосовой канал” в старом смысле, а IP-сервис с IMS, SIP и контейнерами. И всё это можно собрать у себя дома из SDR-железки, Docker и открытого софта.

Серверная Админа | #Статья
1👏26🔥5👍41👾1
👋 Привет, сетевой друг!

Сегодня продолжим обсуждать инструмент
wsock-trace. Разберем, как использовать инструмент на деле.

🟣Подключаем библиотеку правильно: Вместо стандартной ws2_32.lib приложение нужно линковать с wsock-trace:

wsock_trace-x64.lib   // для x64
wsock_trace-x86.lib // для x86


Сборка выполняется из каталога src:

nmake -f makefile.vc6


Критично, чтобы бинарь собирался с debug-символами:

cl /Zi /Zo source.c wsock_trace-x64.lib
link /debug


Без PDB стек вызовов и строки кода восстановлены не будут.

🟣Смотрим инициализацию сетевого стека: Первое, что видно в трейсе - реальный момент старта Winsock:

WSAStartup(MAKEWORD(2,2), &wsa);


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

🟣Анализируем создание и настройку сокетов. Создание сокета:

socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);


Перевод в неблокирующий режим:

ioctlsocket(sock, FIONBIO, &mode);


Установка опций:

setsockopt(sock, SOL_SOCKET, SO_LINGER, &linger, sizeof(linger));
setsockopt(sock, IPPROTO_IP, IP_TTL, &ttl, sizeof(ttl));


wsock-trace сразу показывает неверные аргументы, которые в обычных логах не видны.

🟣Диагностика зависших connect и select. Установка соединения:

connect(sock, (struct sockaddr*)&addr, sizeof(addr));


Работа с ожиданием событий:

select(nfds, &readfds, &writefds, NULL, &timeout);
FD_ISSET(sock, &readfds);


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

🟣Передача данных и тайминги. Отправка и приём:

send(sock, buf, len, 0);
recv(sock, buf, len, 0);
recvfrom(sock, buf, len, 0, &from, &fromlen);


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

При необходимости можно искусственно замедлить сеть через конфиг:

recv_delay = 50
send_delay = 20


Серверная Админа | #Инструмент
Please open Telegram to view this post
VIEW IN TELEGRAM
👏10
От отключения хостером до полной стабильности
Как CURATOR защитил 3DNews и ServerNews от DDoS и ускорил доставку контента


Атака почти 3000 Мбит/с — и хостер 3DNews «падает» меньше чем за полчаса, просто отключив сеть.
Для медиа это катастрофа: простой, потеря трафика и удар по репутации.

Команда CURATOR подключилась в самый критичный момент и быстро вернула сайт к жизни. Подробнее о том, как это было сделано - в карточках.

Этот и другие реальные кейсы, а также экспертная информация в области кибербезопасности — в канале CURATOR.
4🤡2🤣21😁1
This media is not supported in your browser
VIEW IN TELEGRAM
👋 Привет, сетевой друг!

Расскажу еще о 3 способах прокачать защиту Mikrotik.

🟣Контроль аномалий через connection-limit + address-list (тихий брут и паразитные клиенты): Не весь вред выглядит как флуд. Часто это «тихий» перебор соединений - VPN, SSH, API, SIP. Ограничиваем число одновременных сессий и сразу складываем источник в список.

/ip firewall filter
add chain=input protocol=tcp dst-port=22,8291 \
connection-limit=3,32 \
action=add-src-to-address-list \
address-list=conn_abusers address-list-timeout=1h \
comment="Too many parallel connections"

add chain=input src-address-list=conn_abusers action=drop \
comment="Drop connection abusers"


🟣Изоляция сервисов через VRF + firewall (management plane protection): Даже если сервисы защищены паролями, лучше вообще не показывать их миру. Выносим управление в отдельный VRF и физически изолируем plane управления от пользовательского трафика.

/ip vrf
add name=mgmt_vrf interfaces=ether1-mgmt

/ip firewall filter
add chain=input in-interface=ether1-mgmt action=accept comment="Mgmt only"
add chain=input action=drop comment="Drop all other input"


В итоге Winbox, SSH, API существуют в отдельной логической реальности. С WAN до них просто нет маршрута.

🟣L7-профили не для блокировки, а для триггеров: Layer7 часто ругают за нагрузку, но его можно использовать точечно, как детектор, а не фильтр. Например, ловим подозрочные HTTP-сигнатуры и реагируем адрес-листом.

/ip firewall layer7-protocol
add name=bad_http regexp="(sqlmap|nikto|acunetix)"

ip firewall filter
add chain=forward layer7-protocol=bad_http \
action=add-src-to-address-list \
address-list=l7_suspects address-list-timeout=1d \
comment="Detect scanners via L7"

add chain=forward src-address-list=l7_suspects action=drop \
comment="Drop L7 scanners"


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

🟣И ловите бонус: контроль самой защиты. Любая защита должна быть наблюдаемой. Минимум - логирование триггеров, а максимум - отдельный syslog.

/system logging
add topics=firewall action=memory
add topics=firewall action=remote


Серверная Админа | #Mikrotik
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3