Рейтинг
0.00

FirstVDS Хостинг

14 читателей, 540 топиков

+1 мощный тариф в линейке VDS GPU



Расширяем линейку GPU Passthrough: добавили тариф с NVIDIA RTX 5090.

Теперь помимо существующих конфигураций доступен VDS с флагманской настольной видеокартой нового поколения.
Подходит для:
  • высокоскоростного инференса LLM,
  • быстрой генерации видео,
  • сложных ML-зач.
Поддержка FP4 помогает эффективнее работать с современными AI-нагрузками. Стоимость от 1750 рублей в сутки.
firstvds.ru/products/vps-vds-gpu

Май — регистрация домена на Госуслугах, история про переезд в ДЦ в Нидерландах, битва в честь Дня Гика и вулнапокалипсис (кто-кто?)

Май получился жарким: если не по температуре, то по сути. Если вы, как и мы, немного заМАЯлись, устали от дедлайнов и потока новостей, приложите на больное место наш дайджест. Поделимся историей про наш переезд из одного дата-центра в Нидерландах в другой, поможем разобраться с потоком уязвимостей и предложим решения для сложных задачек (бюрократических и технических).

Потом го катку в битве гиков! Мы создали :) И не успеете оглянуться, как придёт лето.


Статьи и инструкции
Регистрация доменов через Госуслуги с 1 сентября 2026 года

Осенью вступят в силу требования Федерального закона № 569-ФЗ: теперь всем владельцам доменов придётся проходить обязательную идентификацию через Госуслуги. В статье разбираемся с новыми правилами и рассказываем, что важно сделать прямо сейчас.
firstvds.ru/blog/obyazatelnaya-registraciya-domenov-cherez-gosuslugi-s-1-sentyabrya-2026-goda-razbiraem-novye

GPU: что это, как устроен и для каких задач подойдёт
GPU — крутой инструмент для игр, нейросети, визуализация, анализ данных. В статье рассказываем, как работает графический процессор, какие решения предлагают хостеры и что выбрать для своей задачи.
firstvds.ru/blog/gpu-chto-eto-kak-ustroen-i-dlya-kakikh-zadach-podoydyot

Как сделать лендинг для бизнеса с помощью нейросети — без разработчика и конструктора
Опубликовали статью в крутом медиа для компаний — Бизнес Секретах. Загляните почитать, как собрать лендинг с помощью нейросети, бесплатно и не влезая в код.
secrets.tbank.ru/blogi-kompanij/lending-s-pomoschyu-nejroseti/

Habr: самое интересное за май
На Хабре немного внутренней кухни FirstVDS. Выпустили статью в двух частях про нашу работу в Нидерландах: рассказываем, как запустили площадку с минимальным количеством железа, а потом организовали бесшовный переезд в другой дата-центр.

Также в подборку добавили гайд про злой и страшный eBPF (про который толком никто ничего не знает) и авторизацию в Go.

Ищем авторов для блога на Хабр.
Подготовьте статью на одну из специальных тем или отправьте материал на тему месяца. И если ваша статья подойдёт для блога, вы получите повышенный гонорар.
Тема июня: лайфхаки для гиков.
firstvds.ru/avtoram

Новости мая
Запустили тарифы с vGPU


Расширили возможности аренды серверов с графическими ускорителями — добавили тарифы VDS с vGPU. Подходит для 3D-задач, рендеринга, а также для стримов, гейминга и экспериментов с нейросетями.
vGPU — это виртуальная видеокарта. Один мощный физический GPU (NVIDIA L40S, 48 GB) делится на виртуальные профили: каждая виртуальная машина получает гарантированную долю видеопамяти. Главный плюс vGPU — вы платите ровно за ту мощность, которая нужна. Это позволяет снизить стоимость аренды и не переплачивать за избыточный ресурс.
firstvds.ru/products/vps-vds-gpu

Добавили новый тариф для GPU Passthrough

Дополняем линейку GPU Passthrough. В мае добавили новый тариф с флагманской видеокартой NVIDIA RTX 5090. Это видеокарта нового поколения с максимальной пропускной способностью и поддержкой FP4 — всё, что нужно для высокоскоростного инференса LLM, быстрой генерации видео и продвинутых ML-задач.
firstvds.ru/products/vps-vds-gpu

Стартовали с акцией «День Гика»

Запустили масштабную акцию с настоящей PvP-игрой и артефактами из культовых вселенных. Сражайтесь и выигрывайте крутые игровые консоли и лимитированный мерч!
А ещё участники акции смогут получить скидки и сертификаты на VDS, чтобы развернуть сервер под пет-проект, запускать стримы, работать с 3D, играть в любимые игры или работать с ИИ.
firstvds.ru/actions/geek_day_2026

Обновили S3-хранилище

Продолжаем улучшать наше S3-хранилище.
firstvds.ru/services/s3
Теперь файлы в S3 теперь можно смотреть не скачивая. Добавили в S3 Manager встроенный помощник: с его помощью можно открывать в панели видео-, аудиофайлы а также документы (PDF, Excel, DOCX).
В наш облачный проект CLO добавили файловый менеджер для хранилища S3: теперь можно управлять объектами в хранилище прямо из браузера без установки десктопных клиентов, настройки aws-cli или сторонних утилит.
clo.ru/blog/faylovyy-menedzher-dlya-s3-khranilishcha

Запустили рецепт Portainer

Portainer — это удобный веб-интерфейс для управления контейнерной инфраструктурой. С его помощью можно работать с контейнерами, образами, сетями, томами и стеками без постоянного использования командной строки.
Теперь на сайте можно заказать виртуальный сервер с готовым рецептом Portainer и получить VDS с необходимым ПО и базовой настройкой. Сервис развернут через Docker Compose, запущен и готов к работе.
  • Подходит для быстрого старта.
  • Упрощает управление Docker-окружением.
  • Экономит время на ручной установке и настройке
firstvds.ru/technology/nachalo-raboty-s-portainer-posle-avtomaticheskoy-ustanovki-iz-recepta

Топ новостей из мира безопасности
Заметили, что уязвимостей в последнее время стало заметно больше? Это не случайность: ИБ-компании всё активнее используют ИИ для аудита кода и находят баги быстрее, чем раньше. В индустрии уже появился термин для этого явления — «вулнапокалипсис» (от англ. vulnerability — уязвимость).
Советуем хотя бы одним глазком следить за нашими ИБ-дайджестами: собираем самые важные новости, которые не стоит пропускать в общем потоке

Онлайн-переезд EVPN-VXLAN-фабрики между дата-центрами: euNetworks → QupraDC без остановки сервиса



Меня зовут Рене, я сетевой инженер в FirstVDS. В первой части я рассказывал, как мы запускали небольшую европейскую площадку в Амстердаме: один Leaf, один Spine, routed host networking для гипервизоров, EVPN-VXLAN как сервисная плоскость, DDoS в отдельном VRF, OOBM и Flow-коллектор.

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

Хорошая новость в том, что стартовая схема была построена не вокруг одной большой god-box, а как маленькая, но нормальная фабрика. Именно это позволило нам не делать одно рискованное переключение «всё сразу», а провести переезд через несколько контролируемых промежуточных состояний.

Вводная: ЦОД закрывается, сервис должен жить
Некоторое время площадка проработала штатно. Мы запустили сервисы, подключили обычный транзит, добавили DDoS-защиту и начали жить обычной эксплуатационной жизнью.

А потом пришла вводная: дата-центр euNetworks закрывается, оборудование нужно перевозить.

Для бизнеса вопрос звучал просто: что нужно купить, чтобы переехать? Следом появился второй, более интересный вопрос: можно ли не покупать ничего лишнего или взять это временно в аренду и переехать без остановки клиентского сервиса?

Требования получились такими:
  • по возможности не покупать дополнительное сетевое оборудование;
  • не останавливать продажи и не останавливать клиентский сервис;
  • переносить серверы постепенно;
  • сохранить старую клиентскую IP-адресацию;
  • не сводить переезд к одному большому окну работ, в котором нужно переключить всё и сразу.

