提到网络模拟器,大家能想到或者用过有哪些?思科的Packet Tracer、华为的eNSP、H3C的HCL。这三个模拟器,我相信只要你是个网络工程师,都不陌生吧?除了这三个,你知道开源的网络模拟器有哪些吗?本文就给大家介绍一下2024年用的比较多的开源网络模拟器,看看你都用过哪些。
Cloonix 是一个功能强大的开源网络仿真器,适用于网络研究、教学以及复杂网络的实验。
它结合了多种 Linux 网络工具,可以轻松地通过虚拟机(VM)和容器模拟复杂的网络结构。用户可以通过 Cloonix 生成并管理多个虚拟机,同时在这些虚拟机之间设置虚拟网络链接。
https://clownix.net/
https://clownix.net/downloads/cloonix-40/
https://clownix.net/doc_stored/build-40-00/html/index.html
Cloonix 在2023年1月发布了第28版本。该版本引入了多个改进,包括更好的容器支持、改进的虚拟机管理功能以及对最新网络协议的支持。
Cloonix 适用于研究网络协议、开发新型网络应用以及教学。由于其灵活性,它也是网络测试和验证的理想工具,尤其是在无法访问真实硬件设备时。
CloudSim 是一个专为云计算网络设计的仿真器,用于对云计算基础设施和应用服务的建模、仿真和实验。它主要面向学术界和科研人员,帮助研究人员理解和优化云环境中的网络通信。
http://www.cloudbus.org/cloudsim/
https://github.com/Cloudslab/cloudsim/releases
https://cloudsimtutorials.online/
CloudSim 在2022年8月发布了第6版。这个版本增强了对最新虚拟化技术的支持,并改进了云资源的管理和调度模型。
CloudSim 适用于研究云计算中的网络问题,如资源调度、服务分布、负载均衡等。在教学中,它也被广泛用于演示云计算的复杂性和如何优化云资源的使用。
OMNeT++ 是一个模块化的、基于 C++ 的离散事件模拟环境,广泛应用于通信网络、分布式系统、硬件架构等领域的研究。OMNeT++ 由于其高可扩展性和灵活性,成为学术界和工业界广泛使用的网络仿真工具之一。
https://omnetpp.org/
https://omnetpp.org/download/
https://omnetpp.org/documentation/
OMNeT++ 项目一直保持活跃的更新状态,最近的版本 6.0.3 于 2024 年 2 月 24 日发布。用户可以从 GitHub 上获取最新的源代码,定制或优化自己的仿真需求。
OMNeT++ 适用于学术研究、网络协议开发、性能测试以及网络架构设计的多种场景。它不仅能够在仿真中处理复杂的网络协议和数据流,还可以轻松扩展和集成外部模块来进行深入的性能分析。
Containerlab 是一个基于容器技术的网络仿真器,适合快速构建网络测试环境。
它支持以 DevOps 风格的工作流进行网络实验室的编排和管理,并且与主流网络设备厂商提供的容器化路由器镜像兼容。
https://containerlab.dev/
https://containerlab.dev/install/
https://containerlab.dev/quickstart/
https://containerlab.dev/lab-examples/lab-examples/
Containerlab 在2023年1月发布了0.36.1版本,添加了对最新网络设备的支持,并改进了网络拓扑的生成和管理功能。
Containerlab 适合网络工程师在 DevOps 流程中进行快速实验。它也可以用于开发和测试网络功能虚拟化(NFV)和软件定义网络(SDN)环境。
CORE 是一个开源网络仿真器,允许用户通过图形界面(GUI)设计和配置轻量级虚拟机的网络拓扑,并使用 Python 模块编写脚本进行网络仿真。它是一种轻量且灵活的网络实验工具,广泛应用于学术界和工业界。
http://coreemu.github.io/core/
https://coreemu.github.io/core/install.html
https://coreemu.github.io/core/tutorials/tutorial1.html
CORE 在2022年11月发布了9.0.1版本,该版本修复了多个 bug,并提升了仿真器的性能。CORE 社区也非常活跃,特别是在其 Discord 服务器上有众多用户参与讨论。
https://github.com/coreemu/core
CORE 适用于研究网络协议、开发网络应用、以及教学环境中的网络仿真实验。其图形化界面和 Python 脚本功能为用户提供了极大的灵活性。
EVE-NG(Emulated Virtual Environment Next Generation)是一个流行的网络仿真平台,支持虚拟化商用路由器镜像(如 Cisco 和 NOKIA)以及开源路由器的仿真。
它提供了一个虚拟实验室环境,可以在其中进行复杂的网络拓扑测试和开发。
https://www.eve-ng.net/
https://www.eve-ng.net/index.php/download/
https://www.eve-ng.net/index.php/documentation/
https://www.eve-ng.net/index.php/lab-library/cisco-ospf-v2-v3/
虽然 EVE-NG 的开发团队主要集中在商业版的开发上,但它仍然支持社区版。社区版 v5.0.1-13 在2022年8月发布,增加了一些新功能,并修复了一些漏洞。
EVE-NG 广泛应用于网络工程师的学习和认证准备,尤其是 Cisco 和 NOKIA 网络设备的模拟和测试。
GNS3 是全球广泛使用的开源网络仿真器,特别适用于模拟思科设备。
GNS3 支持在物理网络和虚拟环境中混合使用虚拟设备和真实设备,可以帮助用户创建复杂的网络拓扑。
https://gns3.com/
https://gns3.com/software/download
https://docs.gns3.com/docs/
GNS3 在2023年初发布了 2.2.36 版本,该版本提高了对最新路由协议和设备镜像的支持,修复了一些在复杂网络拓扑中的性能问题。
GNS3 广泛用于思科认证(如 CCNA、CCNP)的学习与实验环境中。它也被网络管理员、工程师和开发人员用于测试网络配置、分析网络行为,以及模拟大型企业网络。
Mininet 是一种专门用于 SDN(软件定义网络)和 OpenFlow 开发的开源网络仿真器。
它允许用户在标准的 Linux 内核中创建大型虚拟网络,并在虚拟网络上运行实际的网络协议栈。
https://mininet.org/
https://mininet.org/download/
Mininet 的最新稳定版 2.3.0d 于 2022 年发布,增加了对更高版本 OpenFlow 和 SDN 控制器的支持,同时提高了虚拟网络的性能和稳定性。
Mininet 是研究 SDN 和 OpenFlow 技术的理想工具,它也被广泛用于网络课程的教学中,帮助学生快速理解 SDN 和虚拟网络架构的运行原理。
ns-3 是一个强大的离散事件网络仿真器,专门用于学术研究和教学。它是 ns-2 的继任者,但提供了更多的功能和更高的可扩展性。ns-3 支持多种网络协议的仿真,特别适用于无线网络、移动网络和数据中心网络的研究。
https://www.nsnam.org/
https://www.nsnam.org/releases/
ns-3 在 2023 年发布了 ns-3.38 版本,引入了对 5G 网络协议的支持,增强了对网络性能的分析工具。
ns-3 被广泛用于学术研究和实验室环境,特别是在研究新型网络协议和优化现有协议的行为方面。它也是研究无线网络和移动通信网络的理想工具。
NetSim 是一个商用的网络仿真器,但它也提供了开源版本供学术界和个人使用。NetSim 专注于通信网络的仿真,尤其是无线传感器网络(WSN)和移动网络。
https://netsim.boson.com/
https://netsim.boson.com/labs
NetSim 的最新版本 v12.0 于 2023 年发布,增加了对 5G 和 IoT 网络仿真的支持,并改进了网络性能分析模块。
NetSim 特别适用于研究无线网络和 IoT 网络的通信行为,并且在学术界中广泛用于研究无线传感器网络和移动网络协议。
Marionnet 是一个开源的网络仿真器,主要用于构建虚拟网络实验室。它为用户提供了一个可视化的网络环境,允许用户设计和测试不同的网络拓扑和配置。
https://www.marionnet.org/site/index.php/en/
Marionnet 在 2023 年发布了新版本,增加了对新的网络协议和工具的支持,提升了仿真的性能和稳定性。
Marionnet 适用于网络教学和实验环境,特别适合那些希望快速搭建和测试网络拓扑的用户。由于其简单的 GUI 和灵活性,它也是网络协议开发和测试的重要工具。
Netkit 是一个开源的虚拟网络实验平台,主要用于网络协议开发和测试。它基于 UML(User-mode Linux)技术,允许用户在虚拟环境中创建网络实验室,并运行多个虚拟主机。
https://www.netkit.org/
Netkit 的最新版本 2023.4 于 2023 年发布,增加了对 IPv6 和 OpenFlow 的支持,并优化了虚拟网络的性能。
Netkit 是研究和开发网络协议的理想工具,特别适合那些需要轻量级网络仿真平台的用户。它也广泛应用于学术研究和教学环境中。
OpenWRT 是一个广泛使用的开源嵌入式 Linux 系统,特别适用于无线路由器和网络设备的仿真与开发。尽管它最初是为实际设备开发的,但它也支持在虚拟环境中运行,并提供网络仿真功能。
https://openwrt.org/
https://openwrt.org/downloads
OpenWRT 的最新版本 22.03 于 2023 年发布,改进了对新型网络设备的支持,并增加了对 IPv6 和多种 VPN 协议的支持。
OpenWRT 适用于研究无线网络协议、开发路由器固件以及测试网络设备的性能。它也被广泛用于路由器和嵌入式设备的开发和仿真中。
IMUNES 是一个高度灵活的网络仿真器和模拟器,最早由克罗地亚大学计算机工程系开发。它主要用于创建和模拟各种网络环境,支持多种协议仿真。IMUNES 可以在 FreeBSD 和 Linux 环境中运行,并提供一个基于图形界面的网络管理工具。
http://imunes.net/
https://imunes.net/download.php
IMUNES 的最新版本 2.3.4 于 2023 年发布,该版本对 Linux 的兼容性进行了提升,增加了对新型协议的支持,并优化了性能,使其能够在大规模网络仿真中运行更加顺畅。
IMUNES 适用于网络协议开发、性能测试以及网络课程的教学。它被广泛应用于学术研究和教育中,特别是在模拟复杂的多协议网络环境时,IMUNES 提供了丰富的功能和灵活的配置选项。
PEMU 是一款针对 HP Procurve 设备的仿真工具,允许用户在虚拟环境中模拟 HP 交换机和路由器设备的行为。PEMU 通过仿真不同型号的 HP 网络设备,使用户能够在不需要物理硬件的情况下测试网络配置。
PEMU 的最新版本在 2023 年进行了性能优化,增加了对新的 Procurve 设备型号的支持,并增强了 VLAN 和 QoS 配置的灵活性。
PEMU 主要用于学习和测试 HP Procurve 设备的配置和管理。它在 HP 网络设备认证学习(如 HP ASE)以及网络管理员培训中具有重要的应用价值。
Packet Tracer 是思科公司开发的一款强大的网络仿真工具,广泛用于网络认证(如 CCNA、CCNP)和培训课程中。
Packet Tracer 允许用户在虚拟环境中模拟思科设备和网络拓扑,进行配置、管理和故障排除。
https://www.netacad.com/cisco-packet-tracer
https://www.packettracernetwork.com/download/download-packet-tracer.html
Packet Tracer 最新版本 8.3 于 2023 年发布,增加了对思科最新路由器和交换机的支持,优化了无线网络的仿真功能,并增强了与物理网络设备的集成能力。
Packet Tracer 是思科认证学习中不可或缺的工具,尤其适用于 CCNA 和 CCNP 级别的学习者。它被广泛用于网络培训课程、实验室环境以及网络协议的教学和演示。
Libvirt 是一个用于管理虚拟化平台的开源软件,它允许用户在多个虚拟化平台上创建和管理虚拟网络。Libvirt 本身并不是一个网络仿真工具,但它提供了强大的虚拟网络管理功能,可以与其他网络仿真工具(如 QEMU、KVM)结合使用。
https://libvirt.org/
Libvirt 的最新版本 9.0 于 2024 年初发布,该版本进一步优化了对 KVM 和 QEMU 平台的支持,并增强了虚拟网络的管理功能。
Libvirt 主要用于虚拟化环境下的网络管理,特别适合那些需要灵活配置虚拟网络的场景。它在数据中心、私有云和实验室环境中广泛应用。
Cisco VIRL 是思科提供的高级网络仿真平台,专为网络工程师和开发者设计。VIRL 允许用户在虚拟环境中模拟大型网络拓扑,测试思科设备的行为,并进行协议开发。
https://learningnetwork.cisco.com/s/virl
Cisco VIRL 的最新版本 2.3 于 2023 年发布,增加了对思科最新设备的支持,优化了多设备环境下的性能,并增强了与自动化工具(如 Ansible、Python)的集成。
Cisco VIRL 主要用于网络工程师、开发人员以及高级网络架构师,适合进行大型网络的设计、测试和优化。它也是思科认证考试(如 CCIE)中使用的仿真工具之一。
Tinet(Tiny Network)是一个基于容器的网络仿真工具,旨在提供一个简单易用的网络构建体验。用户可以通过 YAML 配置文件定义网络拓扑和参数,Tinet 会生成相应的 shell 脚本来构建虚拟网络。
https://github.com/tinynetwork/tinet
Tinet 适合于快速原型开发、教育培训和小规模的网络实验。它非常适合希望快速测试和验证网络配置的开发者和研究人员。
Junosphere 是 Juniper 提供的网络仿真平台,允许用户在虚拟环境中模拟 Juniper 网络设备的行为。Junosphere 提供了一个基于云的虚拟实验室,用户可以通过浏览器访问该平台,测试 Juniper 设备和网络配置。
https://support.juniper.net/support/eol/software/junosphere/
https://support.juniper.net/support/downloads/
Junosphere 的最新版本于 2023 年更新,增加了对 Juniper 新型号设备的支持,并增强了网络配置的灵活性和自动化管理功能,提升了仿真性能,使其适合于更复杂的网络测试和开发任务。
Junosphere 主要适用于使用 Juniper 设备的网络工程师和开发者,尤其在网络认证考试准备、网络配置测试和网络设计优化中发挥着重要作用。它还广泛用于企业网络环境中的培训和测试,提供了一个便捷的虚拟实验室。
VNX 是一个用于在 Linux 上创建复杂虚拟网络的工具,支持使用 LXC 容器、虚拟机和虚拟网络来仿真网络拓扑。它允许用户通过脚本定义复杂的网络环境,适合用于研究、开发和教学。
http://web.dit.upm.es/vnxwiki/index.php/Main_Page
http://web.dit.upm.es/vnxwiki/index.php/Download
VNX 的最新版本 3.0 于 2023 年发布,更新了对容器化技术的支持,优化了大规模仿真的性能,并增加了对新协议和功能的支持。
VNX 适用于网络研究人员、开发者以及需要测试复杂网络拓扑的工程师。它广泛应用于网络协议的开发、验证和教学环境,特别是在需要虚拟化和容器技术支持的场景下表现出色。
MimicNet 是一个网络模拟器,旨在利用机器学习技术估算大型数据中心网络的性能。该项目最初于 2019 年 7 月发布,主要作为研究项目的一部分,致力于解决数据中心网络中的性能预测问题。
https://github.com/eniac/MimicNet
MimicNet 适合于学术研究和工业界的性能评估,尤其是对大型数据中心的网络优化和设计。其机器学习的应用使得其在复杂网络环境中的预测能力尤其突出。
Meshtasticator 是一个专门用于模拟 Meshtastic 软件的工具。Meshtastic 项目旨在利用廉价的 LoRa 无线电设备,创建一个长距离的离网通信平台,特别适用于缺乏可靠通信基础设施的区域。
https://github.com/GUVWAF/Meshtasticator
Meshtasticator 适合开发人员、研究人员和爱好者,尤其是那些希望测试 LoRa 网络在不同条件下性能的用户。它可以用于教育、原型开发以及离网通信技术的实验。
CupCarbon 是一个专注于城市无线网络仿真的工具,能够有效模拟城市环境中的无线网络行为。该项目集成了来自 OpenStreetMap 的数据,允许用户在真实的城市模型中进行网络实验。
http://cupcarbon.com/
CupCarbon 适合研究人员、开发者和学术机构,特别是在无线网络设计和优化方面,尤其关注城市环境中的应用。
CrowNet 是一个开源的仿真环境,专注于模拟行人之间的无线通信。该工具旨在评估城市和乡村环境中的行人通信场景,适合进行相关研究和实验。
https://github.com/roVer-HM/crownet
CrowNet 适合研究人员、城市规划者和开发者,尤其是在无线通信、智能交通和人群行为分析等领域进行实验和研究。
Cooja 是一个专为 IoT 网络仿真设计的模拟器,属于新的 Contiki-NG 项目。它允许用户对使用 Contiki-NG 操作系统的 IoT 网络进行细粒度的模拟和仿真。
https://docs.contiki-ng.org/en/develop/doc/tutorials/Running-Contiki-NG-in-Cooja.html
Cooja 适合研究人员、开发者和教育工作者,特别是在 IoT 设备开发、网络性能分析和协议测试等领域进行实验和研究。
Colosseum 是一个开放源代码的无线网络仿真软件,旨在为无线网络提供高效的仿真环境。该软件基于标准的 PC 硬件和无线电设备,使得用户可以轻松构建和测试无线网络。
https://www.northeastern.edu/colosseum/
Colosseum 适合无线通信研究人员、工程师和教育工作者,特别是在无线网络设计、性能评估和新技术验证等方面进行实验。
vrnetlab 是一个网络仿真工具,主要用于虚拟化网络设备的测试和开发。尽管其开发活动有所减缓,但仍然为用户提供了一些有用的功能和文档支持。
https://github.com/vrnetlab/vrnetlab
vrnetlab 适合希望在虚拟环境中进行网络设备测试的网络工程师和开发者,尤其是在开发和验证网络配置时。
Shadow 是一个活跃开发中的离散事件网络模拟器,专门设计用于模拟大规模分布式系统。它能够直接执行真实的应用代码,提供了一个高度可扩展的环境,以便进行真实且可扩展的网络实验。
https://shadow.github.io/
Shadow 适合研究人员和开发者,尤其是那些需要进行大规模网络性能分析、分布式系统测试和应用行为模拟的用户。
OpenConfig-KNE(Kubernetes Network Emulation)是一个由 OpenConfig 基金会开发的网络仿真器,旨在扩展基本的 Kubernetes 网络功能,以支持任意网络拓扑中的点对点虚拟连接。
https://github.com/openconfig/kne
OpenConfig-KNE 适合网络工程师、研究人员和开发者,尤其是在 Kubernetes 环境中需要进行网络测试和验证的用户。
最后想问一下大家,这25个模拟器,你用过哪些?欢迎在下方评论区讨论!