4 мая, 2020
Экономьте трафик!
Эх, как же хорошо жить в условиях безлимитного интернета! Теперь, наверное, никто уже и не вспомнит когда исчезли тарифы на кабельный доступ в Интернет с повременной или «помегабайтной» оплатой. Уже где-то лет 15 мы купаемся в «нон-стоп анлиме» формата 24-7-365. При этом скорости обычного домашнего подключения вплотную приблизились к гигабиту. Ай хо-ро-шо!
Особенно в наши тревожные времена – понимаю, что далеко не все, но многие смогли полноценно трудиться в карантинных условиях. И всё спасибо скорости современных сетевых соединений! Представьте себе, что эта биологическая хрень случилась бы в до-интернетные времена или же где-то в 90х, уже с интернетами, но на каналах тех лет пропускной способности.
Да, можно возразить, что на карантине Шекспир написал несколько великих пьес, Боккаччо — Декамерон, у Пушкина случилась Болдинская осень, а Ньютон догадался о теории всемирного тяготения. С интернетами и онлайнами у них бы ничего этого могло и не случиться! :)
Но не суть. Я сегодня о другом хотел рассказать. А именно.
Все мы рады скоростному «анлиму» — как пользователи. Но для бизнеса, особенно больших компаний внутрикорпоративный «анлим» означает распухание бюджетов и снижение прибыли (оборудование, провода, вентиляция, обслуживание этого хозяйства, плюс электричество и прочее другое). Посему у хорошего хозяина сисадмин постоянно смотрит на динамику трафика, прогнозирует пиковые нагрузки, создаёт резервные каналы и многое другое, чтобы обеспечить бизнесу гарантированное потребление всех необходимых сетевых прелестей. Чтобы ничто не останавливалось и не «лагало».
И, разумеется, любая организация будет стремиться сопутствующие «расходы и расходики» как можно сильнее утрамбовать к нулю, при этом сохранив (а лучше даже повысив) эффективность работы всей системы.
О как! Невозможное = возможно? Рассказываю…
Одна из головных болей IT-шников больших компаний с развесистыми сетями – обновления софта. Дистрибутивы, патчи – а иногда они бывают ой немаленького размера! Большинство современных вендоров как-то совершенно не озабочено размерами своих обновлений. Представьте себе, что нужно «раскатать» много-много-мегабайтный (а то и гигабайтный) апдейт по сети из десятков тысяч (а то и сотни тысяч) рабочих станций по всем отделениям компании в десятках городов? Очевидно – деградация производительности сети, фрагментация, коллапс.
Само собой, что ни один сисадмин в трезвом уме и твёрдой памяти так не делает. Есть много методов оптимизации процесса, например — обновления по расписанию (ночью) или установка специализированных серверов. Но и в этом случае приходится идти на компромисс, поскольку раскатать срочное-пресрочное обновление в авральном порядке по всем узлам сети… это снова попахивает коллапсом. А в киберзащите такие «срочные-пресрочные обновления» каждое второе и выходят они по несколько десятков раз в день.
Само собой разумеется, что мы делаем всё возможное для оптимизации наших апдейтов. Причём делаем это уже очень давно.
Помнится, что в конце 90х нашим клиентом стала одна европейская нефтяная компания. И выбрали они нас именно по причине размеров апдейтов. Качать «толстые» апдейты на морские нефтяные вышки через спутник – тогда это было немного дороговато :) Но это была разовая подобная история.
А вот с середины 2000-х, когда мы начали активно заходить на корпоративный рынок, нам пришлось ещё более плотно заняться проблемой оптимизации трафика в больших организациях – как бы сделать так, чтобы нагрузка на сеть по причине наших апдейтов была минимальной? // В идеале вообще нулевой… и даже отрицательной :)
Да! Невозможное = возможно! Для таких парадоксальных технически-экономических подвигов природа и снабдила человека мозгом, клавиатурой и TCP/IP :) А во имя изгнания голословия и недоверия со страниц моего блога приведу вам один практический пример из области киберзащиты. Именно так – сейчас вы убедитесь как технологии наглядно убивают сразу двух зайцев.
Для решения подобных заковыристых головоломок мы перепробовали несколько вариантов решений и остановились на технологии распространения обновлений через динамические узлы широковещательного сегмента (патенты US 10623232 и RU 2649292). Простите за «многабукаф» — сейчас я объясню попроще.
В нашем спектре решений для бизнеса за управление киберзащитой отвечает Kaspersky Security Center (KSC). Кстати, совсем недавно вышла новая версия с приятными новыми фичами (в том числе поддержкой KasperskyOS). В числе многого прочего с помощью KSC можно удалённо устанавливать и настраивать продукты на других сетевых узлах, а также раскатывать обновления.
Сначала KSC определяет топологию сети при помощи широковещательных рассылок. Ой, простите, снова заговариваюсь :) Короче, KSC сначала нащупывает строение сети – сколько узлов, какие они, где располагаются, их конфигурация, каналы между ними и прочее. Процесс очень похожий на сканирование инопланетного объекта в фильме «Прометей».
Таким образом мы (i) выбираем наиболее подходящие узлы для локальной раскатки обновлений, и (ii) проводим сегментирование корпоративной сети – смотрим какие компьютеры работают в одних и тех же сегментах. Давайте подробнее рассмотрим эти два пункта.
Вы правильно догадываетесь – благодаря этой технологии сисадмин может назначать на роль серверов обновлений любой узел сети! Например, один компьютер с достаточной производительностью и ресурсами может отгружать обновления другим компьютерам, находящимся поблизости. Таким образом, не каждый из них «лезет» через Интернет «за тридевять земель» к центральному серверу, а только один. И не к центральному серверу, а к ближайшему (читай – с самым быстрым каналом и дешёвым трафиком). И уже потом этот компьютер распределяет полученное между остальными узлами своего сегмента. В помощь сисадмину KSC автоматизирует этот процесс, регулярно сканируя сеть и предлагая самую подходящую конфигурацию. А чтобы в список узлов случайно не попал, скажем, ноутбук генерального директора или строго секретный компьютер главбуха – для этого мы в будущем планируем внедрение специальных запрещающих и рекомендательных тэгов, которые реализуют списки исключений.
Что важно: в отличие от классических P2P или Mesh сетей наш подход оказался более управляемым. Вместо анархии и неразборчивых связей всех со всеми здесь полный порядок с чётким регламентом, регулярными перепроверками и оптимизацией. Например, если у компьютера, распространяющего обновления в своём сегменте вдруг объём свободного места на диске стал ниже порогового значения, то на его место тут же заступает следующий кандидат с лучшими характеристиками для этого благого дела.
А знаете, как ещё можно весело и экологично использовать обновления?
У нас в дата-центре в центральном офисе избыточная температура серверных комнат отводится для… обогрева воды! Ага! Моем руки и заряжаем конвекторы за счёт чистейшей энергии кремниевых мозгов, которые помогают спасать мир. Экологично! А когда из воздуховодов на крыше выбрасывается отработанный пар сотрудники любят шутить: «о, апдейт пошёл!». Весело! :)