Linux for network engineers lab 12 of 14
Performance: iperf3, netem, MTU and PMTUD
You measure a link with iperf3, then make it worse on purpose with netem and tbf to see how delay, rate and loss each change TCP. Then you shrink the MTU, build a PMTUD black hole and fix it with MSS clamping.
Run this lab
It needs Lite: its 4 nodes are set to 4 vCPU and 3,072 MB in total. That fits the free demo too.
In your workspace: Shared, then Linux for network engineers guided labs, then 12 - Performance - iperf3 netem MTU and PMTUD
- Level
- Advanced
- Time
- About 80 minutes
- Nodes need
- 4 vCPU, 3,072 MB
- Smallest plan
- Lite
The scenario
Kestrel is moving the Scunthorpe depot on to a slower link with a tunnel in the path, and the managers want to know what users will feel. There's no budget for a test circuit, but two Linux routers can pretend to be any WAN you like. You'll measure a clean path, then add delay, a rate limit and loss, and then shrink the MTU to see what breaks.
| Device | Interface | Address | Role |
|---|---|---|---|
| WS1 | eth0 | 10.12.1.50/24 | test client |
| GW1 | eth0, eth1 | 10.12.1.1/24, 10.12.0.1/30 | router; impairs traffic leaving eth1 |
| GW2 | eth0, eth1 | 10.12.0.2/30, 10.12.2.1/24 | router |
| WS2 | eth0 | 10.12.2.50/24 | iperf3 server, web server with small.txt and big.bin |
| Device | Runs | How to log in |
|---|---|---|
| WS1, WS2 | Ubuntu 22.04 desktop container | Its console is a remote desktop: root / eve. Open a terminal there. |
| GW1, GW2 | Alpine Linux 3.16 with iptables and iproute2 | Opens on a menu: press 5, then Enter, for a root shell. |
What you’ll practise
- Measure TCP and UDP with iperf3
- Add delay and loss with netem and shape with tbf
- Work out the bandwidth-delay product and see the window limit
- Find a path MTU with DF pings
- Recognise and fix a PMTUD black hole with MSS clamping
The tasks
- Start the Linux nodes
- Measure the baseline
- Add delay and meet the bandwidth-delay product
- Shape the rate
- Add a little loss
- Find the path MTU
- Fall into a black hole and climb out
The Lab Tasks pane has the scenario, these tasks, the checks to run, hints and the full solution.
Topology and devices
The network as it opens in EVE-NG, drawn from the lab’s own canvas, and the image each node runs.
Every link, as text
- WS1
eth0to GW1eth0 - GW1
eth1to GW2eth0 - GW2
eth1to WS2eth0
| Node | Device | Image in Add Node | Set to |
|---|---|---|---|
| WS1 | EVE-NG GUI server (Docker) | eve-gui-server:latest | 1 vCPU, 1,024 MB |
| WS2 | EVE-NG GUI server (Docker) | eve-gui-server:latest | 1 vCPU, 1,024 MB |
| GW1 | Alpine WAN emulator | clbalpinewanem-alpine-3-16-2-wanem | 1 vCPU, 512 MB |
| GW2 | Alpine WAN emulator | clbalpinewanem-alpine-3-16-2-wanem | 1 vCPU, 512 MB |
How to open this lab
Sign in to your workspace at
lab.cloudlabbox.com.In File Manager, open Shared, then the folder
Linux for network engineers guided labs.Open
12 - Performance - iperf3 netem MTU and PMTUDand start its nodes, then open Lab Tasks for the scenario and the steps.
The lab is read-only. You can start the nodes and configure the devices, but changes to the topology can’t be saved. To change it, rebuild it in your own folder.
More Linux for network engineers labs
All Linux for network engineers labs
CloudLabBox is independent of Cisco, CompTIA, the Linux Foundation and the Linux Professional Institute. The lab follows exam topics and isn’t vendor training material; vendor names identify the exams and the images in the workspace.