ClusterGen is a traffic generator which uses pktgen Linux kernel module for packet generation. To reach high intensity of traffic, ClusterGen uses set of hosts that generate traffic at the same time.
Supported traffic model and parameters are determined by pktgen kernel module capabilities. ClusterGen is only responsible for interaction with kernel module.
Project was initially written and being developed by MERA.
It is distributed under GNU General Public License version 3 or (at your option) any later version.
Project documentation is licensed under the GNU Free Documentation License, version 1.3 or later.
ClusterGen contains two parts:
Here is architecture of the ClusterGen:
pktd interacts with pktgen through procfs file system. It doesn't do any processing of data. Instead all work is done on the control host, where ClusterGen is running.
There are no authorization mechanisms in pktd so far - any connection is considered as valid, so you should care about security.
See the [User Manual] for information about installation and usage.
pktgen is a module for the Linux kernel which allows to generate traffic with high intensity. pktgen uses UDP protocol because it has smaller overhead than TCP. If destination port isn't configured, pktgen uses port number 9 (discard port). procfs is used to control it and getting statistics.
If destination IP isn't configured, pktgen will use localhost as destination. In this case generated packets won't go out into real network.
Further reading:
In this scenario, SUT is placed between cluster and target, and serve incoming traffic:
Obviously this scenario can be used for testing switches, but also the part of a computer network can be placed here as a SUT.
In this scenario, target and SUT are the same entity:
There is a switch between SUT and cluster, that does merge of several traffic flows into one, which is sent to SUT. It allows to reach significant traffic intensity (1Gbit/s or more) by using cheap Linux hosts with 100Mbit Ethernet cards.