CN112311606B - 一种用于构建虚实解耦仿真网络的方法 - Google Patents

一种用于构建虚实解耦仿真网络的方法 Download PDF

Info

Publication number
CN112311606B
CN112311606B CN202011259610.5A CN202011259610A CN112311606B CN 112311606 B CN112311606 B CN 112311606B CN 202011259610 A CN202011259610 A CN 202011259610A CN 112311606 B CN112311606 B CN 112311606B
Authority
CN
China
Prior art keywords
network
node
simulation
physical
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011259610.5A
Other languages
English (en)
Other versions
CN112311606A (zh
Inventor
于金萍
毕经平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN202011259610.5A priority Critical patent/CN112311606B/zh
Publication of CN112311606A publication Critical patent/CN112311606A/zh
Application granted granted Critical
Publication of CN112311606B publication Critical patent/CN112311606B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供了一种用于构建虚实解耦仿真网络的方法,包括:S1、获取用户自定义配置的仿真网络规划脚本,其包括仿真网络拓扑结构及其中各节点的功能信息;S2、根据仿真网络规划脚本将仿真网络的各个节点分散部署在通过物理网络连接的多个物理主机上;S3、在每个物理主机上构建连接其上所有节点的数据平面设备,通过软件定义的方式配置各数据平面设备基于Overlay隧道技术将分散的各个节点进行组网构建逻辑拓扑,以形成与物理网络解耦的让数据帧逐跳传输的仿真网络。本发明的构建过程对物理网络集群完全透明,且不依赖也无需更改物理网络集群的组网和配置,即可构建虚实解耦的任意仿真网络拓扑结构。

Description

一种用于构建虚实解耦仿真网络的方法
技术领域
本发明涉及网络空间安全科学领域,具体来说涉及大规模互联网的网络结构、功能及行为仿真技术领域,更具体地说,涉及一种用于构建虚实解耦仿真网络的方法。
背景技术
逼真的网络空间仿真平台是网络空间安全科学研究、测量和分析的关键科学装置。随着网络空间技术的迅猛发展,实验与验证各种新型网络技术、攻击防御手段,评估分析网络安全策略与网络安全风险等网络空间安全研究任务的开展都离不开网络空间仿真平台的支持。
现有网络空间仿真平台基本可以分为三大类:第一类是基于模型的模拟器,通常用于单台设备上实现网络拓扑和部分功能的模拟,如模拟器Mininet、NS2、NS3、OMNet++等;但这类平台通常只能模拟离散事件,不支持真实流量,且仿真节点、仿真链路以及网络控制行为与真实网络均存在十分明显的差异,导致其上实验结果完全依赖模型计算,实验结果的准确性、可信性和可行性均无法保证。第二类是网络硬件IOS的模拟器,如模拟器GNS3,这类模拟器可以提供与真实网络硬件功能和操作完全一致的网络节点。但这类平台一方面仅能模拟厂商如思科(Cisco)已提供的设备IOS,无法模拟其他功能设备;另一方面它们也无法模拟应用层的功能,如web服务,不支持应用层流量的引入与处理。第三类是基于云计算与虚拟化的网络靶场工具,这类工具基于云计算虚拟化技术可以实现网络层到应用层的场景仿真,并且支持真实业务流量的导入、生成、传输。但其在实际使用中,也存在显著不足:一是这类工具仿真的网络拓扑与提供的网络层功能受限于物理网络集群的组网与配置,难以实现对任意网络系统拓扑结构和网络层功能的灵活仿真;二是使用该类工具,仿真网络的重构通常需要手动变更底层物理集群网络的拓扑与配置,耗时耗力;最后,并不是所有网络靶场工具都能逼真模拟网络层的控制行为,如在线流量按路由配置的多跳传输,即使提供这类功能,也需要底层物理集群网络提供相应的支持。
网络仿真平台的逼真性是保证其上实验任务结果准确可信、可行、可重复的基础。特别地,对于与网络层相关的新技术、新策略、新手段的实验验证需要仿真平台能够准确模拟网络系统的结构、内容和特性。面向大规模互联网仿真的网络平台,如用于网络层攻防对抗演练,至少需要满足以下两个条件:条件1:接近实战标准的可操作性、可控性、可重复的深度网络仿真场景,仿真内容包括互联网从单个子网到单个自治域到多个自治域的互联结构和特性,因而需要大量物理基础设置提供演练必要的计算、存储与网络资源;条件2:网络行为逼真模拟,例如控制流量(如BGP信息同步,BGP是指Border Gateway Protocol,即边界网关协议)的交互和在线流量按路由多跳传输,保证仿真场景中用户/网络行为效果的逼真性、可信性和可行性。此外,为了提高仿真实验的效率,网络仿真平台还需要满足条件3:同时支持任意网络系统结构、内容、特性的灵活、自动模拟;否则,需要花费大量的人力和时间才能实现实验场景的重构。然而,现有网络空间仿真平台均无法同时满足上述三个条件。其后果是:一方面,其上开展的网络实验结果可信性和可行性均大打折扣,甚至可能出现与作为参照物的真实网络完全相反的结果,难以直接应用到真实网络中;另一方面,也使得每次实验的开展都需要花费大量人力和时间搭建实验场景,特别对大规模互联网实验时,往往需要耗费几天甚至几周的时间,实验效率十分低下。因此,有必要对现有技术进行改进,以构建基于云计算虚拟化技术下的虚实解耦的仿真网络。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种用于构建虚实解耦仿真网络的方法。
本发明的目的是通过以下技术方案实现的:
根据本发明的第一方面,提供一种用于构建虚实解耦仿真网络的方法,适用于基于Overlay隧道技术的网络仿真平台,所述方法包括:S1、获取用户自定义配置的仿真网络规划脚本,其包括仿真网络拓扑结构及其中各节点的功能信息;S2、根据仿真网络规划脚本将仿真网络的各个节点分散部署在通过物理网络连接的多个物理主机上,其中,已有功能的节点直接部署,新功能的节点根据可编程语言对网络功能进行定义后部署;S3、在每个物理主机上构建连接其上所有节点的数据平面设备,通过软件定义的方式配置各数据平面设备基于Overlay隧道技术将分散的各个节点进行组网构建逻辑拓扑,以形成与物理网络解耦的让数据帧逐跳传输的仿真网络。本发明通过软件定义和Overlay隧道的方式构建仿真网络拓扑结构,其构建过程对物理网络集群完全透明,且不依赖也无需更改物理网络集群的组网和配置,即可构建虚实解耦的任意仿真网络拓扑结构;此外,可在物理网络集群不变的情况下,实现仿真网络的任意、灵活组网。
为了便于用户根据需要自定义规划所需的仿真网络,优选的,所述步骤S1包括:S11、提供让用户根据需求对仿真网络拓扑结构及其中各节点的功能信息进行配置的接口;S12、在用户结束配置后基于其配置的仿真网络拓扑结构及其中各节点生成仿真网络规划脚本。
为了支持已有网络功能和用户自定义的新网络功能的部署,优选的,所述步骤S2包括:S21、基于内置的多种虚拟机部署算法中的一种虚拟机部署算法将仿真网络拓扑结构中各节点对应的虚拟机分散部署在通过物理网络连接的多个物理主机上;S22、对于已有功能的节点,从对接的功能软件库中选择适配的功能软件部署到其对应的虚拟机;S23、对于新功能的节点,根据P4可编程语言对网络功能进行定义,将对应的虚拟机配置为P4交换机,在该P4交换机上编译P4程序使该P4交换机所在的虚拟机支持仿真网络所需的网络功能。本发明采用已有软件库定义已知网络功能的节点与P4可编程语言定义新网络功能对应的节点相结合的网络功能定义与配置方式,使得网络仿真技术不仅可以支持已有网络功能的快速部署、仿真与试验,还可以支持用户自定义的创新型网络协议与功能的仿真与试验;在仿真场景实验过程中,用户可基于仿真网络拓扑结构完成其中各节点的网络功能定义,通过系统自动以配置这些节点,实现仿真网络的路由控制、安全控制、QoS控制等网络控制。
为了实现虚实解耦的仿真网络,优选的,所述步骤S3包括:S31、在每个物理主机上构建数据平面设备,将该数据平面设备连接到其所在物理主机上部署的所有节点;S32、获取仿真网络拓扑结构和虚拟与物理映射信息用以自动计算和配置所有数据平面设备上的邻居信息表,该邻居信息表中的每条邻居信息包括本地的节点的IP地址信息、MAC地址信息、其向该邻居信息内的邻居节点发送数据帧的网络接口、其邻居节点的IP地址信息、MAC地址信息、该邻居节点接收该节点发出的数据帧的网络接口和指示该本地的节点和该邻居节点是否直连的连接方式,其中,直连表示两个节点部署于同一物理主机,非直连表示两个节点分别部署于不同的物理主机;S33、基于南向接口协议编排各数据平面设备配置使其成为各节点间组网的形成逻辑拓扑的中间设备,经配置后任何数据帧每次从节点发出后均经过该节点连接的数据平面设备根据邻居信息表进行转发处理以确定丢弃数据帧或者针对不同的连接方式采取与之适配的特定方式修改数据帧后转发到链路层的下一跳。本发明解决了现有基于虚拟化的网络空间仿真技术依赖物理网络集群结构与配置导致无法灵活且逼真地仿真任意网络拓扑的问题,可在物理网络集群不变的情况下,实现仿真网络的任意组网、灵活组网;另外,本发明针对不同的连接方式采取与之适配的特定方式修改数据帧后转发到链路层的下一跳,以保障数据帧不论是在虚拟网络还是物理网络均能逐跳传输到对应的邻居节点;另外,本发明在各物理主机中生成的数据平面设备连接的节点的邻居信息表有助于各数据平面设备在数据帧传输过程中获知当前节点的邻居节点的地址信息,并在后续数据帧转发过程中作为修改数据帧的目的MAC地址的依据;而邻居信息中连接方式为数据平面设备判断修改后的数据帧将在虚拟网络还是物理网络中提供处理参考,以保障数据帧不论是在虚拟网络还是物理网络均能逐跳传输到对应的邻居节点。
为了让数据帧在位于同一物理主机的节点(对应于经虚拟网络通信)和不同物理主机上的节点(对应于经物理网络通信)的通信不受具体的连接类型的限制,彻底实现虚实解耦,优选的,所述步骤S33包括:对数据平面设备进行以下配置:针对相邻但非直连的一对节点,根据邻居信息表在其关联的数据平面设备之间建立Overlay隧道,每个数据平面设备中存储所有与其相关的Overlay隧道对端数据平面设备的隧道封装映射信息构成的隧道封装映射表,所述隧道封装映射信息的格式为邻居节点MAC地址-隧道封装的网络标识符-邻居节点关联的数据平面设备的IP地址,所述Overlay隧道对端数据平面设备的隧道封装映射信息用于封装节点发出的数据帧,以使封装后的数据帧能够直接通过底层物理网络到达邻居节点所在的物理主机;在一个数据平面设备接收到其他数据平面设备发送的封装后的数据帧后,对封装后的数据帧进行解封装后根据目的MAC地址将解封装的数据帧的发给对应的节点。
为了在虚拟网络和物理网络中支持数据帧在链路层实现逐跳传输,所述步骤S33还包括:对数据平面设备进行配置以使其按照以下方式对数据帧进行转发处理:根据邻居信息表确定发出数据帧的节点没有邻居节点时,丢弃该数据帧,结束通信;针对相邻且直连的一对节点,修改数据帧的目的MAC地址为下一跳邻居节点的MAC地址并直接将修改后的数据帧发送给链路层的下一跳;针对相邻但非直连的一对节点,修改数据帧的目的MAC地址为下一跳邻居节点的MAC地址并根据下一跳邻居节点的MAC地址查询隧道封装映射表得到邻居节点关联的数据平面设备的IP地址用以在修改后的数据帧上封装Overlay隧道技术的头部信息,将封装后的数据帧经由关联的Overlay隧道发送给链路层的下一跳。其中,相邻且直连的一对节点,对应的数据帧在这对节点之间传输是经过虚拟网络,可以经过数据平面设备修改目的MAC地址后直接转发,不经隧道封装,减少封装和解封装次数,让仿真效率更高;相邻但非直连的一对节点,对应的数据帧在这对节点之间传输是经过物理网络,可以经过数据平面设备修改目的MAC地址后进行基于Overlay隧道技术的封装,使封装后数据帧经物理网络传输到链路层的下一跳,实现了虚拟网络和物理网络中支持数据帧在链路层中逐跳传输;而且,本发明通过作为中间设备的数据平面设备对数据帧的目的MAC地址进行修改,不改变原有的网络层信息和网络控制协议,使得本发明在仿真网络中支持任意可行的网络控制协议配置。
为了保障了仿真结果的真实性,避免了给用户造成极大的修改工作量,优选的,该方法包括:响应于网络仿真的过程中虚拟与物理映射信息发生变化的信号,同步更新相应数据平面设备中与数据帧传输相关的配置信息,该配置信息包括邻居信息表和隧道封装映射表。在用户进行一些操作(比如切断某些节点、调整节点部署位置)导致节点的状态发生变化,或者因负载均衡等原因导致节点部署位置发生变化,从而引起虚拟与物理映射信息变化时,相应的配置信息的更新过程同步自动进行,无需用户修改底层物理网络的功能与配置,使得数据帧会按照更新后的情况进行传输,既保障了仿真结果的真实性,又避免了给用户造成极大的修改工作量。
为了在仿真网络视角下,实现节点和用户获知的网络拓扑结构与仿真网络规划要求的完全一致,优选的,所述方法包括:在构建的仿真网络上配置链路层发现协议,在节点进行信息通告发出通告数据帧时,对应的通告数据帧先到达该节点连接的数据平面设备,数据平面设备查询本地的邻居信息表,得到该节点的所有邻居节点,并将通告数据帧经转发处理后分别发送给链路层中该节点不同网络接口对应的下一跳,相应的邻居节点收到该通告数据帧后获知发出数据通告帧的节点是其邻居节点,并将节点的信息保存在管理信息库中,实现链路传输行为的自动适配。该发明实现了面向链路层发现协议的自动适配技术,以确保在仿真网络视角下,节点和用户获知的网络拓扑结构与仿真网络规划要求的完全一致。
根据本发明的第二方面,提供一种用于构建虚实解耦仿真网络的系统,包括:用户配置模块,用于获取用户自定义配置的仿真网络规划脚本,其包括仿真网络拓扑结构及其中各节点的功能信息;仿真管理器,用于根据仿真网络规划脚本将仿真网络的各个节点分散部署在通过物理网络连接的多个物理主机上,其中,已有功能的节点直接部署,新功能的节点根据可编程语言对网络功能进行定义后部署;仿真控制器,用于在每个物理主机上构建连接其上所有节点的数据平面设备,通过软件定义的方式配置各数据平面设备基于Overlay隧道技术将分散的各个节点进行组网构建逻辑拓扑,以形成与物理网络解耦的让数据帧逐跳传输的仿真网络。仿真控制器优选是SDN控制器,数据平面设备是经SDN控制器基于南向接口协议配置的,使得数据帧传输的整个过程完全基于SDN控制器下发的配置自动执行,无需改变原有的隧道封装技术,如VXLAN技术,也无需修改物理网络配置或增加新的物理网络设备,从而达到真正的虚实解耦。该系统可以同时满足以下要求:第一,可以实现灵活、自动地仿真网络重构,通过作为中间设备的数据平面设备对数据帧的目的MAC地址进行修改,不改变原有的网络层信息和网络控制协议,使得本发明在仿真网络中支持任意可行的网络控制协议配置;第二,无需修改物理网络集群组网与配置,即可支持多种网络架构的任意网络重构,其支持的网络架构包括传统网络架构和不断演进的新型网络系统结构,例如支持SDN网络的仿真。
根据本发明的第三方面,提供一种计算机可读存储介质,其上包含有计算机程序,所述计算机程序可被处理器执行以实现如第一方面所述方法的步骤。
根据本发明的第四方面,一种电子设备,包括:一个或多个处理器;以及存储器,其中存储器用于存储一个或多个可执行指令;所述一个或多个处理器被配置为经由执行所述一个或多个可执行指令以实现如第一方面所述方法的步骤。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1为根据本发明实施例的用于构建虚实解耦仿真网络的方法的流程示意图;
图2为根据本发明实施例的在仿真管理器和仿真控制器之间同步虚拟与物理映射信息的示意图;
图3为根据本发明实施例的数据平面设备的部署方式示意图;
图4(a)为根据本发明实施例的一个仿真网络拓扑的局部拓扑意图;
图4(b)为根据图4(a)所示的局部拓扑意图进行节点部署的过程示意图;
图5为根据本发明的示例的虚实解耦的仿真网络的构建流程;
图6为根据本发明的示例的节点间逻辑链路的通告数据帧处理流程的示意图;
图7为根据本发明实施例的用于构建虚实解耦仿真网络的系统的模块示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如在背景技术部分提到的,现有基于云计算与虚拟化的网络靶场工具更能满足大规模互联网仿真构建的需求,但由于其核心技术没有彻底解耦物理网络集群,导致其仿真的网络系统的结构、内容和行为均依赖物理网络集群的配置。现有的Overlay隧道技术并无法直接用于大规模互联网的仿真构建,其原因在于这类技术的提出和目标均是为了解决当时数据中心网络虚拟机迁移范围、虚拟机规模和网络隔离的不足,并不关心所实现的虚拟网络是否与需要的仿真网络拓扑结构一致;同时,Overlay隧道技术只解决数据帧在源和目的虚拟机的可达性传输,不处理也无法直接扩展以保证数据帧的传输路径与仿真网络配置保持一致,不能按照仿真网络拓扑逐跳传输。而且,发明人在进行面向大规模互联网仿真构建核心技术研究时,发现相比背景技术提到的前两类模拟工具,虽然现有基于云计算与虚拟化的网络靶场工具更能满足大规模互联网仿真构建的需求,但由于其核心技术没有彻底解耦物理网络集群,导致其仿真的网络系统的结构、内容和行为均依赖物理网络集群的配置,最终后果是:1)不能实现灵活、自动地仿真网络重构,也无法在仿真网络中支持任意可行的网络控制协议配置;2)更不用说支持不断演进的新型网络系统结构,例如现有绝大多数网络靶场工具仅能支持传统三层IP网络的仿真,但不能支持SDN网络的仿真。为了解决上述问题,发明人提出了一种创新性的网络虚拟化仿真技术——用于构建虚实解耦仿真网络的方法;该技术以软件定义和Overlay隧道技术为基础,在此基础上通过网络拓扑可编程控制实现与物理网络集群结构、功能完全解耦的仿真网络构建。本发明提出的方法结合了软件定义和Overlay隧道技术的优势,研制了适用于虚实解耦的大规模互联网逼真仿真的关键技术,包括:虚拟节点部署与配置、逻辑拓扑构建与链路层协议自适配的控制逻辑等,能够灵活、自动地适配所需的仿真网络结构和仿真网络运行时的动态网络行为。基于该方法的系统(对应于网络仿真平台、网络空间仿真平台)可以同时满足以下要求:第一,可以实现灵活、自动地仿真网络重构,通过作为中间设备的数据平面设备对数据帧的目的MAC地址进行修改,不改变原有的网络层信息和网络控制协议,使得本发明在仿真网络中支持任意可行的网络控制协议配置;第二,无需修改物理网络集群组网与配置,即可支持多种网络架构的任意网络重构,其支持的网络架构包括传统网络架构和不断演进的新型网络系统结构,例如支持SDN网络的仿真。
参见图1,本发明提供一种用于构建虚实解耦仿真网络的方法,适用于基于Overlay隧道技术的网络仿真平台,该方法至少包括步骤S1、S2、S3。为了更好地理解本发明,下面结合具体的实施例针对每一个步骤分别进行详细说明。
步骤S1:获取用户自定义配置的仿真网络规划脚本,其包括仿真网络拓扑结构及其中各节点的功能信息。
根据本发明的一个实施例,步骤S1包括:S11、提供让用户根据需求对仿真网络拓扑结构及其中各节点的功能信息进行配置的接口;S12、在用户结束配置后基于其配置的仿真网络拓扑结构及其中各节点生成仿真网络规划脚本。在网络仿真平台中,仿真网络拓扑结构由用户根据需要配置,得到用户自定义的仿真网络拓扑结构并对各节点的功能信息进行定义,随后根据用户配置的结果生成仿真网络规划脚本用于构建所需的仿真网络,以便根据用户需要生成对应的仿真网络,在该仿真网络上开展相应的网络空间科学研究。
根据本发明的一个示例,参见图2,假设用户配置完成,形成如图2所示的待仿真网络,该待仿真网络对应的仿真网络拓扑结构显示共包括10个节点(应理解,此处仅是为了示意性说明而简化的示例,实际要仿真的规模可能更大),10个节点分别是节点h1、h2、S1、S2、R1、R2、R3、R4、R5和F1,其中,节点h1、S1、R2、R4位于自治域AS1(Autonomous system的简写),节点h2、S2、R1、R3、R5和F1位于自治域AS2。各节点对应的功能信息由用户定义,例如,h1、h2的功能定义为主机,R1、R2、R3、R4、R5的功能定义为路由器,F1定义为防火墙,如果是现有的网络功能,可在功能信息中定义具体的版本或型号,部署时调用对应的软件程序;用户完成上述配置后,基于用户的配置,生成仿真网络规划脚本。可见,本发明接近实战的大规模互联网级场景的自动仿真,支持从单自治域到多自治域的任意组网结构与特性的深度仿真。
步骤S2:根据仿真网络规划脚本将仿真网络的各个节点分散部署在通过物理网络连接的多个物理主机上,其中,已有功能的节点直接部署,新功能的节点根据可编程语言对网络功能进行定义后部署。
根据本发明的一个实施例,可编程语言优选是P4可编程语言。步骤S2包括:S21、基于内置的多种虚拟机部署算法中的一种虚拟机部署算法将仿真网络拓扑结构中各节点对应的虚拟机分散部署在通过物理网络连接的多个物理主机上;S22、对于已有功能的节点,从对接的功能软件库中选择适配的功能软件部署到其对应的虚拟机;S23、对于新功能的节点,根据P4可编程语言对网络功能进行定义,将对应的虚拟机配置为P4交换机,在该P4交换机上编译P4程序使该P4交换机所在的虚拟机支持仿真网络所需的网络功能。步骤S2由仿真管理器执行,再次参见图2,仿真管理器vManager在部署时为仿真网络拓扑结构中各节点对应的虚拟机分配所需的物理资源,包括计算资源、网络资源和存储资源;当仿真管理器vManager完成虚拟机的部署之后,启动虚拟机,并按照虚拟机在仿真网络拓扑中的位置和功能信息自动配置虚拟机的内容。本发明中,节点是指仿真网络的节点,节点包括主机节点和网络节点。主机节点直接部署对应该节点定义的功能对应的操作系统。网络节点即指网络功能节点,例如路由器、交换机、防火墙等。仿真管理器vManager首先将所有作为网络节点的虚拟机按要求分为两大类:第一类是已有的通用或商用网络功能节点(对应于已知功能的节点);第二类是创新性的新类别或新功能的网络节点(对应于新功能的节点)。如果仿真网络规划中网络功能节点属于已有的通用或商用网络功能,则仿真管理器vManager直接按照节点功能从开源软件或商用软件库中选择合适的软件,自动部署节点。例如,传统路由器节点可以通过在虚拟机中部署开源路由软件Quagga实现;SDN交换机可以通过在虚拟机中部署开源虚拟交换机Open vSwitch实现;通过思科Cisco的IOS得到指定版本和型号的节点。如果仿真网络规划中的节点功能属于新网络功能,当前网络未有开源软件或商用产品支持,则基于P4可编程语言编写程序定义该新网络功能节点,并输入给仿真管理器vManager;然后仿真管理器vManager首先将虚拟机配置为P4交换机,然后编译P4程序使该虚拟机支持仿真网络所要求的网络功能。P4可编程语言是一种特定领域的编程语言,用于描述可编程的转发设备如何处理数据帧。P4程序是采用P4可编程语言编写的程序,通过P4编译器编译后,可运行于支持P4的网络设备软件或硬件中,即P4交换机。该实施例的技术方案至少能够实现以下有益技术效果:本发明采用已有软件库定义已知网络功能的节点与P4可编程语言定义新网络功能对应的节点相结合的网络功能定义与配置方式,使得网络仿真技术不仅可以支持已有网络功能的快速部署、仿真与试验,还可以支持用户自定义的创新型网络协议与功能的仿真与试验;在仿真场景实验过程中,用户可基于仿真网络拓扑结构完成其中各节点的网络功能定义,通过系统自动以配置这些节点,实现仿真网络的路由控制、安全控制、QoS控制等网络控制。
为了便于用户快速部署虚拟机,本发明内置多种虚拟机部署算法,优选的,优选的,多种虚拟机部署算法包括多目标分组遗传算法(multi-objective GGA placementalgorithm,GGA是grouping genetic algorithm的缩写)、两层近似算法(two-tierapproximate algorithm)、基于生物地理学优化(Biogeography-based optimization)的多目标虚拟机部署算法和多目标蚁群系统算法(a multi-objective ant colony systemalgorithm)中的至少两个虚拟机部署算法。用户可以预先获取通过不同的虚拟机部署算法部署的虚拟机在不同的物理主机上的分布情况,根据用户经验所需的一种分布情况(比如分布相对较离散、较集中等)对应的虚拟部署算法进行实际部署。
步骤S3:在每个物理主机上构建连接其上所有节点的数据平面设备,通过软件定义的方式配置各数据平面设备基于Overlay隧道技术将分散的各个节点进行组网构建逻辑拓扑,以形成与物理网络解耦的让数据帧逐跳传输的仿真网络。
根据本发明的一个实施例,步骤S3包括:S31、在每个物理主机上构建数据平面设备,将该数据平面设备连接到其所在物理主机上部署的所有虚拟网络/主机节点;S32、获取仿真网络拓扑结构和虚拟与物理映射信息用以自动计算和配置所有数据平面设备上的邻居信息表,该邻居信息表中的每条邻居信息包括本地的节点的IP地址信息、MAC地址信息、其向该邻居信息内的邻居节点发送数据帧的网络接口、其邻居节点的IP地址信息、MAC地址信息、该邻居节点接收该节点发出的数据帧的网络接口和指示该本地的节点和该邻居节点是否直连的连接方式,其中,直连表示两个节点部署于同一物理主机,非直连表示两个节点分别部署于不同的物理主机;S33、基于南向接口协议编排各数据平面设备配置使其成为各节点间组网的形成逻辑拓扑的中间设备,经配置后任何数据帧每次从节点发出后均经过该节点连接的数据平面设备根据邻居信息表进行转发处理,以确定丢弃数据帧或者针对不同的连接方式采取与之适配的特定方式修改数据帧后转发到链路层的下一跳。优选的,步骤S33包括:对数据平面设备进行以下配置:针对相邻但非直连的一对节点,根据邻居信息表在其关联的数据平面设备之间建立Overlay隧道,每个数据平面设备中存储所有与其相关的Overlay隧道对端数据平面设备的隧道封装映射信息构成的隧道封装映射表,所述隧道封装映射信息的格式为邻居节点MAC地址-隧道封装的网络标识符-邻居节点关联的数据平面设备的IP地址,所述Overlay隧道对端数据平面设备的隧道封装映射信息用于封装节点发出的数据帧,以使封装后的数据帧能够直接通过底层物理网络到达邻居节点所在的物理主机;在一个数据平面设备接收到其他数据平面设备发送的封装后的数据帧后,对封装后的数据帧进行解封装后根据目的MAC地址将解封装的数据帧的发给对应的节点。例如,假设基于Overlay隧道技术的VXLAN技术,则在建立Overlay隧道时生成VXLAN封装信息,该VXLAN信息的格式为邻居节点MAC地址-VNI-邻居节点关联的数据平面设备的IP地址,VNI即VXLAN隧道的网络标识符(VXLAN Network ID)。优选的,步骤S33还包括:对数据平面设备进行配置以使其按照以下方式对数据帧进行转发处理:根据邻居信息表确定发出数据帧的节点没有邻居节点时,丢弃该数据帧,结束通信;针对相邻且直连的一对节点,修改数据帧的目的MAC地址为下一跳邻居节点的MAC地址并直接将修改后的数据帧发送给链路层的下一跳;针对相邻但非直连的一对节点,修改数据帧的目的MAC地址为下一跳邻居节点的MAC地址并根据下一跳邻居节点的MAC地址查询隧道封装映射表得到邻居节点关联的数据平面设备的IP地址用以在修改后的数据帧上封装Overlay隧道技术的头部信息,将封装后的数据帧经由关联的Overlay隧道发送给链路层的下一跳。该实施例的技术方案至少能够实现以下有益技术效果:本发明通过软件定义和Overlay隧道的方式构建仿真网络拓扑结构,其构建过程对物理网络集群完全透明,且不依赖也无需更改物理网络集群的组网和配置,即可构建虚实解耦的任意仿真网络拓扑结构;此外,可在物理网络集群不变的情况下,实现仿真网络的任意、灵活组网;本发明通过作为中间设备的数据平面设备对数据帧的目的MAC地址进行修改,不改变原有的网络层信息和网络控制协议,使得本发明在仿真网络中支持任意可行的网络控制协议配置。
根据本发明的一个实施例,该方法还包括:步骤S4、对任何节点发出的数据帧,通过节点连接的数据平面设备对该数据帧进行转发处理,以确定丢弃该数据帧或者针对不同的连接方式采取与之适配的特定方式修改数据帧后转发到链路层的下一跳。优选的,步骤S4包括:节点连接的数据设备的邻居信息表中有该节点的下一跳邻居节点时,数据平面设备根据对应的连接方式使用与之适配的方式对数据帧进行修改后发送至该下一跳邻居节点;在邻居信息表中没有节点的下一跳邻居节点,将该节点发出的数据帧丢弃;按照以上方式控制数据帧逐跳传输直至该数据帧传输到目的节点或者被丢弃,结束该数据帧的传输过程。其中,数据平面设备根据对应的连接方式使用与之适配的方式对数据帧进行修改后发送至该下一跳邻居节点的步骤包括:在连接方式为直连时,所述数据帧将在虚拟网络中传输,数据平面设备修改数据帧的目的MAC地址为下一跳邻居节点的MAC地址并直接将修改后的数据帧发送给该下一跳邻居节点;在连接方式为非直连时,所述数据帧将在物理网络中传输,数据平面设备修改数据帧的目的MAC地址为下一跳邻居节点的MAC地址并查询隧道封装映射表得到邻居节点关联的数据平面设备的IP地址用以在修改后的数据帧上封装Overlay隧道技术的头部信息,将封装后的数据帧经由关联的Overlay隧道发送给链路层的下一跳。步骤S4作为在仿真网络构建完成后,在进行仿真实验时在网络仿真平台中进行数据帧传送的方法,确保数据帧在链路层中逐跳传输,保障仿真结果的真实性和可重复性。该实施例的技术方案至少能够实现以下有益技术效果:该步骤中,相当于将每个数据平面设备连接的节点的邻居信息组成邻居信息表存储在该数据平面设备本地的情况下,根据本地的邻居信息表通过数据平面设备确定修改数据帧的帧头后不经过隧道封装(对应于直连)或者经过隧道封装(对应于非直连)发送链路层的下一跳,在虚拟网络和物理网络中保障数据帧均能实现逐跳传输;而且,本发明无需修改物理网络集群组网与配置,支持自动、灵活的网络重构,即可支持多种网络架构的任意网络重构,其支持的网络架构包括传统网络架构和SDN网络架构。
根据本发明的一个示例,再次参见图2,当仿真管理器vManager完成虚拟机的部署和配置后,会生成虚拟与物理映射信息(称为Virtual-Physical Mapping Table,简称VPMT),将其告知仿真控制器vController。虚拟与物理映射信息包括各个节点的虚拟IP地址、虚拟MAC地址、所在物理主机的物理IP地址和物理MAC地址。例如,图2中示例条目所示的识别代号VNet ID为5001的网络节点(假设其是节点R4),其虚拟IP地址是10.20.1.5,虚拟MAC地址是vMAC4,其部署于物理IP地址为192.168.2.20、物理MAC地址为MAC2的物理主机上。仿真控制器vControl ler会依据仿真网络拓扑和VPMT的内容,计算每个物理主机中虚拟机节点的邻居信息和其邻居相关的物理配置信息。然后根据邻居信息计算结果配置或更新每个物理主机中的数据平面设备vSwitch的邻居信息表。仿真管理器vManager和仿真控制器vController可部署在专门的服务器或主机上,也可部署在虚拟机上。而数据平面设备vSwitch只能部署在每个物理服务器内,如图3所示,将其部署在操作系统例如是Linux或者Win(Window)的物理主机上,该数据平面设备vSwitch的I P地址为IP1,MAC地址为MAC1,其连接有两个网络节点。为了更直观展示邻居信息表,参见图4,数据平面设备vSwitch的邻居信息表存储了其关联的每个虚拟机VM(Virtual Machine,简称VM,对应于部署节点的虚拟机)对应节点的邻居节点的信息,包括本地NF信息与邻居NF信息(对应于部署前述节点的邻居节点的虚拟机)的连线两端的虚拟网络接口信息以及连接方式(直连还是非直连)。其中,“直连”表示该链路两端的节点(用NF表示)位于同一个物理主机“非直连”则表示位于不同物理主机。如图4所示,假设图4(a)是待仿真网络的部分网络拓扑,假设包括节点NF1、NF2、NF3和NF4,NF1连接于NF2和NF3,NF2和NF3连接于NF4。假设图4(a)中各节点如图4(b)所示情形布置,节点NF1和NF2布置于的物理主机1上,且连接于物理主机1上的IP地址为192.168.1.20,MAC地址为MAC1的数据平面设备vSwitch1,节点NF3和节点NF4布置于物理主机2上,且连接于物理主机2上的IP地址为192.168.2.20,MAC地址为MAC2的数据平面设备vSwitch2;仿真控制器部署在IP地址为192.168.25.47的设备上。仿真控制器根据仿真网络拓扑结构和虚拟与物理映射信息用以自动计算和配置所有数据平面设备上的邻居信息表,得到物理主机1和物理主机2中的邻居信息表。其中,物理主机1对应的局部邻居信息表如图4(b)中所示,其代表物理主机1的vSwitch中存储的相关邻居信息表的信息,例如NF1有两条连线分别连接节点NF2和NF3,其中,节点NF2与NF1位于同一台物理主机(例如物理服务器),所以连接方式是直连,而NF3与NF1位于不同物理主机,所以连接方式是非直连。概括来说,本地NF信息记录当前物理主机上部署的节点的地址信息,包括MAC地址和IP地址;本地NF网络接口记录该本地NF向该邻居信息内的邻居NF发送数据帧的网络接口;邻居NF信息记录邻居NF的地址信息,包括MAC地址和IP地址;邻居NF网络接口记录该邻居NF接收该本地NF节点发出的数据帧的网络接口;连接方式用于指示该本地NF和该邻居NF是否直连。节点NF1的地址信息对应vMCA1、vIP1,节点NF2的地址信息对应vMCA2、vIP2,节点NF3的地址信息对应vMCA3、vIP3,节点NF4的地址信息对应vMCA4、vIP4,网络接口用eth0/0,eth0/1等表示。例如,图4(b)中所示的邻居信息表中,前两条邻居信息中对应的本地NF为NF1,后两条邻居信息中对应的本地NF为NF2;如:第一条邻居信息表示从MAC地址、IP地址分别为vMAC1、vIP1的本地NF1通过其网络接口eth0/0经MAC地址、IP地址分别为vMAC2、vIP2邻居NF2的网络接口eth0/0发送数据帧给的邻居NF2,其连接方式为直连,表示两个节点连接于同一个数据平面设备。邻居信息表配置完成后,vController配置vSwitch,针对相邻但位于不同物理主机的一对节点,在它们关联的vSwitch间建立Overlay隧道,该隧道即表示仿真网络的一条逻辑链路。为此,vSwitch的实现要求必须支持某一种Overlay隧道技术如VXLAN技术(VirtualeXtensible Local Area Network,虚拟可扩展的局域网)或者NVGRE技术(NetworkVirtualization using Generic Routing Encapsulation,使用通用路由协议封装的网络虚拟化)。Overlay隧道建立后,每个vSwitch都将存储所有与其相关的Overlay隧道对端vSwitch的信息。以VXLAN技术为例,vSwitch将生成对应的VXLAN信息,该VXLAN信息格式通常是:邻居节点虚拟MAC地址-VNI-邻居节点关联的vSwitch的IP地址。VNI即当前VXLAN的网络标识(VXLAN Network ID)。VXLAN的网络标识VNI类似VLAN ID,用于区分VXLAN段。其中,该节点连接的vSwitch和邻居节点连接的vSwitch构成VXLAN隧道两端的VTEP(VXLANTunnel Endpoints,VXLAN隧道端点)。
根据本发明的一个示例,结合附图5来说明下本发明的构建虚实解耦的仿真网络的整体概述流程。本发明在实际使用中,需要平台用户针对试验任务需求制定仿真网络规划,仿真网络规划包括仿真网络拓扑结构和功能信息,仿真网络拓扑结构包括:AS域数目及连接关系、各节点的类型、位置、连接关系、所属AS域(对应于待仿真的真实网络)。例如,仿真网络规划包括但不限于:AS域数目和连接关系、路由器数目和连接关系、安全设备类型和位置、计算节点数目/类型/位置,以及应用系统(如web服务器、数据库)类型和位置等。用户将仿真网络规划脚本输入到仿真管理器vManager中(对应于图5的步骤①);例如,示出的待仿真的真实网络包括4个自治域AS100、AS200、AS300和AS400,仿真网络拓扑结构,包括各自治域内部的拓扑结构和各自治域之间的拓扑结构,同一自治域内部采用iBGP协议(Internal/Interior BGP)不同自治域值之间采用EBGP协议(external/exterior BGP),BGP是Border Gateway Protocol的缩写,表示边界网关协议。仿真管理器vManager根据仿真网络规划脚本和底层物理资源状态自动计算,将仿真网络中的每个节点分配到合适的物理位置并为其分配资源(对应于部署虚拟机VM),并在虚拟机VM上安装和配置节点内容使其成为仿真网络中给定功能的节点,如路由器、防火墙或SDN交换机、SDN控制器等(对应于图5的步骤②)。仿真管理器vManager完成虚拟节点部署和配置之后,生成虚拟与物理映射信息,并与仿真网络拓扑结构一起发送给仿真控制器vController(对应于图5的步骤③)。仿真控制器vController收到这些信息后,自动计算并配置相关的数据平面设备vSwitch上的邻居信息表,并通过配置数据平面设备vSwitch在位于不同物理主机的相邻节点间建立Overlay隧道,位于同一物理主机的相邻节点间通过该物理主机内的数据平面设备vSwitch连接,从而将离散的仿真网络的节点组网形成与物理网络拓扑无关的完整仿真网络系统(对应于图5的步骤④)。最终,构建的是一个功能上无限接近于真实网络的仿真网络。并且由于仿真网络采用虚拟化的方式实现,可以以极低的硬件成本构建几千、几万节点的网络环境,用于开展大规模网络实验。
根据本发明的一个实施例,该方法包括:响应于网络仿真的过程中虚拟与物理映射信息发生变化的信号,同步更新相应数据平面设备中与数据帧传输相关的配置信息,该配置信息包括邻居信息表和隧道封装映射表。在用户进行一些操作(比如切断某些节点、调整节点部署位置)导致节点的状态发生变化,或者因负载均衡等原因导致节点部署位置发生变化,从而引起虚拟与物理映射信息变化时,相应的配置信息的更新过程同步自动进行,无需用户修改底层物理网络的功能与配置,使得数据帧会按照更新后的情况进行传输,既保障了仿真结果的真实性,又避免了给用户造成极大的修改工作量。
根据本发明的一个实施例,该方法还包括:在构建的仿真网络上配置链路层发现协议,在节点进行信息通告发出通告数据帧时,对应的通告数据帧先到达该节点连接的数据平面设备,数据平面设备查询本地的邻居信息表,得到该节点的所有邻居节点,并将通告数据帧经转发处理后分别发送给链路层中该节点不同网络接口对应的下一跳,相应的邻居节点收到该通告数据帧后获知发出数据通告帧的节点是其邻居节点,并将节点的信息保存在管理信息库中,实现链路传输行为的自动适配。例如,参见图6,图6的标记T I对应一个示意性通告数据帧,假设是由节点NF1发送的原始LLDP通告数据帧,包括帧校验序列FCS(Frame Check Sequence)、LLDP帧的数据部分LLDPDU、帧类型Type(当前值为0x88CC,表示为链接层发现协议的通告数据帧)、源MAC地址Source MAC和目的MAC地址DestinationMAC。假设数据平面设备vSwitch实现的Overlay隧道技术为VXLAN技术,以LLDP链路层发现协议为参考,以图4中的仿真网络拓扑和其节点的物理部署为例,该过程包括:K1、当某仿真网络的节点(假设图4(b)的节点NF1)发送LLDP数据帧进行通告时,该LLDP数据帧最先到达该节点NF1所关联的数据平面设备vSwitch1,此时数据帧的目的MAC地址为固定的组播MAC地址0x0180-C200-000E;K2、数据平面设备vSwitch1会首先查看本地的邻居信息表,发现NF1有两个邻居信息,分别是本地服务器(对应于物理主机1)上的节点NF2和其他服务器(对应于物理主机2)上的节点NF3;K3、对于节点NF2,数据平面设备vSwitch1将原始的数据帧的目的MAC地址修改为节点NF2的MAC地址vMAC2(图6未示出该过程,可参考关于发送给节点NF3的数据帧的修改,类似于图6的T1到图6的T2的过程)后发送给节点NF2,节点NF2收到数据帧后,会直接在本地的管理信息库(Management Information Base,简称MIB)存储节点NF1的信息,此时节点NF2获知NF1是其邻居节点;K4、对于节点NF3,需要进行自适配处理(如图6所示),数据平面设备vSwitch1首先修改原始数据帧的目的MAC地址为节点NF3的MAC地址vMAC3(对应于图6的T1到图6的T2的过程),然后数据平面设备vSwitch1依据vMAC3的信息查询本地的VXLAN映射表,找到vMAC3对应的vSwitch2的物理IP,并据此对修改后的数据帧进行VXLAN封装(对应于图6的T2到图6的T3的过程),VXLAN封装包括VXLAN头部VXLANheader、UDP头部UDP header、外部IP头部external IP和外部MAC头部external MAC;K5、封装VXLAN后的LLDP数据帧经过物理网络发送给节点NF3所在的服务器(对应于物理主机2);K6、节点NF3关联的vSwitch2收到数据帧(对应于图6的T4),节点NF3所在的服务器上的vSwitch2解封装VXLAN得到封装前的原始数据帧,并直接传给节点NF3,节点NF3收到该LLDP数据帧(对应于图6的T5)后,将直接将其邻居节点NF1的信息存储至本地MIB。可以看到,通告数据帧是基于仿真网络的逻辑拓扑,将通告数据帧发送到数据平面设备进行转发处理后发送的。该实施例的技术方案至少能够实现以下有益技术效果:该发明实现了面向链路层发现协议的自动适配技术,自动适配仿真网络链路层的发现与监测行为,既保证仿真网络上数据包传输路径与仿真网络拓扑结构完全一致,又以确保在仿真网络视角下,节点和用户获知的网络拓扑结构与仿真网络规划要求的完全一致。
参见图7,根据本发明的另一方面,提供一种用于构建虚实解耦仿真网络的系统,包括:用户配置模块UD,用于获取用户自定义配置的仿真网络规划脚本,其包括仿真网络拓扑结构及其中各节点的功能信息;仿真管理器vManager,用于根据仿真网络规划脚本将仿真网络的各个节点分散部署在通过物理网络连接的多个物理主机上,其中,已有功能的节点直接部署,新功能的节点根据可编程语言对网络功能进行定义后部署;仿真控制器vController,用于在每个物理主机上构建连接其上所有节点的数据平面设备vSwitch,通过软件定义的方式配置各数据平面设备vSwitch基于Overlay隧道技术将分散的各个节点进行组网构建逻辑拓扑,以形成与物理网络解耦的让数据帧逐跳传输的仿真网络。该系统还包括多个数据平面设备vSwitch,用于对任何节点发出的数据帧,通过节点连接的数据平面设备对该数据帧进行转发处理,以确定丢弃该数据帧或者修改该数据帧的头部后发送至链路层的下一跳。相当于用数据平面设备vSwitch作为中间设备对其获得的数据帧的传输链路进行控制。仿真管理器vManager主要负责接收仿真网络规划,分析拓扑结构,按照分析结果为仿真网络的虚拟节点分配所需的计算、存储和网络资源;并在虚拟节点部署完成后生成虚拟与物理的映射关系表VPMT,并与仿真网络拓扑一并输入给仿真控制器vController,触发仿真控制器vController的逻辑拓扑构建过程;此外,仿真管理器vManager还可以用于实时监控用于仿真的物理资源,并通过虚拟机迁移部署的方式在物理主机间进行负载均衡。仿真控制器vController和数据平面设备vSwitch分别对应于软件定义的仿真拓扑构建和仿真网络动态行为适配的控制平面和数据平面。仿真控制器vController与仿真管理器vManager交互,依据仿真管理器vManager输入的VPMT表和仿真网络拓扑结构,计算并配置数据平面设备vSwitch,从而完成仿真/虚拟网络拓扑的逻辑构建,并为之后的仿真网络动态行为的仿真适配提供基本的配置支持;此外,当仿真管理器vManager的虚拟与物理映射信息发生变化时,仿真控制器vController会同步更新数据平面设备vSwitch中的相应配置,包括邻居信息表的更新。数据平面设备vSwitch连接部署仿真网络的节点的虚拟机,为该类节点之间的链路层和网络层传输行为仿真和网络连通性提供必要的支持。优选的,当网络仿真的过程中仿真管理器vManager的虚拟与物理映射信息发生变化时,仿真控制器vController响应于网络仿真的过程中虚拟与物理映射信息发生变化的信号,同步更新相应数据平面设备vSwitch中与数据帧传输相关的配置信息,该配置信息包括邻居信息表和隧道封装映射表。本发明在实际使用中,仿真管理器vManager和仿真控制器vController部署在专门的物理主机(例如物理服务器)上,也可部署在虚拟机上。数据平面设备vSwitch只能部署在每个物理主机内。该系统相当于一个基于Overlay隧道技术的网络仿真平台,例如云网络仿真平台,解决了现有基于虚拟化的网络空间仿真技术依赖物理网络集群结构与配置导致无法灵活且逼真地仿真任意网络拓扑的问题,可在物理网络集群不变的情况下,实现仿真网络的任意组网、灵活组网。
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (11)

