Рейтинг:0

tc-mirred, перенаправление совпадений потока на фиктивный интерфейс

флаг za

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

В качестве краткосрочной цели я хотел бы масштабировать это путем балансировки нагрузки от физического интерфейса захвата до внутренних фиктивных или ответвляющихся интерфейсов, а затем запускать несколько экземпляров однопоточного процесса, используя их в качестве входных данных. Для каждого экземпляра однопоточного процесса требуются полные сетевые потоки (т. е. соответствующий кортеж — TCP или UDP). Меня не волнует трафик после того, как он попадет на фиктивные интерфейсы - затем он отбрасывается, поэтому мне не нужно беспокоиться о обратных путях или о чем-либо, связанном с этим.

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

Итак, я зашел так далеко:

# Настраиваем интерфейсы
ФИЗ = "eth1"
INT_COUNT=4 # Получено из числа ядер процессора
# Создадим несколько фиктивных интерфейсов
для i в {1..$INT_COUNT}
   сделать ip-ссылку добавить фиктивный тип $i фиктивный
   ip link set dummy$i up
сделано

# Создаем qdisc
tc qdisc add dev $PHY вход

# Фильтр на основе кортежа потока. Классы создаются автоматически благодаря делителю
фильтр tc add dev $PHYS parent ffff: handle 1 \
   хеш-ключи потока src, dst, proto, proto-src, proto-dst \
   делитель $INT_COUNT

# Теперь как-нибудь применим действие перенаправления к созданным классам
# для каждого из фиктивных интерфейсов
для i в {1..$INT_COUNT}
   do tc filter add dev $PHYS parent ffff: протокол ip u32 соответствует u32 0 0 \
         действие отражено выход перенаправление dev dummy$i
сделано

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

Как я могу сказать "класс "N", иди к манекену N"?

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

Любые советы или предложения по этому поводу будут очень признательны.

Ответить или комментировать

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