Отброшенные пакеты всегда 0 в ethtool и ifconfig во время трафика c пакет - PullRequest
0 голосов
/ 19 февраля 2020

Я пытаюсь поместить 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?

...