MoonGen
MoonGen is a free, MIT-licensed packet generator for high-speed network testing on Linux.
What MoonGen is
MoonGen is a free, MIT-licensed packet generator for high-speed network testing on Linux. It uses DPDK and LuaJIT, and Lua scripts can craft packets in real time while controlling both transmission and reception. The project describes filling a 10 Gbit/s Ethernet link with 64-byte packets on one CPU core while modifying them with Lua. It supports multiple cores, with a performance target above 20 million packets per second per core. Supported traffic includes Ethernet, IPv4, IPv6, UDP, TCP, ARP, ICMP, and PTP. MoonGen offers rate control and hardware timestamping with precision and accuracy below 100 ns on supported network cards. It can be used to benchmark systems such as firewalls and check which packets they drop. A simplified command-line interface is available for quick tests, while its full API supports custom scripts and more complex setups. The related MoonEm tool can emulate path delay, rate limits, and random packet loss. Installation involves a build script and binding network cards to DPDK; supported features vary by card model.
Good
- Free and MIT licensed.
- Lua scripts control packet transmission and reception.
- Supports multiple cores and high packet rates.
- Provides rate control and hardware timestamping on supported cards.
Watch out
- Requires a DPDK-compatible network card.
- Card features vary by model.
- Hardware checksum offloading and timestamping do not work on ixgbe NICs with this version.
Who it suits
It suits network engineers who need scripted packet generation to benchmark systems such as firewalls. Users need Linux, a DPDK-compatible network card, and Lua scripts for full API use.
Verdict
MoonGen offers scriptable packet generation and measurement for Linux network tests. Check NIC compatibility first, especially if hardware timestamping or checksum offloading is needed.
Plans and prices
From MoonGen's own pricing page, checked 8 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| MoonGen (MIT licensed) | Free | Requires DPDK compatible NICs · NIC features vary by model · Requires custom Lua scripts for full API use |
The facts
Each one read from MoonGen's own pages, with the date it was checked.
What it does
- Hardware support
- Basic functionality is available on DPDK-supported NICs; hardware timestamping and rate control support varies by NIC model.checked 8 Oct 2026
- Installation
- The documented installation uses a build script and requires binding NICs to DPDK; Debian and Ubuntu dependencies are listed.checked 8 Oct 2026
- Interface
- MoonGen offers a simplified command-line interface for quick tests and a full API for custom scripts and more complex test setups.checked 8 Oct 2026
- Known limitation
- The README says hardware checksum offloading and timestamping do not work on ixgbe NICs with this version of MoonGen.checked 8 Oct 2026
- License
- The repository identifies the project as MIT licensed.checked 8 Oct 2026
- Measurement
- MoonGen supports precise rate control and hardware timestamping, with timestamp precision and accuracy below 100 ns on supported NICs.checked 8 Oct 2026
- Packet control
- User-provided Lua scripts craft packets in real time and control packet reception as well as transmission.checked 8 Oct 2026
- Path emulation
- The related MoonEm tool can emulate path delay, rate limits, and random packet loss.checked 8 Oct 2026
- Performance
- The README says MoonGen can saturate a 10 Gbit/s Ethernet link with 64 byte packets on one CPU core while modifying each packet with a Lua script.checked 8 Oct 2026
- Purpose
- MoonGen is a scriptable high-speed packet generator built on DPDK and LuaJIT.checked 8 Oct 2026
- Scaling
- MoonGen supports multiple cores and reports more than 20 million packets per second per CPU core as a performance target.checked 8 Oct 2026
- Use cases
- The README describes using MoonGen to benchmark systems such as firewalls and to check which packets a system under test drops.checked 8 Oct 2026
Alternatives to MoonGen
- 1

PingPlotter
Free planiOSWebAPILinux8.2From $6.99 a month - 2
iPerf2
Free planOpen sourceAndroidiOSLinuxmacOS7.8Free plan - 3

GitHub CodeQL
Free planWebExtensionLinuxmacOS7.5From $30 a month - 4
Avidemux
Free planOpen sourceWebLinuxmacOSWindows7.3Free plan - 5

EVE-NG
Free planWebLinuxmacOSSelf-hosted7.0Free plan - 6

Netpicker
Free planWebAPILinuxSelf-hosted6.8From $7,500 a year
