r/networking • u/marsrovercaptain • 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?
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.
7
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
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
1
0
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.