Переводя это на сетевой язык, я понял, что нам просто нужен ещё один Leaf в QupraDC, который можно временно включить в существующую фабрику. Старый Spine оставляем в euNetworks, новый Leaf физически ставим в QupraDC, а между площадками поднимаем временный IP-транспорт.

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

Так вынужденный переезд превратился ещё и в проект по повышению отказоустойчивости.

Временный DCI и первые серверы в QupraDC
Чтобы подключить новый Leaf в QupraDC к существующей фабрике, нам понадобился канал между дата-центрами.

На самом деле нам было почти всё равно, как именно поставщик реализует этот канал внутри своей сети: тёмная оптика, лямбда, проброс VLAN по коммутационной фабрике оператора, L2VPN, L3VPN или какой-то иной транспорт. Для нашей задачи была важна не технология, а конкретные технические свойства:
  • пропускная способность не меньше 40G;
  • возможность передавать IP-пакеты между старой и новой площадкой и желательно одним p2p-линком с /31-адресацией;
  • MTU 9216;
  • возможность быстро разобрать канал после завершения миграции;
  • недорого.

Dot1q теги нам были не нужны, потому что мы не тащили пользовательские VLAN между дата-центрами, а даже если бы такая потребность была, то мы бы cделали это силами EVPN-VXLAN. Underlay-интерфейсы на Leaf и Spine были обычными L3-портами с IP-адресацией. По временному каналу должны были ходить IP-пакеты underlay и поверх них — VXLAN-инкапсулированный трафик overlay.

MTU был критичен. Внутри underlay передаются не только обычные IP-пакеты, но и трафик виртуальных машин в VXLAN-инкапсуляции. Если клиентская VM отправляет стандартный 1500-байтный пакет, к нему добавляется накладной расход VXLAN/UDP/IP. Если забыть про это на междатацентровом канале, можно получить неприятные проблемы с фрагментацией или чёрными дырами для части трафика. Отдельная практическая причина — сервисная потребность использовать jumbo frames для сетевых хранилищ: такие сценарии тоже требуют нормального запаса MTU в фабрике.

На underlay-интерфейсах мы используем MTU 9216 байт. Это максимальный размер передаваемого пакета для наших коммутаторов, поэтому нет практического смысла задавать меньшее значение внутри управляемой нами фабрики. Такой MTU даёт достаточный запас под VXLAN-инкапсуляцию, упрощает эксплуатацию и используется как единый стандарт во всех наших IP-фабриках.

Важно подчеркнуть: мы не строили stretched-L2 между дата-центрами. Временный L2-канал от поставщика использовался как транспорт для нашей L3-связности underlay. Для фабрики новый Leaf выглядел как ещё один Leaf, который просто находится чуть дальше, чем ожидалось ранее.

Никаких растянутых клиентских VLAN через xSTP, никаких попыток склеить две площадки в один большой L2-домен. Только IP-связность underlay и EVPN-VXLAN поверх неё.

Новый Leaf должен был быть точно такой же модели, чтобы сетевые чипы и версии программного обеспечения были максимально идентичны. В миграции под давлением и в условиях дефицита времени это важно. Теоретически EVPN должен нормально работать между разными платформами, но на практике смешивание разных чипов, разных версий ПО и разных профилей поведения control plane может превратить переезд в отладку ещё неразрешенных багов.

После физической установки нового Leaf в QupraDC последовательность работ была такой:
  • Подключили новый Leaf через временный 40G-канал к существующему Spine.
  • Настроили базовую IP-связность underlay.
  • Проверили reachability между участниками фабрики.
  • Подняли BGP-сессии underlay и overlay.
  • Отмониторили стабильность BGP-сессий и качество канала.
  • Проверили, что новый Leaf участвует в EVPN control plane и корректно получает необходимые маршруты.

На этом этапе важно было не торопиться с клиентской нагрузкой. Сначала должна стабильно заработать управляющая плоскость: reachability VTEP-адресов, MP-EBGP EVPN, передача маршрутной, MAC/IP-информации и EVPN Type 5 routes, а также программирование EVPN database. Только после этого можно перевозить первые серверы.



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

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

Получилась временная, но рабочая топология: часть серверов оставалась в euNetworks, часть уже находилась в QupraDC, старый Spine физически оставался в euNetworks, новый Leaf был в QupraDC, между площадками работал временный канал, а логически всё это оставалось одной фабрикой.

Маршрут до виртуальной машины на перенесённом сервере мог выглядеть так: интернет → старый Leaf → Spine → междатацентровый канал (DCI) → новый Leaf → гипервизор → VM.

Это не самый прямой путь, но для промежуточного состояния он был приемлем: задержка увеличилась на единицы миллисекунд, а для нашей VDS-нагрузки это не столь критично. Главное — сервис оставался доступен, а мы получали возможность переносить серверы партиями.

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

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

Перенос внешней связности и инфраструктуры


Когда в QupraDC оказалась примерно половина нагрузки, стало нерационально гонять весь внешний трафик через старую площадку. Серверы уже физически находились в новом дата-центре, но весь входящий и исходящий трафик всё ещё проходил через euNetworks, старый Leaf и временный междатацентровый канал.

К счастью, наш IP-транзитный оператор присутствовал и в QupraDC. Это позволило перенести одну из BGP-сессий с апстримом в новую локацию.

Здесь важно уточнить: в QupraDC мы не повторяли старую физику 2×10G. При переносе стыка в новую локацию сразу включили 100G-подключение на новом Leaf. Сервисно это выглядело как перенос одной из двух BGP-сессий вместе с её VLAN и point-to-point-адресацией /31, а физически — как переход новой площадки на 100G-аплинк.

После этого схема стала такой:
  • одна BGP-сессия с апстримом осталась на старом Leaf в euNetworks через старый 10G-стык;
  • вторая BGP-сессия с тем же апстримом поднялась на новом Leaf в QupraDC уже через 100G-подключение;
  • оба Leaf продолжили участвовать в общей фабрике;
  • внешний трафик начал распределяться между двумя площадками.

С нашей стороны появился второй выход к тому же оператору, но уже из новой локации и на новой физике. На каждом Leaf был свой локальный default-route от апстрима. Кроме того, default-route мог распространяться внутри overlay как EVPN Type 5 route, чтобы у фабрики сохранялась связность между частями временной схемы.

Оператор со своей стороны также использовал multipath и старался отдавать входящий трафик относительно симметрично. В результате мы получили два полезных эффекта.

Первый — разгрузили временный канал между дата-центрами. Трафик к серверам, которые уже находились в QupraDC, теперь мог приходить и уходить через аплинк в той же локации, а не обязательно через euNetworks.

Второй — получили первый практический элемент отказоустойчивости внешней связности. Да, это всё ещё была переходная схема, но уже не один-единственный внешний выход на всю распределённую между двумя ЦОД нагрузку.

DDoS-сервис переносился параллельно и по той же логике. DDoS-защитный провайдер тоже присутствовал в QupraDC, поэтому его подключение можно было перенести в новую локацию без изменения прежней модели. Стык с ним также состоял из двух BGP-сессий на двух разных юнитах, с разными VLAN-тегами на два разных Leaf. С точки зрения маршрутизации и фильтров всё осталось прежним: изменилось только физическое место подключения.

На этом этапе состояние выглядело так: часть серверов уже в QupraDC, часть ещё в euNetworks, внешний транзит, в том числе защищённый, работает на обеих площадках, в QupraDC уже используется 100G-стык к апстриму, оба Leaf участвуют в маршрутизации, миграция продолжается без остановки клиентского сервиса.

После переноса основной части клиентской нагрузки пришла очередь инфраструктурных виртуальных машин.

Перевозить route reflector нужно аккуратно. Если одновременно потерять оба, гипервизоры не смогут нормально распространять маршруты до виртуальных машин, и сеть начнёт терять информацию о достижимости префиксов VDS.

Поэтому мы переносили их по одному: проверяли текущее состояние BGP-сессий и набор отражаемых маршрутов, выводили один route reflector из активной эксплуатации, перевозили или перезапускали его в новой локации, дожидались восстановления BGP-сессий, проверяли, что маршруты от гипервизоров снова видны на Leaf, и только после этого переходили ко второму route reflector.

