How to install the
emulation package, version 2.0.5
Note: These install instructions are for version 2.0.5. If
you choose instead the 1.3bis version, follow the (very
slighly different) instructions included with it.
- Prerequisites: NIST Net version 2.0.5 requires a Linux 2.0.xx
(2.0.27 - 2.0.38) or 2.2.xx (2.2.5 - 2.2.17) level kernel. It should
compile with either "linux" libc headers or "glibc" libc headers, with the
proviso that of course kernel files can't be compiled with glibc headers.
(Note: it does not install as is on the new 2.4 prelease
kernel. This will be addressed in an upcoming release. It may or
may not install on 2.1.xx and 2.3.xx kernels; you're on your own if
you want to try that.)
- Click here to get the NIST Net source
package, version 2.0.5. (The binary version won't be available until the
"modularized" 2.0.6 version comes out.)
The source comes in a gzipped tar file, nistnet.tar.gz.
- tar -xvzf nistnet.tar.gz - produces a directory nistnet
and a bunch of files in it. That is the directory referred to as
nistnet below.
- Before you try to install NIST Net, first make sure you can build and
install usable kernels:
- cd /usr/src/linux
- make config (or menuconfig/xconfig)
- - answer questions appropriately*
- make
- - check for errors (complain to your Linux guru if there are any!)
- make modules
- make install
- make modules_install
- reboot
- - make sure new kernel boots properly
* "Appropriately" includes in particular checking "yes" to "Enable loadable
module support." (This is almost certainly already checked "yes" by
default.)
- Install the fast timer kernel patches:
- If you have installed previous versions of NIST Net, run
- ./Update.Kernel
- - to update timer patches to get the current versions
- If you haven't installed it before, run:
- ./Patch.Kernel
- - to install all the kernel patches
(Make sure the patches install correctly! Messages like "offset 2 lines"
or "with fuzz 2" are ok; but things like "Hunk 1 FAILED" or
"misordered hunks" are not. If some of the patches fail, your kernel
is pretty much guaranteed not to work. Before you worry too much, the
patches shouldn't fail, unless you've made other kernel modifications
which somehow confused things. If you've managed to do that, you ought
to be able to figure out how to fix things too....)
- Now, configure and build the patched kernel:
- cd /usr/src/linux
- make config (or menuconfig/xconfig)
- - say "y" to CONFIG_FAST_TIMER (at end, under "kernel hacks")*
- make dep
- make install
- - You may want to save a previous kernel
version for failsafe; then reboot and make sure things work.
* Note: CONFIG_REPACK has been eliminated, for those of you who have
installed NIST Net before.
- Check the configuration and create the appropriate Makefile:
- cd nistnet
- edit Imakefile
- - Decide whether or not you want
support for explicit congestion notification processing.
If not, remove the -DCONFIG_ECN from the Makefile.
If you do want it, you need do nothing.
Also, decide whether you want COS (class of service)
selection support. If so, uncomment -DCONFIG_COS.
- cd nistnet/monitor
- edit Imakefile
- - may want to use an alternative to the
Xaw3d widget set.
- Tested with Athena Xaw, Xaw3d, and neXtaw
- xmkmf -a
- - creates customized Makefiles.
(Note: you *must* run xmkmf, even if you don't change
the Imakefile! That's because I'm using XFree86 4.0.1, and you almost
certainly are not. So you'll have to regenerate the Makefiles.)
- Build and install the nistnet module, API library, and user interface
- cd nistnet
- make
- make install
- Try things out:
- insmod nistnet
- - loads "nistnet" emulator module into kernel
- xnistnet
- - runs (X-based) user interface
- cnistnet -h
- - usage info for command-line interface
- insmod mungemod
- - loads "mungebox," a sample emulator add-on
- mungebox -u -a src dest -S
- - view traffic between src and dest
- insmod nistspy
- - loads "nistspy" sample add-on (note: only
one add-on can be installed at a time)
- nistspy -u -a src port dest port
newdest newport
- - duplicate traffic to newdest/port
- To turn off:
- cnistnet -d or "off" button in xnistnet
- - turns off emulator
- nistspy -d
- - turn off duplicator
(mungebox shuts itself off automatically)
- rmmod mungemod (or nistspy)
- - removes add-on module
(must be done before removing nistnet)
- rmmod nistnet
- - removes module from kernel
- If you want to try congestion notification, ping.tar has source for
a modified version of ping which allows setting and checking the ECN bits.
To build it, you need a copy of netkit-base-0.10, available from
SunSite (www.sunsite.unc.edu)
Walnut Creek (www.cdrom.com)
and many other fine sites. Get it
and configure it, then overlay the ping code in it with the source here.
This level of testing just shows the bits being set, of course. Things
are more interesting if you have an implementation of TCP with ECN to
test with. (This is available in the latest versions of Linux, for
example.)
- For more usage information, check the README.WhatsNew file found
in the top-level nistnet directory.
Comments? Questions? Let us know at
nistnet-dev@antd.nist.gov.
[
Home Page]
[Installing NIST Net]
[Using NIST Net]
[NIST Net FAQ]