1.一种用于构建虚实解耦仿真网络的方法,适用于基于Overlay隧道技术的网络仿真平台,其特征在于,所述方法包括:
S1、获取用户自定义配置的仿真网络规划脚本,其包括仿真网络拓扑结构及其中各节点的功能信息;
S2、根据仿真网络规划脚本将仿真网络的各个节点分散部署在通过物理网络连接的多个物理主机上,其中,已有功能的节点直接部署,新功能的节点根据可编程语言对网络功能进行定义后部署;
S3、在每个物理主机上构建连接其上所有节点的数据平面设备,通过软件定义的方式配置各数据平面设备基于Overlay隧道技术将分散的各个节点进行组网构建逻辑拓扑,以形成与物理网络解耦的让数据帧逐跳传输的仿真网络。
2.根据权利要求1所述的方法,其特征在于,所述步骤S1包括:
S11、提供让用户根据需求对仿真网络拓扑结构及其中各节点的功能信息进行配置的接口;
S12、在用户结束配置后基于其配置的仿真网络拓扑结构及其中各节点生成仿真网络规划脚本。
3.根据权利要求1所述的方法,其特征在于,所述步骤S2包括:
S21、基于内置的多种虚拟机部署算法中的一种虚拟机部署算法将仿真网络拓扑结构中各节点对应的虚拟机分散部署在通过物理网络连接的多个物理主机上;
S22、对于已有功能的节点,从对接的功能软件库中选择适配的功能软件部署到其对应的虚拟机;
S23、对于新功能的节点,根据P4可编程语言对网络功能进行定义,将对应的虚拟机配置为P4交换机,在该P4交换机上编译P4程序使该P4交换机所在的虚拟机支持仿真网络所需的网络功能。
4.根据权利要求1所述的方法,其特征在于,所述步骤S3包括:
S31、在每个物理主机上构建数据平面设备,将该数据平面设备连接到其所在物理主机上部署的所有节点;
S32、获取仿真网络拓扑结构和虚拟与物理映射信息用以自动计算和配置所有数据平面设备上的邻居信息表,该邻居信息表中的每条邻居信息包括本地的节点的IP地址信息、MAC地址信息、其向该邻居信息内的邻居节点发送数据帧的网络接口、其邻居节点的IP地址信息、MAC地址信息、该邻居节点接收该节点发出的数据帧的网络接口和指示该本地的节点和该邻居节点是否直连的连接方式,其中,直连表示两个节点部署于同一物理主机,非直连表示两个节点分别部署于不同的物理主机;
S33、基于南向接口协议编排各数据平面设备配置使其成为各节点间组网的形成逻辑拓扑的中间设备,经配置后任何数据帧每次从节点发出后均经过该节点连接的数据平面设备根据邻居信息表进行转发处理以确定丢弃数据帧或者针对不同的连接方式采取与之适配的特定方式修改数据帧后转发到链路层的下一跳。
5.根据权利要求4所述的方法,其特征在于,所述步骤S33包括:对数据平面设备进行以下配置:
针对相邻但非直连的一对节点,根据邻居信息表在其关联的数据平面设备之间建立Overlay隧道,每个数据平面设备中存储所有与其相关的Overlay隧道对端数据平面设备的隧道封装映射信息构成的隧道封装映射表,所述隧道封装映射信息的格式为邻居节点MAC地址-隧道封装的网络标识符-邻居节点关联的数据平面设备的IP地址,所述Overlay隧道对端数据平面设备的隧道封装映射信息用于封装节点发出的数据帧,以使封装后的数据帧能够直接通过底层物理网络到达邻居节点所在的物理主机;
在一个数据平面设备接收到其他数据平面设备发送的封装后的数据帧后,对封装后的数据帧进行解封装后根据目的MAC地址将解封装的数据帧发给对应的节点。
6.根据权利要求5所述的方法,其特征在于,所述步骤S33还包括:对数据平面设备进行配置以使其按照以下方式对数据帧进行转发处理:
根据邻居信息表确定发出数据帧的节点没有邻居节点时,丢弃该数据帧,结束通信;
针对相邻且直连的一对节点,修改数据帧的目的MAC地址为下一跳邻居节点的MAC地址并直接将修改后的数据帧发送给链路层的下一跳;
针对相邻但非直连的一对节点,修改数据帧的目的MAC地址为下一跳邻居节点的MAC地址并根据下一跳邻居节点的MAC地址查询隧道封装映射表得到邻居节点关联的数据平面设备的IP地址用以在修改后的数据帧上封装Overlay隧道技术的头部信息,将封装后的数据帧经由关联的Overlay 隧道发送给链路层的下一跳。
7.根据权利要求4至6任一项所述的方法,其特征在于,所述方法包括:
在构建的仿真网络上配置链路层发现协议,在节点进行信息通告发出通告数据帧时,对应的通告数据帧先到达该节点连接的数据平面设备,数据平面设备查询本地的邻居信息表,得到该节点的所有邻居节点,并将通告数据帧经转发处理后发送给链路层中该节点不同网络接口对应的下一跳,相应的邻居节点收到该通告数据帧后获知发出数据通告帧的节点是其邻居节点,并将节点的信息保存在管理信息库中,实现链路传输行为的自动适配。
8.根据权利要求4至6任一项所述的方法,其特征在于,所述方法包括:响应于网络仿真的过程中虚拟与物理映射信息发生变化的信号,同步更新相应数据平面设备中与数据帧传输相关的配置信息,所述配置信息包括邻居信息表和隧道封装映射表。
9.一种用于构建虚实解耦仿真网络的系统,其特征在于,包括:
用户配置模块,用于获取用户自定义配置的仿真网络规划脚本,其包括仿真网络拓扑结构及其中各节点的功能信息;
仿真管理器,用于根据仿真网络规划脚本将仿真网络的各个节点分散部署在通过物理网络连接的多个物理主机上,其中,已有功能的节点直接部署,新功能的节点根据可编程语言对网络功能进行定义后部署;
仿真控制器,用于在每个物理主机上构建连接其上所有节点的数据平面设备,通过软件定义的方式配置各数据平面设备基于Overlay隧道技术将分散的各个节点进行组网构建逻辑拓扑,以形成与物理网络解耦的让数据帧逐跳传输的仿真网络。
10.一种计算机可读存储介质,其特征在于,其上包含有计算机程序,所述计算机程序可被处理器执行以实现权利要求1至8中任一项所述方法的步骤。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;以及
存储器,其中存储器用于存储一个或多个可执行指令;
所述一个或多个处理器被配置为经由执行所述一个或多个可执行指令以实现权利要求1至8中任一项所述方法的步骤。
CN202011259610.5A 2020-11-12 2020-11-12 一种用于构建虚实解耦仿真网络的方法 Active CN112311606B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011259610.5A CN112311606B (zh) 2020-11-12 2020-11-12 一种用于构建虚实解耦仿真网络的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011259610.5A CN112311606B (zh) 2020-11-12 2020-11-12 一种用于构建虚实解耦仿真网络的方法

