LINUX.ORG.RU
решено ФорумAdmin

генератор трафика с указанием лимита скорости


1

1

Пока что нашел такой: http://manpages.ubuntu.com/manpages/trusty/man1/tgn.1.html Использую так:

sudo tgn "ip(src = 192.168.1.30, dst = 192.168.1.2,ttl = <1, 2>)" -c 10000000
Он забивает канал под завязку, причем так что даже маршрутизатор подыхает.

А мне бы для тестов - генератор трафика, в котором можно было бы задать скорость в Мбит/с, чтобы он генерировал не более и не менее N Мбит/с.

Есть ли такой? Каким генератором трафика пользуетесь Вы?

iperf:

...
Client specific:
  -a, --tcp_bandwidth \    for TCP, bandwidth to send at in bits/sec
		  #[KM]    (default no bandwidth limit used)
  -b, --bandwidth #[KM]    for UDP, bandwidth to send at in bits/sec
                           (default 1 Mbit/sec, implies -u)
...

blind_oracle ★★★★★
()
Ответ на: комментарий от blind_oracle

В первую очередь рассматривал этот вариант, однако мне надо чтобы UDP-трафик генерировался в одностороннем порядке. Специально выгугливал - надо чтобы был сервер и клиент. Мне же требуется тупо одностороннее забивание канала трафиком N Мбит/с...

Это для одного специального сценария. Хотя разумеется, для всех прочих тестов мне iperf гораздо больше подходит.

Нашел другое решение - программа «ostinato» (https://code.google.com/p/ostinato/ - поставил из opensuse build service но свою Ubuntu). Она малость странновата (впечатление поделки), но генерирует поток какой надо и как надо.

I-Love-Microsoft ★★★★★
() автор топика
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от vel

pktgen меня пугает (напоминает горячо НЕ-любимый мной oprofile, тоже ядерная тулза была, пока нормальный perf не сделали)... всего-лишь надо N Mbit/s

впрочем, с ostinato я уже всё сделал :)

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

iperf в режиме UDP не требует сервера, ругается варнингами конечно на то что ACK не получает, но пакеты исправно шлёт:

# iperf --udp -c 192.168.0.1 -t 10 --bandwidth 10M
------------------------------------------------------------
Client connecting to 192.168.0.1, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 192.168.254.2 port 32925 connected with 192.168.0.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  11.9 MBytes  9.98 Mbits/sec
[  3] Sent 8505 datagrams
read failed: Connection refused
[  3] WARNING: did not receive ack of last datagram after 5 tries.
# tcpdump -i gre0 'udp port 5001'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on gre_simf, link-type LINUX_SLL (Linux cooked), capture size 65535 bytes
16:45:27.896224 IP 192.168.254.2.32925 > 192.168.0.1.5001: UDP, length 1470
16:45:27.897580 IP 192.168.254.2.32925 > 192.168.0.1.5001: UDP, length 1470
16:45:27.898521 IP 192.168.254.2.32925 > 192.168.0.1.5001: UDP, length 1470
16:45:27.899709 IP 192.168.254.2.32925 > 192.168.0.1.5001: UDP, length 1470
16:45:27.900876 IP 192.168.254.2.32925 > 192.168.0.1.5001: UDP, length 1470
16:45:27.902044 IP 192.168.254.2.32925 > 192.168.0.1.5001: UDP, length 1470
16:45:27.903188 IP 192.168.254.2.32925 > 192.168.0.1.5001: UDP, length 1470
16:45:27.904397 IP 192.168.254.2.32925 > 192.168.0.1.5001: UDP, length 1470
16:45:27.905581 IP 192.168.254.2.32925 > 192.168.0.1.5001: UDP, length 1470
16:45:27.906764 IP 192.168.254.2.32925 > 192.168.0.1.5001: UDP, length 1470
16:45:27.907936 IP 192.168.254.2.32925 > 192.168.0.1.5001: UDP, length 1470
16:45:27.909136 IP 192.168.254.2.32925 > 192.168.0.1.5001: UDP, length 1470
16:45:27.910305 IP 192.168.254.2.32925 > 192.168.0.1.5001: UDP, length 1470
16:45:27.911434 IP 192.168.254.2.32925 > 192.168.0.1.5001: UDP, length 1470
...
blind_oracle ★★★★★
()
Ответ на: комментарий от blind_oracle

Да, точно, спасибо! На скоростях до 15 Мбит/с оно почему-то по факту меньше отдает, например вместо 12 дает 10.7 Mbits/sec, хотя - сойдет для сельской местности. Тоже хорошо.

iperf --udp -c 192.168.1.2 -t 10 --bandwidth 12M
------------------------------------------------------------
Client connecting to 192.168.1.2, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.30 port 48571 connected with 192.168.1.2 port 5001
read failed: Connection refused
[  4] WARNING: did not receive ack of last datagram after 1 tries.
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  12.7 MBytes  10.7 Mbits/sec
[  4] Sent 10205 datagrams
I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от blind_oracle

Странно, SNMP на маршрутизаторе дохнет когда я iperf-ом тестирую. А когда генерю с помощью ostinato (например 65 мбит/с) - всё нормально.

I-Love-Microsoft ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.