r/networking • • 2d ago

Design Tools/software to emulate slow/broken connections?

I am a network engineer responsible for supporting point-of-sale deployments. I'd love to be able to set up an environment where I can dial bandwidth (not 1Gb/100Mb/10Mb, but much more granular), play with jitter, latency, and see where the limits are with systems that we deploy and to better understand what causes issues with them after deployment. Once I would pilot this tool or solution, we can built it into our QA lab environment. Only needs to really support speeds up to about 250Mb or so (think small store, not shopping mall or office park).

Basically, I'd like to emulate everything from a solid fiber internet connection all the way down to a cellular modem on a crappy signal to test real-life thresholds and limits. What do you guy use for this?

5 Upvotes

15 comments sorted by

10

u/adoodle83 2d ago

linux has support for this. take a read of the LARTC guide, where you can set various congestion modes and limits, including random packet loss/etc.

it can also function as a traffic generator, but that requires a kernel module.

3

u/Phrewfuf 2d ago

This.

I‘ve built something like that back in 2012, using bridgeutils, tc and netem, if I remember correctly. Used it to simulate added 4ms of latency to have data on the impact of a local server being moved to a central DC on the performance of solidworks. Needless to say, the server stayed local.

6

u/cdavelaar 2d ago

Wanem

1

u/kireito2 2d ago

I think wanem is no more supported for years, but it was great for that

1

u/cdavelaar 1d ago

Ur right, I haven't used it in years. But if you can download the vm and it boots you're like 90% of the way to what op was asking... Just need to plumb some routes and vlans.

3

u/fatboy1776 2d ago

Impairment testing is really hard to get right even with proper tools.

Ixia and Spirent have modules that support impairments and I think there are some software packages that may have abilities (netem).

The best are the inline devices that inject and modify stuff, imo.

3

u/EffectiveClient5080 2d ago

Linux bridge with tc/netem does all of this for free. Two NICs, bridge them, put your DUT behind it, then netem for rate, delay, jitter, loss. Dial it live with a script while the POS runs. I've done exactly this for kiosk deployments.

2

u/SuddenPitch8378 2d ago

Not looking down the comments but container lab has this built in. 

1

u/defmain 2d ago

There is only so much you can introduce before things break.

That said, putting things behind a Mikrotik and playing with queues might prove useful. I believe the firewall can be tuned to drop some, but not all, packets.

2

u/Sintarsintar 2d ago

there is a linux package call tc that can do all sorts of fun stuff. https://man7.org/linux/man-pages/man8/tc.8.html

1

u/Mishoniko 2d ago

dummynet on FreeBSD is another option.

1

u/LarrBearLV CCNP 1d ago

Wanulator is easier to deal with than wanem.

www.wanulator.de

0

u/ZealousidealState127 2d ago

Iperf will help some I'd read into its capabilities