последние несколько дней я пытался настроить формирование трафика и искусственную задержку в локальной сети. В настоящее время у меня есть ПК с Ubuntu 20.04 с двумя сетевыми картами, одна из которых подключена к сети компании, а другая использует соединение с произвольным количеством клиентов (все со статическими IP-адресами) через коммутатор. В настоящее время я успешно делюсь соединением с клиентами, вводя задержку и формируя скорость загрузки с помощью netem. Здесь возникает проблема, я не могу формировать трафик загрузки так же, как трафик загрузки. Что я пробовал до сих пор:
sudo tc qdisc добавить корневой дескриптор dev enp4s0 1: prio
sudo tc filter добавить dev enp4s0 протокол ip parent 1: prio 1 u32 match ip dst {CLIENT IP} flowid 1:2
(вниз)
sudo tc filter добавить dev enp4s0 протокол ip parent 1: prio 1 u32 match ip src {CLIENT IP} flowid 1:2
(вверх, кажется, не работает)
sudo tc qdisc add dev enp4s0 parent 1:2 handle 20: задержка netem 50 мс, скорость 100 Мбит
Кроме того, пока я искал решения, я нашел здесь что количество полос по умолчанию равно 3, поэтому это означает, что по умолчанию у меня может быть 3 qdisc netem для формирования трафика. Видимо, если я изменю количество полос в первой строке с помощью аргумента полосы Х
Мне тоже нужно отредактировать приомап, но после этого вроде бы все работает так же, как и раньше. К сожалению, я не могу найти ответ, почему это так работает.
Верен ли мой подход к проблеме? Будет ли это масштабируемо? Я не думаю, что мне когда-либо понадобится учитывать более 20 клиентов одновременно, поэтому я предполагаю, что позже это можно будет довольно хорошо автоматизировать с помощью некоторых сценариев. С другой стороны, есть ли лучший способ добиться того, что мне нужно, о котором я не знаю. Я очень новичок в этой теме, поэтому любые советы приветствуются, спасибо заранее.