Обновить
111
Майоров Павел@mayorovp

Senior Backend тыжDeveloper

0,2
Рейтинг
43
Подписчики
Отправить сообщение

Да, вот вам фрагмент топологии сети:

На ней ext-net - это Интернеt, ext-subnet6 - это диапазон белых адресов. Справа видна виртуалка соединённая с ext-subnet6 - это означает прямой выход в Интернет и наличие белого адреса. Снизу роутер, подключенный к ext-subnet6 и имеющий отдельный белый IP адрес. Без этого роутера виртуалка недоступна, мы проверяли.

С чего бы легаси-колхоз-то? Наоборот же, современная сетевая архитектура так выглядит. Микросервисы там, их оркестрация, балансировщики, автоскелинг. Хостеры готовятся хостить всё вот это, а единичные виртуалки идут просто как частный случай и на тех же технологиях.

в подразумеваемой мной конфигурации это количество клиентов на 1 сервер (физический порт)

Ну вот вы завели клиенту виртуалку на первом сервере с vlan 5, на втором с vlan 8, а на третьем - с vlan 9. Как настраивать сетевое обородование будете между ними, да ещё и чтобы с ума не сойти? Вот уж где легаси колхоз получается!

Да, q-in-q тут альтернатива vxlan. Однако оно вынуждает сетевое оборудование помнить про все мак-адреса всех виртуалок, в то время как vxlan разгружает ядро сети, перенося нагрузку на слой доступа. В идеале стоило бы использовать vxlan поверх ethernet или mpls, без уровня ip, но такого протокола я не нашёл.

Топовые хостинги дают виртуальную локалку просто по умолчанию, а остальные тянутся за топами.

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

Конкретно для CPU такой способ есть, правда настраивать его лучше бы заранее, а не после начала атаки. Но вот когда система упирается в память…

Не понятно на кой надо использовать VxLAN внутри ДЦ и тем более внутри стойки с общим аплинком?

Это как раз понятно и очевидно.

  1. У хостинга есть разные клиенты

  2. У каждого клиента может быть несколько виртуалок, которым нужна изолированная общая сеть, и чтобы её не слушали соседи

  3. Эти виртуалки могут быть в разных стойках

  4. Клиентов у нормального хостинга точно более 4096, и даже если их меньше - плох тот хостинг который не мечтает стать нормальным

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

Так надо мониторить поднятие сервера и возобновлять атаку.

Я тоже хостингом не занимался, но когда я интересовался современным состоянием сетей - BGP я встречал просто всюду.

MPLS? BGP - штатный способ настройки маршрутов. Предоставление приватных сетей клиентам? В BGP есть расширение для этого. Маршрутизация в k8s? Там скорее всего BGP трудится.

Так что я уверен, что на современном хостинге либо BGP, либо MSTP.

Ну, дидос - дорогое удовольствие для заказчика, его могут и остановить для экономии бюджета если сервер выключен.

Я так понял, проблемы на реальном железе возникли из-за оверпровижнинга виртуального. Виртуальные железки запросили слишком много памяти и реальная железка (сервер с виртуалками, не роутер!) ушла в вечный своп.

Заявления о падении рейдов зто подтверждают, поскольку какие нафиг рейды у цисок?

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

Не понятно только как отключение клиента поможет с входящим трафиком.

Предположу, что реальное железо с атакой справляется, а упало лишь виртуальное из-за оверпровижнинга. При использовании протоколов динамической маршрутизации или их L2-аналогов связь с “упавшей” виртуальной железкой периодически теряется, после чего реальная железка перестаёт пересылать ей пакеты, далее виртуальная железка без нагрузки восстанавливается и сразу же падает снова. Отключение клиента в такой ситуации разрывает цикл.

А вот аутисты сходу не могут рассказать про то, что они читали 2 года назад.

Они-то как раз могут, но они не могут дойти до этого этапа.

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

Вот скажите, как это работает? Что мешает сотруднику СЦ просто ничего не принимать и не подписывать?

Аргумент функции - и правда не переменная, а вот параметр (формальный) обладает всеми признаками переменной: имя, возможность присвоить значение, возможность получить адрес.

А на стеке она, в регистре или вовсе оптимизирована в ноль - нет разницы.

Кроме того, в математике параметры функций открыто называют переменными, и само слово “переменная” именно из математики и пришло.

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

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

С матрицами та же проблема, это вовсе не синоним двумерному массиву - однако программисты зачастую про это забывают.

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

Это плохой класс, при таком использовании слишком часто будет создаваться новый mt19937, что убивает всю идею mt19937. Если уж так делать - проще сразу _dist(_rd) писать в next()

А если мы всё-таки используем std::mt19937, то надо делать как-то так (пишу по документации, код не проверял):

claсс Random {
private:
    std::mt19937 _gen;
public:
    Random() : _gen(std::random_device()()) { }

    int next(int minVal, maxVal) {
      std::uniform_int_distribution<int> dist(minVal, maxVal);
      return dist(_gen);
    }

    static Random& shared() {
      thread_local Random instance;
      return &instance;
    }
};

Вот это хороший пример чтения ненаписанного получился. Я всего лишь добавил уточнение; а вы отвечаете мне так, как будто я с кем-то спорил.

Тут проблема не в “полагается”, а в том что от политики люди теряют способность понимать прочитанное, а также начинают читать ненаписанное.

Мне прилетали минусы за политику даже за те комментарии, которые не содержали ничего кроме чистых технических аргументов. Вроде того, что случайное 128-битное число перебором не подобрать.

Поэтому политические темы - только для тех, у кого есть запас кармы.

Информация

В рейтинге
3 064-й
Откуда
Челябинск, Челябинская обл., Россия
Дата рождения
Зарегистрирован
Активность