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

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

Меня зовут Олег Аралбаев, я более 20 лет в IT и телекоме, работал в операторах связи, вендоре оборудования и нескольких интеграторах. С 2022 года занимаю позицию руководителя отдела развития и эксплуатации сети в RUTUBE. Расскажу, как мы строим и эксплуатируем сеть видеохостинга. Надеюсь, что-то из этого поможет вам в вашей ежедневной работе. 

Сейчас сеть RUTUBE состоит более чем из 7 тысяч серверов в 7 центрах обработки данных. У нас в эксплуатации 380 CDN-серверов, которые ежемесячно обслуживают около 80 млн пользователей. Всё это результаты работы команды за последние несколько лет — большая часть действующих сейчас кода и инфраструктуры RUTUBE была разработана и внедрена после 2020-го. В том числе и сеть, которая ещё в 2021-м году представляла из себя следующее: 

  • 31 коммутатор и маршрутизатор;

  • 5 ЦОДов с каналами между ними по 20 Гбит/с и офисная сеть;

  • Border router’ы MikroTik CCR1072;

  • отдельные DMZ-сети, NAT на каждом BR и отсутствие резервирования;

  •  статическая маршрутизация на всех вышестоящих провайдерах без BGP.

Схема сети RUTUBE в 2021 году
Схема сети RUTUBE в 2021 году

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

Перенастройка legacy-сети

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

  • Подняли и настроили на всех устройствах TACACS для централизованного контроля доступа, убрав локальную авторизацию.

  • RANCID для сохранения конфигурации и ведения версионности.

  • RSYSLOG — для аудита действий на устройствах.

  • Отдельный ZABBIX 7 для мониторинга всего парка сетевых устройств.

Оптимизация настроек MikroTik 

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

Что мы предприняли, чтобы увеличить производительность имеющегося оборудования:

  1. обратились за аудитом, консультацией и обучением инженеров к внешним экспертам из компании, которая более 10 лет занимается внедрением проектов на оборудовании MikroTik;

  2. перенастроили все firewall-правила на MikroTik;

  3. закрыли везде доступы, повесили ACL — потому что до этого внутри сети был полный доступ;

  4. перевели все стыки с интернет-провайдерами со статики на BGP;

  5. проапгрейдили DCI-каналы между ЦОДами: 20 Гбит/с -> 40 Гбит/с -> 100 Гбит/с -> и в 2024 перешли уже на 400 Гбит/с.

Казалось бы, сеть и роутеры перенастроили, DCI расширили. Но не тут-то было. Из-за возросшего количества фаервольных правил и из-за нескольких BGP-сессий с новыми провайдерами в часы наибольшей нагрузки роутеры стали просто дропать BGP-сессии и регулярно перезагружаться по причине 100% загрузки CPU.

Лог на роутере во время возникновения проблем
Лог на роутере во время возникновения проблем

Для понимания конфигурация каждого роутера Mikrotik была примерно следующая: 

  • ~1500 IP-адресов и подсетей в адрес-листах;

  • ~500 фаервольных правил;

  • ~20−30 Гбит/с общего трафика на роутер.

Чтобы снизить нагрузку на CPU и увеличить скорость обработки пакетов, мы решили перевести все правила фаерволла на работу с цепочками.

По умолчанию, если мы не используем цепочки, traffic flow в MikroTik проходит последовательно: входящий пакет (chain forward) проверяется подряд по всем правилам из списка с самого начала до первого совпадения. То есть может понадобиться проверить все наши 500-700 правил, и только в конце, если пакет не подпадает ни под одно правило, он будет дропнут.

Стандартный путь прохождения пакета на Mikrotik
Стандартный путь прохождения пакета на Mikrotik