В сетевой инфраструктуре route reflector — это не просто очередная виртуальная машина. Это элемент управляющей плоскости, и обращаться с ним нужно соответствующе.

После переноса RR и оставшейся инфраструктуры мы перенесли вторую BGP-сессию с апстримом в QupraDC. Напомню, внешняя связность в новой локации уже строилась на 100G: целевая схема предусматривала два независимых 100G-стыка, по одному на каждый Leaf.

К этому моменту вся клиентская и инфраструктурная нагрузка находилась в QupraDC. Старая площадка фактически оставалась только местом, где ещё физически стояли старые Leaf и Spine, а также один инфраструктурный сервер виртуализации, который нужно было убрать последним.

Финальный переезд железа и приведение схемы к отказоустойчивому виду
Когда клиентской нагрузки в euNetworks уже не осталось, мы смогли перевезти старое сетевое оборудование и другие остатки инфраструктуры.

На этом этапе старый Leaf и Spine уже не были критичны для клиентского сервиса в прежнем смысле. Основная нагрузка находилась в QupraDC, внешние BGP-сессии были перенесены туда же, а временный междатацентровый канал продолжал поддерживать связность на время завершения работ.

Мы обесточили старый Leaf и Spine, демонтировали их, перевезли в QupraDC, смонтировали и включили обратно.

Ключевой момент: конфигурацию менять не пришлось. Адресация underlay сохранилась, роли устройств сохранились, BGP-сессии после включения поднялись заново. С точки зрения фабрики это выглядело почти так, как будто патчкорды стали короче, а устройства переехали физически ближе к остальной нагрузке.

После этого переезд можно было считать завершённым: клиентская нагрузка находилась в QupraDC, инфраструктурные сервисы находились там же, обе BGP-сессии к апстриму были подняты из QupraDC на 100G-стыках, стык с DDoS-провайдером был перенесён в QupraDC, старое сетевое оборудование было физически перевезено на новую площадку.

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


После переезда обнаружилась ожидаемая промежуточная ситуация: большая часть серверов по-прежнему была подключена только к одному Leaf — тому самому, который мы первым установили в QupraDC для миграции.

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

Поэтому следующим этапом мы начали перекладывать серверные подключения так, чтобы каждый гипервизор имел по одному рабочему 10G-линку в каждый Leaf.

Здесь важно не спутать это с классическим LACP/ESI-LAG. Мы не собирали два физических линка в один L2-агрегат и не строили multihoming через LACP. Модель осталась той же, что и раньше. Разница только в том, что теперь эти два L3-пути идут не в один и тот же Leaf, а в два разных.

Так мы получили простую и понятную отказоустойчивость на уровне доступа. Если падает один линк, трафик остаётся на втором. Если падает один Leaf, для гипервизора это также выглядит как потеря одного из next-hop, а второй путь продолжает работать.

С точки зрения диагностики такая схема остаётся очень прозрачной. Нет необходимости выяснять, что именно произошло с LACP-состоянием, кто из пары коммутаторов считает себя активным и как отработала дополнительная сигнализация EVPN multihoming. В такой схеме DF election завязан на Type 4 — Ethernet Segment route, а aliasing и mass-withdraw — на Type 1 Ethernet A-D routes: per-ES и per-EVI. Это рабочая модель, но при отказах в ней появляется больше состояний, которые нужно уметь проверять и отлаживать.

В нашем случае есть интерфейс, есть connected route, есть next-hop, есть BGP-анонс VM-префикса. Каждый элемент можно проверить отдельно.

Важный нюанс — IPMI. У большинства серверов отдельный порт управления один. Его невозможно одновременно подключить в два Leaf без дополнительной схемы. Поэтому IPMI-порты мы распределили симметрично: часть серверов смотрит в первый Leaf, часть — во второй. При отказе одного Leaf мы теряем доступ к IPMI части серверов, но не ко всем сразу. Для этой задачи это приемлемый компромисс.

После финальной коммутации внешняя связность выглядела так:
  • каждый Leaf имеет собственное 100G-подключение к апстриму;
  • каждая BGP-сессия поднимается независимо;
  • оба Leaf могут анонсировать одинаковый набор наших префиксов;
  • отказ одного Leaf не убивает внешний канал целиком;
  • отказ одного 100G-линка не оставляет площадку без транзита;
  • входящий и исходящий трафик может распределяться через multipath.

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

Проверяли несколько сценариев.

Первый сценарий — перезагрузка одного Leaf. При его недоступности серверы убирают недоступный next-hop из ECMP-группы и продолжают использовать второй путь, а внешний трафик перераспределяется через другой Leaf. Для клиентского сервиса это не должно выглядеть как полноценная авария: возможна кратковременная потеря отдельных пакетов в момент сходимости, но не длительный простой.

Второй сценарий — перезагрузка второго Leaf. Проверка симметричная, но её всё равно нужно проводить отдельно. В реальной эксплуатации часто выясняется, что «одинаковые» устройства отличаются мелочами: набором подключённых серверов, BGP-соседствами, политиками или физической коммутацией.

Третий сценарий — отключение серверных интерфейсов. При физическом обрыве всё работает быстро: сетевой стек гипервизора видит carrier loss, маршрут через этот интерфейс перестаёт использоваться, и трафик остаётся на другом ECMP-пути. В этом случае не нужно ждать истечения BGP holdtime, потому что проблема видна на уровне интерфейса.

BGP-таймеры важны для других случаев: например, если BGP-демон на соседней стороне завис, а физический линк при этом остался поднятым. Для таких сценариев худшее время обнаружения зависит уже от настроек BGP/BFD.

Четвёртый сценарий — отключение линков к апстриму. Когда внешний интерфейс становится недоступен, из таблицы маршрутизации уходят связанные с ним connected routes, BGP-сессия к оператору теряет транспортную связность и сбрасывается. После этого маршруты через этот стык перестают использоваться, а трафик перераспределяется через оставшийся внешний путь.

Пятый сценарий — проверка DDoS-сегмента. Здесь всё плюс/минус аналогично, проверяется отказ стыка к DDoS-провайдеру.

Для быстрой детекции отказов в самой IP-фабрике используется BFD. Благодаря BFD мы не ждём длинных BGP-таймаутов: если сосед перестаёт отвечать, путь быстрее признаётся нерабочим, и трафик перераспределяется по другим next-hop'ам в рамках ECMP-группы

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

Внимательный читатель заметит: после всех улучшений Spine всё ещё один. Значит ли это, что он остаётся single point of failure?

Формально — да, если смотреть на фабрику как на каноническую Spine–Leaf-архитектуру. В идеальном мире Spine тоже должно быть минимум два. Тогда отказ любого одного устройства на любом уровне не приводит к потере связности фабрики.

Но в нашей текущей топологии отказ Spine не равен полной остановке клиентского сервиса.

Причина в том, что два Leaf после переезда не завязаны на Spine как на единственную точку выхода наружу или единственный шлюз для серверов:
  • каждый Leaf имеет собственную BGP-сессию к апстриму;
  • каждый Leaf получает свой локальный default-route от оператора;
  • оба Leaf анонсируют одинаковый набор наших внешних префиксов;
  • гипервизоры подключены к обоим Leaf отдельными L3-связями;
  • маршруты до виртуальных машин распространяются через BGP;
  • если нет BGP-сигнализации до конкретного VM-префикса, сеть не считает этот путь рабочим.

То есть ситуация «трафик пришёл на Leaf, а дальше его некуда доставить» в нормальном состоянии не должна возникать. Если конкретный хостовой линк падает, соответствующий путь исчезает. Если Leaf теряет внешнюю связность, трафик может уйти через второй Leaf, у которого есть свой апстрим.

При этом один Spine всё равно остаётся техническим компромиссом. Он приемлем для текущего масштаба и текущей топологии, но его не нужно выдавать за идеальную архитектуру. Когда появится следующий Leaf или вырастут требования к отказоустойчивости fabric-underlay, я буду предлагать вернуться к вопросу второго Spine.

В какой-то момент один Spine перестаёт быть разумным компромиссом и становится техническим долгом. Тогда фабрику нужно будет довести до более канонической Clos-топологии с избыточностью на каждом уровне.

Итоги второй части и что дальше
В результате мы не просто переехали из euNetworks в QupraDC. Мы использовали вынужденную миграцию как повод улучшить архитектуру.

До переезда схема была минимальной: один Leaf, один Spine, вся нагрузка в одной физической локации, внешний аплинк 2×10G, Leaf одновременно выполняет роли server leaf и border leaf, отказоустойчивость на уровне фабрики минимальная.

После переезда схема стала заметно сильнее: два Leaf в новой локации, серверные подключения разнесены по двум Leaf, внешние BGP-сессии к апстриму подняты с разных Leaf, внешняя физическая связность в QupraDC сразу собрана на 2×100G, DDoS-сервис перенесён в QupraDC, его подключения также разнесены по двум Leaf.

Главное — что мы не меняли архитектурную модель в процессе переезда. Новый Leaf встроился в уже существующую фабрику, серверы продолжили работать в routed-модели, VM-префиксы продолжили распространяться через BGP, а EVPN-VXLAN остался общей управляющей и сервисной основой площадки.

Именно поэтому миграция была управляемой. Мы не превращали переезд в одну большую рискованную операцию, в которую пришлось бы уместить все этапы, а долго жили в промежуточных состояниях: сначала один Leaf в старой локации, потом второй Leaf в новой, потом часть серверов там и часть здесь, потом BGP-сессии с апстримом на двух площадках, потом вся нагрузка в QupraDC, потом физический переезд старого оборудования.

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

Второй вывод — временные схемы нужно проектировать так же аккуратно, как постоянные. Даже если канал между ЦОД нужен на несколько недель, у него должны быть понятная роль, понятные ограничения, наблюдаемость и критерии отключения. Иначе временная миграционная конструкция легко превращается в часть продакшена, о которой все забыли.

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

Следующий необходимый этап — второй независимый апстрим. Две BGP-сессии к одному оператору дают резервирование на уровне наших стыков, Leaf-коммутаторов и физических линков. Но они не защищают от аварии внутри сети самого ISP: проблем на магистрали, ошибок маршрутизации, отказов route-server'ов провайдера или неудачных изменений в его политике. В такой ситуации уже не так важно, что с нашей стороны подняты две сессии: если проблема находится внутри операторской сети, оба стыка могут деградировать одновременно.

Поэтому нужен хотя бы полуавтоматический резерв через другого оператора. На первом этапе это не обязательно должна быть полноценная схема с балансировкой. Достаточно иметь резервный default-route от второго апстрима, менее приоритетный через BGP policy: основной default используется через текущего оператора, а при его отказе трафик автоматически уходит через резервный путь.

Но здесь есть важный нюанс: такое переключение сработает само только если BGP-сессия действительно погасла и маршрут был отозван. Аварии внутри операторской сети не всегда выглядят именно так. Сессия может оставаться поднятой, default-route — присутствовать в RIB, а качество связности при этом уже стать неприемлемым. В таких случаях нужны мониторинг, понятные процедуры переключения и рабочий OOBM-доступ, чтобы можно было быстро вмешаться и поменять политику маршрутизации не через сломанную сеть.

И вполне вероятно, что в какой-то момент появится смысл вынести внешнюю маршрутизацию на полноценную пару border-router'ов операторского класса с full view. Но это уже следующий этап для нас: сотни гигабит трафика, несколько апстримов, более сложный traffic engineering и отдельные требования к пиринговой политике.

Ещё один очевидный шаг — второй Spine. Пока один Spine остаётся приемлемым компромиссом для текущей топологии, но при дальнейшем росте Leaf-коммутаторов и требований к отказоустойчивости его нужно будет добавить. Тогда фабрика станет ближе к канонической Clos-топологии: несколько Leaf, несколько Spine и отсутствие единственной точки отказа не только в underlay, но и в overlay control plane. В нашей схеме Spine участвует в распространении EVPN-информации, поэтому его резервирование важно не только для транспортного уровня, но и для управляющей плоскости overlay.

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

Автор статьи: Рене, сетевой инженер FirstVDS

firstvds.ru

Один сервер, чтобы править всеми



Стартовала акция ко Дню Гика! Внутри — много приятных бонусов:
  • скидки на заказ новых VDS до 30%,
  • спецтариф «FirstGeek» с фиксированной ценой на заказ и продление.

Присоединяйтесь к Битве Гиков! На сайте вас ждёт онлайн-игра, где можно сражаться на рене, зарабатывать валюту и менять её на реальные призы: сертификаты на баланс, фирменный мерч и скидку на продление VDS.

Среди игроков разыграем по-настоящему эпичные призы: PlayStation 5 Pro 2 Тб, Steam Deck OLED 512 Гб и сертификаты на баланс аккаунта по 2500 ₽.
firstvds.ru/actions/geek_day_2026/activity/login

Маленькая EVPN/VXLAN-фабрика без тупика: как мы запускали площадку в Амстердаме



Меня зовут Рене, я сетевой инженер в FirstVDS. Я работаю из Иркутска и люблю строить сетевые фабрики на базе VXLAN/EVPN — не в теории, не в лабе, а на практике в жёстком продакшене, где важнее не красивый референс-дизайн, а то, насколько решение готово к авариям, миграциям нагрузки, физическому переезду и неожиданным вводным от бизнеса.

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

Помимо самой фабрики, я сознательно затрону несколько смежных тем: подключение гипервизоров, DDoS-защиту, Flow-коллектор, RTBH, OOBM и консольный доступ. Эти детали не являются центральной темой статьи, но без них картина сетевого дизайна получается неполной.

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

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

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

Мой ответ был простым: строим фабрику в архитектуре Clos/Fat-Tree, а, значит, нам нужны Leaf и Spine. На старте — по одному устройству в каждой роли, остальные держим в уме как следующий этап масштабирования.

Leaf должен был выполнять роль коммутатора доступа для серверов виртуализации, поддерживать VXLAN/EVPN и уметь L3-gateway. Для стартовой схемы мы выбрали модель с 48×10G портами под downlink и 6×100G на uplink-портах. Spine — коммутатор с возможностью маршрутизации и deep buffer. Под эту задачу хорошо лёг коммутатор с портовым радиксом 36×40G одного известного производителя.

Самый дешёвый стартовый вариант выглядел бы так: поставить один большой коммутатор, подключить к нему серверы и аплинк, а затем считать задачу закрытой. Проблема в том, что такая схема решает только боль первого дня. Она не даёт нормального scale-out. Когда закончатся порты, появится новая стойка или потребуется разнести подключения по разным устройствам, сеть придётся не расширять, а перестраивать.

Для Clos-модели рост выглядит иначе: если закончились порты на первом Leaf, мы добавляем второй Leaf, подключаем его к Spine и продолжаем предоставлять сервис по прежней логике. Не нужно заново придумывать адресацию, переписывать модель подключения серверов или переносить клиентов в новую сеть.

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

Хосты виртуализации: routed host networking вместо классического L2
Важная деталь: наши серверы виртуализации не подключаются как обычные хосты в одном большом или нескольких L2-доменах. Мы используем оркестратор виртуализации ISPsystem VMmanager 6 в режиме IP-Fabric, где сеть до гипервизора строится через динамическую маршрутизацию — через BGP.

Каждый гипервизор подключается к фабрике двумя физическими 10G-линками. Каждый линк — это отдельный point-to-point линк с адресацией /31 из приватного диапазона.

На гипервизоре нет LACP bond поверх этих двух портов. Вместо этого на хосте настроены статические маршруты по умолчанию через оба сетевых интерфейса. Оба next-hop равнозначны, поэтому исходящий трафик может распределяться через ECMP средствами Linux, по L4 hash: IP-адрес источника, IP-адрес назначения, протокол, порт источника и порт назначения. Такое поведение требует изменения ряда параметров ядра Linux: по умолчанию используется другой алгоритм выбора пути.

То есть отказоустойчивость и балансировка здесь строятся не через LAG/LACP, а через обычную маршрутизацию. Для сети это два независимых L3-линка, а не один логический L2-агрегат.

