搭建广域网模拟器nistnet.2.0.12步骤

纯属个人经验, 只供参考, 如有不当,敬请指正

 

搭建广域网模拟器nistnet. 2.0.12 步骤

 

1. 下载nistnetnistnetb(2.4.xx以下版本) c(2.6.xx)版本, 我们目前使用的都是 2.4.20 或者2.4.32内核, 所以用b版本

             

2. 根据nistnet要求编译内核, 可以试试直接安装是否可以,如果能直接安装最好)

      

        cd linux-source-src

        

        make mrproper

      

        make menuconfig

 

       一般我们装的都是redhat 9.0, 建议采用机器上原装的redhat的代码进行编译,有许多编译选项redhat基本都覆盖了。

      

如果使用来路不明的内核代码, 搞不好缺这个缺那个,非常的麻烦。如果非得要使用其他的内核代码,下面几项一定要选上

 

文件系统支持ext2, ext3,  支持iptables, 支持你的网卡的驱动(安装模拟器的那台机器肯定是双网卡以上)

 

       对于nistnet要额外加上:

      

              Loadable module support -->

 

                      Set version information on all module symbols --off

 

               Character devices -->

 

                      Enhanced Real Time Clock Suppot --M   /*M键,设置这两项*/

                     

     这里M表示将编成模块,也就是不编进内核的,可以insmod

     *表示编进,空白表示不编

 

       make dep

      

       make clean

      

       make bzImage

      

       make modules

      

       make modules_install

      

       会在/lib/modules/linux版本号/ 下面生成所需要加载的模块, 比如你的网卡起不来,是Reltak8139, 可以到这里去看看8139too.o8139tcp.o的驱动是否存在

 

       下面可以选择make install这种懒人方式,不过redhat下有些时候某些版本make install有点问题

      

       也可以自己手工来完成:

      

       1. cp $linux-source-src/arch/i386/boot/bzImag /boot/vmlinuz-2.xxxx

       2. cp $linux-source-src/System.map /boot/System.map-2.xxxx

       3. cd /boot, 然后删除以前的System, vmlinuz的软连接

       4. 建立新的软连接

                     ln -s vmlinuz-2.xxxx vmlinuz

                     ln -s System.map-2.xxxx System.map

       5.  制作img, 貌似IDE硬盘不需要, scsi的必须制作

                     mkinitrd /boot/initrd-2.xxxx.img 2.xxxx

       6. 修改grub

                     备份以前的grub

                     cd /boot/grub

                     cp grub.conf grub.conf.bak

                     vi grub.conf

                     添加如下3, 这里一定要保存以前的内核配置,否则起不来的话,只能在grub界面上用按"e"键手工修改grub来加载正常的内核,非常的麻烦

                     title Red Hat Linux (2.xxxx)

        root (hd0,0)

        kernel /vmlinuz-2.xxxx ro root=LABEL=/   /* 注意这里如果写成LABEL 启动的时候提示kernel panic:VFS Unable to mount root fs on 00:00就要将root=修改为/dev/hd*的形式 */

       

        initrd /initrd-2.xxxx.img

       

  7. reboot

 

 

 

 如果内核可以成功启动,并且网卡也能够起来, 下来就需要配置网络环境了

最简单的一种配置方式:

CLINET 1<------>NISTnet<------>CLINET 2

比如:

主机名      所在网段        分配IP                    网关
CLINET 1: 192.168.2.0/24    192.168.2.2/24        192.168.2.1

NISTnet
192.168.2.0/24    eth1:192.168.2.1/24      eth0
           192.168.1.0/24    eth0:192.168.1.1/24      eth1

CLINET 2: 192.168.1.0/24    192.168.1.2/24            192.168.1.1

 

但是这种模式的可用性极差, 不能接入我们的内部使用网络

使用NAT方式可以解决该问题

 

组网:

 

Clinet1  ß--------------à  模拟器 ß---------à 内部的200.200.30网络

 

步骤如下:

 

配置eth0

DEVICE=eth0

BOOTPROTO=none

ONBOOT=yes

IPADDR=200.200.30.121

NETMASK=255.255.255.0

USERCTL=no

PEERDNS=no

GATEWAY=200.200.30.254

TYPE=Ethernet

NETWORK=200.200.30.0

BROADCAST=200.200.30.255

 

配置eth1

DEVICE=eth1

BOOTPROTO=none

ONBOOT=yes

IPADDR=100.100.30.121

NETMASK=255.255.255.0

USERCTL=no

PEERDNS=no

GATEWAY=200.200.30.121

TYPE=Ethernet

NETWORK=100.100.30.121

BROADCAST=100.100.30.255

 

开启ip转发功能

echo 1 > /proc/sys/net/ipv4/ip_forward

 

添加NAT规则

iptables -t nat -A POSTROUTING -s ${ipsegment} -o ${netcard} -j SNAT --to-source ${ipaddress}

这里的${ipsegment}就是client1所在的网段

${netcard}这里是100.100.30.网段的eth0

 

例如:

Clinet1 100.100.30.21 / 255.255.255.0

 

iptables -t nat -A POSTROUTING -s 100.100.30.0/24  -o eth0 -j SNAT --to-source 200.200.30.121

 

测试一下:

Ping 200.200.30.22, 不通,重启一下iptables, service iptables restart, 再添加上面的NAT规则,

 

ping 就应该通了

 

 

 

现在安装NISTnet, 各个不同版本的Linux 注意看read me

安装NISTNET

    cd ~./nistnet

    ./configure

    make             

    make install     /*安装完成,如果没有错误就下一步*/

3)测试安装是否成功

    cd ~./nistnet

    ./Load nistnet

    cnistnet –u         /*加载模块*/

具体使用参见安装包中的doc文档

 

 

来吧, 来感受一下模拟器

添加延迟100毫秒

Cnistnet –a 100.100.30.21 200.200.30.22 –delay 100

 

 

终于搭建成功了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值