Publications (2)

Publication Number Publication Date
CN112311606A CN112311606A (zh) 2021-02-02
CN112311606B true CN112311606B (zh) 2022-02-15

Family

ID=74325962

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011259610.5A Active CN112311606B (zh) 2020-11-12 2020-11-12 一种用于构建虚实解耦仿真网络的方法

Country Status (1)

Country Link
CN (1) CN112311606B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113037545A (zh) * 2021-02-26 2021-06-25 中电数据服务有限公司 网络仿真方法、装置、设备和存储介质
CN113114509B (zh) * 2021-04-16 2023-04-18 浪潮思科网络科技有限公司 一种在sdn网络环境中进行报文转发仿真的方法及设备
CN113507425B (zh) * 2021-06-22 2023-11-07 新华三大数据技术有限公司 一种Overlay组播方法、装置及设备
CN113326598A (zh) * 2021-06-30 2021-08-31 北京计算机技术及应用研究所 一种物联网靶场设计方法
CN114039798B (zh) * 2021-11-30 2023-11-03 绿盟科技集团股份有限公司 一种数据传输方法、装置及电子设备
CN115174454A (zh) * 2022-06-28 2022-10-11 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) 虚实结合的网络试验实施方法及存储介质
CN115484169A (zh) * 2022-09-09 2022-12-16 山石网科通信技术股份有限公司 网络拓扑结构的构建方法、装置及系统
CN116187034B (zh) * 2023-01-12 2024-03-12 中国航空发动机研究院 基于不确定度量化的压气机仿真可信度评估方法
CN116319380B (zh) * 2023-05-25 2023-10-20 南方科技大学 基于云原生平台及用户态交换机的网络仿真方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106301941A (zh) * 2016-08-29 2017-01-04 广州西麦科技股份有限公司 Overlay一键部署方法及系统
CN108123818A (zh) * 2016-11-30 2018-06-05 江南大学 一种虚实网络灵活可扩展融合的仿真方法
CN108768892A (zh) * 2018-03-26 2018-11-06 西安电子科技大学 一种基于p4的可编程数据平面交换原型的设计与实现

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3433982B1 (en) * 2016-04-13 2021-07-07 Nokia Technologies Oy A multi-tenant virtual private network based on an overlay network
US10263900B2 (en) * 2017-06-23 2019-04-16 Level 3 Communications, Llc Programmable packet processor (PPP)-based adaptive network function chaining
US11153169B2 (en) * 2019-02-28 2021-10-19 Western Digital Technologies, Inc. Distributed storage system with overlay network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106301941A (zh) * 2016-08-29 2017-01-04 广州西麦科技股份有限公司 Overlay一键部署方法及系统
CN108123818A (zh) * 2016-11-30 2018-06-05 江南大学 一种虚实网络灵活可扩展融合的仿真方法
CN108768892A (zh) * 2018-03-26 2018-11-06 西安电子科技大学 一种基于p4的可编程数据平面交换原型的设计与实现