Цепочки, в отличие от последовательной проверки, позволяют на уровне входящих интерфейсов сразу распределить пакет на правила, которые предназначены именно ему, то есть соответствуют определенному признаку (в нашем случае совпадение по входящему/исходящему интерфейсу и src/dst ip). Следовательно, роутеру не нужно последовательно обрабатывать все фаервольные правила, а можно перескочить сразу на узкую цепочку правил, под которую точно подпадает наш пакет.

Путь обработки пакета после настройки разделения по цепочкам (пример)
Путь обработки пакета после настройки разделения по цепочкам (пример)

Рассмотрим организацию цепочек на примере. Ниже список фаервольных правил, относящихся к сети 10.80.222.0/30.

Правила для сети 10.80.222.0/30
Правила для сети 10.80.222.0/30

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

Шаг 1. Разделить все физические и логические интерфейсы роутера на зоны.  В нашем случае это DMZ, LAN и WAN:

Разделение на DMZ, LAN и WAN всех локальных интерфейсов на роутере
Разделение на DMZ, LAN и WAN всех локальных интерфейсов на роутере

Шаг 2. Настроить правила jump в цепочке forward: как обычно идём в IP → Firewall и создаем новое firewall-правило, выбираем Chain = forward, входящий и исходящий интерфейс, из тех, которые мы разметили на предыдущем шаге, — в примере это DMZ и LAN. На вкладке Action делаем Action = jump, вводим имя нашей новой цепочки в поле Jump target — здесь это DMZ_to_LAN (оно нам дальше понадобится для создания правил внутри данной цепочки).

Создаем новую цепочку DMZ_to_LAN
Создаем новую цепочку DMZ_to_LAN

Шаг 3. Подобным образом создаём jump-цепочки для трафика между всеми размеченными интерфейсами на шаге 1 с учётом необходимой связности:

Цепочки для всех вариантов прохождения трафика на роутере
Цепочки для всех вариантов прохождения трафика на роутере

Шаг 4. Так как роутеры Mikrotik обрабатывают правила начиная с первого и далее по порядку, приоритизируем их порядок и по возможности помещаем наверх те, по которым фильтруется наибольший объем трафика. Это позволит снизить нагрузку на CPU роутера. 

Для примера в созданной ранее цепочке DMZ_to_LAN сделаем правило для конкретного сервиса HAProxy

  • выбираем цепочку, созданную нами ранее - Chain = DMZ_to_LAN;

  • Src. Address — подсеть 10.8.222.0/30, в которой у нас живет HAProxy;

  • на вкладке Action — Action = jump;

  • и там же — Jump Target = HAProxy_DMZ_to_LAN — вписываем название нашей новой цепочки для этого сервиса.

Правило jump для цепочки HAProxy
Правило jump для цепочки HAProxy

Далее уже внутри созданной цепочки HAProxy_DMZ_to_LAN мы можем создать ещё одно правило для разрешения пакетов от сервиса HAProxy до конечных хостов: Chain = HAProxy_DMZ_to_LAN. В качестве адреса назначения мы привязали адрес-лист сервиса pdns с его destination IP - адресами, протокол UDP, Destination port = 53, Action = accept. 

Финальные правила в HAproxy_DMZ_to_LAN
Финальные правила в HAproxy_DMZ_to_LAN

Теперь, когда HAProxy обратится к этому сервису, он пойдет не по всему списку файрвольных правил, а только по относящейся к нему цепочке из трёх правил: DMZ_to_LAN HAProxy_DMZ_to_LAN FW Rule - PDNS, UDP:53.

Jump-цепочка HAProxy_DMZ_to_LAN с правилами для всех сервисов, с которыми взаимодействует HAProxy + drop-правило в конце
Jump-цепочка HAProxy_DMZ_to_LAN с правилами для всех сервисов, с которыми взаимодействует HAProxy + drop-правило в конце

В конце цепочки — обязательно правило drop. Если совпадение не найдено, значит, этот пакет не должен никуда передаваться. 

Routing

