FREEDOM251

Freedom251 › Network Testing Software

MoonGen

Free plan LinuxSelf-hosted

Visit MoonGen Alternatives Pricing

MoonGen's own site

What MoonGen is

MoonGen is a free, self-hosted packet generator for Linux, built on DPDK and LuaJIT for high-speed network testing. Lua scripts can craft packets in real time and control both transmission and reception, giving testers control over the traffic in a test. The project says MoonGen can fill a 10 Gbit/s Ethernet link with 64-byte packets on one CPU core while modifying each packet with Lua. It supports multiple cores, with more than 20 million packets per second per core given as a performance target.

MoonGen provides precise rate control and hardware timestamping; on supported network cards, timestamp precision and accuracy are below 100 ns. Its listed traffic includes Ethernet, IPv4, IPv6, UDP, TCP, ARP, ICMP, and PTP. The README describes using it to benchmark systems such as firewalls and identify which packets a system under test drops. A simplified command-line interface is available for quick tests, while the full API supports custom scripts and more complex setups. The related MoonEm tool can emulate path delay, rate limits, and random packet loss. MoonGen is MIT licensed. Installation uses a build script, Debian or Ubuntu dependencies, and binding network cards to DPDK; available features vary by NIC model.

Who it suits

MoonGen suits network engineers and researchers who need to generate and measure traffic for system benchmarks, including firewall tests. It is best suited to Linux users comfortable with DPDK, network-card setup, and Lua scripting for custom tests.

What it does well

  • Free to use and MIT licensed.
  • Lua scripts control packet construction, transmission, and reception.
  • Supports multiple CPU cores for traffic generation.
  • Offers rate control and hardware timestamping on supported NICs.
  • Includes a simplified command-line interface and a full API.
  • MoonEm can emulate path delay, rate limits, and random packet loss.

What to know first

  • Requires Linux and a DPDK-compatible network card.
  • NIC feature support varies by model.
  • Hardware checksum offloading and timestamping do not work on ixgbe NICs with this version.
  • Full API use requires custom Lua scripts.

Limits

MoonGen requires a DPDK-compatible network card, and available features depend on its model. This version does not support hardware checksum offloading or timestamping on ixgbe NICs; full API use requires custom Lua scripts.

Plans

PlanBilled and limitsPrice
MoonGen (MIT licensed)Requires DPDK compatible NICs · NIC features vary by model · Requires custom Lua scripts for full API useFree

As github.com lists them, read 8 Oct 2026. The maker's own page has the final word.

Getting started

  1. Use a Linux system with a DPDK-compatible network card.
  2. Install the documented Debian or Ubuntu dependencies.
  3. Run the build script.
  4. Bind the network card to DPDK.
  5. Use the simplified command-line interface for a quick test, or write Lua scripts for custom API use.

Verdict

Choose MoonGen if you need a free Linux packet generator with scriptable traffic control and network measurement. Look elsewhere if your network cards lack the required DPDK support or you need hardware checksum offloading or timestamping on ixgbe NICs with this version.

Questions

Is MoonGen free?

Yes. MoonGen is listed as free, with a price of $0, and the project is MIT licensed.

What platforms does MoonGen support?

MoonGen runs on Linux as self-hosted software.

What hardware does MoonGen require?

It requires a DPDK-compatible network card. Basic functionality is available on DPDK-supported NICs, while timestamping and rate control support vary by model.

What traffic protocols does MoonGen support?

Its listed traffic includes Ethernet, IPv4, IPv6, UDP, TCP, ARP, ICMP, and PTP.

Does MoonGen support hardware timestamping?

Yes, with precision and accuracy below 100 ns on supported NICs. This version does not support timestamping on ixgbe NICs.

How do I install MoonGen?

The documented route uses a build script, Debian or Ubuntu dependencies, and binding network cards to DPDK.

Facts from MoonGen's own pages

Hardware support
Basic functionality is available on DPDK-supported NICs; hardware timestamping and rate control support varies by NIC model. · github.com, 8 Oct 2026
Installation
The documented installation uses a build script and requires binding NICs to DPDK; Debian and Ubuntu dependencies are listed. · github.com, 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. · github.com, 8 Oct 2026
Known limitation
The README says hardware checksum offloading and timestamping do not work on ixgbe NICs with this version of MoonGen. · github.com, 8 Oct 2026
License
The repository identifies the project as MIT licensed. · github.com, 8 Oct 2026
Measurement
MoonGen supports precise rate control and hardware timestamping, with timestamp precision and accuracy below 100 ns on supported NICs. · github.com, 8 Oct 2026
Packet control
User-provided Lua scripts craft packets in real time and control packet reception as well as transmission. · github.com, 8 Oct 2026
Path emulation
The related MoonEm tool can emulate path delay, rate limits, and random packet loss. · github.com, 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. · github.com, 8 Oct 2026
Purpose
MoonGen is a scriptable high-speed packet generator built on DPDK and LuaJIT. · github.com, 8 Oct 2026
Scaling
MoonGen supports multiple cores and reports more than 20 million packets per second per CPU core as a performance target. · github.com, 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. · github.com, 8 Oct 2026

Where MoonGen stands on Freedom251

Look at these too