Мы сознательно не стали делать классический LAG/Port-channel через LACP bond в режиме 802.3ad. Команда «погонщиков» виртуализации протестировала оба подхода: bond-модель и routed-модель. В продакшен выбрали именно маршрутизацию. По их наблюдениям, routed-вариант давал меньше CPU utilization, позволял сохранить NUMA-локальность и лучше ложился на задачи, где важны pps и bps.

С эксплуатационной точки зрения такая L3-схема даже проще. Если физический линк до Leaf падает, гипервизор видит carrier loss, связанный с этим интерфейсом маршрут по умолчанию перестаёт использоваться, и трафик продолжает идти через оставшийся линк.

LACP/multihoming даёт отказоустойчивость, но добавляет много состояний, которые сложно отлаживать. Уже на этом этапе мы держали в голове будущую топологию, где серверы должны были подключаться не двумя линками в один Leaf, а двумя независимыми L3-линками в разные Leaf. Поэтому сравнение с LACP/multihoming важно не только теоретически — оно напрямую связано с тем, как площадка должна была развиваться дальше.

Отдельная часть схемы — доставка трафика до самих виртуальных машин. Сети виртуальных сетевых интерфейсов на гипервизоре не бриджуются с основной сетью хоста. Между виртуальными интерфейсами и внешней сетью выполняется L3-forwarding на хосте виртуализации. Иными словами, гипервизор не протягивает клиентский L2-сегмент наружу, а маршрутизирует трафик для виртуальных машин.

Маршруты до виртуальных машин анонсируются с гипервизоров по BGP. Каждый гипервизор сообщает, какие VM-префиксы находятся именно на нём. Обычно это host-routes /32 для IPv4-адресов виртуальных машин и /64 для IPv6.

Чтобы не строить full mesh из BGP-сессий между всеми гипервизорами и Leaf-коммутаторами, гипервизоры пирятся с двумя RR-серверами. В этой части схемы гипервизоры и RR находятся в одной ASN: RR принимают маршруты от гипервизоров как iBGP route reflector, а дальше передают их в сторону Leaf уже через eBGP, с политикой не переписывать next-hop. Уникальные приватные ASN на каждое устройство относятся к сетевым устройствам фабрики — Leaf и Spine, — а хостовая часть с гипервизорами и RR живёт в своей BGP-модели.

RR позволяют удержать количество BGP-сессий под контролем и упростить ввод новых гипервизоров через плейбуки Ansible. RR — это такая же Linux-машина с BGP-демоном. Минимум два RR на разных инфраструктурных хостах нужны для того, чтобы отказ одного из них не ломал распространение маршрутов до виртуальных машин.

Тут важна не внутренняя реализация VMmanager, а сама сетевая модель: клиентские адреса не выносятся в общий L2-домен, а становятся маршрутизируемыми префиксами, достижимость которых распространяется через eBGP family unicast.

Почему VXLAN/EVPN, если нагрузка в основном маршрутизируемая
На первый взгляд может возникнуть вопрос: если хосты виртуализации подключаются через маршрутизацию, зачем вообще нужен VXLAN/EVPN? Почему не построить чистую IP-фабрику без overlay?

Причин несколько.

Во-первых, у нас уже был накоплен серьёзный эксплуатационный опыт с VXLAN/EVPN. Мы понимали, какие версии программного обеспечения стабильны, какие функции на каких чипах работают предсказуемо, какое оборудование подходит нам по цене и по производительности, а какие варианты лучше не брать в продакшен. Когда уже есть отлаженная автоматизация и понятный набор проверенных шаблонов, развернуть такую фабрику можно быстро и без большого объёма ручных операций.

Во-вторых, текущая нагрузка не обязана навсегда оставаться единственным сценарием.

Сегодня в локации продаются VDS, и основная модель — маршрутизация до гипервизоров. Завтра бизнес может решить продавать в Амстердаме bare metal для массового рынка. И как бы мы ни вдохновлялись RFC 7938, реальные сервисы могут оказаться разными. Например, это могут быть сервисы для корпоративного заказчика, где по сей день любят L2 и часто требуют его просто потому, что так исторически сложилось.

Многолетний опыт работы в корпоративных средах, где либо не умеют, либо не хотят нормально планировать сеть, наводит меня на мысль, что «один большой VLAN на всё» для многих до сих пор остаётся базовым требованием. Так быть, конечно, не должно, но реальность от этого не меняется. Такой клиент вполне может потребовать не routed-модель, а обычное мостовое подключение своих серверов или гипервизоров.

При этом строить современную дата-центровую сеть на L2 — плохая инженерная практика и моветон. И проблема не только в размере конкретного L2-домена. Сама модель хуже управляется: широковещательный трафик, зависимость от ARP/ND, обучение MAC-адресов, риски петель, неявное поведение при отказах и сложная диагностика. Чем больше такая сеть, тем сильнее проявляются эти проблемы, но принципиально они никуда не исчезают даже в небольших сегментах.

Реальность такова, что спрос на L2-сервисы со стороны заказчиков никуда не делся. Если это не заложено в дизайн заранее, потом останется два варианта: отказывать или срочно что-то придумывать. L2 в дата-центре должен быть вынужденным сервисом, а не основой архитектуры.

EVPN/VXLAN позволяет эмулировать L2 поверх маршрутизируемой фабрики, не превращая весь дата-центр в набор мостовых соединений. А наша текущая маршрутизируемая нагрузка аккуратно ложится в отдельный routing-instance поверх overlay-сети и не смешивается с underlay. При необходимости рядом можно добавить новые L2-сервисы, отдельные VLAN/VNI, MAC-VRF и другие сценарии — не ломая базовую архитектуру.

То есть VXLAN/EVPN здесь не потому, что нам обязательно нужно растягивать L2 прямо сейчас. Он нужен как универсальная сервисная плоскость, которая не заставит нас в будущем переезжать на новую архитектуру.

Стартовая фабрика: ERB, eBGP и lean Spine


Как и было запрошено на старте, мы запускались с одним Leaf и одним Spine.

Формально это уже Spine–Leaf, хотя с точки зрения отказоустойчивости такая схема, конечно, не является полноценной сетью Clos. Но на этом этапе было важнее другое: мы сразу заложили правильные роли устройств и правильную плоскость управления, а не построили временную сеть, которую потом пришлось бы болезненно апгрейдить.

Мы используем модель ERB — Edge-Routed Bridging. В такой архитектуре маршрутизация выполняется на краю фабрики, ближе к серверам, то есть на Leaf-коммутаторах. Spine остаётся транспортным уровнем underlay и не превращается в центральную точку маршрутизации всех L3-сетей в overlay.

Leaf в нашей схеме выполняет сразу несколько ролей:
  • коммутатор доступа для серверов виртуализации;
  • VTEP, то есть точка терминации VXLAN-туннелей;
  • L3 шлюз для маршрутизации между VLAN/VNI через IRB-интерфейсы;
  • выполняет роль stateless firewall, но объём правил ограничен ресурсами TCAM чипа;
  • border leaf для выхода в интернет и подключения внешнего IP-транзита через единственного ISP.

Underlay собран на eBGP: отдельные point-to-point-связи между Leaf и Spine, отдельная адресация, отдельные BGP-соседства. Overlay control plane работает через MP-EBGP EVPN, а data plane — через VXLAN. Для выделения ASN использовалась модель с уникальным приватным номером автономной системы под каждое сетевое устройство фабрики: у каждого Leaf и Spine была своя ASN.

eBGP с уникальными ASN хорошо формализуется: у каждого устройства чётко определены роль, соседи, address families, политики и маршруты. Для автоматической валидации это удобнее, чем более свободная iBGP/RR-топология. Но на Spine'ах обязательно должен быть настроен next-hop unchanged для EVPN-маршрутов транзитных Leaf, потому что eBGP по умолчанию переписывает next-hop своим адресом, что ломает VTEP-to-VTEP reachability.

Есть и практический плюс для эксплуатации: по AS-PATH очень наглядно видно, через какие устройства проходит маршрут внутри фабрики. Это удобно при диагностике и при разборе несимметричных или неожиданных путей. А если нужно временно увести трафик с проблемного участка, можно повлиять на выбор пути стандартными BGP-инструментами, например добавив AS-path prepend на нужном направлении.