С переходом на цепочки правил нагрузка на процессор действительно снизилась, но дропы BGP-сессий в часы наибольшей нагрузки не прекратились. Для снижения нагрузки на CPU роутеров MikroTik мы настроили на прероутинге правила дропать всё, что не попадает в исключения. На глубокую обработку CPU действительно стало попадать гораздо меньше пакетов, но, оказалось, что в часы наибольшей нагрузки одно ядро роутера на 100% занимается обработкой процесса ROUTING. Дело в том, что наши маршрутизаторы работали на RouterOS 6, которая просто не умеет распределять по ядрам процесс ROUTING. А как мы помним, для лучшего резервирования, мы добавили внешние стыки, работающие по BGP, и дело стало совсем плохо. 

Примерно так нейросеть представляет наши роутеры Mikrotik в часы наибольшей нагрузки
Примерно так нейросеть представляет наши роутеры Mikrotik в часы наибольшей нагрузки

Мы приняли решение обновиться до RouterOS 7, несмотря на то, что на тот момент она ещё была довольно сырая. Пришлось пожертвовать протоколом BFD, потому что тогда в RouterOS 7 он не поддерживался.

Сейчас на наших MikroTik RouterOS версии 7.13.3
Сейчас на наших MikroTik RouterOS версии 7.13.3

После обновления MikroTik на RouterOS 7 мы взглянули на наши роутеры новыми глазами — они стали адекватно справляться с текущей нагрузкой. Это дало нам время на то, чтобы спроектировать, построить и запустить новую сеть. 

Для примера: график загрузки одного из роутера после обновления
Для примера: график загрузки одного из роутера после обновления

Выше на графике каждое ядро загружено не более, чем на 15%, при конфигурации: 

  • ~450 firewall-правил;

  • ~2100 IP в address list;

  • ~25 Гбит/с трафика и 7 млн пакетов в секунду в пиковые часы.

Бонусом апгрейда на RouterOS 7 стала дополнительная функция — мониторинг BGP-пиров по SNMP, которая ранее не поддерживалась. Теперь мы смогли вывести в Zabbix статус по всем BGP-peer’ам каждого роутера и настроить алерты.

Мониторинг BGP Peer's в Router OS 7
Мониторинг BGP Peer's в Router OS 7

Проектирование новой сети

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

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

Стандартная трёхуровневая схема сети
Стандартная трёхуровневая схема сети

Однако такие сети предназначены в основном для трафика «Север—юг», то есть трафика со стороны пользователя/сервера во вне или наоборот. В любом случае, предполагается, что каждый пакет проходит уровень ядра, маршрутизируется и уходит далее на какой-то внешний интерфейс. В нашем же случае требовалось построить сети для эффективной работы с трафиком внутри ЦОДов — то есть «Запад—восток».

Мы выбрали архитектуру сетей Клоза и коммутаторы Leaf и Spine. 

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

Мы построили Leaf-Spine фабрику с полносвязной топологией, где коммутаторы доступа Leaf связаны со всеми коммутаторами агрегации Spine. 

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

В нашей новой сети мы выбрали технологию VxLAN для создания наложенной сети поверх L3 инфраструктуры, так как она даёт нам довольно весомые преимущества по сравнению с обычными VLAN:

  • решает проблему ограничения в 4096 VLAN — идентификатор (VNI) 24-битный;

  • позволяет растягивать L2-домены поверх опорной сети (underlay);

  • у вас появляется «наложенная» или overlay-сеть, которая позволяет развертывать и перемещать виртуальные машины в любое место дата-центра (или даже между дата-центрами) независимо от их физического расположения.

А также BGP EVPN — эта технология отвечает за распространение информации о MAC/IP-адресах и использует следующие типы маршрутов: Route Type 2, Route Type 3, Route Type 5.

Подробнее о каждом из типов маршрутов.

