Я пытаюсь поместить IP-сеть между двумя виртуальными машинами (VirtualBox) под нагрузкой, и для этого я разрываю трафик iperf c между ними, вот так:
сервер - VM A - OpenWrt OS
ip -s -p 6000
клиент - VM C - Alpine OS
iperf3 -c 128.16.1.10 -u -b 1000M -p 6000
Есть середина VM B - OpenWrt , который перенаправляет трафик c от A до C. Интерфейс VM B, который подключается к VM C, ограничен 1 Мбит / с. Таким образом, с помощью команды burst я ожидал увидеть увеличение пропущенных пакетов в этом интерфейсе, а это не так:
root@OpenWrt:~# ethtool -S eth1 | grep drop
tx_dropped: 0
dropped_smbus: 0
root@OpenWrt:~# ifconfig eth1
eth1 Link encap:Ethernet HWaddr 08:00:27:23:6F:7F
inet addr:128.16.1.11 Bcast:128.16.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe23:6f7f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11398 errors:0 dropped:0 overruns:0 frame:0
TX packets:34692 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1113439 (1.0 MiB) TX bytes:38766603 (36.9 MiB)
Я попытался изменить размер буферов, например, так:
ethtool -G eth1 rx 1 tx 1
, чтобы получить следующий вывод:
root@OpenWrt:~# ethtool -g eth1
Ring parameters for eth1:
Pre-set maximums:
RX: 4096
RX Mini: 0
RX Jumbo: 0
TX: 4096
Current hardware settings:
RX: 48
RX Mini: 0
RX Jumbo: 0
TX: 48
После этого я снова запустил iperf, но пакеты все еще не отбрасывались.
Я почти уверен, что пакеты упал из-за ограниченной пропускной способности виртуальной машины B. Но почему они не учитываются? Это ошибка OpenWrt или VirtualBox?