Spine на первом этапе был почти без нагрузки. Он стоял, гудел и ждал момента, когда в фабрике появится второй Leaf. Это может выглядеть избыточно, но в такой архитектуре Spine — не лишняя коробка, а задел под нормальный горизонтальный рост.

В этой роли Spine можно считать lean spine: он обеспечивает IP-связность underlay между Leaf-коммутаторами и может участвовать в BGP overlay, распространяя EVPN-маршруты. При этом ему не обязательно быть VTEP, не обязательно терминировать VXLAN и не обязательно держать IRB-шлюзы клиентских сетей.

Аплинк к IP-транзиту был заведён на Leaf. Физически это был 2×10G LACP bundle. С внешним оператором мы подняли две BGP-сессии и начали анонсировать наши префиксы. Полную таблицу маршрутизации на Leaf мы не принимали: для стартовой схемы было достаточно default-route от оператора. RIB для внешней связности оставался минимальным.

Так мы получили минимальную, но не тупиковую площадку: первые серверы виртуализации, VLAN/IRB под серверные подключения, overlay через EVPN и готовность добавить следующий Leaf без смены архитектуры.

Сервисные контуры: DDoS, OOBM и телеметрия


После запуска площадки клиенты быстро начали запрашивать DDoS-защиту. Для этого мы подключили внешнего поставщика фильтрации трафика.

Аплинк к DDoS-транзиту был аналогично заведён на Leaf, через наших постоянных партнёров, специализирующихся на подобном сервисе. Физически это также 2×10G LACP bundle. Мы подняли две BGP-сессии: фактически это были две отдельные point-to-point-стыковки в разных юнитах, с собственной адресацией для каждой сессии.

Важное требование было таким: защищённый трафик не должен смешиваться с обычным IP-транзитом на уровне маршрутной политики. Поэтому мы вынесли DDoS-направление в отдельный VRF.

Внутри этого VRF был выделен отдельный свободный на тот момент префикс. Он анонсировался только в сторону провайдера DDoS-фильтрации. В результате в сети появились две логические зоны: основной VRF с обычным IP-транзитом и отдельный VRF для DDoS-protected transit.

Исходящий трафик с защищённого ресурса направлялся через FBF — filter-based forwarding. На интерфейсах, смотрящих в сторону родительских серверов, применялся фильтр: если source IP попадал в защищённый префикс, для такого трафика выбирался routing-instance с DDoS-защитой.

Обратное направление было сделано через статический маршрут с действием next-table. Такая конструкция означает не перенос пакета между VRF, а повторный lookup в другой таблице маршрутизации. В нашем случае маршрут из защищённого VRF продолжал поиск в таблице базового VRF, где уже находились маршруты до нужных виртуальных машин и гипервизоров.

С точки зрения клиента схема выглядела просто: он заказывает услугу и получает адрес из необходимого пула — обычного или защищённого. На стороне серверов при этом не требовалось менять модель подключения. Вся разница оставалась внутри сетевой маршрутизации и фильтров внутри VRF.

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

Сеть в Амстердаме мы эксплуатируем удалённо. Делать это через саму продакшен-сеть было бы плохой идеей: если ошибка в конфигурации, отказ control plane или проблема с аплинком ломает основную связность, доступ к оборудованию всё равно должен сохраняться.

Поэтому управление сетевым оборудованием вынесено в отдельный OOBM-контур — out-of-band management. Это независимая сеть управления, которая не зависит от клиентского трафика, EVPN/VXLAN-фабрики и внешнего IP-транзита.

Но одного OOBM недостаточно. Бывают ситуации, когда устройство загружается некорректно, ломается конфигурация management-интерфейса или требуется смотреть процесс загрузки до поднятия сети управления. Для таких случаев у нас есть доступ к последовательным консолям коммутаторов через консольный сервер. Терминал всех коммутаторов доступен через web-интерфейс с HTML5-просмотрщиком, поэтому к консоли можно подключиться без физического присутствия в дата-центре.

Для сетевой телеметрии мы используем sFlow. С коммутаторов собираются выборки трафика, а коллектор работает на одной из инфраструктурных виртуальных машин. sFlow не заменяет полноценный мониторинг состояния устройств, BGP-сессий, интерфейсов и ошибок на портах, но хорошо помогает видеть профиль трафика: кто с кем обменивается данными, какие направления растут, какие префиксы дают нагрузку и где может начинаться аномалия.

В контексте DDoS-защиты и внешнего транзита это особенно полезно. Сетевая телеметрия используется не только для ручного анализа, но и для обнаружения DDoS-атак. Если система видит аномальный трафик на конкретный адрес, она может автоматически инициировать RTBH — Remotely Triggered Black Hole. Для этого в BGP анонсируется host-route атакуемого адреса, обычно /32 для IPv4 или /128 для IPv6, с blackhole-community оператора. После этого операторская сеть начинает отбрасывать трафик до того, как он доедет до нашей площадки.

Итоги первой части
Эта первая часть не про героический переезд, а про скучную, но важную подготовку почвы. Мы не пытались сделать маленькую площадку «как-нибудь, лишь бы запустилось». Мы сразу разложили роли: Leaf для доступа и сервисов, Spine для underlay и EVPN control plane, гипервизоры — через маршрутизацию, DDoS — в отдельный VRF, управление — через OOBM.

Главный практический результат здесь простой: минимальная архитектура не обязана быть времянкой. Один Leaf и один Spine — это ещё не полноценная отказоустойчивость, но уже нормальная декомпозиция ролей. Если маленькую площадку с первого дня строить как фабрику, следующие элементы добавляются как штатное расширение, а не как болезненная переделка сети.

Вторая важная мысль: L2 не должен становиться фундаментом дата-центра. Если он нужен заказчику или отдельному сервису, его можно дать как эмулированный L2-сервис поверх EVPN/VXLAN. Но сама фабрика при этом остаётся маршрутизируемой и предсказуемой.

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

Автор статьи: Рене, сетевой инженер FirstVDS
firstvds.ru

А 27 мая будет интересно



Ко Дню гика мы решили подготовить нечто большее, чем просто хороший повод написать письмо. Но как любая уважающая себя гейм-дев студия, чуть задержались с релизом, чтобы всё было в лучшем виде.

Уже 27 мая на FirstVDS стартует яркая акция для тех, кому близки игры, технологии, фантастика и культовые вселенные.

Будет всё, что мы любим: скидки, подарки, шанс побороться за звание самого «гиканутого» гика и это далеко не всё…

Пока не раскрываем все карты, но точно советуем следить за обновлениями, скоро будет интересно.

t.me/TakeFirstNews

Обновление S3-хранилища



В файловом менеджере S3 появилась новая функция – встроенный просмотр файлов.

Теперь вы можете открыть видео, аудио, PDF, Excel, DOCX или текст прямо в интерфейсе. Это особенно удобно, когда в бакете сотни файлов: не придётся ничего скачивать, если нужно срочно отыскать ту самую папку «Анапа 2007».

Хотите оценить удобство? Тогда жмите по кнопке ниже!

firstvds.ru/services/s3

Запуск, которого ждали — VDS c vGPU в проде!



Расширяем возможности аренды серверов с графическими ускорителями. Теперь можно заказать VDS с виртуализированной видеокартой (vGPU). Решайте привычные задачи на GPU быстрее и проще:
  • тестируйте гипотезы, запускайте нейросети или ИИ-агентов.
  • Особенности решения:
  • Запуск за пару кликов: мы подготовили готовые конфигурации — просто выберите подходящую и стартуйте.
  • Никакой головной боли с настройкой: в шаблонах ОС уже предустановлены драйверы NVIDIA и CUDA.
  • Посуточная тарификация: платите только за дни, когда пользуетесь сервером.

Под капотом: NVIDIA L40S на 48 ГБ и AMD EPYC до 3.9 ГГц. Виртуализация KVM. Стоимость от 299 рублей в сутки.
firstvds.ru/products/vps-vds-gpu

Обновили функционал S3



В файловом менеджере S3 появились новые функции: теперь вы можете подключить собственный домен и SSL-сертификат для доступа к хранилищу.