Route Type 2 (MAC/IP Advertisement) указывают, за каким сегментом подключено устройство с MAC/IP. Эти маршруты будут использоваться для передачи трафика к или от устройств, подключенных к VTEP коммутаторам (далее я расскажу, что это). Этот тип маршрута направлен на оптимальную маршрутизацию трафика внутри фабрики, основные этапы его работы:

  1. MAC Learning — Leaf-коммутатор изучает MAC-адрес хоста.

  2. BGP Advertisement — анонсирует RT-2 маршрут в BGP с: MAC-адресом хоста, IP-адресом (если известен), VNI , Route Target для указания VPN принадлежности.

  3. Remote Learning — другие Leaf получают RT-2 и записывают к себе: MAC-запись в bridge table, VTEP-назначение для удаленного MAC, ARP/ND-запись (если IP присутствует).

Route Type 3 (Inclusive Multicast Route) — используется для распространения репликации BUM-трафика (Broadcast, Unknown unicast, Multicast) по каждому сегменту L2. В рамках работы наложенной СПД данный тип маршрутов используется для работы механизма Ingress Replication.

  • Функция: анонс принадлежности к BUM-группе.

  • Механизм: каждый Leaf анонсирует свой VTEP IP через RT-3.

  • Результат: построение multicast distribution tree для BUM-трафика.

Route Type 5 (IP Prefix Route) — предназначен для передачи информации об IP-сетях и используется коммутатором VTEP, в том числе для маршрутизации пакетов внутри наложенной сети в случае отсутствия для заданного IP-адреса назначения маршрута type 2.

  • Назначение: межсегментная L3 маршрутизация

  • Использование: анонс IP-префиксов между различными VNI/VLAN

Как же работает BGP EVPN:

  • Изучение MAC-адресов: когда хост отправляет кадр, Leaf-коммутатор изучает его MAC/IP и анонсирует эту информацию через BGP EVPN Type 2 маршрут всем остальным Leaf'ам.

  • Передача unicast-трафика: при получении кадра для известного MAC-адреса, Leaf инкапсулирует его в VXLAN и отправляет напрямую к целевому Leaf'у, используя информацию из BGP EVPN.

  • Обработка BUM-трафика: для широковещательного трафика используются Type 3 маршруты, которые создают дерево доставки или используют ingress replication.

Отказоустойчивость мы усилили, реализовав механизмы IP Anycast Gateway и Anycast VTEP для резервирования шлюзов и работы ECMP.

При работе технологии MLAG совместно с технологией ECMP образуется логический экземпляр Anycast VTEP. В качестве IP-адреса логического коммутатора Anycast VTEP используется IP-адрес интерфейса Loopback1, одинаковый для пары коммутаторов, формирующих домен MLAG (см. схему ниже).

Пример работы технологии Anycast VTEP при использовании резервируемых подключений MLAG
Пример работы технологии Anycast VTEP при использовании резервируемых подключений MLAG

В дополнение к этому мы используем концепцию распределенного шлюза по умолчанию (IP Anycast Gateway), это убирает необходимость поднимать трафик на уровень ядра. При такой конфигурации, как только на ближайший Leaf-коммутатор попадает трафик со стороны одного из серверов, он здесь же маршрутизируется и отправляется на Leaf-коммутатор и подключенный к нему сервер назначения (IRB маршрутизация). Это даёт понятное количество хопов до любого хоста в пределах ЦОДа и, соответственно, минимальные, прогнозируемые задержки. 

Концепция IP Anycast Gateway схематично показана ниже (IP/MAC-адреса и идентификаторы сегментов VLAN ID приведены в качестве примера). Использование данной технологии опирается на конфигурацию интерфейса VBDIF на каждом из коммутаторов Leaf c одним и тем же IP-адресом и MAC-адресом. 

Распределенный шлюз по умолчанию (концепция IP Anycast Gateway) — пример
Распределенный шлюз по умолчанию (концепция IP Anycast Gateway) — пример

