模拟两台计算机的通讯-GNS3仿真

上文,我们实现了模拟两台计算机的通讯-netns和brctl组建网络。这是个比较简单的虚拟化,可能有些人喜欢可视化的方式。这次我们将利用一个仿真工具来实现同样的模拟,用可视化的方式。首先看一下虚拟化管理平台是什么。

虚拟化管理平台(VMM)

虚拟化管理平台是一种软件工具,它可以让多台计算机系统(我们通常称为“虚拟机”)在同一台物理服务器上运行,就像是它们各自拥有一整台独立的电脑一样。这样的技术让一台实体服务器可以被分成多个虚拟的工作环境,每个环境都可以运行自己的操作系统和应用程序。

想象一下,你有一间大屋子,本来只能住一个人,但如果使用隔板将这间屋子分隔成几个小房间,就可以让几个人同时居住,每个人都有自己的空间。虚拟化管理平台就类似这种功能,只不过它是对服务器进行分隔。

市面流行的虚拟化管理平台很多。这里不再细分模拟仿真虚拟化,只要是虚拟化的平台,就统称为VMM:Virtual Box、VMWare、GNS3、EVE-ng、libvirt、openstack等等。其共通点,都是利用的虚拟仿真技术,在计算机里来运行计算机、虚拟网络。

这里我们主要利用GNS3,这个开源工具进行计算机和网络的模拟仿真。

为什么是GNS3

列出的几个VMM对比

工具类型用途支持的操作系统免费/开源主要特点
VirtualBox桌面虚拟化创建和运行虚拟机Windows, Linux, macOS免费/开源用户友好界面, 可扩展性, 多个快照支持
VMware桌面/服务器虚拟化创建和运行虚拟机Windows, Linux, macOS商业/部分免费高级虚拟网络, 企业级支持, 安全性增强
GNS3网络模拟器模拟网络设备和拓扑Windows, Linux, macOS开源网络设备仿真, 拓扑设计, 教育和培训
EVE-NG网络模拟器模拟网络设备和拓扑Windows, Linux商业/部分免费高级网络仿真, 支持多种网络设备映像文件
libvirt服务器虚拟化 API提供对多种虚拟化技术的抽象接口Linux, BSD, Solaris开源管理多个虚拟化平台, 低层API, 灵活部署
OpenStack云平台提供基础设施即服务 (IaaS)Linux开源自动化部署, 大规模虚拟化管理, 云存储和计算服务

可以看到大家各有偏重点。这里使用GNS3的原因是:

  1. 第一入门简单,学习曲线平滑。
  2. 第二完全开源,并且支持大多数类型的虚拟化技术。使用过程中,可以阅读源码学习其实现。

如果到底层原理,这些技术大同小异。但如果在应用层,你会发现眼花缭乱,很难厘清里面的差异。本质上这些都是图灵机里套了图灵机,后面有机会会详细探讨这个理论依据。

安装gns3

安装网络上有很多的教程。这里只给一个安装链接,你也可以在各种博客里找到安装教程。但我建议直接跟着引导一步步安装,能选的安装全选了。


Software | GNS3

GNS3 Windows Install | GNS3 Documentation

注意如果是window和mac,需要导入gns3-vm,利用virtual box、vmware都可以。我们实际使用的是这个gns3-vm来完成的虚拟化的。也就是物理机里运行gns3-vm,gns3-vm里运行的其它虚拟机。图灵机里套了图灵机套了图灵机,很神奇吧。

组网:电脑-交换-电脑

组一个网络

  1. 加入2台VPCs,可以认为是一个mini的计算机;
  2. 加入交换;
  3. 连接网线;
  4. 启动所有节点;
  5. 双击打开管理;

# PC1

PC1> ip 10.1.1.1/24
Checking for duplicate address...
PC1 : 10.1.1.1 255.255.255.0

PC1> ping 10.1.1.2

84 bytes from 10.1.1.2 icmp_seq=1 ttl=64 time=0.397 ms
84 bytes from 10.1.1.2 icmp_seq=2 ttl=64 time=0.409 ms
^C


# PC2

PC2> ip 10.1.1.2/24
Checking for duplicate address...
PC2 : 10.1.1.2 255.255.255.0

PC2> ping 10.1.1.1

84 bytes from 10.1.1.1 icmp_seq=1 ttl=64 time=0.261 ms
84 bytes from 10.1.1.1 icmp_seq=2 ttl=64 time=0.240 ms
^C
PC2>

监听流量

在网线上点击右键,点击开始监听,唤起wireshark进行监听流量。

总结

可以看到,这个核心逻辑和模拟两台计算机的通讯-netns和brctl组建网络,是同样的逻辑。本质上都是实现了网络的本质,将消息从A送到B。这个核心逻辑将反复出现在虚拟化的所有的内容里,差别在于实现方式的差异,但本质从未改变。

  • 18
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值