Что это даёт:
  • Пользователи видят ваш домен, вместо длинных технических ссылок, что повышает доверие к ресурсу.
  • Использование своего домена помогает избежать проблем с CORS и предупреждений безопасности в браузере.
  • Если в бакете находится статический сайт, домен и SSL-сертификат позволяют использовать его как полноценный веб-ресурс.
Настроить подключение можно в панели управления бакетами — для этого мы добавили новую кнопку «Домены».

Подробную инструкцию по настройке подготовили в Базе знаний.
firstvds.ru/services/s3

Апрель — конкурс ИИ-видео, новые фичи S3-хранилища и подборка рейтинговых статей с Хабра

«Поехали!» — сказал Гагарин и полетел. Вдохновившись его подвигом, мы тоже решили поднапрячься и в апреле выложились на полную: доделали задачи, закрыли спринты, выкатили в релиз пару фич.



Теперь со спокойной душой можно на майских проводить нагрузочное тестирование мангала, мигрировать в горизонтальное положение или просто уйти в офлайн и не отсвечивать.

Специально для таких ситуаций мы подготовили наш апрельский дайджест. Собрали самое интересное для релакса на праздниках: гайды, чтобы с кайфом поковыряться в настройках, а ещё — статьи о физике и психологии для разговоров с друзьями за шашлычком.

А спринты, дедлайны, собрания — уже после майских.

Как установить Minecraft-сервер
Майские — отличный повод собраться с друзьями и поиграть в любимую игру. Подготовили инструкцию: как создать свой Minecraft-сервер, учесть подключение множества игроков и собрать огромный общий мир.
firstvds.ru/technology/kak-sozdat-i-nastroit-minecraft-server-na-ubuntu

Как сделать сайт-портфолио бесплатно без знания кода и конструкторов с помощью ИИ
Пошагово объясняем, как создать кастомный сайт с помощью ИИ на примере одностраничного портфолио. Технический бэкграунд необязателен — достаточно чётко формулировать задачи для нейросети и следовать её подсказкам в чате.
firstvds.ru/blog/kak-sdelat-sayt-besplatno-bez-znaniya-koda-i-konstruktorov-s-pomoschyu-ii

Что такое фишинг и как он изменился в 2026 году
Провели небольшое исследование о том, как развитие технологий и нейросетей помогает мошенникам придумывать новые схемы и почему привычные способы защиты перестали быть надёжными. В статье — примеры атак и несколько советов, как защититься от фишинга в новых условиях.
firstvds.ru/blog/chto-takoe-fishing-i-kak-izmenilsya-v-2026-godu

Habr: самое интересное за апрель
Отобрали статьи с Хабра, которые зацепили читателей. Сами залипли, пока читали. В подборке рассказываем, как запустить свою нейросеть на домашнем компьютере, зачем HR-специалисту разбираться в Warhammer и как это помогает понимать коллег, почему в физике элементарных частиц наступил кризис и как в 1844 году появился аналог онлайн-шахмат.

Ищем авторов для блога на Хабр
Подготовьте статью на одну из специальных тем или отправьте материал на тему месяца. И если ваша статья подойдёт для блога, вы получите повышенный гонорар.
Тема мая: электроника для начинающих.
firstvds.ru/avtoram

Новости апреля
Джон и кот в космосе: конкурс ИИ-видео


На днях запустили конкурс на лучший нейросетевой ролик про космические приключения кота и Джона. Победителям подарим крутой сет — шоппер, кепка, сумка-трансформер, блокнот с ручкой и патчи.
Чтобы поучаствовать в конкурсе, нужно подписаться на наш тг-канал, сгенерировать короткое видео с помощью ИИ и выложить в комментариях под постом до 3 мая включительно.
4 мая выберем пятерых лучших авторов по количеству реакций (лайков) под видео. Полёт фантазии не ограничиваем, но просим не вылетать за орбиту приличия :)
Дерзайте и выигрывайте классные призы!
t.me/TakeFirstNews
t.me/TakeFirstNews/1318

Новые фичи в S3-хранилище: мультипарт-загрузка и подключение домена с SSL
Продолжаем вести работы по улучшению S3 хранилища.

Добавили мультипарт-загрузку, при которой файл делится на части и качается параллельно в несколько потоков. Такой подход позволяет увеличить скорость передачи больших файлов. Другие плюсы:
  • При сбое вы сможете продолжить загрузку с того же места, где она прервалась.
  • Загружать можно что угодно — от бэкапа базы данных до архива проекта с десятками тысяч мелких файлов. Технология адаптируется под ваш файл, а не наоборот.
  • Система распределяет нагрузку. Это позволяет загружать большие файлы, не «подвешивая» всю сеть и не мешая другой работе.
  • При сбое вы сможете продолжить загрузку с того же места, где она прервалась.
  • Загружать можно что угодно — от бэкапа базы данных до архива проекта с десятками тысяч мелких файлов. Технология адаптируется под ваш файл, а не наоборот.
  • Система распределяет нагрузку. Это позволяет загружать большие файлы, не «подвешивая» всю сеть и не мешая другой работе.
Добавили возможность подключать домен и SSL-сертификат к S3-хранилищу. В чём плюсы этого решения:
  • Вместо ссылок провайдера пользователи видят ваш официальный адрес. С технической стороны это позволяет исключить возникновение предупреждений безопасности в браузерах.
  • При размещении статического сайта в бакете свой домен и SSL-сертификат делают хранилище полноценным веб-ресурсом, который работает как самостоятельный проект.
  • Вместо ссылок провайдера пользователи видят ваш официальный адрес. С технической стороны это позволяет исключить возникновение предупреждений безопасности в браузерах.
  • При размещении статического сайта в бакете свой домен и SSL-сертификат делают хранилище полноценным веб-ресурсом, который работает как самостоятельный проект.

День рождения CLO: последний день кешбэка

Проекту CLO исполнилось 6 лет! В честь этого события дарим своим клиентам кешбэк 25%. Чтобы его получить:
1. Пополните баланс в Личном кабинете до 23:59 30 апреля.
2. Введите промокод BDAYCLO на странице «Баланс и расходы» → нажмите «Активировать». Кешбэк начислится автоматически.
Сегодня последний день акции.

Топ новостей из мира безопасности


Обнаружено 113 уязвимостей в Rust Coreutils
В Rust Coreutils (uutils), которые используются в Ubuntu, независимый аудит выявил 113 уязвимостей, включая критические. В связи с этим в Ubuntu 26.04 от GNU Coreutils вернули утилиты cp, mv и rm.
Наиболее опасные уязвимости позволяют злоумышленнику выполнить код с правами root или разрушить систему:
  • chroot: если пользователь может писать в новый корень, он подставляет свои NSS-библиотеки (из-за того, что chroot() срабатывает раньше сброса привилегий и загрузки модулей NSS).
  • mkfifo: при попытке создать именованный канал в существующем файле утилита не завершается, а меняет права этого файла на 644 (rw-r--r--), открывая доступ к файлам, для которых не было разрешено чтение.
  • chmod: обход защиты --preserve-root через путь /../ или символическую ссылку на корень — можно рекурсивно изменить права доступа во всей ФС.
  • rm: обработка любых сокращений опции --no-preserve-root (например, rm -rf --n /), а также подстановка символической ссылки на / или пути ./, /// для удаления текущего каталога.
  • kill: указание идентификатора процесса -1 отправляет сигнал сразу всем процессам в системе.
  • Также выявлено много уязвимостей класса TOCTOU (состояния гонки), когда между проверкой и операцией подменяют файл на символическую ссылку — это позволяет, например, перезаписать произвольные файлы из скриптов, запущенных от root.
В Ubuntu 26.04 для cp, mv и rm уже возвращены версии из GNU Coreutils. Большинство найденных уязвимостей устранено в выпусках uutils 0.5–0.8, поэтому рекомендуем как можно скорее обновиться.
www.opennet.ru/opennews/art.shtml?num=65278