Also Published As

Publication number Publication date
CN112311606A (zh) 2021-02-02

Similar Documents

Publication Publication Date Title
CN112311606B (zh) 一种用于构建虚实解耦仿真网络的方法
CN103997414B (zh) 生成配置信息的方法和网络控制单元
US7593352B2 (en) Discovering MPLS VPN services in a network
CN108737272B (zh) 一种云计算中高性能路由转发方法
US8782210B2 (en) Network management control program, network management control device, and network management control method
CN111835532B (zh) 网络验证的方法和装置
WO2018219322A1 (zh) 设备管理方法、装置、处理器以及存储介质
CN112511431B (zh) 一种用于虚拟化网络仿真的路由流量融合方法
Stringer et al. Cardigan: SDN distributed routing fabric going live at an Internet exchange
US9146826B2 (en) Method and apparatus for scaling network simulation
CN108123819B (zh) 一种虚实网络无缝融合的仿真方法
Salsano et al. Hybrid IP/SDN networking: open implementation and experiment management tools
CN114553689A (zh) 连接性模板
van der Pol et al. Assessment of SDN technology for an easy-to-use VPN service
Dixit et al. Composing heterogeneous SDN controllers with flowbricks
CN110086640A (zh) 业务使能的方法和装置
KR102045556B1 (ko) 통신 시스템에서 네트워크 서비스에 기초하여 네트워크 디바이스를 제어하기 위한 장치 및 방법
Huang et al. Automatical end to end topology discovery and flow viewer on SDN
CN108965000B (zh) 一种私有云sdn引流实现方法
US20230231806A1 (en) Ghost routing
Kataria et al. Programmable Data Plane for New IP using eXpress Data Path (XDP) in Linux
Lehocine et al. VINEMA: Towards automated management of virtual networks in SDN infrastructures
Zeng SEEDEMU: The SEED Internet Emulator
Chen et al. Multiscale emulation technology based on the integration of virtualization, physical and simulation networks
Kaliszan et al. A new testing method of routing protocols for wireless mesh networks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant