1. 被仿真的网络
1.1 Netkit
Netkit能够在个人电脑上模拟一个网络环境。它基于“用户模式Linux(User Mode Linux)”,允许像启动用户应用程序一样启动一个Linux内核,并因此创建一个虚拟机。这些虚拟机通过行为类似于以太网集线器的碰撞区域相连。每台机器都有自己的文件系统,并且可以使用自己的内核。因此,这是一个由异构机器组成的网络。每台机器都可以通过一个控制台(这里是xterm终端)由用户(root)控制。
以下是如何在Linux环境中安装和测试Netkit虚拟网络环境的中文指南:
1.2 安装和配置Netkit
1.2.1 访问Netkit官方下载页面
打开浏览器,访问 http://wiki.netkit.org/index.php/Download_Official,找到“Latest Stable Release”部分。
1.2.2 下载所需的文件
页面上应该有三个压缩档案供下载:Netkit Core、Netkit Filesystem和Netkit Kernel。
将这三个档案下载到你的计算机上。如果你在学校的机器上操作,你需要在`/users/local/<你的登录名>`(你需要创建这个目录)目录下使用一个子目录来进行下载。
1.2.3 解压缩档案
在终端里,使用下列命令解压缩这三个档案到同一个目录中,并使用`-S`选项来保留备份文件(spare files)。
tar -xjSf netkit-2.8.tar.bz2
tar -xjSf netkit-filesystem-i386-F5.2.tar.bz2
tar -xjSf netkit-kernel-i386-K2.8.tar.bz2
1.2.4 设置环境变量
首先,你需要知道你使用的是哪个shell。你可以通过执行`env | grep SHELL`来查看。
如果你使用的是tcsh shell,你可以使用以下命令来设置环境变量:
setenv NETKIT_HOME /users/local/<你的登录名>/MyNetkit/netkit
setenv MANPATH $NETKIT_HOME/man
setenv PATH $NETKIT_HOME/bin:$PATH
如果你使用的是bash shell,你应该使用以下命令来设置环境变量:
如果需要,你也可以将这些环境变量添加到你的shell初始化文件中。
1.2.5 测试配置
使用cd命令进入netkit目录,然后执行shell脚本`check_configuration.sh`来测试配置:
cd netkit
./check_configuration.sh
1.2.6 测试安装
在终端中启动虚拟机pc1来测试你的安装:
vstart pc1
如果需要停止虚拟机,请在物理机的终端中执行:
vhalt -r pc1
如果需要删除日志文件,执行:
rm pc1.log
以上步骤展示了如何在Linux环境下设置Netkit,这是一个强大的网络模拟工具,可以用来学习和测试网络配置。
本次实验的网络配置可以在绑定资源中找到。
1.3 使用Netkit模拟网络
使用Netkit,我们可以模拟相当大的网络,因为它非常高效地使用内存。在我们关心的案例中,我们将仅仅使用5台机器。网络的描述构成了一个实验室。它完全包含在一个目录中(这里是/users/local/$USER/lab-vpn)。必须在实验室的基本目录中执行主要的控制命令。
`lstart` 用于启动不同的机器;
`lhalt` 用于停止它们;
`lclean` 用于在出现问题时清理所有临时文件。
每台机器都可以访问两个目录 /hostlab 和 /hosthome,分别对应实验室描述目录(/users/local/$USER/Lab-VPN/lab-vpn)和宿主机器上的${HOME}目录。
1.4 网络拓扑结构示例
这张图展示了一个测试网络的拓扑结构,网络由三个子网组成:
一个中心网络100.0.0.0/16;
两个私有子网(192.168.1.0和192.168.2.0),每个子网都有一台计算机(分别是pc1和pc2),并且都通过一个网关(分别是gw1和gw2)连接到中心网络;
在中心网络上还有一台孤立的计算机(pc3)。
为了简化配置,这些地址是固定的,并且网关上没有启用网络地址转换(NAT)。目标是通过一个隧道(网络到网络的配置)将两个私有网络连接起来。
从这张图中我们可以看到:
PC1位于IP地址192.168.1.10的位置,并且通过网关GW1(IP地址192.168.1.1)连接到中心网络。
GW1的另一端连接到中心网络,具有IP地址100.0.0.11。
PC3直接位于中心网络,具有IP地址100.0.0.13。
GW2的一端连接到中心网络,具有IP地址100.0.0.12,另一端作为网关(IP地址192.168.2.1)为PC2提供服务。
PC2位于IP地址192.168.2.10的位置。
在这个拓扑中,所有的设备都通过以太网集线器(碰撞区域)连接,这表示在同一碰撞区的所有设备都在同一个广播域内。这样的网络设计通常用于模拟和测试环境,以研究和学习网络行为、配置以及安全设置,如VPN隧道。