Ключевые преимущества концепции Anycast IP Gateway:

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

  2. Максимальное использование пропускной способности. Поскольку маршрутизация происходит на каждом Leaf-коммутаторе, нагрузка равномерно распределяется по всей фабрике, а не концентрируется на одном устройстве.

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

  4. Мгновенное переключение при отказах. При миграции виртуальной машины с одного сервера на другой — подключенный к другому Leaf- коммутатору — IP и MAC-адрес шлюза остаются неизменными. Виртуальная машина даже не подозревает о том, что теперь использует другой физический шлюз.

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

  6. Автоматическая синхронизация — коммутаторы автоматически синхронизирует информацию о MAC и IP-адресах хостов между всеми коммутаторами через BGP EVPN.

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

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

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

В итоге использование IP Anycast gateway вместе с IRB (Integrated Routing and Bridging) позволяет создавать виртуальные L3-интерфейсы на коммутаторах, избавляет от необходимости поднимать трафик на уровень ядра сети и делает возможным маршрутизацию пакетов прямо на уровне Leaf. 

Организация наложенной сети передачи данных 

Кратко о логической схеме организации нашей сети:

  • Маршрутизация опорной сети (Underlay) внутри ЦОДа реализована по протоколу OSPF.

  • На основе опорной сети работает наложенная сеть (Overlay), которая маршрутизируется по протоколу iBGP (Internal BGP).

  • Каждый ЦОД — это отдельная автономная система. Между ЦОДами настроен eBGP EVPN (External BGP).

Логическая схема нашей сети
Логическая схема нашей сети

А так выглядит схема реально действующей сети в одном из ЦОДов:

Разберём роли каждого устройства сверху вниз.

BR — border router, в каждом ЦОДе их два, через них ЦОД получает доступ в интернет, а также на него приходит трафик платформы и запросы пользователей:

BGW (Border Gateway) — пограничный шлюз, на котором терминируются линки с других ЦОДов (DC Interconnect, DCI), к ним же подключаются BR, SPINE-коммутаторы и NGFW:

NGFW — Firewall - обеспечивает инспекцию и фильтрацию трафика, туда в том числе переехали все правила, которые мы ранее держали на MikroTik:

SP-SW — коммутаторы агрегации Spine, ядро фабрики:

LF-SW — коммутаторы Leaf. Каждый коммутатор Leaf подключается к каждому Spine, а все хосты подключаются уже непосредственно к Leaf:

OOB на схеме — коммутаторы управления серверными IPMI интерфейсами, которые также подключаются к Leaf по M-LAG:

В качестве протокола, отвечающего за туннелирование/инкапсуляцию трафика, мы используем протокол VxLAN. VxLAN подразумевает инкапсуляцию Ethernet-кадров при входе в наложенную сеть и их декапсуляцию при выходе в классическую сеть передачи данных. За выполнение этой процедуры отвечают коммутаторы, называемые VxLAN Tunnel Endpoint или кратко — VTEP. В нашем случае роль VTEP внутри фабрики выполняют коммутаторы уровня доступа — Leaf (LF-SW) и пограничные шлюзы Border Gateway (BGW):

Коммутаторы агрегации Spine внутри фабрики настраиваются в качестве route reflector, чтобы не создавать полносвязную топологию и сократить количество iBGP-сессий для каждого VTEP-коммутатора, которые являются их iBGP-соседями:

Мы уже построили 4 ЦОДа по такой топологии, реальная схема одного из них представлена ниже.

Реальная схема сети одного из ЦОД RUTUBE
Реальная схема сети одного из ЦОД RUTUBE

В каждом из четырёх ЦОДов, в которых мы уже построили сети, установлены коммутаторы:

  • 8 BGW

  • 4 Super SPINE

  • 8 SPINE

  • 170 LEAF

  • 75 IPMI

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

Расширение новой сети

