Instalación NIST Net

De WikiEtl
Saltar a: navegación, buscar

HOWTO: Como instalar NIST Net emulation package, version 2.0.12

Descarga

Página WEB:

http://snad.ncsl.nist.gov/itg/nistnet/install.html

Para instalar NIST Net en el servidor debemos dar permisos de lectura y escritura a la particion /usr y a /usr/local. Para dar los permisos, debemos remontar la partición. Después hay que dejarlo como estaba (ro)

Descarga del paquete:

root@mmserv01:/usr/src# wget http://www-x.antd.nist.gov/nistnet/dist/nistnet.2.0.12c.tar.gz
--13:59:03--  http://www-x.antd.nist.gov/nistnet/dist/nistnet.2.0.12c.tar.gz
          => `nistnet.2.0.12c.tar.gz'
Resolviendo www-x.antd.nist.gov... 129.6.100.251
Connecting to www-x.antd.nist.gov|129.6.100.251|:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 2,801,130 (2.7M) [application/x-gzip]
100%[=====================================================================>] 2,801,130    694.65K/s    ETA 00:00
13:59:08 (609.22 KB/s) - `nistnet.2.0.12c.tar.gz' saved [2801130/2801130]

Desempaquetado

root@mmserv01:/usr/src# tar xvfz nistnet.2.0.12c.tar.gz

Dependencias

Paquetes: libxaw-headers, libxpm-dev, libxaw7-dev

root@mmserv01:/usr/src# apt-get update
root@mmserv01:/usr/src# apt-get install libxaw-headers libxpm-dev libxaw7-dev


Cambios previos

Hay que cambiar cuatro lineas en /usr/src/nistnet-3.0a/kernel/knistnet.c

return ippt->func(skb, dev, ippt);

a:

return ippt->func(skb, dev, ippt, NULL);

en las lineas:

916, 961, 972, 1003

Comentar la siguiente línea en: /usr/src/nistnet-3.0a/kernel/nistnet_table.c:

/* typedef enum {false = FALSE, true = TRUE} boolean; */

Ahora hay que buscar las cabeceras de los fuentes para añadir config.h. Añadir el siguiente fichero config.h en /usr/src/linux-headers-2.6.2[0..9]-[a..z]/include/linux/ con:

#ifndef _LINUX_CONFIG_H
#define _LINUX_CONFIG_H
#include <linux/autoconf.h>
#endif


Compilación

root@mmserv01:/usr/src/nistnet-3.0a# ./configure
Kernel headers found at /lib/modules/2.6.21-mh1-misdn/build/include/linux
Add explicit congestion notification (ECN) support [yes]?
Add class/type of service (COS) support [yes]?
Which delay distribution do you want to use?
       experimental normal pareto paretonormal? [ experimental ]
Using -lXaw3d for the widget set...
mv -f Makefile Makefile.bak
imake -DUseInstalled -I/usr/lib/X11/config
make Makefiles
making Makefiles in TextField-1.01...
        mv -f Makefile Makefile.bak
make[1]: se ingresa al directorio `/usr/src/nistnet-3.0a/monitor'
make[1]: se sale del directorio `/usr/src/nistnet-3.0a/monitor'
make[1]: se ingresa al directorio `/usr/src/nistnet-3.0a/monitor/TextField-1.01'
make[1]: No se hace nada para `Makefiles'.
make[1]: se sale del directorio `/usr/src/nistnet-3.0a/monitor/TextField-1.01'
making Makefiles in Frame-1.0...
       mv -f Makefile Makefile.bak
make[1]: se ingresa al directorio `/usr/src/nistnet-3.0a/monitor'
make[1]: se sale del directorio `/usr/src/nistnet-3.0a/monitor'
make[1]: se ingresa al directorio `/usr/src/nistnet-3.0a/monitor/Frame-1.0'
make[1]: No se hace nada para `Makefiles'.
make[1]: se sale del directorio `/usr/src/nistnet-3.0a/monitor/Frame-1.0'
make includes
make: No se hace nada para `includes'.
make depend
gccmakedep  --  -ITextField-1.01 -IFrame-1.0 -I/usr/include/X11/Xaw -I/usr/include/X11/Xmu -I.. -I../lib -I../include    -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L                            -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE                                 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64                                   -DFUNCPROTO=15 -DNARROWPROTO      --
gccmakedep  --  -ITextField-1.01 -IFrame-1.0 -I/usr/include/X11/Xaw -I/usr/include/X11/Xmu -I.. -I../lib -I../include    -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L                            -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE                                 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64                                   -DFUNCPROTO=15 -DNARROWPROTO      --


root@mmserv01:/usr/src/nistnet-3.0a# make
set -e; for i in math lib cli monitor kernel man; do make -C $i ; done
make[1]: se ingresa al directorio `/usr/src/nistnet-3.0a/math'
rm -f makemutable makesigtable pareto.h pareto.mu.h pareto.sigma.h
make DODISTRIBUTION='-DUSE_PARETO -DDISTRIBUTION_NAME="\"pareto\""' pareto makemutable makesigtable
make[2]: se ingresa al directorio `/usr/src/nistnet-3.0a/math'
cc -I. -I../include -I. -I../include -DPARETOALPHA=3.2 -o pareto pareto.c -lm
cc -I. -I../include -I. -I../include   -c -o random.o random.c
cc -I. -I../include -I. -I../include   -c -o libstats.o libstats.c
...
make[2]: se sale del directorio `/usr/src/linux-2.6.21-mh1'
make[1]: se sale del directorio `/usr/src/nistnet-3.0a/kernel'
make[1]: se ingresa al directorio `/usr/src/nistnet-3.0a/man'
make[1]: No se hace nada para `all'.
make[1]: se sale del directorio `/usr/src/nistnet-3.0a/man'

