Cisco Secure Firewall Management Center Software Authentication Bypass Vulnerability
Понятно, что не стоит выставлять в Интернет то, чего там быть не должно, но иметь CVSS Score: 10.0 все равно неприятно. Кому актуально, наверно стоит обновиться 🙂
🎤 Будни сетевика 😊
Понятно, что не стоит выставлять в Интернет то, чего там быть не должно, но иметь CVSS Score: 10.0 все равно неприятно. Кому актуально, наверно стоит обновиться 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯3❤1
Как мы отправили сисадмина поставить сервер в Антарктиде
Прочитал статью про запуск сервера в Антарктиде, в Беллинсгаузене. На первой работе у меня было много командировок и в удаленных регионах вот прям всегда нужно было выдумывать нестандартные решения как при монтаже, так и при организации связности и пока читал статью завидовал белой завистью, последние 10 лет командировки у меня либо в Москву, либо на Linkmeetup(если он не в Москве), но это мой выбор, не жалуюсь (семья и все такое), просто ностальгия. Немного об этом писал тут.
На серваке можно было взять VPS, но в комментах пишут, что временно отключили, видимо кто-то с кем-то не договорился. На сайте в списке Дата Центров Беллинсгаузен еще висит (неактивен):
Прочитал статью про запуск сервера в Антарктиде, в Беллинсгаузене. На первой работе у меня было много командировок и в удаленных регионах вот прям всегда нужно было выдумывать нестандартные решения как при монтаже, так и при организации связности и пока читал статью завидовал белой завистью, последние 10 лет командировки у меня либо в Москву, либо на Linkmeetup(если он не в Москве), но это мой выбор, не жалуюсь (семья и все такое), просто ностальгия. Немного об этом писал тут.
На серваке можно было взять VPS, но в комментах пишут, что временно отключили, видимо кто-то с кем-то не договорился. На сайте в списке Дата Центров Беллинсгаузен еще висит (неактивен):
Следующий статус‑апдейт опубликуем до 13.03.2026, 14:00 МСК
🔥8❤3
Сети в Kubernetes: руководство для сетевого инженера
Статья не даст полного понимания как работают сети в Kubernetes, скорее это справочник по основным подходам.
Интересно, как местами автор пытается провести параллели между сущностями из мира Kubernetes и сетями, например:
P.S. Скорее всего, статья была отформатирована с помощью нейронки, но тем не менее, мне понравилась.
🎤 Будни сетевика 😊
Статья не даст полного понимания как работают сети в Kubernetes, скорее это справочник по основным подходам.
Интересно, как местами автор пытается провести параллели между сущностями из мира Kubernetes и сетями, например:
Service Mesh — это как развертывание IPS/IDS на каждом сегменте сети. Да, это дает полную видимость и контроль. Но это стоит ресурсов, и если у вас небольшая сеть — overhead не оправдан.
P.S. Скорее всего, статья была отформатирована с помощью нейронки, но тем не менее, мне понравилась.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14🤝1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍3🤝1
Network Performance in the Linux Kernel, Getting the most out of the Hardware
Доклад и презентация от Bootlin.
Доклад про то, как организована высокопроизводительная работа с сетью в ядре Linux. Автор объясняет, как пакет проходит через систему (от патчкорда до приложения) и какие есть механизмы, чтобы эффективно использовать многоядерные процессоры.
▎Что отметил (без какой-то структуры)
Верхнеуровнего про путь пакета
Пакет попадает в NIC, далее MAC-контроллер с помощью DMA записывает его в оперативную память, не нагружая CPU. После записи данных NIC посылает сигнал (IRQ), чтобы сообщить CPU о новом пакете. Есть NAPI - современный механизм, который отключает прерывания на время обработки пачки пакетов. Вместо одного прерывания на пакет, ядро обрабатывает их пачками, что снижает нагрузку на CPU.
Описываются механизмы
🟢 RSS (Receive Side Scaling): Аппаратный механизм. Сетевая карта сама хэширует заголовки пакета (5-tuple) и на основе хэша раскладывает их по разным очередям. Каждая очередь привязана к своему ядру CPU.
🟢 RPS (Receive Packet Steering): То же, что и RSS, но программно в ядре. Полезно, если у сетевой карты мало очередей.
🟢 RFS (Receive Flow Steering): Улучшение RPS. Следит за тем, на каком ядре работает приложение и направляет пакеты именно на это ядро для попадания в кэш.
🟢 XPS (Transmit Packet Steering): То же самое, но для отправки пакетов, чтобы очередь на отправку была привязана к нужному ядру.
🟢 Механизмы Offloading: Чтобы ядро делало меньше работы, часть задач перекладывается на сетевую карту:
- Checksum: Проверка целостности заголовков сетевой картой на лету, ядро оставляет поля пустыми
- Filtering: Аппаратная фильтрация до того, как они попадут в ядро. Приводятся примеры MAC и VLAN filtering.
🟢 Data insertion and segmentation: Сетевая карта может добавлять VLAN-теги на лету
🟢 TSO (TCP Segmentation Offload): Сетевая карта сама нарезает большие куски данных на мелкие TCP-сегменты. Хорошее описание как это работает тут.
🟢 XDP (eXpress Data Path): Самый быстрый путь обработки. BPF выполняется прямо в драйвере сетевой карты, как только пакет появился в памяти. Это позволяет дропать или перенаправлять пакеты с большой скоростью, до того как ядро начнет их полноценно обрабатывать.
🎤 Будни сетевика 😊
Доклад и презентация от Bootlin.
Доклад про то, как организована высокопроизводительная работа с сетью в ядре Linux. Автор объясняет, как пакет проходит через систему (от патчкорда до приложения) и какие есть механизмы, чтобы эффективно использовать многоядерные процессоры.
▎Что отметил (без какой-то структуры)
Верхнеуровнего про путь пакета
Пакет попадает в NIC, далее MAC-контроллер с помощью DMA записывает его в оперативную память, не нагружая CPU. После записи данных NIC посылает сигнал (IRQ), чтобы сообщить CPU о новом пакете. Есть NAPI - современный механизм, который отключает прерывания на время обработки пачки пакетов. Вместо одного прерывания на пакет, ядро обрабатывает их пачками, что снижает нагрузку на CPU.
Описываются механизмы
- Checksum: Проверка целостности заголовков сетевой картой на лету, ядро оставляет поля пустыми
- Filtering: Аппаратная фильтрация до того, как они попадут в ядро. Приводятся примеры MAC и VLAN filtering.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤5🔥2 2
Вчера с коллегами были на 4-м митапе Like a Bar, организатором которого является Сергей Бочарников.
Благодарности организатору и участникам
Во-первых, спасибо что в СПб - редко что-то у нас проводят. Во-вторых, классная атмосфера - 50-60 инженеров на одной волне, которые что-то обсуждают, делятся рабочими историями и проблемами. Были напитки, пицца и даже мерч с Питерской тематикой - чувствуется большая работа по подготовке. Встретил своих подписчиков, оказывается это реальные люди, которым даже бывает полезно в работе то, чем я тут делюсь. Значит будем продолжать.
▎Доклады
Как проводить ПМИ сетевых железок.
В таком тестировании я никогда не участвовал, было интересно послушать про подходы и инструменты.
Разработка системы сетевой автоматизации Autonet в MWS.
Полезно, взял несколько идей на заметку. Каждый доклад про автоматизацию наводит на мысли, что наш подход самый простой, надежный, отказоустойчивый и «дешевый», но тут главное не забывать, что автоматизация должна решать конкретные задачи, а не быть самоцелью.
Отказоустойчивый Netbox.
В принципе, готовая архитектура для прода, можно брать и делать также, кому актуально.
Все презентации должны опубликовать на канале у Сереги - @like_a_bus_channel
🎤 Будни сетевика 😊
Благодарности организатору и участникам
Во-первых, спасибо что в СПб - редко что-то у нас проводят. Во-вторых, классная атмосфера - 50-60 инженеров на одной волне, которые что-то обсуждают, делятся рабочими историями и проблемами. Были напитки, пицца и даже мерч с Питерской тематикой - чувствуется большая работа по подготовке. Встретил своих подписчиков, оказывается это реальные люди, которым даже бывает полезно в работе то, чем я тут делюсь. Значит будем продолжать.
▎Доклады
Как проводить ПМИ сетевых железок.
В таком тестировании я никогда не участвовал, было интересно послушать про подходы и инструменты.
Разработка системы сетевой автоматизации Autonet в MWS.
Полезно, взял несколько идей на заметку. Каждый доклад про автоматизацию наводит на мысли, что наш подход самый простой, надежный, отказоустойчивый и «дешевый», но тут главное не забывать, что автоматизация должна решать конкретные задачи, а не быть самоцелью.
Отказоустойчивый Netbox.
В принципе, готовая архитектура для прода, можно брать и делать также, кому актуально.
Все презентации должны опубликовать на канале у Сереги - @like_a_bus_channel
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍6❤2
Сегодня в один из наших ЦОД в СПб (Linxdatacenter, ул. Репищева, 20), для сотрудников и их детей была организована небольшая экскурсия по основным зонам ЦОД, доступным для посещения.
Кратко рассказали/показали:
- Комнату пожаротушения
- Аккумуляторы
- Часть датчиков дежурных по ЦОД, их инструменты
- Кроссовую
- Комнату подготовки оборудования
- Наши стойки, которые мы арендуем в ЦОД
Я добавил пару слов про свои любимые коммутаторы/маршрутизаторы.
Я туда поехал конечно только ради сына, потому что до Okko работал в Linx’e почти два года, да и потом еще ездил несколько раз в неделю, когда уже работал в Okko, поэтому до сих пор помню почти все номера наших стоек и где они находятся. А вот младшему специалисту понравилось, на обратном пути задавал много вопросов из серии чем сервер отличается от маршрутизатора, можно ли поставить дома сервер без охлаждения и сколько он проработает и тд.
P.S. Хорошо, что не спросил чем маршрутизатор отличается от L3-коммутатора
🎤 Будни сетевика 😊
Кратко рассказали/показали:
- Комнату пожаротушения
- Аккумуляторы
- Часть датчиков дежурных по ЦОД, их инструменты
- Кроссовую
- Комнату подготовки оборудования
- Наши стойки, которые мы арендуем в ЦОД
Я добавил пару слов про свои любимые коммутаторы/маршрутизаторы.
Я туда поехал конечно только ради сына, потому что до Okko работал в Linx’e почти два года, да и потом еще ездил несколько раз в неделю, когда уже работал в Okko, поэтому до сих пор помню почти все номера наших стоек и где они находятся. А вот младшему специалисту понравилось, на обратном пути задавал много вопросов из серии чем сервер отличается от маршрутизатора, можно ли поставить дома сервер без охлаждения и сколько он проработает и тд.
P.S. Хорошо, что не спросил чем маршрутизатор отличается от L3-коммутатора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥30👍9❤3
Peering.pdf
1.7 MB
Попался набор файликов на сетевую тематику от некоего Hugo Pena – IP Consulting Engineer.
🔍 BGP Segment Routing Using the Prefix SID Attribute
🔍 DHCP Server Failover in 7750 SR
🔍 BGP Link State
🔍 Network Telemetry
🔍 Quality of Service
🔍 Border Gateway Protocol
🔍 BGP FlowSpec
🔍 Peering – The Game of Relationships
Часть из них составлена по документации от Nokia, но есть и на общие темы. Может будет полезно.
🎤 Будни сетевика 😊
Часть из них составлена по документации от Nokia, но есть и на общие темы. Может будет полезно.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥2
Задача: настроить шилдинг в CDN без выделенных железных серверов.
Представим, что у вас есть CDN, но нет необходимости/желания/денег ставить выделенные железные серверы под шилдинг(shielding). Шилдинг - это дополнительный уровень кэширования для защиты origin(источник контента), чтобы запросы от edge к origin шли через промежуточные серверы. Он необходим для снижения нагрузки на origin, так как edge-нод может быть очень много и если каждая будет обращаться к origin напрямую, то он начнет погибать под нагрузкой. С шилдингом на origin всегда будет обращаться только выделенная группа серверов.
Архитектура
Есть 3 раздающие edge-ноды и 2 origin-сервера:
🔍 edge-ноды: edge1, edge2, edge3
🔍 софт: Nginx
🔍 origin: origin1, origin2
Будет использоваться директива split_clients на каждой edge-ноде. Она делит запросы на три равные части (по 33%):
🔍 33% - остаются на текущей edge-ноде и уходят напрямую в origin
🔍 33% - уходят на первую соседнюю edge-ноду
🔍 33% - уходят на вторую соседнюю edge-ноду
При этом split_clients гарантирует идемпотентность(красиво звучит): один и тот же $request_uri всегда попадает в одну и ту же группу. Благодаря этому 99% запросов к кластеру стабильно распределяются по всем трём edge-нодам и далее на origin без «скачков».
Пример конфигурации для архитектуры из 3-х edge-нод.
Ввиду ограничения на количество символов в одном посте, конфигурация упрощена до минимально необходимой, чтобы показать логику работы.
Базовый апстрим для origin на каждой edge-ноду:
Апстримы для шилдирования на соседние edge-ноды:
Итого, каждый апстрим смотрит на соседа по кластеру и бекапом на origin.
Далее настраиваем распределение трафика через split_clients на каждой edge-ноде.
edge1
edge2
edge3
Как это работает.
$request_uri - ключ, на основе которого происходит распределение/хэширование.
$upstream_backend - переменная, в которую будет сохранён выбранный upstream.
То есть для примера 33% origin - это если хэш попадает в первые 33% диапазона, то переменной $upstream_backend присваивается значение origin.
* - значение по умолчанию для оставшихся случаев (1%).
Далее в location эта переменная используется для указания апстрима, например:
То есть в зависимости от того, в какой диапазон попал хэш $request_uri$, upstream_backend может принимать значения:
🔍 origin
🔍 edge1-shield
🔍 edge2-shield
🔍 edge3-shield
Это актуально, когда 50-100 edge-нод начнут идти за одним и тем же контентом на origin и ему станет тяжело, как минимум можно быстро упереться в емкость сетевых карт.
С использованием split_clients (один uri):
Работает только на уровне одного кластера edge и если их много (в разных городах), то каждый все равно будет обращаться на origin, но уже не каждая edge-нода!
Мы это использовали для определенного типа трафика, при котором origin-серверов было минимальное количество, была опасность их «положить».
🎤 Будни сетевика 😊 #Задача
Представим, что у вас есть CDN, но нет необходимости/желания/денег ставить выделенные железные серверы под шилдинг(shielding). Шилдинг - это дополнительный уровень кэширования для защиты origin(источник контента), чтобы запросы от edge к origin шли через промежуточные серверы. Он необходим для снижения нагрузки на origin, так как edge-нод может быть очень много и если каждая будет обращаться к origin напрямую, то он начнет погибать под нагрузкой. С шилдингом на origin всегда будет обращаться только выделенная группа серверов.
Архитектура
Есть 3 раздающие edge-ноды и 2 origin-сервера:
Будет использоваться директива split_clients на каждой edge-ноде. Она делит запросы на три равные части (по 33%):
При этом split_clients гарантирует идемпотентность(красиво звучит): один и тот же $request_uri всегда попадает в одну и ту же группу. Благодаря этому 99% запросов к кластеру стабильно распределяются по всем трём edge-нодам и далее на origin без «скачков».
Пример конфигурации для архитектуры из 3-х edge-нод.
Ввиду ограничения на количество символов в одном посте, конфигурация упрощена до минимально необходимой, чтобы показать логику работы.
Базовый апстрим для origin на каждой edge-ноду:
upstream origin{
server origin1;
server origin2;
}
Апстримы для шилдирования на соседние edge-ноды:
upstream edge1-shield {
server edge1;
server origin1 backup;
server origin2 backup;
}
upstream edge2-shield {
server edge2;
server origin1 backup;
server origin2 backup;
}
upstream edge3-shield {
server edge3;
server origin1 backup;
server origin2 backup;
}
Итого, каждый апстрим смотрит на соседа по кластеру и бекапом на origin.
Далее настраиваем распределение трафика через split_clients на каждой edge-ноде.
edge1
split_clients $request_uri $upstream_backend {
33% origin;
33% edge2-shield;
33% edge3-shield;
* origin;
}
edge2
split_clients $request_uri $upstream_backend {
33% edge1-shield;
33% origin;
33% edge3-shield;
* origin;
}
edge3
split_clients $request_uri $upstream_backend {
33% edge1-shield;
33% edge2-shield;
33% origin;
* origin;
}
Как это работает.
$request_uri - ключ, на основе которого происходит распределение/хэширование.
$upstream_backend - переменная, в которую будет сохранён выбранный upstream.
То есть для примера 33% origin - это если хэш попадает в первые 33% диапазона, то переменной $upstream_backend присваивается значение origin.
* - значение по умолчанию для оставшихся случаев (1%).
Далее в location эта переменная используется для указания апстрима, например:
location / {
proxy_pass http://$upstream_backend;
}
То есть в зависимости от того, в какой диапазон попал хэш $request_uri$, upstream_backend может принимать значения:
Это актуально, когда 50-100 edge-нод начнут идти за одним и тем же контентом на origin и ему станет тяжело, как минимум можно быстро упереться в емкость сетевых карт.
С использованием split_clients (один uri):
Клиент1 -> edge1 -> edge2 -> origin (edge2 кэширует)
Клиент2 -> edge1 -> edge2 -> из кэша edge2 (без origin!)
Клиент3 -> edge2 -> из кэша edge2 (без origin!)
Клиент4 -> edge2 -> из кэша edge2 (без origin!)
Клиент5 -> edge3 -> edge2 -> из кэша edge2 (без origin!)
Клиент6 -> edge3 -> edge2 -> из кэша edge2 (без origin!)
Работает только на уровне одного кластера edge и если их много (в разных городах), то каждый все равно будет обращаться на origin, но уже не каждая edge-нода!
Мы это использовали для определенного типа трафика, при котором origin-серверов было минимальное количество, была опасность их «положить».
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤1🔥1
RustBGP - An API-first BGP daemon in Rust, built for programmable route-server and control-plane use cases
https://github.com/lance0/rustbgpd
https://github.com/lance0/rustbgpd
GitHub
GitHub - lance0/rustbgpd: An API-first BGP daemon in Rust for programmable route-server and control-plane use cases
An API-first BGP daemon in Rust for programmable route-server and control-plane use cases - lance0/rustbgpd
1👍7