В августе 2024-го вследствие резкого роста трафика нам начало не хватать 100-гигабитных каналов между ЦОДами. Но для их апгрейда на существующих Border Gateway коммутаторах уже просто не было свободных 100-гигабитных портов. На замену в срочном порядке были найдены из наличия коммутаторы с 64 портами по 100 Гбит/с. Поставили — и при переключении начались проблемы. 

Напомню, что Border Gateway выполняет роль VTEP’а, инкапсулирует и декапсулирует Ethernet-кадры в рамках протокола VXLAN при входе и выходе из наложенной сети передачи данных (со стороны фабрики и со стороны соседних ЦОДов):

Поменяв коммутаторы, мы обнаружили, что VXLAN-трафик полностью перестал проходить через BGW. Отвалилась связь с соседними ЦОДами, развалилось кольцо и т.д.

В ходе чтения мануалов, тестирования, обращения к вендору, выяснилось: данные коммутаторы на аппаратном уровне не поддерживает технологию VXLAN. 

Тем не менее для работы с VXLAN есть обходной путь — нужно создать виртуальный интерфейс service type tunnel, привязать к нему свободные физические порты х2 пропускной способностью, с которой, вы предполагаете, должен проходить VXLAN-трафик (так как он 2 раза проходит инкапсуляцию/декапсуляцию). Например, если через устройство должно проходить 100 Гбит/с VXLAN-трафика, нужно зарезервировать 2 пустых интерфейса по 100 Гбит/с. В нашем случае получается, что мы можем использовать только 32 порта вместо 64 и это будет 100% утилизация портов этого устройства.

Мы планируем заменить эти устройства на модульные коммутаторы того же производителя с 4 картами расширения, по 32х100G, они сделаны на других чипсетах, построены на новой ОС и не имеет подобных ограничений. А также продолжим масштабировать сеть, так как нагрузка на RUTUBE продолжает стабильно возрастать.  

Итого

  • MikroTik — топ за свои деньги. Наш пример показывает, что при необходимости их можно хорошо оптимизировать, но придётся сильно заморочиться.

  • Новая IT-инфраструктура требует построения новых сетей ЦОД. Если вы строите инфраструктуру под микросервисы, использование облаков и других современных архитектурных решений, то старые подходы не подойдут. Есть много новых классных технологий, направленных на оптимизацию работы с этими сервисами, — используйте их.

  • Консалтинг и сторонние подрядчики могут быть полезны, не стоит их бояться. Например, нам очень помогли специалисты по оптимизации MikroTik. При строительстве сетей в ЦОДах мы тоже консультировались с подрядчиками и в результате смогли быстро,оптимальным образом построить сеть и сэкономить на оборудовании.

Подписывайтесь на этот блог и канал Смотри за IT, если хотите знать больше о создании медиасервисов. Там рассказываем об инженерных тонкостях, продуктовых находках и полезных мероприятиях, делимся видео выступлений и кадрами из жизни команд Цифровых активов «Газпром-Медиа Холдинга» таких, как RUTUBE, PREMIER, Yappy.

