安装准备:
下载 nistnet.2.0.12b.tar.gz
nistnet.2.0.12c.tar.gz
(Nistnet是运行在linux平台下的,目前有2.0.12b和c两个版本,具体安装哪个版本要视linux内核而定,2.4.**以下的用b,2.6.**的用c,千万别安错了;kernel 2.6.*下问题比较多,不太好搞。)
以下就以Red Had 9做个例子
一.安装系统
安装有kernel 2.4.**的linux,硬盘如果够大,建议linxu模块全部安装,大约5G+;免的出错。
二.安装NISTnet
(1)安装NISTNET前重新生成新内核(因为NISTNET的新版本用RTC-real time clock,以前老版本用fast timer,RTC更稳定)
open CLI:
cd /usr/src/linux2.4.20-8 // kernel文档目录
make mrproper //删除不稳定的.O文件和.config配置文件
make menuconfig //调出修改内核工具
to make sure:
Loadable module support -->
Set version information no all module symbols --off //又说按M键设置,本人在设置的时候用的N键
Character devices -->
Enhanced Real Time Clock Suppot --M //按M键,设置
make dep //连接程序代码和函数库
make clean //删不必要的模块
make bzImage //生成内核文件
cp /usr/src/linux2.4.20-8/arch/i386/boot/bzImage /boot/vmlinuz-2.4.20-8_new //该步骤可能会提示用户“没有该目录…”,请检查所在目录,正确运用cp命令即可
make modules //编译外挂模块
make modules_install //安装编译完成的模块
make install //把新的内核和相关文件复制到正确的目录,并修改grub.conf文件,在grub 菜单会添加一个新的内核启动选项(也可以自己修改)
// ----------------------------------------------------------
mkinitrd /boot/initrd-2.4.20-8_new.img 2.4.20-8
edit grub.conf (/boot/grub/grub.conf , add a new title and the root path) 编译启动文件(title Red Hat Linux (2.4.20-8 new)
root (hd0,0)
kernel /vmlinuz-2.4.20-8_new ro root= /dev/hda?
initrd /initrd-2.4.20-8_new.img
)
//-----------------------------------------------------------
Reboot
注意:从新内核引导;当重启过程中出现让你选择kernel 的选项时要选择最新编译过的,就是最上面的那个。
(2)安装NISTNET
cd ~./NistNet //进入NistNet解压缩目录
./configure
make
make install //安装完成,如果没有错误就下一步
(3)测试安装是否成功
cd ~./NistNet
./Load nistnet
cnistnet –u //加载模块 &也可使用图像窗口,xnistnet –u
cnistnet –a 192.168.100.1 192.168.2.121 --drop 30 --delay 30 //进行丢包及延时设定
Clinet 一端:执ping操作(192.168.100.111 ping 192.168.2.121)
对比执行cnistnet –d 后的结果 //off该功能
显然执行cnistnet –a[]后,有了丢包及延时,说明测试ok!
有关NISTNET 的命令,执行cnistnet –h即可看到 //or 执行cnustnet也可显示
[root@localhost root]# cnistnet -h
cnistnet: invalid option -- h
Usage: cnistnet - must be root to run it.
-u up (on)
-d down (off)
-a src[:port[.protocol]] dest[:port[.prot]] [cos] add new
[--delay delay [delsigma[/delcorr]]]
[--drop drop_percentage[/drop_correlation]]
[--dup dup_percentage[/dup_correlation]]
[--bandwidth bandwidth]
[--drd drdmin drdmax [drdcongest]]
-r src[:port[.prot]] dest[:port[.prot]] [cos] remove
-s src[:port[.prot]] dest[:port[.prot]] [cos] see stats
-S src[:port[.prot]] dest[:port[.prot]] [cos] see stats continuously
[-n] -R read table (-n numerical format)
-D value debug on (value=1 minimal, 9 maximal)
-U debug off
-G global stats
-K kickstart the clock
-F flush the queues
-h this help message
三.LINUX路由设置
我们的NISTNET已经安装OK!下面进行LINUX路由设置:
Linux环境下双网卡主机
(1)、环境:
三台直接相连的计算机主机如图
CLINET 1<------>NISTnet<------>CLINET 2
其中NISTnet上有两块网卡eth0、eth1,分别与CLINET 1、CLINET 2相连
(2)、需求:
将NISTnet配置为路由器模式,用来在CLINET 1、CLINET 2之间转发报文
(3)、方法:
将三台主机按照环境所要求用交叉线直接连网后,为三台主机分配网段并配置IP地址。
网段及IP地址分配如下:
------- --------------- ------------------ ------------------
主机名 所在网段 分配IP 网关
CLINET 1: 192.168.100.0/24 192.168.100.111/24 192.168.100.1
NISTnet: 192.168.100.0/24 eth1:192.168.100.1/24 eth0
192.168.2.0/24 eth0:192.168.2.1/24 eth1
CLINET 2: 192.168.2.0/24 192.168.2.121/24 192.168.2.1
-------------------------------------------------------------------------
按照上表所示分别将主机IP地址配置好,其中要注意的是,要想使NISTnet具有报文转发功能,
在NISTnet上检查/proc/sys/net/ipv4/ip_forward中的值是否为1
命令:
#cat /proc/sys/net/ipv4/ip_forward
如果显示其值不为1而是0 输入以下命令:
#echo 1 > /proc/sys/net/ipv4/ip_forward //打开IP转发功能
打开包的转发功能通常情况执行以下步骤即可:
#echo 1 > /proc/sys/net/ipv4/ip_forward //打开IP转发
#iptables -t nat -F // 清除原有的nat表中的规则
#iptables -F //清除原有的filter有中的规则
#iptables -P FORWARD ACCEPT //缺省允许IP转发
#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE //在公网出口进行地址伪装,这样即使以后公网地址修改了也不用重新设置规则。