🔥 Сломали голову над медленными запросами?
Учитесь оптимизировать Greenplum у тех, кто его создаёт.
Давайте разберём одну из самых частых и болезненных проблем в распределённых базах данных: запросы внезапно начинают выполняться часами при росте данных. Частая причина — неправильная дистрибуция (распределение) таблиц в Greenplum, из-за которой система тратит львиную долю времени не на вычисления, а на пересылку данных между узлами.
Суть проблемы:
Допустим, у вас две таблицы — sales и products. Они распределены по разным ключам или случайно.
➡️ При join по product_id системе придётся "гонять" почти все строки между серверами (reshuffle). Это и есть главный тормоз.
Как это выглядит в коде (проблемный вариант):
💡 Решение — контроль дистрибуции от создателей технологии:
Эксперты Yandex Cloud покажут, как проектировать схему с самого начала, чтобы соединения работали локально.
Результат: Данные с одинаковым product_id лежат на одном сегменте. Join выполняется локально, ускоряясь в десятки раз.
🎯 Где вы научитесь такому подходу? Только на курсе, разработанном и проводимом командой Yandex Cloud.
Это не просто теория. Это официальная программа от Yandex Cloud, где:
🔹 Все практические работы выполняются на реальных инструментах Yandex Cloud — в сервисе Yandex MPP Analytics for PostgreSQL.
🔹Вы учитесь на кейсах и best practices, которые используют разработчики этой облачной платформы.
🔹Формат этой когорты — гибридный для максимального результата:
🔹Гибкий график: Теорию и задачи проходите в удобное время.
🔹Синхронные вебинары с экспертом Yandex Cloud: Онлайн-встречи привязаны к программе, чтобы разбирать сложные моменты и давать обратную связь. Держите ритм, чтобы не отстать!
Вебинары проведёт Никита Целищев — эксперт по Big Data из команды Yandex Cloud, который ежедневно работает с сервисом Yandex MPP Analytics и знает все тонкости оптимизации изнутри.
🚀 Хотите не просто использовать Greenplum, а понимать его архитектуру и выжимать максимум производительности?
Записывайтесь на курс "Greenplum в Yandex MPP Analytics for PostgreSQL" от создателей и главных экспертов по облачной платформе.
👉 Подробнее о курсе и программе: https://rebrainme.com/courses/greenplum
💳 Оплатить по специальной цене:55000 38 500 руб. (до 22 января включительно)
Учитесь оптимизировать Greenplum у тех, кто его создаёт.
Давайте разберём одну из самых частых и болезненных проблем в распределённых базах данных: запросы внезапно начинают выполняться часами при росте данных. Частая причина — неправильная дистрибуция (распределение) таблиц в Greenplum, из-за которой система тратит львиную долю времени не на вычисления, а на пересылку данных между узлами.
Суть проблемы:
Допустим, у вас две таблицы — sales и products. Они распределены по разным ключам или случайно.
Сегмент 1: sales {A, C, E}, products {A, D}
Сегмент 2: sales {B, D, F}, products {B, C}
➡️ При join по product_id системе придётся "гонять" почти все строки между серверами (reshuffle). Это и есть главный тормоз.
Как это выглядит в коде (проблемный вариант):
-- Таблицы созданы без общей стратегии дистрибуции
CREATE TABLE sales (sale_id bigint, product_id int, amount decimal)
DISTRIBUTED RANDOMLY; -- или DISTRIBUTED BY (sale_id)
CREATE TABLE products (product_id int, name text)
DISTRIBUTED BY (product_id);
Эксперты Yandex Cloud покажут, как проектировать схему с самого начала, чтобы соединения работали локально.
-- Правильная дистрибуция по общему ключу соединения
CREATE TABLE sales_opt (sale_id bigint, product_id int, amount decimal)
DISTRIBUTED BY (product_id); -- Теперь product_id совпадает с products!
CREATE TABLE products (product_id int, name text)
DISTRIBUTED BY (product_id);
Результат: Данные с одинаковым product_id лежат на одном сегменте. Join выполняется локально, ускоряясь в десятки раз.
🎯 Где вы научитесь такому подходу? Только на курсе, разработанном и проводимом командой Yandex Cloud.
Это не просто теория. Это официальная программа от Yandex Cloud, где:
🔹 Все практические работы выполняются на реальных инструментах Yandex Cloud — в сервисе Yandex MPP Analytics for PostgreSQL.
🔹Вы учитесь на кейсах и best practices, которые используют разработчики этой облачной платформы.
🔹Формат этой когорты — гибридный для максимального результата:
🔹Гибкий график: Теорию и задачи проходите в удобное время.
🔹Синхронные вебинары с экспертом Yandex Cloud: Онлайн-встречи привязаны к программе, чтобы разбирать сложные моменты и давать обратную связь. Держите ритм, чтобы не отстать!
Вебинары проведёт Никита Целищев — эксперт по Big Data из команды Yandex Cloud, который ежедневно работает с сервисом Yandex MPP Analytics и знает все тонкости оптимизации изнутри.
🚀 Хотите не просто использовать Greenplum, а понимать его архитектуру и выжимать максимум производительности?
Записывайтесь на курс "Greenplum в Yandex MPP Analytics for PostgreSQL" от создателей и главных экспертов по облачной платформе.
👉 Подробнее о курсе и программе: https://rebrainme.com/courses/greenplum
💳 Оплатить по специальной цене:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👎2
немного про greenplum от эксперта курса Никиты Целищева, архитектора Data Platform Yandex Cloud
Привет!🤘
Кратко о граблях, на которые наступают даже профи. Нужно дать скрипту права root. Кажется, что это просто:
Эта команда ставит SUID`-бит, который должен запускать файл с правами владельца (`root`). Но с скриптами (.sh`, .py`) это не работает — ядро Linux игнорирует `SUID для них из соображений безопасности.
Хуже того, это создает ложное чувство защиты и открывает двери для атаки Path Injection.
Как `root`-скрипт отдает тебе систему
Представь, у тебя есть скрипт, который запускается через sudo и содержит вызов системной команды без полного пути:
victim_noscript.sh
Атакующий делает три простых шага:
1️⃣ Создает свой `ps`:
2️⃣ Добавляет свою папку в `PATH`:
Теперь его папка в приоритете для поиска команд.
3️⃣ Запускает твой скрипт:
Скрипт попытается выполнить ps, найдет вредоносный файл атакующего и запустит его с правами root. Игра окончена, система захвачена.
Как делать правильно и безопасно
Всего два железных правила, которые спасут твою инфраструктуру:
1️⃣ Всегда указывай полные пути к исполняемым файлам в своих скриптах: /bin/ps, /usr/bin/systemctl и т.д.
2️⃣ Используй `sudoers` для выдачи прав. Это единственный контролируемый способ.
Создай файл /etc/sudoers.d/developers:
Это безопасно, логируется и полностью под твоим контролем.
---
Знание таких основ — это фундамент. Чтобы видеть все векторы атак, от sudo и SUID до эксплойтов ядра, и уметь им противостоять, нужно мыслить как атакующий.
Именно этому мы учим на нашем практикуме "Повышение привилегий в Linux". Только хардкор, только практика на стендах.
🚀 Старт курса уже 26 января! Успей запрыгнуть, чтобы стать на голову выше в понимании Linux.
🤘Записаться на курс
---
P.S. Мы хотим постить прямые ссылки на самые сочные материалы в сторис, но для этого Телеграм просит "бусты". Если наши посты тебе полезны, поддержи канал своим голосом! Это быстро и бесплатно.
🚀 Бустануть канал Rebrain
Спасибо! 💪
Кратко о граблях, на которые наступают даже профи. Нужно дать скрипту права root. Кажется, что это просто:
# ⛔️ ОШИБКА, НЕ ДЕЛАЙ ТАК!
sudo chown root my_tool.sh
sudo chmod u+s my_tool.sh
Эта команда ставит SUID`-бит, который должен запускать файл с правами владельца (`root`). Но с скриптами (.sh`, .py`) это не работает — ядро Linux игнорирует `SUID для них из соображений безопасности.
Хуже того, это создает ложное чувство защиты и открывает двери для атаки Path Injection.
Как `root`-скрипт отдает тебе систему
Представь, у тебя есть скрипт, который запускается через sudo и содержит вызов системной команды без полного пути:
victim_noscript.sh
#!/bin/bash
# ...какой-то код...
# Вот уязвимость:
ps aux
# ...
Атакующий делает три простых шага:
1️⃣ Создает свой `ps`:
# Этот "ps" на самом деле запускает шелл
echo '/bin/bash' > /home/attacker/ps
chmod +x /home/attacker/ps
2️⃣ Добавляет свою папку в `PATH`:
export PATH=/home/attacker:$PATH
Теперь его папка в приоритете для поиска команд.
3️⃣ Запускает твой скрипт:
sudo /path/to/victim_noscript.sh
Скрипт попытается выполнить ps, найдет вредоносный файл атакующего и запустит его с правами root. Игра окончена, система захвачена.
Как делать правильно и безопасно
Всего два железных правила, которые спасут твою инфраструктуру:
Создай файл /etc/sudoers.d/developers:
# Дать право запускать ТОЛЬКО один конкретный скрипт без пароля
developer ALL=(root) NOPASSWD: /usr/local/bin/my_awesome_tool.sh
Это безопасно, логируется и полностью под твоим контролем.
---
Знание таких основ — это фундамент. Чтобы видеть все векторы атак, от sudo и SUID до эксплойтов ядра, и уметь им противостоять, нужно мыслить как атакующий.
Именно этому мы учим на нашем практикуме "Повышение привилегий в Linux". Только хардкор, только практика на стендах.
🚀 Старт курса уже 26 января! Успей запрыгнуть, чтобы стать на голову выше в понимании Linux.
🤘Записаться на курс
---
P.S. Мы хотим постить прямые ссылки на самые сочные материалы в сторис, но для этого Телеграм просит "бусты". Если наши посты тебе полезны, поддержи канал своим голосом! Это быстро и бесплатно.
🚀 Бустануть канал Rebrain
Спасибо! 💪
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
DevOps by REBRAIN
Проголосуйте за канал, чтобы он получил больше возможностей.
👍33🔥23❤20👎1
Привет, инженеры!
Слушайте, мы тут оглянулись на четвертый квартал и сами офигели. Работа проделана колоссальная. Мы не просто пилили контент, мы реально прокачали платформу.
Вы часто спрашиваете: «А что там нового?». Скажу прямо: индустрия летит вперед, и мы вместе с ней. Более 80% контента мы либо обновили с нуля, либо жестко перетряхнули.
Поэтому, чтобы вы ничего не упустили, держите сводку по нашему апдейту. Всё это уже боевое и готово делать из вас крутых спецов.
🔥 Абсолютно новые модули
Смотрите, это не просто теория, а ответы на то, что сейчас болит у бизнеса и девопсов:
🔹Безопасность веб-приложений (OWASP Top 10): Чтобы спать спокойно и не быть тем самым инженером, через которого слили базу.
🔹Прикладной LLM: Хайп хайпом, а понимание, как встроить нейронки в реальный пайплайн — это уже мастхэв.
🔹Kube-prometheus-stack: Весь мониторинг в кубе как на ладони. Настраиваем грамотно.
🔹GitLab CI: Классика, но теперь в самом свежем и правильном виде. Пайплайны, раннеры — всё как надо.
🔹ArgoCD: GitOps победил. Если вы еще не деплоите через Argo, вы либо мазохисты, либо просто еще не видели этот модуль.
🔹EFK (Elasticsearch, Fluentd, Kibana): Логи — это жизнь. Учимся их собирать и читать так, чтобы решать инциденты за минуты.
🔹Teamlead: Софт-скиллы для тех, кто устал быть просто крутым инженером и хочет вести команду за собой.
🔹Starvault: Секреты должны оставаться секретами. Глубокое погружение.
🛠 Глобальные рефакторинги
Мы взяли проверенные временем темы и пересобрали их под современные реалии. Убрали "воду", добавили "мяса":
🔸Ceph: Распределенное хранилище без боли (ну, почти).
🔸 Kafka Admin: Чтобы брокеры летали, а не падали.
🔸RabbitMQ: Очереди для тех, кто понимает толк в асинхронности.
🔸HAProxy: Балансировка на максималках.
🔸Grafana: Красивые дашборды — это половина успеха в инцидент-менеджменте.
🔸Terraform: IaC наше всё. Актуализировали под свежие версии провайдеров.
---
В чем суть?
Мы не заставляем зубрить конфиги. Мы даем понимание *архитектуры*. Как это работает под капотом и зачем это вообще нужно твоему проекту. Теория сразу закрепляется практикой — заходите, ломаете, чините.
Если чувствуешь, что в твоем стеке пробел по этим технологиям — велкам к нашим менеджерам. Они подскажут, с чего лучше начать.
🤝 Чтобы вход был приятнее, сделали скидки (действуют до 27 января включительно):
💰 Одна технология — скидка 3 000 ₽
💰💰 Две технологии — скидка 7 000 ₽
💰💰💰 Три технологии — скидка 15 000 ₽
Не стой на месте. Инженерия — это постоянное движение.
👉 Пиши менеджерам в лс: @rebrain_manager
Слушайте, мы тут оглянулись на четвертый квартал и сами офигели. Работа проделана колоссальная. Мы не просто пилили контент, мы реально прокачали платформу.
Вы часто спрашиваете: «А что там нового?». Скажу прямо: индустрия летит вперед, и мы вместе с ней. Более 80% контента мы либо обновили с нуля, либо жестко перетряхнули.
Поэтому, чтобы вы ничего не упустили, держите сводку по нашему апдейту. Всё это уже боевое и готово делать из вас крутых спецов.
🔥 Абсолютно новые модули
Смотрите, это не просто теория, а ответы на то, что сейчас болит у бизнеса и девопсов:
🔹Безопасность веб-приложений (OWASP Top 10): Чтобы спать спокойно и не быть тем самым инженером, через которого слили базу.
🔹Прикладной LLM: Хайп хайпом, а понимание, как встроить нейронки в реальный пайплайн — это уже мастхэв.
🔹Kube-prometheus-stack: Весь мониторинг в кубе как на ладони. Настраиваем грамотно.
🔹GitLab CI: Классика, но теперь в самом свежем и правильном виде. Пайплайны, раннеры — всё как надо.
🔹ArgoCD: GitOps победил. Если вы еще не деплоите через Argo, вы либо мазохисты, либо просто еще не видели этот модуль.
🔹EFK (Elasticsearch, Fluentd, Kibana): Логи — это жизнь. Учимся их собирать и читать так, чтобы решать инциденты за минуты.
🔹Teamlead: Софт-скиллы для тех, кто устал быть просто крутым инженером и хочет вести команду за собой.
🔹Starvault: Секреты должны оставаться секретами. Глубокое погружение.
🛠 Глобальные рефакторинги
Мы взяли проверенные временем темы и пересобрали их под современные реалии. Убрали "воду", добавили "мяса":
🔸Ceph: Распределенное хранилище без боли (ну, почти).
🔸 Kafka Admin: Чтобы брокеры летали, а не падали.
🔸RabbitMQ: Очереди для тех, кто понимает толк в асинхронности.
🔸HAProxy: Балансировка на максималках.
🔸Grafana: Красивые дашборды — это половина успеха в инцидент-менеджменте.
🔸Terraform: IaC наше всё. Актуализировали под свежие версии провайдеров.
---
В чем суть?
Мы не заставляем зубрить конфиги. Мы даем понимание *архитектуры*. Как это работает под капотом и зачем это вообще нужно твоему проекту. Теория сразу закрепляется практикой — заходите, ломаете, чините.
Если чувствуешь, что в твоем стеке пробел по этим технологиям — велкам к нашим менеджерам. Они подскажут, с чего лучше начать.
🤝 Чтобы вход был приятнее, сделали скидки (действуют до 27 января включительно):
💰 Одна технология — скидка 3 000 ₽
💰💰 Две технологии — скидка 7 000 ₽
💰💰💰 Три технологии — скидка 15 000 ₽
Не стой на месте. Инженерия — это постоянное движение.
👉 Пиши менеджерам в лс: @rebrain_manager
👍17🔥7❤6👎1💯1
1️⃣ Keycloak: часть 3
Время проведения:
27 января 2026, вторник, 19:00 по МСК
Программа практикума:
Кто ведёт?
Василий Озеров — co-Founder REBRAIN, IT-инженер с 2012 года, провёл 100+ вебинаров по DevOps и инфраструктуре.
---------------------------------------------------------------------------------------
2️⃣ Linux From Scratch: 01
Время проведения:
28 января 2026, среда, 20:00 по МСК
Программа практикума:
Кто ведёт?
Андрей Буранов — системный администратор в департаменте VK Play, 10+ лет опыта работы с ОС Linux, 8+ лет опыта преподавания. Входит в топ 3 лучших преподавателей образовательных порталов
---------------------------------------------------------------------------------------
3️⃣ HTTPS в Angie и Nginx
Время проведения:
29 января 2026, четверг, 19:00 по МСК
Программа практикума:
Кто ведёт?
Николай Лавлинский — Технический директор в ООО “Метод Лаб”. Веб-разработчик более 15 лет. Спикер конференций HighLoad++, РИТ++
Please open Telegram to view this post
VIEW IN TELEGRAM
Rebrain
Ошибка 404
DevOps, Kubernetes, Docker, Linux, HighLoad, обучение онлайн, онлайн-практикумы, вебинары, обучение DevOps, обучение Linux, обучение HighLoad, обучение Docker, корпоративное обучение DevOps, обучение Kubernetes, корпоративное обучение Docker, корпоративное…
👍9🔥6💯2
Привет! 🤙
Мы с вами уже говорили про sudo и скрытые угрозы типа Capabilities. Но сегодня я хочу затронуть слона в посудной лавке — Docker🐳
Все мы любим Докер. Но часто ради удобства (или лени) мы прокидываем доступ к Docker сокету внутрь контейнеров или даем пользователям группу docker.
⚠️ В чем проблема?
Если у пользователя есть доступ к /var/run/docker.sock или он входит в группу docker, это эквивалентно правам root на хост-системе. Без паролей, без регистрации и смс.
🔫 Сценарий атаки:
Злоумышленник (или кривой скрипт) получает доступ к сокету и запускает привилегированный контейнер, монтируя корень хостовой системы (`/`) внутрь контейнера. Всё, он владеет сервером.
🛡️ Решение: Docker Socket Proxy (Harden Configuration)
Не прокидывайте сырой сокет! Используйте проксирующий контейнер, который фильтрует запросы к Docker API. Это "флоппинет" (firewall) для вашего докера.
Ниже готовый docker-compose.yml для Tecnativa Docker Socket Proxy. Он разрешает только чтение (GET запросы) и запрещает запуск новых контейнеров. Идеально для мониторинга (Portainer, Traefik, Prometheus и др.).
📂 Конфигурация (docker-compose.yml)
🛠️ Как это работает в продакшене:
1️⃣ Изоляция: Сервисы (мониторинг, Traefik и т.д.) больше не получают /var/run/docker.sock.
2️⃣ Доступ: Они общаются с docker-proxy:2375 внутри внутренней сети proxy-net.
3️⃣ Фильтр: Если взломанный сервис попробует сделать POST /containers/create (создать новый контейнер для побега), прокси ответит 403 Forbidden.
Совет: Если у вас Jenkins или GitLab Runner требует сокет для сборки — используйте Docker-in-Docker (dind) или выделенные ноды. Не давайте CI/CD системам прямой доступ к сокету продакшн-хоста. Это самоубийство.
---
Хочешь реально понимать, где в Linux живут уязвимости и как их закрывать, а не просто копировать конфиги с StackOverflow?
Жду тебя на курсе "Повышение привилегий в Linux".
Разберем всё: от SUID и ядра до NFS и токенов.
🗓 Старт: 26 января
👉 Записывайся тут, Стоимость всего 22 000 рублей ⛔️сегодня последний день скидки на модуль⛔️
Мы с вами уже говорили про sudo и скрытые угрозы типа Capabilities. Но сегодня я хочу затронуть слона в посудной лавке — Docker
Все мы любим Докер. Но часто ради удобства (или лени) мы прокидываем доступ к Docker сокету внутрь контейнеров или даем пользователям группу docker.
Если у пользователя есть доступ к /var/run/docker.sock или он входит в группу docker, это эквивалентно правам root на хост-системе. Без паролей, без регистрации и смс.
Злоумышленник (или кривой скрипт) получает доступ к сокету и запускает привилегированный контейнер, монтируя корень хостовой системы (`/`) внутрь контейнера. Всё, он владеет сервером.
Не прокидывайте сырой сокет! Используйте проксирующий контейнер, который фильтрует запросы к Docker API. Это "флоппинет" (firewall) для вашего докера.
Ниже готовый docker-compose.yml для Tecnativa Docker Socket Proxy. Он разрешает только чтение (GET запросы) и запрещает запуск новых контейнеров. Идеально для мониторинга (Portainer, Traefik, Prometheus и др.).
📂 Конфигурация (docker-compose.yml)
version: '3.8'
services:
docker-proxy:
image: tecnativa/docker-socket-proxy
container_name: docker-proxy
privileged: true # Нужно для доступа к реальному сокету
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro # Монтируем оригинал в RO
environment:
# --- Политика безопасности ---
# Разрешаем только безопасные операции
CONTAINERS: 1 # List containers
IMAGES: 1 # List images
NETWORKS: 1 # List networks
VOLUMES: 1 # List volumes
INFO: 1 # System info
# Запрещаем всё, что может менять состояние
POST: 0 # Запрет на создание (POST)
DELETE: 0 # Запрет на удаление
AUTH: 0 # Запрет auth
SECRETS: 0 # Не палить секреты
# Остальное по умолчанию запрещено образом
ports:
- "127.0.0.1:2375:2375" # Слушаем только на localhost!
restart: unless-stopped
networks:
- proxy-net
# Пример сервиса, которому нужен доступ к докеру (например, мониторинг)
monitoring-agent:
image: alpine:latest
command: ["curl", "http://docker-proxy:2375/containers/json"]
depends_on:
- docker-proxy
networks:
- proxy-net
networks:
proxy-net:
internal: true # Изолированная сеть
🛠️ Как это работает в продакшене:
1️⃣ Изоляция: Сервисы (мониторинг, Traefik и т.д.) больше не получают /var/run/docker.sock.
2️⃣ Доступ: Они общаются с docker-proxy:2375 внутри внутренней сети proxy-net.
3️⃣ Фильтр: Если взломанный сервис попробует сделать POST /containers/create (создать новый контейнер для побега), прокси ответит 403 Forbidden.
Совет: Если у вас Jenkins или GitLab Runner требует сокет для сборки — используйте Docker-in-Docker (dind) или выделенные ноды. Не давайте CI/CD системам прямой доступ к сокету продакшн-хоста. Это самоубийство.
---
Хочешь реально понимать, где в Linux живут уязвимости и как их закрывать, а не просто копировать конфиги с StackOverflow?
Жду тебя на курсе "Повышение привилегий в Linux".
Разберем всё: от SUID и ядра до NFS и токенов.
🗓 Старт: 26 января
👉 Записывайся тут, Стоимость всего 22 000 рублей ⛔️сегодня последний день скидки на модуль⛔️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27👍11❤7
Всем привет, небольшой апдейт по вебинару Keycloak: часть 3 👋
Мы отменяем вебинар по этой теме: спикер приболел, а также выяснилось, что все ключевые моменты Вася Озеров уже подробно разобрал в предыдущих вебинарах.
Увидимся с Васей 5 февраля на вебинаре Kubernetes: Service Mesh на базе Linkerd 🚀
Спасибо за понимание и до встречи!
Мы отменяем вебинар по этой теме: спикер приболел, а также выяснилось, что все ключевые моменты Вася Озеров уже подробно разобрал в предыдущих вебинарах.
Увидимся с Васей 5 февраля на вебинаре Kubernetes: Service Mesh на базе Linkerd 🚀
Спасибо за понимание и до встречи!
❤19🔥8💯5
Знакомая боль: пользователь ищет письмо за 2018 год, Thunderbird висит, а сервер выжирает диск в полку. Почему? Dovecot по умолчанию ищет "в лоб", перебирая файлы.
Решение — Full Text Search (FTS) на движке Lucene. Он быстрый, легкий, не требует Java (как Solr) и хранит индексы прямо рядом с письмами.
🛠 Настройка за 5 минут
plugin {
fts = lucene
# Лайфхак: @. в whitespace_chars позволяет искать по email целиком
fts_lucene = whitespace_chars=@. no_index=mime
# Индексируем входящие сразу. Для HighLoad лучше 'no' + cron
fts_autoindex = yes
# Стемминг для русского и английского
fts_languages = en ru
}
protocol imap {
mail_plugins = $mail_plugins fts fts_lucene
}
# То же самое добавляем в protocol lda и lmtp!
После рестарта (`systemctl restart dovecot`) новые письма индексируются сами.
⚡ Как ускорить старые письма?
Их нужно прогнать через индексатор вручную. Осторожно, нагрузка на CPU!
# Для одного страдающего пользователя
doveadm fts rescan -u user@domain.com && doveadm index -u user@domain.com INBOX
# Для всех сразу (запускать в screen/tmux)
doveadm fts rescan -A
✅ Итог:
* Скорость: Поиск занимает миллисекунды.
* Ресурс: Диски перестают "хрустеть" I/O операциями при поиске.
* Цена: Индексы съедят ~10-20% доп. места на диске.
---
🔥 Почта — это сложная экосистема. Хочешь понимать, как тюнить производительность, интегрировать SQL/LDAP, настраивать Sieve и безопасность?
Приходи на новый курс Dovecot, материалы уже на платформе. Разбираем архитектуру, а не просто копипастим конфиги.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤8👍5
Как приручить хаос: Импорт ресурсов и рефакторинг без даунтайма
Знакомая ситуация? Ты приходишь на новый проект, а там — классический ClickOps. Половина инфраструктуры натыкана руками в консоли облака, другая половина — в потерянных bash-скриптах. Или другой сценарий: ты решил навести порядок в коде, переименовать ресурсы, разложить всё по модулям, запускаешь plan, а Terraform радостно сообщает:
У тебя холодный пот. Удалять прод нельзя. Оставлять как есть — значит плодить технический долг.
Многие в этот момент сдаются и оставляют "как есть". Но сильный инженер знает: Terraform state — это не скрижаль, которую нельзя трогать. Это база данных, которой можно и нужно управлять.
Проблема1️⃣ : "Это было создано руками"
Допустим, у тебя уже есть виртуалка в Yandex Cloud (`ID: fhm...`), созданная через UI. Тебе нужно загнать её под IaC.
Неправильно: Писать код и надеяться, что Terraform "подхватит" существующий айдишник. Он попытается создать новую ВМ и упадет с ошибкой конфликта.
Как делает профи: Использует terraform import.
1️⃣ Описываем ресурс в коде (пока можно даже пустой):
2️⃣ Импортируем реальное состояние в наш стейт:
3️⃣ Теперь самое интересное. Выполняем `terraform plan`. Terraform скажет, что хочет *изменить* ресурс, чтобы привести его к пустому конфигу. Твоя задача — дописать HCL код так, чтобы plan показал: No changes.
Проблема2️⃣ : "Хочу переименовать, но боюсь пересоздания"
Ты назвал ресурс resource "yandex_vpc_network" "net" {}, но по стайл-гайду нужно vpc-main. Если просто поменяешь имя в коде — Terraform удалит старую сеть (и всё, что в ней!) и создаст новую.
💡 Решение: Манипуляции со стейтом (`terraform state mv`).
Мы объясняем Terraform, что объект в базе данных переехал по новому адресу:
После этой команды меняешь имя в .tf файле, запускаешь plan — и видишь заветный зеленый свет без разрушений.
🚀 Terraform 2.0: Глобальная перезагрузка
Умение работать со стейтом, писать чистые модули, внедрять CI/CD и понимать, *как* это работает под капотом — это база. И именно эту базу мы полностью пересобрали.
Рады сообщить, что мы обновили курс по Terraform на 90%. Это не просто косметика, это полный рефакторинг программы.
🔗 Смотреть подробную программу (PDF)
🔗 Купить обновленный курс. Мы сделали знания доступнее. Теперь модуль стоит 30 000 ₽ (вместо 50 000 ₽).
🛑 Важно для "старичков": Если ты уже покупал этот курс ранее — тебе не нужно платить снова. Пиши в поддержку, и тебе откроют доступ к новой версии бесплатно (без сохранения прогресса старой, так как программа новая).
Перестань бояться terraform apply. Становись архитектором своей инфраструктуры.
Знакомая ситуация? Ты приходишь на новый проект, а там — классический ClickOps. Половина инфраструктуры натыкана руками в консоли облака, другая половина — в потерянных bash-скриптах. Или другой сценарий: ты решил навести порядок в коде, переименовать ресурсы, разложить всё по модулям, запускаешь plan, а Terraform радостно сообщает:
Plan: 10 to add, 10 to destroy.
У тебя холодный пот. Удалять прод нельзя. Оставлять как есть — значит плодить технический долг.
Многие в этот момент сдаются и оставляют "как есть". Но сильный инженер знает: Terraform state — это не скрижаль, которую нельзя трогать. Это база данных, которой можно и нужно управлять.
Проблема
Допустим, у тебя уже есть виртуалка в Yandex Cloud (`ID: fhm...`), созданная через UI. Тебе нужно загнать её под IaC.
Неправильно: Писать код и надеяться, что Terraform "подхватит" существующий айдишник. Он попытается создать новую ВМ и упадет с ошибкой конфликта.
Как делает профи: Использует terraform import.
1️⃣ Описываем ресурс в коде (пока можно даже пустой):
resource "yandex_compute_instance" "legacy_vm" {
# Пока пусто, заполним после импорта, глядя в state
}
2️⃣ Импортируем реальное состояние в наш стейт:
terraform import yandex_compute_instance.legacy_vm fhm1234567890abcdef
3️⃣ Теперь самое интересное. Выполняем `terraform plan`. Terraform скажет, что хочет *изменить* ресурс, чтобы привести его к пустому конфигу. Твоя задача — дописать HCL код так, чтобы plan показал: No changes.
Проблема
Ты назвал ресурс resource "yandex_vpc_network" "net" {}, но по стайл-гайду нужно vpc-main. Если просто поменяешь имя в коде — Terraform удалит старую сеть (и всё, что в ней!) и создаст новую.
Мы объясняем Terraform, что объект в базе данных переехал по новому адресу:
terraform state mv yandex_vpc_network.net yandex_vpc_network.vpc-main
После этой команды меняешь имя в .tf файле, запускаешь plan — и видишь заветный зеленый свет без разрушений.
🚀 Terraform 2.0: Глобальная перезагрузка
Умение работать со стейтом, писать чистые модули, внедрять CI/CD и понимать, *как* это работает под капотом — это база. И именно эту базу мы полностью пересобрали.
Рады сообщить, что мы обновили курс по Terraform на 90%. Это не просто косметика, это полный рефакторинг программы.
🔗 Смотреть подробную программу (PDF)
🔗 Купить обновленный курс. Мы сделали знания доступнее. Теперь модуль стоит 30 000 ₽ (вместо 50 000 ₽).
🛑 Важно для "старичков": Если ты уже покупал этот курс ранее — тебе не нужно платить снова. Пиши в поддержку, и тебе откроют доступ к новой версии бесплатно (без сохранения прогресса старой, так как программа новая).
Перестань бояться terraform apply. Становись архитектором своей инфраструктуры.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14❤10👍5
1️⃣ EIGRP. Протокол динамической маршрутизации
Время проведения:
3 февраля 2026, вторник, 19:00 по МСК
Программа практикума:
Кто ведёт?
Андрей Шабалин — Тренер Cisco / Huawei, инструктор академии Eltex и Астра-Университета
---------------------------------------------------------------------------------------
2️⃣ Linux From Scratch - 02
Время проведения:
4 февраля 2026, среда, 20:00 по МСК
Программа практикума:
Кто ведёт?
Андрей Буранов — системный администратор в департаменте VK Play, 10+ лет опыта работы с ОС Linux, 8+ лет опыта преподавания. Входит в топ 3 лучших преподавателей образовательных порталов
---------------------------------------------------------------------------------------
3️⃣ Kubernetes: Service Mesh на базе Linkerd
Время проведения:
5 февраоя 2026, четверг, 19:00 по МСК
Программа практикума:
Кто ведёт?
Василий Озеров — co-Founder REBRAIN, IT-инженер с 2012 года, провёл 100+ вебинаров по DevOps и инфраструктуре.
Please open Telegram to view this post
VIEW IN TELEGRAM
Rebrain
Ошибка 404
DevOps, Kubernetes, Docker, Linux, HighLoad, обучение онлайн, онлайн-практикумы, вебинары, обучение DevOps, обучение Linux, обучение HighLoad, обучение Docker, корпоративное обучение DevOps, обучение Kubernetes, корпоративное обучение Docker, корпоративное…
🔥9❤4👍1👎1
Прокачали контент: дайджест исправлений и доработок за январь 2026
Привет, на связи команда Rebrain! 👋
Мы постоянно говорим, что мир технологий не стоит на месте. Как и наши курсы. Хотим делиться с вами какие изменения мы вносим в модули, чтобы держать вас в курсе. И вы знали, что модули проходят постоянный рефаткоринг с учетом обновлений технологий и вашей💚 обратной связи. Для нас «качество» — это не просто красивый интерфейс, а когда ты открываешь задачу и понимаешь: «Ага, вот как это работает на самом деле». Без магии и сломанных костылей.
Собрали фидбек, вытряхнули из бэклога баги и немного причесали наши практикумы. Держи отчет о том, что изменилось. 👇
🛠 Nginx
Исправили мелкие, но досадные неточности, чтобы ничего не отвлекало от настройки конфигов:
* Уточнили формулировки про кэширование (да, "backend" и "application" серверы — вещи разные, теперь в тексте порядок).
* Обновили ссылки на репозитории Nginx и скорректировали версии пакетов в примерах установки через dpkg.
* Поправили опечатки в описании флагов ./configure и блоков server.
🐳 Docker & DevOps 2.0
Фокус на актуальности образов и логике проверки:
* В примерах убрали путаницу между Ubuntu 22.04 и 24.04. Теперь версия базового образа и тега совпадают, чтобы при сборке не было сюрпризов.
* Gitlab CI: Добавили ясности в навигацию — теперь четко понятно, где искать раздел Merge Requests.
* Terraform / старая версия: Поправили форматирование .tf файлов и логику проверки состояния (state file), чтобы автопроверка работала стабильно. 🛑Новая версия уже на платформе, вы можете бесплатно обновить модуль, но без сохранения прогресса. Для это нужно написать в поддержку.
* Observability: Чиним автопроверки Grafana dashboard, чтобы ваши красивые графики засчитывались с первого раза.
☸️ Kubernetes & Helm
Больше практики и рабочих конфигов:
* Kubectl Config: Исправили ошибку с расширением файла .yaml vs .yml) при генерации конфига — теперь консоль не ругается на "no such file".
* Новые блоки: Внедряем автопроверки для блоков Helm, Canary Deploy и Argo Rollouts. Практика без обратной связи — деньги на ветер, исправляем это.
🛡 Безопасность (White Hat & Vault)
Безопасность требует точности:
* OWASP Top 10: На основе фидбека первых студентов допиливаем доступы к тачкам (SSH, VNC) и уточняем формулировки в заданиях по Injection и Broken Access Control.
* Hashicorp Vault: Исправили команды отключения аудита (пути list/ вместо команды list) и уточнили пути к ролям в БД. Раньше приходилось гадать, теперь все по документации.
🐧 Linux (Basics & Advanced)
Чтобы консоль была другом, а не врагом:
* Инфраструктура: Актуализируем инструкции по доступу к стендам (SSH vs Browser) для разных потоков.
* Systemd: В задании по траблшутингу сервисов добавили проверку статуса Nginx после перезагрузки.
* Убрали опечатки в путях конфигов (типа лишней "d" в rsyslog.conf).
🧠 Другие улучшения (Ansible, SQL, ClickHouse, Kafka)
* Ansible: Убрали категоричное заявление, что with_ — это устаревшее и запрещенное. Да, loop моднее, но старый синтаксис жив и валиден (спасибо за внимательность!).
* ClickHouse: Вернули звук в видео про масштабирование кластера (да, бывает и такое 😅) и актуализировали даты в заданиях.
* Golang Advanced: Работали над добавлением недостающих видеоматериалов по GraphQL.
Мы читаем всю вашу обратную связь, которую вы отправляете нам при прохождении курсов. Если видишь, что что-то работает не так или объяснение хромает — пиши.
Мы здесь, чтобы ты стал крутым инженером, а не чтобы ты боролся с багами в тексте задания.
Развивайся, практикуйся и не бойся ломать проды (но лучше тестовые)! 🚀
Привет, на связи команда Rebrain! 👋
Мы постоянно говорим, что мир технологий не стоит на месте. Как и наши курсы. Хотим делиться с вами какие изменения мы вносим в модули, чтобы держать вас в курсе. И вы знали, что модули проходят постоянный рефаткоринг с учетом обновлений технологий и вашей
Собрали фидбек, вытряхнули из бэклога баги и немного причесали наши практикумы. Держи отчет о том, что изменилось. 👇
🛠 Nginx
Исправили мелкие, но досадные неточности, чтобы ничего не отвлекало от настройки конфигов:
* Уточнили формулировки про кэширование (да, "backend" и "application" серверы — вещи разные, теперь в тексте порядок).
* Обновили ссылки на репозитории Nginx и скорректировали версии пакетов в примерах установки через dpkg.
* Поправили опечатки в описании флагов ./configure и блоков server.
🐳 Docker & DevOps 2.0
Фокус на актуальности образов и логике проверки:
* В примерах убрали путаницу между Ubuntu 22.04 и 24.04. Теперь версия базового образа и тега совпадают, чтобы при сборке не было сюрпризов.
* Gitlab CI: Добавили ясности в навигацию — теперь четко понятно, где искать раздел Merge Requests.
* Terraform / старая версия: Поправили форматирование .tf файлов и логику проверки состояния (state file), чтобы автопроверка работала стабильно. 🛑Новая версия уже на платформе, вы можете бесплатно обновить модуль, но без сохранения прогресса. Для это нужно написать в поддержку.
* Observability: Чиним автопроверки Grafana dashboard, чтобы ваши красивые графики засчитывались с первого раза.
☸️ Kubernetes & Helm
Больше практики и рабочих конфигов:
* Kubectl Config: Исправили ошибку с расширением файла .yaml vs .yml) при генерации конфига — теперь консоль не ругается на "no such file".
* Новые блоки: Внедряем автопроверки для блоков Helm, Canary Deploy и Argo Rollouts. Практика без обратной связи — деньги на ветер, исправляем это.
🛡 Безопасность (White Hat & Vault)
Безопасность требует точности:
* OWASP Top 10: На основе фидбека первых студентов допиливаем доступы к тачкам (SSH, VNC) и уточняем формулировки в заданиях по Injection и Broken Access Control.
* Hashicorp Vault: Исправили команды отключения аудита (пути list/ вместо команды list) и уточнили пути к ролям в БД. Раньше приходилось гадать, теперь все по документации.
🐧 Linux (Basics & Advanced)
Чтобы консоль была другом, а не врагом:
* Инфраструктура: Актуализируем инструкции по доступу к стендам (SSH vs Browser) для разных потоков.
* Systemd: В задании по траблшутингу сервисов добавили проверку статуса Nginx после перезагрузки.
* Убрали опечатки в путях конфигов (типа лишней "d" в rsyslog.conf).
🧠 Другие улучшения (Ansible, SQL, ClickHouse, Kafka)
* Ansible: Убрали категоричное заявление, что with_ — это устаревшее и запрещенное. Да, loop моднее, но старый синтаксис жив и валиден (спасибо за внимательность!).
* ClickHouse: Вернули звук в видео про масштабирование кластера (да, бывает и такое 😅) и актуализировали даты в заданиях.
* Golang Advanced: Работали над добавлением недостающих видеоматериалов по GraphQL.
Мы читаем всю вашу обратную связь, которую вы отправляете нам при прохождении курсов. Если видишь, что что-то работает не так или объяснение хромает — пиши.
Мы здесь, чтобы ты стал крутым инженером, а не чтобы ты боролся с багами в тексте задания.
Развивайся, практикуйся и не бойся ломать проды (но лучше тестовые)! 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤9🔥9👎1💯1
Надоело лазить через бастион?
Знакомая боль: каждый день нужно попасть на прод, на стенд или в мониторинг. Но все сервера надежно спрятаны за бастионом. И вот ты уже в сотый раз набираешь:
Или, что еще хуже, копируешь ключи, открывая дыру в безопасности (пробрасывать ключи на не доверенные сервера — плохая идея, и мы на курсе разберем почему).
Есть способ лучше. Безопасный, быстрый и настраивается один раз.
Решение: `~/.ssh/config` и магия `ProxyJump`
Всё, что тебе нужно — это прописать алиасы в конфиге на своей рабочей машине.
Базовый пример:
У нас есть бастион bastion.mycompany.com, а за ним сервер app-server-1 с серыми IP 10.0.5.10.
Открываем ~/.ssh/config и пишем:
Теперь, чтобы попасть на app-server-1, просто пишешь одну команду:
OpenSSH сам установит соединение с бастионом и пробросит туннель до конечного сервера. Всё прозрачно. Ключи подтягиваются автоматически. Никаких лишних действий.
🚀 Ускоряем всё в разы с ControlMaster
Если вам часто требуется открывать параллельные сессии по одним и тем же хостам, добавьте мультиплексирование.
Первое соединение станет "мастером", а все последующие будут летать через уже открытый сокет, экономя время на handshake (рукопожатии).
Дополним наш конфиг для бастиона:
Теперь повторные подключения к бастиону или через него будут мгновенными.
Детально ознакомивший с протоколом SSH и его нюансами, вы можете добавить с свою работу следующие фишки:
🔹Строить цепочки из нескольких прыжков (`ProxyJump bastion1,bastion2`).
🔹Динамически управлять доступом через Match (например, разные настройки для разных Wi-Fi сетей).
🔹Работать с SSH Certificates вместо кучи authorized_keys.
Если хочешь системно прокачать SSH — от архитектуры протокола до настройки туннелирования и аутентификации по сертификатам, у меня отличные новости!
Мы с командой Rebrain написали новый курс «OpenSSH».
В нём нет воды — только практика на реальной инфраструктуре, схемы и ответы на вопрос «почему это работает так».
🗓 Доступ к программе откроется 24 февраля
📄 Полная обновлённая программа тут
💰 Успей забрать со скидкой: 22 000 ₽ (вместо 25 000 ₽) — только до 23 февраля включительно.
👉 Ссылка на покупку модуля
Прокачивай фундамент. Становись тем, кто не просто "тыкает" в консоль, а понимает безопасность своей инфраструктуры.
До встречи на курсе!
Знакомая боль: каждый день нужно попасть на прод, на стенд или в мониторинг. Но все сервера надежно спрятаны за бастионом. И вот ты уже в сотый раз набираешь:
ssh user@bastion
# ...подождал, зашел...
ssh internal-server-1
Или, что еще хуже, копируешь ключи, открывая дыру в безопасности (пробрасывать ключи на не доверенные сервера — плохая идея, и мы на курсе разберем почему).
Есть способ лучше. Безопасный, быстрый и настраивается один раз.
Решение: `~/.ssh/config` и магия `ProxyJump`
Всё, что тебе нужно — это прописать алиасы в конфиге на своей рабочей машине.
Базовый пример:
У нас есть бастион bastion.mycompany.com, а за ним сервер app-server-1 с серыми IP 10.0.5.10.
Открываем ~/.ssh/config и пишем:
# Наш прыжковый хост (бастион)
Host bastion
HostName bastion.mycompany.com
User vasya
IdentityFile ~/.ssh/id_ed25519_work
# Конечный сервер, доступный ТОЛЬКО через бастион
Host app1
HostName 10.0.5.10
User deploy
IdentityFile ~/.ssh/id_ed25519_work
ProxyJump bastion # <--- Вся магия здесь
Теперь, чтобы попасть на app-server-1, просто пишешь одну команду:
ssh app1
OpenSSH сам установит соединение с бастионом и пробросит туннель до конечного сервера. Всё прозрачно. Ключи подтягиваются автоматически. Никаких лишних действий.
🚀 Ускоряем всё в разы с ControlMaster
Если вам часто требуется открывать параллельные сессии по одним и тем же хостам, добавьте мультиплексирование.
Первое соединение станет "мастером", а все последующие будут летать через уже открытый сокет, экономя время на handshake (рукопожатии).
Дополним наш конфиг для бастиона:
Host bastion
HostName bastion.mycompany.com
User vasya
IdentityFile ~/.ssh/id_ed25519_work
# Включаем мультиплексирование
ControlMaster auto
# Файл-сокет для управления сессией
ControlPath ~/.ssh/cm-%r@%h:%p
# Держим мастер-сессию 10 минут после выхода
ControlPersist 10m
Теперь повторные подключения к бастиону или через него будут мгновенными.
Детально ознакомивший с протоколом SSH и его нюансами, вы можете добавить с свою работу следующие фишки:
🔹Строить цепочки из нескольких прыжков (`ProxyJump bastion1,bastion2`).
🔹Динамически управлять доступом через Match (например, разные настройки для разных Wi-Fi сетей).
🔹Работать с SSH Certificates вместо кучи authorized_keys.
Если хочешь системно прокачать SSH — от архитектуры протокола до настройки туннелирования и аутентификации по сертификатам, у меня отличные новости!
Мы с командой Rebrain написали новый курс «OpenSSH».
В нём нет воды — только практика на реальной инфраструктуре, схемы и ответы на вопрос «почему это работает так».
🗓 Доступ к программе откроется 24 февраля
📄 Полная обновлённая программа тут
💰 Успей забрать со скидкой: 22 000 ₽ (вместо 25 000 ₽) — только до 23 февраля включительно.
👉 Ссылка на покупку модуля
Прокачивай фундамент. Становись тем, кто не просто "тыкает" в консоль, а понимает безопасность своей инфраструктуры.
До встречи на курсе!
👍35🔥5❤1👎1
Привет, инженер!
Ты наверняка настраивал статические маршруты. ip route ... — и погнали. В маленькой сети это работает отлично. Но представь, что твоя инфраструктура выросла: добавилось несколько офисов, десяток VLAN-ов, резервные линки.
И тут начинается ад. Один линк упал — и ты судорожно переписываешь таблицы маршрутизации на пяти роутерах в 3 часа ночи. Знакомо?
Так вот, статическая маршрутизация — это костыль для растущей системы. Настоящий инженер должен уметь в динамику. И сегодня разберем EIGRP (Enhanced Interior Gateway Routing Protocol).
Главная фишка: EIGRP сходится (перестраивает маршруты) молниеносно благодаря алгоритму DUAL. Если основной путь падает, он достает из кармана заранее просчитанный запасной (Feasible Successor) и переключается на него за миллисекунды. Никаких простоев.
---
Давай разберем одну из частых проблем: "Почему мой трафик идет по медленному каналу?"
Допустим, у тебя два пути до сервера: оптический линк (1Gbps) и DSL-резерв (10Mbps). Ты настроил EIGRP, но видишь, что трафик "скачет" или балансируется 50/50, забивая медленный канал.
В чем суть?
EIGRP по умолчанию делает балансировку нагрузки (Load Balancing), но только для маршрутов с *равной* метрикой (Equal Cost). Но иногда метрика "почти" равна, или мы хотим использовать оба канала, но непропорционально (Variance).
Как это решается?
Смотрим конфиг. EIGRP использует формулу $Metric$, которая учитывает:
1️⃣ Bandwidth (пропускную способность)
2️⃣ Delay (задержку)
Если ты не задал bandwidth на интерфейсе явно, роутер берет дефолтное значение для типа порта. И часто для Serial-интерфейсов оно не совпадает с реальностью.
Решение:
Всегда явно указывай параметры линка.
После этого EIGRP пересчитает метрику $K$-values и поймет, что Гигабит — это приоритет, а Serial — только на черный день.
Хочешь хитро балансировать неравные каналы? Используй команду variance.
Например, если быстрый путь имеет метрику 1000, а медленный 3000. variance 3 позволит использовать оба канала, распределяя трафик умнее.
---
Хочешь копнуть глубже?
Тема динамической маршрутизации — это база для любого, кто хочет считать себя серьезным сетевым или DevOps инженером. EIGRP — проприетарный протокол Cisco (хотя частично открыт), но понимая его логику (Distance Vector), ты поймешь принципы работы сетей в целом.
Приходи на наш бесплатный вебинар «EIGRP. Протокол динамической маршрутизации» сегодня в 19-00.
Что будем делать?
👉 Разберем теорию Дистанционно-векторной маршрутизации и алгоритм DUAL.
👉 Поймем, как считается метрика (никакой магии, только математика).
👉 На практике настроим EIGRP с нуля и посмотрим, как он реагирует на падение линков.
🔗 Регистрируйся и залетай. Увидимся в эфире!
Ты наверняка настраивал статические маршруты. ip route ... — и погнали. В маленькой сети это работает отлично. Но представь, что твоя инфраструктура выросла: добавилось несколько офисов, десяток VLAN-ов, резервные линки.
И тут начинается ад. Один линк упал — и ты судорожно переписываешь таблицы маршрутизации на пяти роутерах в 3 часа ночи. Знакомо?
Так вот, статическая маршрутизация — это костыль для растущей системы. Настоящий инженер должен уметь в динамику. И сегодня разберем EIGRP (Enhanced Interior Gateway Routing Protocol).
Главная фишка: EIGRP сходится (перестраивает маршруты) молниеносно благодаря алгоритму DUAL. Если основной путь падает, он достает из кармана заранее просчитанный запасной (Feasible Successor) и переключается на него за миллисекунды. Никаких простоев.
---
Давай разберем одну из частых проблем: "Почему мой трафик идет по медленному каналу?"
Допустим, у тебя два пути до сервера: оптический линк (1Gbps) и DSL-резерв (10Mbps). Ты настроил EIGRP, но видишь, что трафик "скачет" или балансируется 50/50, забивая медленный канал.
В чем суть?
EIGRP по умолчанию делает балансировку нагрузки (Load Balancing), но только для маршрутов с *равной* метрикой (Equal Cost). Но иногда метрика "почти" равна, или мы хотим использовать оба канала, но непропорционально (Variance).
Как это решается?
Смотрим конфиг. EIGRP использует формулу $Metric$, которая учитывает:
1️⃣ Bandwidth (пропускную способность)
2️⃣ Delay (задержку)
Если ты не задал bandwidth на интерфейсе явно, роутер берет дефолтное значение для типа порта. И часто для Serial-интерфейсов оно не совпадает с реальностью.
Решение:
Всегда явно указывай параметры линка.
Router(config)# interface GigabitEthernet0/0
Router(config-if)# bandwidth 1000000 ! Ставим 1Гбит (в кбит/c)
Router(config-if)# delay 10 ! Задержка в десятках микросекунд
Router(config)# interface Serial0/0
Router(config-if)# bandwidth 10000 ! Ставим честные 10Мбит
Router(config-if)# delay 1000
После этого EIGRP пересчитает метрику $K$-values и поймет, что Гигабит — это приоритет, а Serial — только на черный день.
Хочешь хитро балансировать неравные каналы? Используй команду variance.
Например, если быстрый путь имеет метрику 1000, а медленный 3000. variance 3 позволит использовать оба канала, распределяя трафик умнее.
---
Хочешь копнуть глубже?
Тема динамической маршрутизации — это база для любого, кто хочет считать себя серьезным сетевым или DevOps инженером. EIGRP — проприетарный протокол Cisco (хотя частично открыт), но понимая его логику (Distance Vector), ты поймешь принципы работы сетей в целом.
Приходи на наш бесплатный вебинар «EIGRP. Протокол динамической маршрутизации» сегодня в 19-00.
Что будем делать?
👉 Разберем теорию Дистанционно-векторной маршрутизации и алгоритм DUAL.
👉 Поймем, как считается метрика (никакой магии, только математика).
👉 На практике настроим EIGRP с нуля и посмотрим, как он реагирует на падение линков.
🔗 Регистрируйся и залетай. Увидимся в эфире!
🔥14😁7👍6❤2👎2
Как за 1 команду получить доступ к БД, которая слушает только localhost?
Знакома ситуация? На сервере крутится PostgreSQL, Redis или веб-интерфейс, но они закрыты и слушают только 127.0.0.1. В целях безопасности — правильно. Но как подключиться?
💡 Решение — SSH-туннель. 1 команда:
Что произошло:
🔹На твоём ноуте открылся порт 6543
🔹Весь трафик с него шифрованно идёт на backend-prod-01:5432
🔹Подключайся в DBeaver к localhost:6543 — работает!
Делаем навсегда удобным в ~/.ssh/config:
Теперь просто: ssh backend-tunnel -Nf и оба порта доступны локально.
Обратная задача — дать коллеге доступ к твоему localhost:
Почему это безопасно?
1️⃣Весь трафик шифруется через SSH
2️⃣Доступ есть только у тех, у кого есть SSH-ключ
3️⃣Не нужно открывать порты в firewall
На курсе OpenSSH разбираем туннели глубоко:
👉Local/Remote Port Forwarding (Урок 6)
👉Dynamic (SOCKS5) прокси (Урок 7)
👉Интеграция с конфигом (Урок 4)
👉Hardening для безопасности (Урок 9)
Программа: PDF
Цена 22 000₽ вместо 25 000₽ до 23 февраля: купить модуль.
Перестань бороться с доступом — начни его контролировать.
Знакома ситуация? На сервере крутится PostgreSQL, Redis или веб-интерфейс, но они закрыты и слушают только 127.0.0.1. В целях безопасности — правильно. Но как подключиться?
ssh -L 6543:localhost:5432 user@backend-prod-01
Что произошло:
🔹На твоём ноуте открылся порт 6543
🔹Весь трафик с него шифрованно идёт на backend-prod-01:5432
🔹Подключайся в DBeaver к localhost:6543 — работает!
Делаем навсегда удобным в ~/.ssh/config:
Host backend-tunnel
HostName backend-prod-01
User deploy
LocalForward 6543 localhost:5432 # PostgreSQL
LocalForward 9100 localhost:3000 # Grafana
Теперь просто: ssh backend-tunnel -Nf и оба порта доступны локально.
Обратная задача — дать коллеге доступ к твоему localhost:
ssh -R 9090:localhost:8080 bastion-server
Почему это безопасно?
1️⃣Весь трафик шифруется через SSH
2️⃣Доступ есть только у тех, у кого есть SSH-ключ
3️⃣Не нужно открывать порты в firewall
На курсе OpenSSH разбираем туннели глубоко:
👉Local/Remote Port Forwarding (Урок 6)
👉Dynamic (SOCKS5) прокси (Урок 7)
👉Интеграция с конфигом (Урок 4)
👉Hardening для безопасности (Урок 9)
Программа: PDF
Цена 22 000₽ вместо 25 000₽ до 23 февраля: купить модуль.
Перестань бороться с доступом — начни его контролировать.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35❤4👏4😁3🔥2👎1