Комментарии (58)


  1. CherryPah
    22.10.2025 10:19

    Коллеги

    Люди дома уже дома 10G сеть тянут для того чтобы фотографии себя и кошки на NAS бэкапить, а у вас видеохостинг с тяжелым контентом и какие-то 2*100М / 2*1G линки между цодами.

    Микротики на бордере - вообще слов нет.


    1. oleg_ar Автор
      22.10.2025 10:19

      вы правы, потому мы и начали оптимизацию сети в том числе и с расширения каналов сейчас DCI - 400G, об этом как раз говориться в статье, а микротики отлично справились со своей задачей на время построения новой сети


      1. A1EF
        22.10.2025 10:19

        Меня вообще удивила эта история, потому что лет десять назад в блоге Рутуба (кстати, где он?) была статья про эволюцию инфры и там значились Cisco ASR, Nexus 9300, 700Гбит/с, а тут внезапно "MikroTik", "статические маршруты, никакого BGP"...

        Тем не менее, спасибо за статью - мне было интересно почитать, хотя я ваш доклад на GetNet смотрел уже :)


        1. oleg_ar Автор
          22.10.2025 10:19

          Спасибо! частично инфраструктура RUTUBE на тот момент действительно работала на оборудовании Cisco, но это было арендованное оборудование у партнера холдинга и мы быстро от него отказались при начале модернизации


          1. ofthevoid
            22.10.2025 10:19

            тогда скорее ДЕмодернизации.


  1. anonymous
    22.10.2025 10:19


    1. id_Alex
      22.10.2025 10:19

      Микротики на бордере

      А потом народ на форумах плачется что "рутуб еле-еле грузится". 8-()


      1. djton1k
        22.10.2025 10:19

        Вот где оборудование деградировало на самом деле


  1. anonymous
    22.10.2025 10:19


  1. Keeper22
    22.10.2025 10:19

    А вы, друзья, как ни садитесь,
    Всё в музыканты не годитесь.


  1. Angel_of_Sorrow
    22.10.2025 10:19

    Работа была проделана грандиозная. Жаль что получилось плохо(с)


  1. anonymous
    22.10.2025 10:19


  1. Mad_gulls
    22.10.2025 10:19

    Можно вынести BGP пиринг с провайдерами на отдельную железку/ки. На них главное достаточное количество памяти чтобы FullView держать, примерно 32Гб * на количество BGP сессий с провайдерами.

    Еще хорошей практикой считается вынесение наверх acl самых широких правил под которые подпадает наибольшее количество трафика и отключения опции log в листах.

    Ну микрот на edge это тот случай когда уже до мышей ***сь.


    1. A1EF
      22.10.2025 10:19

      В FW, конечно, много префиксов, но 32ГБ RAM... Правда столько много нужно? Что за демон BGP используете?


      1. Mad_gulls
        22.10.2025 10:19

        Дело не в демоне а в количестве префиксов и общем объеме информации, передаваемой вкупе с ними. На 2025 число префиксов IPv4 достигло 1 млн. а IPv6, если не ошибаюсь, до 500 тыс. записей.


        1. CherryPah
          22.10.2025 10:19

          RIB / FIB не? Принимают же по 3 FV на микротике ( и сильно страдают при флапе )


      1. ofthevoid
        22.10.2025 10:19

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

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

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


  1. ofthevoid
    22.10.2025 10:19

    конкурент ютуба с микротиками на бордерах и каналом как в деревне.

    в следующем выпуске - конкурент ватсаппа и телеги на arduino и модемной симкой!

    так выглядит не здоровая конкуренция, запоминайте и рассказывайте детям, хороший урок истории будет)


  1. anonymous
    22.10.2025 10:19


  1. anonymous
    22.10.2025 10:19


    1. id_Alex
      22.10.2025 10:19

      в следующем выпуске - конкурент ватсаппа и телеги на arduino и модемной симкой!

      ...и код фронта на написанный на фортране и по быстрому откомпилированный на клонах х8086 производства СССР!


  1. Emelian
    22.10.2025 10:19

    Как мы строим сеть RUTUBE

    ,Это всё, конечно, безумно интересно, но, простому пользователю нужны и более приземленные вещи. Например, как скачать видео из РуТуба, чтобы посмотреть его без рекламы и тут же стереть? Ютубовский yt-dlp.exe с РуТубом работать не хочет. Зато с этим хорошо справляется древнее демо-расширение Хром из Гитхаба. Однако подозреваю, что РуТуб скоро начнет менять свои протоколы, как и Ютуб, и для его скачивания понадобится уже искать другие инструменты.


    1. A1EF
      22.10.2025 10:19

      Не знаю как по Windows, но под GNU/Linux yt-dlp вполне себе позволяет качать видео с RUTUBE:

      ~ $ yt-dlp --version
      2025.10.14
      ~ $ yt-dlp 'https://rutube.ru/video/2d3f32cdb46639d370b686685b182ed6/'
      [rutube] Extracting URL: https://rutube.ru/video/2d3f32cdb46639d370b686685b182ed6/
      [rutube] 2d3f32cdb46639d370b686685b182ed6: Downloading video JSON
      [rutube] 2d3f32cdb46639d370b686685b182ed6: Downloading options JSON
      [rutube] 2d3f32cdb46639d370b686685b182ed6: Downloading m3u8 information
      [rutube] 2d3f32cdb46639d370b686685b182ed6: Downloading m3u8 information
      [info] 2d3f32cdb46639d370b686685b182ed6: Downloading 1 format(s): m3u8-2164-1
      [hlsnative] Downloading m3u8 manifest
      [hlsnative] Total fragments: 695
      [download] Destination: Как мы строим сеть национального видеохостинга RUTUBE ⧸ Олег Аралбаев [2d3f32cdb46639d370b686685b182ed6].mp4
      [download] 100% of  742.16MiB in 00:00:30 at 24.52MiB/s
      [FixupM3u8] Fixing MPEG-TS in MP4 container of "Как мы строим сеть национального видеохостинга RUTUBE ⧸ Олег Аралбаев [2d3f32cdb46639d370b686685b182ed6].mp4"
      


      1. Emelian
        22.10.2025 10:19

        Не знаю как по Windows, но под GNU/Linux yt-dlp вполне себе позволяет качать видео с RUTUBE:

        Только что проверил загрузку в своей программе («Минималистский графический интерфейс, на C++ / WTL, для консольного загрузчика» : https://habr.com/ru/articles/955838/ ), пишет, что невалидный url. Для этого даже удалил старую и загрузил новую версию yt-dlp.exe/


        1. Dgbbjjhgv
          22.10.2025 10:19

          Насколько помню yt-dlp не умеет качать плейлисты с рутуба, а вот обычные отдельные видосы вполне себе качает легко. Это можно пофиксить если хоть кто-то додумается форкнуть Yt-dlp на гите и внести свои правки. Там надо маленький фикс дописать на языке python. Но чёт похоже все питонисты в РФ клали болт на рутуб и им это не интересно)))

          Там еще косяк со скачиванием видостков с vk, но проблема решается если использовать домен vk.com вместо vk.ru


          1. Emelian
            22.10.2025 10:19

            Но чёт похоже все питонисты в РФ клали болт на рутуб и им это не интересно)))

            Кроме «кладки болта», «маленький фикс на python» надо будет делать каждые две недели, по мере выхода свежей версии yt-dlp.exe. Проще обновить раз (при необходимости) давний код расширения «cat-catch» для Хрома, от китайцев, которое, как минимум, легко скачивает видео, с сайтов, разбитые на множество кусков формата *.ts (с описаниями в *.m3u8). А таких видео-хостингов не так уж и мало.


  1. Dron76
    22.10.2025 10:19

    После рекламы с контрольными вопросами для проверки усвоенного rutube для меня перестал существовать. Крайне убогая платформа.


    1. Turbo_Pascal_55
      22.10.2025 10:19

      Да, "экзамен" по просмотренной рекламе это была конечно жесть 80го уровня.

      С тех пор на ютуб тоже не захожу, и посрать что там по технической части и как это строится.


    1. Maxor1k
      22.10.2025 10:19

      это в каком году было?


      1. Dron76
        22.10.2025 10:19

        Давно более 10, но пару лет назад с начала суверинизации ютубов решил проверить как там рутуб и обнаружил что мало что изменилось. 19 лет. Почти ровесник ютуба


  1. slavik27
    22.10.2025 10:19

    Извините это видео не доступно.

    Если поставил на паузу то после паузы внезапно нет звука.

    Если ранее смотрел видео и оно запомнило то место откуда в след раз стартовать то тоже нет звука.

    Если вдруг пропал инет и вновь появился извините это видео недоступно