Instalación

root@mmserv01:/usr/src/nistnet-3.0a# make install
...
set -e; for i in math lib cli monitor kernel man; do make -C $i install; done
make[1]: se ingresa al directorio `/usr/src/nistnet-3.0a/math'
cp -p experimental.h experimental.mu.h experimental.sigma.h normal.h normal.mu.h normal.sigma.h pareto.h pareto.mu.h  pareto.sigma.h paretonormal.h paretonormal.mu.h paretonormal.sigma.h ../include
make[1]: se sale del directorio `/usr/src/nistnet-3.0a/math'
make[1]: se ingresa al directorio `/usr/src/nistnet-3.0a/lib'
install -m 444 libnistnet.a /usr/local/lib
make[1]: se sale del directorio `/usr/src/nistnet-3.0a/lib'
make[1]: se ingresa al directorio `/usr/src/nistnet-3.0a/cli'
mkdir /usr/local/bin
mkdir: no se puede crear el directorio «/usr/local/bin»: El fichero ya existe
make[1]: [install] Error 1 (no tiene efecto)
install -o root hitbox cnistnet /usr/local/bin
install -o root mungebox /usr/local/bin
install -o root nistspy /usr/local/bin
make[1]: se sale del directorio `/usr/src/nistnet-3.0a/cli'
make[1]: se ingresa al directorio `/usr/src/nistnet-3.0a/monitor'
install -c   xnistnet /usr/bin/xnistnet
install in . done
make[1]: se sale del directorio `/usr/src/nistnet-3.0a/monitor'
make[1]: se ingresa al directorio `/usr/src/nistnet-3.0a/kernel'
make -C /lib/modules/2.6.21-mh1-misdn/build M=/usr/src/nistnet-3.0a/kernel V=1 modules_install
make[2]: se ingresa al directorio `/usr/src/linux-2.6.21-mh1'
mkdir -p /lib/modules/2.6.21-mh1-misdn/extra
make -f /usr/src/linux-2.6.21-mh1/scripts/Makefile.modinst
  mkdir -p /lib/modules/2.6.21-mh1-misdn/extra; cp /usr/src/nistnet-3.0a/kernel/nistnet.ko /lib/modules/2.6.21-mh1-misdn/extra ; true /lib/modules/2.6.21-mh1-misdn/extra/nistnet.ko
 if [ -r System.map -a -x /sbin/depmod ]; then /sbin/depmod -ae -F System.map  2.6.21-mh1-misdn; fi
make[2]: se sale del directorio `/usr/src/linux-2.6.21-mh1'
make[1]: se sale del directorio `/usr/src/nistnet-3.0a/kernel'
make[1]: se ingresa al directorio `/usr/src/nistnet-3.0a/man'
mkdir /usr/local/man
mkdir: no se puede crear el directorio «/usr/local/man»: El fichero ya existe
make[1]: [install] Error 1 (no tiene efecto)
mkdir /usr/local/man/man1
mkdir: no se puede crear el directorio «/usr/local/man/man1»: El fichero ya existe
make[1]: [install] Error 1 (no tiene efecto)
install -m 444 cnistnet.1 hitbox.1 xnistnet.1 /usr/local/man/man1
mkdir /usr/local/man/man3
install -m 444 nistnetlib.3 oldnistnetlib.3 /usr/local/man/man3
mkdir /usr/local/man/man4
install -m 444 nistnet.4 oldnistnet.4 /usr/local/man/man4
make[1]: se sale del directorio `/usr/src/nistnet-3.0a/man'
rm -f /dev/hitbox
mknod /dev/hitbox c 62   0
rm -f /dev/nistnet
mknod /dev/nistnet c 62 1
chown root /dev/hitbox
chown root /dev/nistnet
rm -f /dev/mungebox
mknod /dev/mungebox c 63 0
chown root /dev/mungebox
rm -f /dev/spybox
mknod /dev/spybox c 64 0
chown root /dev/spybox 

Comprobación

root@mmserv01:/usr/src/nistnet-3.0a# depmod -a
root@mmserv01:/usr/src/nistnet-3.0a# modprobe nistnet
root@mmserv01:/usr/src/nistnet-3.0a# lsmod |grep nistnet
nistnet                53392  0
root@mmserv01:~# cnistnet -G
Emulator is: Off
Average processed packet overhead 0 usec
Average unprocessed packet overhead 2 usec
A verage hash tries 0

¡Voilà!

--Rbravo 15:05 14 may 2008 (UTC) --Tania 10:56 27 may 2008 (UTC)