Raddle network emulator
Raddle is a network emulation framework. It is particularly useful when
testing network management systems or teaching people to use them.
The bulk of Raddle is concerned with emulating SNMP agents. Their
behaviour can be controlled by template files (e.g. using data dumped
from real SNMP devices). A configuration library is provided to augment
the static data with new interface definitions etc at runtime.
Raddle SNMP devices support GET and SET operations on any MIB item
defined in the template file. They also support random or constant
traffic generation on any Counter in the MIB.
Raddle is obtainable from the Sourceforge project page:
Raddle is based on these packages:
* Honeyd and Arpd for IP network emulation.
* net-snmp using the Perl module for SNMP agent emulation.
* Raddle is implemented in Perl, which is also the configuration language.
The initial implementation has been tested on Linux. Raddle should work
on any platform supported by Honeyd and net-snmp. This includes: Linux,
Raddle is not intended to provide a complete emulation of any particular
device. In particular, although the current version can emulate
traffic, it does not attempt to make all interfaces consistent or
even to count the real packets passing through it.
Due to the way Honeyd connects to the ethernet interface, it is
not possible to run Raddle in ethernet mode on a machine that has IP
Forwarding enabled. Also, in this mode Raddle cannot respond to packets
originating on the machine that it is running on. Running Honeyd and
Raddle on the loopback interface avoids both problems, though it
can expose issues with missing checksums on Linux loopbacks
(the raddle-specific version of Honeyd has a patch to fix this).
Watch out for the effects of firewall filters. In ethernet mode,
packets pass *into* Raddle directly from the ethernet interface, so
inbound filters have no effect. However, packets generated by Raddle
do pass through the outbound filters of firewall systems like ipchains
If you run Raddle on a machine that has its own SNMP daemon, you may need
to adjust the configuration of that daemon so that it does not listen
on the loopback or 'all-IPs' addresses. If you do not do this, then the base
daemon will answer in place of all Raddle-emulated devices.
Raddle is free open-source software. It is made available under an
MIT-style licence. See the file LICENCE for full details.
See the file INSTALLATION
The API documentation is embedded in the .pm files as POD. It should be
extracted and installed for you by the installation process, but if you
want to view it before installation, do this:
There are some examples of Raddle setups in the examples/* directories.
Consider ways to link the Raddle configuration with the Honeyd
configuration more easily.
Refactor the code to make it easier to build higher-level devices.
Provide a library of higher-level devices (routers, hosts, etc)
to make it easier to build emulations.
Consider adding a configuration/control GUI.
Tackle scaling issues related to net-snmp.
Support 64-bit counters and the ifXTable
Skills 1st Ltd
Updated November 2009
$Id: README,v 1.7 2012/06/07 17:16:06 afindlay Exp $