Ошибка в API IndexedDB позволяет сайтам отслеживать действия пользователей Firefox и Tor Browser
В браузерах на движке Gecko (Firefox, Tor Browser и др.) нашли уязвимость (CVE-2026-6770). Она позволяет сайтам создавать уникальный отпечаток браузера и отслеживать активность пользователя на сайтах.
Атака работает так. Сайты создают через IndexedDB один и тот же набор баз данных. Затем вызывают метод indexedDB.databases(), который возвращает список этих баз. Их порядок не зависит от имён или времени создания, а определяется внутренним устройством конкретного экземпляра браузера. Для каждого запущенного браузера этот порядок свой, но он одинаков для всех сайтов, которые пользователь открывает в рамках одной сессии. Порядок сохраняется до перезапуска браузера, и на него не влияют очистка локальных хранилищ или смена Tor-цепи («New Identity»). Атака работает даже в режиме приватного просмотра.
Уязвимость уже исправлена. Чтобы защититься, обновите браузер до версии:
  • Firefox 150 или 140.10.0 (в зависимости от ветки)
  • Tor Browser 15.0.10
www.opennet.ru/opennews/art.shtml?num=65272

Критические уязвимости в Chrome
В Chrome нашли 5 критических уязвимостей, которые позволяют обойти песочницу и выполнить вредоносный код в системе. Кроме того, браузер оказался уязвим для множества методов скрытой идентификации пользователей.
Критические уязвимости связаны с выходом за границы буфера в компонентах ANGLE и Skia, а также с обращением к уже освобождённой памяти (use-after-free) в механизме предварительной отрисовки Prerender, в XR-компонентах для виртуальной реальности и в реализации Proxy-объектов.
Методы скрытой идентификации собирают косвенные признаки: разрешение экрана, установленные шрифты, MIME-типы, заголовки HTTP/2 и HTTP/3, особенности отрисовки через WebGL, Canvas и WebGPU, утечку локального IP через WebRTC, список поддерживаемых расширений TLS, отображение Emoji, показания датчиков, подключённые Bluetooth/USB/HID-устройства, производительность системы, CSS-правила, историю посещений и даже установленные расширения браузера. Также используются «суперкуки» — например, кэш иконок Favicon или база автозаполнения форм. В Chrome почти нет встроенной защиты от таких методов.
Чтобы защититься от вероятных атак, обновите Chrome до версии 147.0.7727.101. Для блокировки скрытой идентификации можно установить браузерные дополнения, которые используют скрипты обработки контента, отладочный API (chrome.debugger) и перехват сетевых запросов (chrome.webRequest).
www.opennet.ru/opennews/art.shtml?num=65219

Уязвимость во Flatpak, позволяющая выполнить код вне изолированного окружения
Опубликованы корректирующие выпуски Flatpak 1.16.4 и 1.17.4, в которых устранена критическая уязвимость (CVE-2026-34078, 9.3 из 10), позволяющая вредоносному приложению обойти sandbox-изоляцию, получить доступ к файлам основной системы и выполнить произвольный код вне изолированного окружения.
Сервис flatpak-portal позволяет приложению указывать в опции sandbox-expose пути, которые могут быть символическими ссылками на произвольные части ФС. Сервис раскрывает ссылку и монтирует целевой путь в sandbox-окружение, давая доступ на чтение и запись к файлам хост-системы. Для выполнения кода можно, например, добавить автозапускаемый скрипт (вроде ~/.bashrc) или изменить ~/.ssh/authorized_keys.
Чтобы защитить свои системы, отключите сервис flatpak-portal командой:
sudo systemctl --global mask flatpak-portal.service && systemctl --user stop flatpak-portal.service

www.opennet.ru/opennews/art.shtml?num=65170

Две угрозы в экосистеме Python
В апреле выявили две важные уязвимости.
В стандартных библиотеках сжатия CPython (lzma, bz2, gzip) нашли критическую уязвимость (CVE-2026-6100, 9.1 балла). При распаковке специально оформленных данных и нехватке памяти может возникнуть обращение к уже освобождённой памяти (use-after-free), что приводит к утечке информации или выполнению кода атакующего. Подробности можно почитать здесь. Исправление пока только в виде патча.
Вторая проблема — атака на цепочку поставок. В пакет elementary-data (1,1 млн загрузок в месяц) через скомпрометированный GitHub Actions внедрили вредоносный код. В релизе 0.23.3, доступном для скачивания более 11 часов, при установке активировался base64-код. Он похищал SSH-ключи, данные из переменных окружения, пароли от БД, учётные данные от облачных сервисов (AWS, GCP, Azure, K8s), криптокошельки и другую конфиденциальную информацию. Подробнее здесь.
www.opennet.ru/opennews/art.shtml?num=65202
github.com/python/cpython/pull/148396
www.opennet.ru/opennews/art.shtml?num=65313

Бэкдор в 30 плагинах WordPress мог заразить тысячи сайтов через штатные обновления
Специалисты по ИБ обнаружили, что более 30 плагинов WordPress из пакета EssentialPlugin скомпрометированы. Выяснилось, что в них ещё в 2025 году внедрили бэкдор, который через штатные обновления распространился на тысячи (потенциально сотни тысяч) сайтов. Недавно малварь активировали.
После активации бэкдор связывался с внешним сервером (используя адресацию через Ethereum-блокчейн) и скачивал файл wp-comments-posts.php, который встраивал вредоносный код в wp-config.php. По команде злоумышленников малварь генерировала спам-ссылки, редиректы и фейковые страницы, видимые только Googlebot. Бэкдор активировался при условии, что эндпоинт analytics.essentialplugin.com возвращал вредоносный контент.
Сейчас скомпрометированные плагины заблокированы, WordPress.org отправил принудительное обновление, нейтрализующее бэкдор и обрывающее связь с C2. Однако оно не очищает wp-config.php — файл нужно проверить вручную. Также следует искать файл wp-comments-posts.php (не путать с легитимным wp-comments-post.php). Малварь может скрываться и в других местах.
xakep.ru/2026/04/17/essentialplugin-backdoor/

CrystalX RAT: новый MaaS-троян для кражи данных и пранков над жертвами
Эксперты «Лаборатории Касперского» обнаружили троян удалённого доступа CrystalX RAT (ранее назывался Webcrystal RAT). Вредонос распространяется по модели MaaS (Malware-as-a-Service) и нацелен преимущественно на российских пользователей. Он совмещает функции RAT, стилера, кейлоггера, клиппера и шпионского ПО, а также умеет выполнять prankware-действия (менять обои и кнопки мыши, переворачивать экран, отправлять сообщения жертве). У малвари есть собственный телеграм-канал и даже YouTube-аккаунт с видео, которые обучают использованию вредоноса.
Панель управления CrystalX позволяет клиентам собирать собственную уникальную версию трояна с широкими возможностями настройки: можно включить фильтрацию жертв по стране, выбрать иконку для исполняемого файла, подключить защиту от анализа и другие опции.
Готовый имплант сжимается с помощью zlib, а затем шифруется потоковым шифром ChaCha20 с 256‑битным ключом и 96‑битным одноразовым кодом. Кроме того, CrystalX умеет обнаруживать виртуальные машины и проверять, не запущен ли он в тестовой или отладочной среде, что затрудняет его обнаружение.
После заражения вредонос крадёт учётные данные из Steam, Discord, телеграма и всех браузеров на движке Chromium, а также мониторит буфер обмена, подменяя скопированные адреса криптокошельков на адреса злоумышленников. Троян оснащён клавиатурным шпионом (кейлоггером) и обеспечивает полный удалённый контроль над устройством жертвы: доступ к экрану, камере и микрофону с возможностью записи видео и звука. Помимо этого, CrystalX может выполнять пранк-функции.
Для защиты от трояна специалисты рекомендуют стандартные меры цифровой гигиены:
  • Обращать внимание на странное поведение (поворот экрана, блокировка клавиатуры/мыши, необычные уведомления). При подозрении — отключить компьютер от сети и интернета, установить антивирус с флешки.
  • Скачивать программы только с официальных сайтов, избегать взломанного ПО.
  • Осторожно относиться к файлам из мессенджеров (особенно архивам с паролями).
  • Включить двухфакторную аутентификацию.
  • Регулярно обновлять ОС и приложения.
  • Использовать защитное решение, которое обнаруживает и обезвреживает CrystalX.
www.kaspersky.ru/blog/prankware-crystalx-rat-maas/41616/?ysclid=mnzvvaocoy152695405