Формирование трафика Linux для большой полосы пропускания (более 1Gig)

Я провожу эксперимент между тремя компьютерами, которые подключены к интерфейсам 10G ig и имеют RTT 100 микро секунд. Допустим, это машины A, B и C. Машина A обменивается данными с B и C. Машины B и C не взаимодействуют друг с другом.

Я хочу ограничить полосу пропускания так, чтобы машины A и B имели полосу пропускания 5G бит / с и задержку 100 милли секунд. В то время как машины A и C не имеют регулирования полосы пропускания и задержки. Моя цель - имитировать глобальную сеть с большой доступной полосой пропускания.

Я пробовал использовать HTB и prio для ограничения пропускной способности и задержки. Однако максимальная достигнутая пропускная способность составляет около 350 Мбит / с. Тестировал через iperf. Насколько я понимаю, у нас не может быть пропускной способности более 1 Гб с использованием TC.

Есть ли способ или какой-либо инструмент для ограничения пропускной способности выше 1 Гигабайт?

Я использую следующие команды TC:

sudo tc qdisc del dev p4p1 root
sudo tc qdisc add dev p4p1 handle 1: root htb r2q 1000
sudo tc class add dev p4p1 parent 1: classid 1:3 htb rate 1000Mbps
sudo tc qdisc add dev p4p1 parent 1:3 handle 23: netem delay 50ms limit 100000000
sudo tc filter add dev p4p1 protocol ip prio 9 u32 match ip dst 10.96.0.1 flowid 1:3
0
задан 26 May 2017 в 12:09
1 ответ

У меня была та же проблема, что и у вас. В конце концов я нашел что-то, что работало на скорости 2 Гбит / с, которую мне нужно было снизить. Это сценарий. Измените по своему усмотрению.

#!/bin/sh
#
# Incoming traffic control
#
DEV=eth0
RATE="2000mbit"

tc qdisc del dev $DEV root
tc qdisc add dev $DEV root handle 1: htb default 10
tc class add dev $DEV parent 1: classid 1:1 htb rate ${RATE} burst 15k
tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${RATE} ceil ${RATE} burst 15k
tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10

echo;echo "tc configuration for $DEV:"
tc qdisc show dev $DEV
tc class show dev $DEV

#
# Outgoing traffic control
#
DEV=eth2
tc qdisc del dev $DEV root
tc qdisc add dev $DEV root handle 1: htb default 10
tc class add dev $DEV parent 1: classid 1:1 htb rate ${RATE} burst 15k
tc class add dev $DEV parent 1:1 classid 1:10 htb rate ${RATE} ceil ${RATE} burst 15k
tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10

echo;echo "tc configuration for $DEV:"
tc qdisc show dev $DEV
tc class show dev $DEV
0
ответ дан 24 November 2019 в 04:31

Теги

Похожие вопросы