CN113300871B - 一种仿真网络的组网方法和装置 - Google Patents
一种仿真网络的组网方法和装置 Download PDFInfo
- Publication number
- CN113300871B CN113300871B CN202010962085.7A CN202010962085A CN113300871B CN 113300871 B CN113300871 B CN 113300871B CN 202010962085 A CN202010962085 A CN 202010962085A CN 113300871 B CN113300871 B CN 113300871B
- Authority
- CN
- China
- Prior art keywords
- simulation
- communication
- port
- instance
- network
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种仿真网络的组网方法和装置,所述方法包括:获取第一仿真实例与第二仿真实例,以及创建用于提供建立通信连接的第一进程;所述第一仿真实例与所述第二仿真实例具有对外的网络端口;创建针对所述第一仿真实例的用于提供与外网连接的第二进程,以及创建针对所述第二仿真实例的用于提供与外网连接的第三进程;采用所述第一进程、所述第二进程以及所述第三进程,构建所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的组网。采用用于建立通信连接以及提供外网连接的进程构建第一仿真实例与第二仿真实例之间的组网,提供基于TCP的连接技术,保证网络连接的稳定性,以仿真出稳定的网络。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种仿真网络的组网方法和一种仿真网络的组网装置。
背景技术
云计算是分布式计算技术的一种,指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算的兴起使网络成为一种基础资源,且使得网络越来越多的集中在云计算服务商手中,然而运维一张超大的网络给云计算服务商带来挑战。
第一,由于网络的复杂性增加,新架构层出不穷,但是旧架构并未淘汰,造成新架构与旧架构多架构并存的现象;且为了降低成本以及减少单一风险,造成多厂商与多OS共存的现象;第二,由于网络自动化工具的广泛使用,在给网络运维提高效率的同时也对操作的安全性提出了更高的要求;第三,混沌工程的兴起使得故障演练成为可能,但是网络的故障演练由于其特殊性,在生产环境进行故障演练非常昂贵而且非常危险。
网络仿真中虚拟网络连接技术是其中的核心技术也是云网络的基础技术,而基于UDP(User Datagram Protocol,用户数据报协议)的VxLAN(virtual Extensible LAN,虚拟可扩展局域网)是最广泛使用的一种技术。然而,在面向复杂的仿真系统的情况下,基于UDP的VxLAN难以对大量仿真设备对象以及外部仿真设备对象进行稳定连接。
发明内容
鉴于上述问题,提出了本申请实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种仿真网络的组网方法和相应的一种仿真网络的组网装置。
为了解决上述问题,本申请实施例公开了一种仿真网络的组网方法,所述方法包括:
获取第一仿真实例与第二仿真实例,以及创建用于提供建立通信连接的第一进程;所述第一仿真实例与所述第二仿真实例具有对外的网络端口;
创建针对所述第一仿真实例的用于提供与外网连接的第二进程,以及创建针对所述第二仿真实例的用于提供与外网连接的第三进程;
采用所述第一进程、所述第二进程以及所述第三进程,构建所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的组网。
可选地,所述采用所述第一进程、所述第二进程以及所述第三进程,构建所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的组网,包括:
采用所述第一进程、所述第二进程以及所述第三进程,建立所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的通信连接;
通过建立的通信连接实现所述第一仿真实例与所述第二仿真实例的双向通信。
可选地,所述采用所述第一进程、所述第二进程以及所述第三进程,建立所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的通信连接,包括:
通过所述第一进程生成第一通信请求与第二通信请求,并分别向针对所述第一仿真实例的第二进程以及针对所述第二仿真实例的第三进程发送所述第一通信请求与第二通信请求;
通过所述第二进程响应所述第一通信请求,生成第三通信请求并向所述第一仿真实例发送所述第三通信请求,以及通过所述第三进程响应所述第二通信请求,生成第四通信请求并向所述第二仿真实例发送所述第四通信请求;
通过所述第一仿真实例接受所述第三通信请求,并建立与所述第二进程的第一通信通道,以及通过所述第二仿真实例接受所述第四通信请求,并建立与所述第三进程的第二通信通道;
通过所述第二进程接受所述第一通信请求,并建立与所述第一进程的第三通信通道,以及通过所述第三进程接受所述第二通信请求,并建立与所述第一进程的第四通信通道;
通过所述第一通信通道、第二通信通道、第三通信通道以及第四通信通道,实现所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的通信连接。
可选地,所述通过建立的通信连接实现所述第一仿真实例与所述第二仿真实例的双向通信,包括:
当所述第一仿真实例与所述第二仿真实例进行通信时,通过所述第一通信通道将所述第一仿真实例发送的报文数据包传输至所述第二进程,通过所述第三通信通道将所述第一仿真实例发送的报文数据包传输至所述第一进程,并通过所述第四通信通道将第一仿真实例发送的报文数据包传输至所述第三进程,以及通过第二通信通道将第一仿真实例发送的报文数据包传输至所述第二仿真实例;
以及,当所述第二仿真实例向所述第一仿真实例进行通信时,通过第二通信通道将所述第二仿真实例发送的报文数据包传输至所述第三进程,通过所述第四通信通道将所述第二仿真实例发送的报文数据包传输至所述第一进程,并通过所述第三通信通道将第二仿真实例发送的报文数据包传输至所述第二进程,以及通过第一通信通道将第二仿真实例发送的报文数据包传输至所述第一仿真实例。
可选地,所述第一仿真实例包括第一仿真设备对象、第二仿真设备对象、第三仿真设备对象以及第四仿真设备对象中的任意一项;所述第二仿真实例包括第一仿真设备对象、第二仿真设备对象、第三仿真设备对象以及第四仿真设备对象中的任意一项。
可选地,所述第一仿真设备对象通过如下方式生成:
获取第一仿真设备镜像,并创建针对所述第一仿真设备镜像的第一启动进程;所述第一仿真设备镜像具有网络主接口;
若所述第一仿真设备镜像的网络主接口数目少于预设端口数目,则通过所述第一仿真镜像配置产生与预设端口数目一一对应的多个逻辑子接口,并将所述多个逻辑子接口分配至所述网络主接口,获得具有多个逻辑子接口的第一仿真进程;
采用所述第一启动进程建立端口转换进程;
采用所述具有多个逻辑子接口的第一仿真进程建立针对与所述端口转换进程之间的第一通信子网,以及采用所述端口转换进程建立针对预设相邻仿真设备对象在内的第二通信子网;
采用所述第一启动进程、所述第一通信子网、所述端口转换进程、以及所述第二通信子网,生成针对所述第一仿真设备镜像的第一仿真设备对象。
可选地,所述采用所述具有多个逻辑子接口的第一仿真进程建立针对与所述端口转换进程之间的第一通信子网,包括:
通过所述端口转换进程对所述第一仿真进程中的网络主接口创建相应的服务端口,并将创建的服务端口与所述第一仿真进程对应的网络主接口进行通信连接;
采用所述第一仿真进程与所述端口转换进程之间的通信连接建立第一通信子网。
可选地,所述采用所述端口转换进程建立针对预设相邻仿真设备在内的第二通信子网,包括:
创建所述端口转换进程与预设相邻仿真设备之间的通信连接;
采用所述端口转换进程与预设相邻仿真设备之间的通信连接建立第二通信子网。
可选地,所述端口转换进程面向预设外部相邻设备的接口数目和预设端口数目相同。
可选地,所述方法还包括:
建立所述端口转换进程面向所述第一仿真进程相应的服务端口的监听连接;
当所述第一仿真进程向所述预设外部相邻设备传输数据包时,通过所述第一通信子网向所述端口转换进程发送所述第一仿真设备对象传输的数据包;
通过所述端口转换进程监听到所述第一仿真进程传输的数据包,获取所述第一仿真进程传输的报文数据包中的VLAN ID信息,并查找与所述VLAN ID信息对应的面向预设外部相邻设备的数据端口;
通过所述端口转换进程对所述第一仿真进程传输的数据包进行去除VLAN ID的第一转化操作,得到不带有VLAN ID的数据包,并通过第二通信子网向将所述不带有VLAN ID的数据包转发至查找到的预设相邻设备的数据端口。
可选地,所述方法还包括:
当所述预设外部相邻设备向所述第一仿真进程传输数据包时,通过所述第二通信子网向所述端口转换进程发送所述预设外部相邻设备传输的数据包;
通过所述端口转换进程读取所述预设外部相邻设备传输的数据包,并通过反向查找面向相邻设备的数据接收端口所对应的第一仿真进程的数据端口以及VLAN ID信息;
通过所述端口转换进程对所述预设外部相邻设备传输的数据包进行增加VLAN ID的第二转化操作,得到带有VLAN ID的数据包,并通过所述第一通信子网将所述带有VLANID的数据包转发给所述第一仿真设备进程对接的数据端口。
可选地,所述采用所述具有多个逻辑子接口的第一仿真进程建立针对与所述端口转换进程之间的第一通信子网,还包括:
建立针对所述第一仿真进程与所述端口转换进程之间的双向通信连接。
可选地,所述采用所述端口转换进程建立针对预设相邻仿真设备在内的第二通信子网,还包括:
建立针对所述端口转换进程与所述预设相邻仿真设备之间的双向通信连接。
可选地,所述第二仿真设备对象通过如下方式生成:
获取第二仿真设备镜像,并创建针对所述第二仿真设备镜像的第二启动进程;所述第二仿真设备镜像具有网络主接口,且所述网络主接口在宿主物理服务器上没有直接对应的物理网络端口;
根据所述第二仿真镜像获取具有多个逻辑子接口的第二仿真进程;
采用所述第二启动进程建立第一网络报文转发进程;
采用所述具有多个逻辑子接口的第二仿真进程建立与所述第一网络报文转发进程之间的第三通信子网,以及采用所述第一报文转发进程建立针对预设相邻仿真设备在内的第四通信子网;
采用所述第二启动进程、所述第三通信子网、所述第一报文转发进程、以及所述第四通信子网,生成针对所述第二仿真设备镜像的第二仿真设备对象。
可选地,所述采用所述具有多个逻辑子接口的第二仿真进程建立与所述第一网络报文转发进程之间的第三通信子网,包括:
通过所述第一网络报文转发进程对所述第二仿真进程中的网络主接口创建以太网端口,并采用所述以太网端口与所述第二仿真进程对应的网络主接口进行通信连接;
采用所述第二仿真进程与所述第一网络报文转发进程之间的通信连接建立第三通信子网。
可选地,所述采用所述第一报文转发进程建立针对预设相邻仿真设备在内的第四通信子网,包括:
创建所述第一报文转发进程与预设相邻仿真设备之间的通信连接;
采用所述第一报文转发进程与预设相邻仿真设备之间的通信连接建立第四通信子网。
可选地,所述方法还包括:
建立所述第一报文转发进程面向所述第二仿真进程相应的以太网端口的监听连接;
当所述第二仿真进程向所述预设外部相邻设备传输数据包时,通过所述第三通信子网向所述第一报文转发进程发送所述第二仿真进程传输的数据包;
通过所述第一报文转发进程监听到所述第二仿真进程传输的数据包,查找与所述以太网端口对应的面向预设外部相邻设备的数据端口;
通过所述第一报文转发进程采用所述第四通信子网,将所述第二仿真进程传输的数据包转发至查找到的预设相邻设备的数据端口。
可选地,所述方法还包括:
当所述预设外部相邻设备向所述第二仿真进程传输数据包时,通过所述第四通信子网向所述第一报文转发进程发送所述预设外部相邻设备传输的数据包;
通过所述第一报文转发进程读取所述预设外部相邻设备传输的数据包,并通过反向查找面向相邻设备的数据接收端口所对应的第二仿真进程的数据端口;
通过所述第一报文转发进程将所述预设外部相邻设备传输的数据包通过所述第三通信子网转发给所述第二仿真进程对接的数据端口。
可选地,所述第三仿真设备对象通过如下方式生成:
获取第三仿真设备的物理设备实例;所述第三仿真设备对象不具有对应的仿真镜像;
采用所述物理设备实例建立第二报文转发进程;
采用所述物理设备实例建立与所述第二报文转发进程之间的第五通信子网,以及采用所述第二报文转发进程建立针对预设相邻仿真设备在内的第六通信子网;
采用所述物理设备实例、所述第五通信子网、所述第二报文转发进程、以及所述第六通信子网,生成针对所述第三仿真设备的第三仿真设备对象。
可选地,所述第二报文转发进程运行于与所述物理设备实例不同的物理宿主机;所述物理设备实例具有物理网络端口;所述采用所述物理设备实例建立与所述第二报文转发进程之间的第五通信子网,包括:
将所述物理设备实例的物理网络端口与预设宿主服务器的物理网络端口进行绑定,并通过所述第二报文转发进程与所述预设宿主服务器的物理网络端口进行物理网络连接;
采用所述第二报文转发进程与所述预设宿主服务器之间建立的物理网络连接第五通信子网。
可选地,所述采用所述第二报文转发进程建立针对预设相邻仿真设备在内的第六通信子网,包括:
创建用于所述第二报文转发进程与预设相邻仿真设备之间的通信连接;
采用所述第二报文转发进程与预设相邻仿真设备对象之间的通信连接建立第六通信子网。
可选地,所述方法还包括:
建立所述第二报文转发进程面向所述预设宿主服务器相应的物理网络端口的监听连接;
当所述第三仿真设备对象向所述预设外部相邻设备传输数据包时,通过所述第五通信子网向所述第二报文转发进程发送所述第三仿真设备对象传输的数据包;
通过所述第二报文转发进程监听到所述第三仿真设备对象传输的数据包,查找所述预设宿主服务的物理网络端口对应的面向预设外部相邻设备的数据端口;
通过所述第二报文转发进程采用所述第六通信子网,将第三仿真设备对象传输的数据包转发至查找到的预设相邻设备的数据端口。
可选地,所述方法还包括:
当所述预设外部相邻设备向所述第三仿真设备对象传输数据包时,通过所述第六通信子网向所述第二报文转发进程发送所述预设外部相邻设备传输的数据包;
通过所述第二报文转发进程读取所述预设外部相邻设备传输的数据包,并通过反向查找所对应的预设宿主服务器对应的物理网卡端口;
通过所述第二报文转发进程将所述预设外部相邻设备传输的数据包通过所述第五通信子网转发至所述真实物理设备实例对接的数据端口。
本申请实施例还公开了一种仿真网络的组网装置,所述装置包括:
仿真实例获取模块,用于获取第一仿真实例与第二仿真实例,以及创建用于提供建立通信连接的第一进程;所述第一仿真实例与所述第二仿真实例具有对外的网络端口;
进程创建模块,用于创建针对所述第一仿真实例的用于提供与外网连接的第二进程,以及创建针对所述第二仿真实例的用于提供与外网连接的第三进程;
组网构建模块,用于采用所述第一进程、所述第二进程以及所述第三进程,构建所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的组网。
可选地,所述组网构建模块包括:
通信连接建立子模块,用于采用所述第一进程、所述第二进程以及所述第三进程,建立所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的通信连接;
双向通信子模块,用于通过建立的通信连接实现所述第一仿真实例与所述第二仿真实例的双向通信。
可选地,所述通信连接建立子模块包括:
第一通信请求发送单元,用于通过所述第一进程生成第一通信请求与第二通信请求,并分别向针对所述第一仿真实例的第二进程以及针对所述第二仿真实例的第三进程发送所述第一通信请求与第二通信请求;
第二通信请求发送单元,用于通过所述第二进程响应所述第一通信请求,生成第三通信请求并向所述第一仿真实例发送所述第三通信请求,以及通过所述第三进程响应所述第二通信请求,生成第四通信请求并向所述第二仿真实例发送所述第四通信请求;
第一通信通道建立单元,用于通过所述第一仿真实例接受所述第三通信请求,并建立与所述第二进程的第一通信通道,以及通过所述第二仿真实例接受所述第四通信请求,并建立与所述第三进程的第二通信通道;
第二通信通道建立单元,用于通过所述第二进程接受所述第一通信请求,并建立与所述第一进程的第三通信通道,以及通过所述第三进程接受所述第二通信请求,并建立与所述第一进程的第四通信通道;
通信连接建立单元,用于通过所述第一通信通道、第二通信通道、第三通信通道以及第四通信通道,实现所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的通信连接。
可选地,所述双向通信子模块包括:
第一双向通信单元,用于当所述第一仿真实例与所述第二仿真实例进行通信时,通过所述第一通信通道将所述第一仿真实例发送的报文数据包传输至所述第二进程,通过所述第三通信通道将所述第一仿真实例发送的报文数据包传输至所述第一进程,并通过所述第四通信通道将第一仿真实例发送的报文数据包传输至所述第三进程,以及通过第二通信通道将第一仿真实例发送的报文数据包传输至所述第二仿真实例;
第二双向通信单元,用于当所述第二仿真实例向所述第一仿真实例进行通信时,通过第二通信通道将所述第二仿真实例发送的报文数据包传输至所述第三进程,通过所述第四通信通道将所述第二仿真实例发送的报文数据包传输至所述第一进程,并通过所述第三通信通道将第二仿真实例发送的报文数据包传输至所述第二进程,以及通过第一通信通道将第二仿真实例发送的报文数据包传输至所述第一仿真实例。
可选地,所述第一仿真实例包括第一仿真设备对象、第二仿真设备对象、第三仿真设备对象以及第四仿真设备对象中的任意一项;所述第二仿真实例包括第一仿真设备对象、第二仿真设备对象、第三仿真设备对象以及第四仿真设备对象中的任意一项。
可选地,所述装置还包括:
第一仿真设备对象生成模块,用于生成第一仿真设备对象;
第二仿真设备对象生成模块,用于生成第二仿真设备对象;
第三仿真设备对象生成模块,用于生成第三仿真设备对象。
可选地,所述第一仿真设备对象生成模块包括:
第一仿真设备镜像获取子模块,用于获取第一仿真设备镜像,并创建针对所述第一仿真设备镜像的第一启动进程;所述第一仿真设备镜像具有网络主接口;
第一仿真进程生成子模块,用于根据所述第一仿真设备镜像生成具有多个逻辑子接口的第一仿真进程;
端口转换进程建立子模块,用于采用所述第一启动进程建立端口转换进程;
第一通信子网建立子模块,用于采用所述具有多个逻辑子接口的第一仿真进程建立针对与所述端口转换进程之间的第一通信子网;
第二通信子网建立子模块,用于采用所述端口转换进程建立针对预设相邻仿真设备对象在内的第二通信子网;
第一仿真设备对象生成子模块,用于采用所述第一启动进程、所述第一通信子网、所述端口转换进程、以及所述第二通信子网,生成针对所述第一仿真设备镜像的第一仿真设备对象。
可选地,所述第一仿真进程生成子模块包括:
第一仿真进程生成单元,用于若所述第一仿真设备镜像的网络主接口数目少于预设端口数目,则通过所述第一仿真镜像配置产生与预设端口数目一一对应的多个逻辑子接口,并将所述多个逻辑子接口分配至所述网络主接口,获得具有多个逻辑子接口的第一仿真进程。
可选地,所述第一通信子网建立子模块包括:
第一通信连接创建单元,用于通过所述端口转换进程对所述第一仿真进程中的网络主接口创建相应的服务端口,并将创建的服务端口与所述第一仿真进程对应的网络主接口进行通信连接;
第一通信子网建立单元,用于采用所述第一仿真进程与所述端口转换进程之间的通信连接建立第一通信子网。
可选地,所述第二通信子网建立子模块包括:
第二通信连接创建单元,用于创建所述端口转换进程与预设相邻仿真设备之间的通信连接;
第二通信子网建立单元,用于采用所述端口转换进程与预设相邻仿真设备之间的通信连接建立第二通信子网。
可选地,所述端口转换进程面向预设外部相邻设备的接口数目和预设端口数目相同。
可选地,还包括:
第一监听连接建立单元,用于建立所述端口转换进程面向所述第一仿真进程相应的服务端口的监听连接;
第一数据包发送单元,用于当所述第一仿真进程向所述预设外部相邻设备传输数据包时,通过所述第一通信子网向所述端口转换进程发送所述第一仿真设备对象传输的数据包;
第一数据端口查找单元,用于通过所述端口转换进程监听到所述第一仿真进程传输的数据包,获取所述第一仿真进程传输的报文数据包中的VLAN ID信息,并查找与所述VLAN ID信息对应的面向预设外部相邻设备的数据端口;
第一转化操作单元,用于通过所述端口转换进程对所述第一仿真进程传输的数据包进行去除VLAN ID的第一转化操作,得到不带有VLAN ID的数据包,并通过第二通信子网向将所述不带有VLAN ID的数据包转发至查找到的预设相邻设备的数据端口。
可选地,还包括:
第二数据包发送单元,用于当所述预设外部相邻设备向所述第一仿真进程传输数据包时,通过所述第二通信子网向所述端口转换进程发送所述预设外部相邻设备传输的数据包;
第一数据端口反向查找单元,用于通过所述端口转换进程读取所述预设外部相邻设备传输的数据包,并通过反向查找面向相邻设备的数据接收端口所对应的第一仿真进程的数据端口以及VLAN ID信息;
第二转化操作单元,用于通过所述端口转换进程对所述预设外部相邻设备传输的数据包进行增加VLAN ID的第二转化操作,得到带有VLAN ID的数据包,并通过所述第一通信子网将所述带有VLAN ID的数据包转发给所述第一仿真设备进程对接的数据端口。
可选地,所述第一通信子网建立子模块还包括:
第一双向通信连接建立单元,用于建立针对所述第一仿真进程与所述端口转换进程之间的双向通信连接。
可选地,所述第二通信子网建立子模块还包括:
第二双向通信连接建立单元,用于建立针对所述端口转换进程与所述预设相邻仿真设备之间的双向通信连接。
可选地,所述第二仿真设备对象生成模块包括:
第二仿真设备镜像获取子模块,用于获取第二仿真设备镜像,并创建针对所述第二仿真设备镜像的第二启动进程;所述第二仿真设备镜像具有网络主接口,且所述网络主接口在宿主物理服务器上没有直接对应的物理网络端口;
第二仿真进程生成子模块,用于根据所述第二仿真镜像获取具有多个逻辑子接口的第二仿真进程;
第一网络报文转发进程建立子模块,用于采用所述第二启动进程建立第一网络报文转发进程;
第三通信子网建立子模块,用于采用所述具有多个逻辑子接口的第二仿真进程建立与所述第一网络报文转发进程之间的第三通信子网;
第四通信子网建立子模块,用于采用所述第一报文转发进程建立针对预设相邻仿真设备在内的第四通信子网;
第二仿真设备对象生成子模块,用于采用所述第二启动进程、所述第三通信子网、所述第一报文转发进程、以及所述第四通信子网,生成针对所述第二仿真设备镜像的第二仿真设备对象。
可选地,所述第三通信子网建立子模块包括:
第三通信连接创建单元,用于通信连接通过所述第一网络报文转发进程对所述第二仿真进程中的网络主接口创建以太网端口,并采用所述以太网端口与所述第二仿真进程对应的网络主接口进行通信连接;
第三通信子网创建单元,用于采用所述第二仿真进程与所述第一网络报文转发进程之间的通信连接建立第三通信子网。
可选地,所述第四通信子网建立子模块包括:
第四通信连接创建单元,用于创建所述第一报文转发进程与预设相邻仿真设备之间的通信连接;
第四通信子网创建单元,用于采用所述第一报文转发进程与预设相邻仿真设备之间的通信连接建立第四通信子网。
可选地,还包括:
第二监听连接建立单元,用于建立所述第一报文转发进程面向所述第二仿真进程相应的以太网端口的监听连接;
第三数据包发送单元,用于当所述第二仿真进程向所述预设外部相邻设备传输数据包时,通过所述第三通信子网向所述第一报文转发进程发送所述第二仿真进程传输的数据包;
第二数据端口查找单元,用于通过所述第一报文转发进程监听到所述第二仿真进程传输的数据包,查找与所述以太网端口对应的面向预设外部相邻设备的数据端口;
第一数据包转发单元,用于通过所述第一报文转发进程采用所述第四通信子网,将所述第二仿真进程传输的数据包转发至查找到的预设相邻设备的数据端口。
可选地,还包括:
第四数据包发送单元,用于当所述预设外部相邻设备向所述第二仿真进程传输数据包时,通过所述第四通信子网向所述第一报文转发进程发送所述预设外部相邻设备传输的数据包;
第二数据端口反查找单元,用于通过所述第一报文转发进程读取所述预设外部相邻设备传输的数据包,并通过反向查找面向相邻设备的数据接收端口所对应的第二仿真进程的数据端口;
第二数据包转发单元,用于通过所述第一报文转发进程将所述预设外部相邻设备传输的数据包通过所述第三通信子网转发给所述第二仿真进程对接的数据端口。
可选地,所述第三仿真设备对象生成模块包括:
物理设备实例获取子模块,用于获取第三仿真设备的物理设备实例;所述第三仿真设备对象不具有对应的仿真镜像;
第二报文转发进程建立子模块,用于采用所述物理设备实例建立第二报文转发进程;
第五通信子网建立子模块,用于采用所述物理设备实例建立与所述第二报文转发进程之间的第五通信子网;
第六通信子网建立子模块,用于采用所述第二报文转发进程建立针对预设相邻仿真设备在内的第六通信子网;
第三仿真设备对象生成子模块,用于采用所述物理设备实例、所述第五通信子网、所述第二报文转发进程、以及所述第六通信子网,生成针对所述第三仿真设备的第三仿真设备对象。
可选地,所述第二报文转发进程运行于与所述物理设备实例不同的物理宿主机;所述物理设备实例具有物理网络端口;所述第五通信子网建立子模块包括:
物理网络端口绑定单元,用于将所述物理设备实例的物理网络端口与预设宿主服务器的物理网络端口进行绑定,并通过所述第二报文转发进程与所述预设宿主服务器的物理网络端口进行物理网络连接;
第五通信子网建立单元,用于采用所述第二报文转发进程与所述预设宿主服务器之间建立的物理网络连接第五通信子网。
可选地,所述第六通信子网建立子模块包括:
第五通信连接创建单元,用于创建用于所述第二报文转发进程与预设相邻仿真设备之间的通信连接;
第六通信子网建立单元,用于采用所述第二报文转发进程与预设相邻仿真设备对象之间的通信连接建立第六通信子网。
可选地,还包括:
第三监听连接建立单元,用于建立所述第二报文转发进程面向所述预设宿主服务器相应的物理网络端口的监听连接;
第五数据包发送单元,用于当所述第三仿真设备对象向所述预设外部相邻设备传输数据包时,通过所述第五通信子网向所述第二报文转发进程发送所述第三仿真设备对象传输的数据包;
第三数据端口查找单元,用于通过所述第二报文转发进程监听到所述第三仿真设备对象传输的数据包,查找所述预设宿主服务的物理网络端口对应的面向预设外部相邻设备的数据端口;
第三数据包转发单元,用于通过所述第二报文转发进程采用所述第六通信子网,将第三仿真设备对象传输的数据包转发至查找到的预设相邻设备的数据端口。
可选地,还包括:
第六数据包发送单元,用于当所述预设外部相邻设备向所述第三仿真设备对象传输数据包时,通过所述第六通信子网向所述第二报文转发进程发送所述预设外部相邻设备传输的数据包;
物理网卡端口反向查找单元,用于通过所述第二报文转发进程读取所述预设外部相邻设备传输的数据包,并通过反向查找所对应的预设宿主服务器对应的物理网卡端口;
第四数据包转发单元,用于通过所述第二报文转发进程将所述预设外部相邻设备传输的数据包通过所述第五通信子网转发至所述真实物理设备实例对接的数据端口。
本申请实施例还公开了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现任一项所述仿真网络的组网方法的步骤。
本申请实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现任一项所述仿真网络的组网方法的步骤。
本申请实施例包括以下优点:
在本申请实施例中,可以获取第一仿真实例与第二仿真实例,以及创建用于提供建立通信连接的第一进程,同时还可以创建用于提供第一仿真实例与外网连接的第二进程,以及创建用于提供第二仿真实例与外网连接的第三进程,以便采用第一进程、第二进程以及第三进程构建第一仿真实例对外的网络端口与第二仿真实例对外的网络端口之间的组网。采用用于建立通信连接以及提供外网连接的进程构建第一仿真实例与第二仿真实例之间的组网,提供基于TCP的连接技术,保证网络连接的稳定性,以仿真出稳定的网络;
其次,第一仿真实例与第二仿真实例可以为具有多个逻辑子接口的仿真设备对象,提供用子接口连接相邻仿真设备主接口的能力,从而突破了仿真端口数目的限制,以及实现在用户拥有少量目标物理设备,没有对应仿真镜像的情况下,建立仿真环境和真实环境的混合环境。
附图说明
图1是本申请的一种仿真网络的组网方法实施例的步骤流程图;
图2是本申请实施例中生成第一仿真设备对象的步骤流程图;
图3是本申请实施例中生成第二仿真设备对象的步骤流程图;
图4是本申请实施例中生成第三仿真设备对象的步骤流程图;
图5是本申请实施例中一种仿真网络的组网的构建示意图;
图6是本申请实施例中另一种仿真网络的组网的构建示意图;
图7是本申请的一种仿真网络的组网装置实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
网络仿真中虚拟网络连接技术是其中的核心技术也是云网络的基础技术,而基于UDP的VxLAN是最广泛使用的一种技术。
在相关技术中,可以采用基于UDP的VxLAN(Virtual eXtensible Local AreaNetwork,虚拟扩展局域网)实现在进行网络仿真中的虚拟网络连接,VxLAN是一种由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,采用L2 over L4(MAC-in-UDP)的报文封装模式,将二层报文用三层协议进行封装,可实现二层网络在三层范围内进行扩展,同时满足数据中心大二层虚拟迁移和多租户的需求的技术,然而,将VxLAN作为仿真网络连接技术可能存在以下几个缺点:
第一,基于UDP的VxLAN不稳定,会发生丢包的现象。由于网络仿真的特殊性,需要仿真各种网络设备以及网络设备之间的协议交换,此时需要稳定可靠的连接,若出现协议丢包会造成协议的抖动,比如BFD协议丢包造成ISIS抖动,进而造成BGP的抖动,BGP的抖动会造成大量的路由抖动,大量的路由抖动使丢包更加严重,无法仿真出一个稳定的网络;
第二,VxLAN是运行在L3 underlay上的,每个包增加了50+bytes额外的VxLAN报文头,意味着下层的传输网络需要支持至少1550bytes的frame,然而UDP不支持fragementation且无法分解成小包。在网络仿真中,有些仿真的链路需传递大到9000+bytes的Jumbo frame,VxLAN缺乏对jumbo frame的支持;
第三,VxLAN是一个二层协议需要建立MAC和VTEP的映射,如果采用标准的floodand learn,则需要通过ip multicast;如果VxLAN需要跨WAN的话,建立这样的一个映射是非常耗时的,虽然可以通过静态映射(如weave)或通过BGP EVPN(如calico)来建立这样的映射,但这些都增加了协议的复杂度和运维难度;
第四,VxLAN不能提供子接口的连接能力,无法解决仿真中需要较多仿真端口数量的问题;
第五,存在多种防火墙对UDP不友好,可能造成VxLAN的包被错误拦截。
基于上述基于UDP的VxLAN的虚拟网络连接的缺点,本申请的核心思想之一为提出一种基于TCP的连接技术实现仿真网络的虚拟网络连接,其可以保证网络连接的稳定性,以仿真出稳定的网络,且还可以提供用子接口连接其他仿真设备对象主接口的能力,从而突破了仿真端口数目的限制。
以下通过具体实施例对本申请的网络组网的方法和装置进行说明。
参照图1,示出了本申请的一种仿真网络的组网方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,获取第一仿真实例与第二仿真实例,以及创建第一进程;所述第一仿真实例与所述第二仿真实例具有对外的网络端口;
在本申请的一种实施例中,为了基于TCP的连接技术实现仿真网络的仿真网络连接,可以获取第一仿真实例与第二仿真实例,并创建用于提供建立通信连接的第一进程,以便根据第一进程建立第一仿真实例与第二仿真实例之间通信。
在实际应用中,第一仿真实例与第二仿真实例可以是目标仿真设备的VM或Docker实例,所创建的用于提供建立通信连接的第一进程可以是Mesh,为一个独立运行的进程,用于提供两个TCP/IP socket连接的服务,并可以运行在网络的任意地方,为了提高其性能建议尽量部署在与仿真设备同一个主机上。
步骤102,创建针对所述第一仿真实例的用于提供与外网连接的第二进程,以及创建针对所述第二仿真实例的用于提供与外网连接的第三进程;
在具体实现中,第一仿真实例与第二仿真实例可以部署在不同的服务器主机上,且第一仿真实例与第二仿真实例具有对外的网络端口,为了构建第一仿真实例与第二仿真实例之间的组网,在采用第一进程建立通信连接的基础上,第一仿真实例与第二仿真实例还需要与外网进行连接,此时可以创建针对第一仿真实例的用于提供与外网连接的第二进程,以及创建针对第二仿真实例的用于提供与外网连接的第三进程。
其中,第二进程可以提供第一仿真实例与外网连接的能力,第三进程可以提供第二仿真实例与外网连接的能力,这里的外网可以包括与预设相邻仿真设备或者物理真实设备在内的外网;这里的第二进程与第三进程可以是TCP proxy,其可以为一个独立运行的进程,每个主机(即服务器)可以部署一个,即第一仿真实例与第二仿真实例不仅可以使用主机的私有网络,还可以通过TCP proxy和外网进行通信。
步骤103,采用所述第一进程、所述第二进程以及所述第三进程,构建所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的组网。
在本申请的一种实施例中,在创建用于提供建立通信连接的第一进程、用于提供第一仿真实例与外网连接的第二进程,以及用于提供第二仿真实例与外网连接的第三进程之后,可以采用第一进程、第二进程以及第三进程构建第一仿真实例与第二仿真实例之间的组网,主要表现为实现对仿真实例对接端口的互连以及实现两个仿真实例之间的双向通信。
在本申请的一种实施例中,步骤103可以包括如下子步骤:
子步骤S11,采用所述第一进程、所述第二进程以及所述第三进程,建立所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的通信连接;
在实际应用中,为了实现对仿真实例端口的互连,首先可以建立第一仿真实例的网络端口与第二仿真实例的网络端口之间的TCP通信连接。
其中,可以通过第一进程(即互连进程Mesh)发起端口互连流程,然后通过第一进程分别建立与第一仿真实例以及第二仿真实例之间的TCP通信连接。
具体的,通过第一进程建立与第一仿真实例之间的TCP通信连接,可以表现为通过第一进程生成第一通信请求,并向针对第一仿真实例的第二进程发送第一通信请求,所发送的第一通信请求中可以携带仿真目标实例以及对应目标仿真端口信息;通过第二进程响应第一通信请求,生成第三通信请求并向第一仿真实例发送第三通信请求,第三通信请求中可以携带仿真端口信息,然后通过第一仿真实例接受第三通信请求,并建立与第二进程的第一通信通道,以及通过第二进程接受第一通信请求,并建立与第一进程的第三通信通道。即通过第一通信通道以及第三通信通道实现第一进程与第一仿真实例之间的TCP通信连接。
通过第一进程建立与第二仿真实例之间的TCP通信连接,可以表现为为通过第一进程生成第二通信请求,并向针对第二仿真实例的第三进程发送第二通信请求,所发送的第二通信请求中可以携带仿真目标实例以及对应目标仿真端口信息;通过第三进程响应第二通信请求,生成第四通信请求并向第二仿真实例发送所述第四通信请求,第四通信请求中可以携带仿真端口信息,然后通过第二仿真实例接受第四通信请求,并建立与第三进程的第二通信通道;以及通过第三进程接受第二通信请求,并建立与第一进程的第四通信通道。即通过第二通信通道以及第四通信通道实现第一进程与第二仿真实例之间的TCP通信连接。
在一种优选的实施例中,可以通过第一通信通道、第二通信通道、第三通信通道以及第四通信通道,实现第一仿真实例的网络端口与第二仿真实例的网络端口之间的TCP通信连接。
子步骤S12,通过建立的通信连接实现所述第一仿真实例与所述第二仿真实例的双向通信。
在本申请的一种实施例中,实现第一仿真实例的网络端口与第二仿真实例的网络端口之间的TCP通信连接之后,可以通过第一仿真实例与第二仿真实例之间的TCP通信连接,实现两个仿真实例之间的双向通信。
具体的,可以通过两个仿真实例传输数据包的方向实现,当第一仿真实例与所述第二仿真实例进行通信时,可以通过第一通信通道将第一仿真实例发送的报文数据包传输至第二进程,并通过第三通信通道将第一仿真实例发送的报文数据包传输至共享的第一进程;然后通过第四通信通道将第一仿真实例发送的报文数据包传输至第三进程,以及通过第二通信通道将第一仿真实例发送的报文数据包传输至第二仿真实例。
以及,当第二仿真实例向所述第一仿真实例进行通信时,可以通过第二通信通道将第二仿真实例发送的报文数据包传输至第三进程,并通过第四通信通道将第二仿真实例发送的报文数据包传输至共享的第一进程;然后通过第三通信通道将第二仿真实例发送的报文数据包传输至第二进程,以及通过第一通信通道将第二仿真实例发送的报文数据包传输至第一仿真实例。
在一种优选的实施例中,仿真实例可以包括不同类型的仿真设备实例,可以包括第一仿真设备对象、第二仿真设备对象、第三仿真设备对象以及第四仿真设备对象。
其中,第一仿真设备对象可以指A类型仿真设备的实例,A类型的仿真设备指的是端口数目少于目标实际真实设备的仿真设备,其需要通过主接口+子接口的配置,外加一个附属的仿真分离器进程(Splitter)来进行仿真,那么第一仿真设备对象可以包括启动的仿真镜像、仿真分离器进程splitter以及它们之间的通信子网;第二仿真设备对象可以指B类型仿真设备的实例,B类型的仿真设备指的是没有直接绑定宿主机网卡仿真设备,其需要外加一个仿真转接器进程(Transponder)来进行仿真,那么第二仿真设备对象可以包括启动的仿真镜像、仿真转接器进程Transponder以及它们之间的通信子网;第三仿真设备对象可以指C类型仿真设备的实例,C类型的仿真设备指的是物理设备,那么第三仿真设备对象可以包括一个真实物理设备(没有办法获得仿真镜像,但是需要对接仿真环境的情况)、仿真转接器进程Transponder以及它们之间的通信子网;第四仿真设备对象可以指D类型仿真设备的实例,D类型的仿真设备指的是一般的仿真设备,即无特殊要求且具有仿真镜像的虚拟设备。
在一种优选的实施例中,第一仿真实例可以包括第一仿真设备对象、第二仿真设备对象、第三仿真设备对象以及第四仿真设备对象中的任意一项;同样的,第二仿真实例也可以包括第一仿真设备对象、第二仿真设备对象、第三仿真设备对象以及第四仿真设备对象中的任意一项。
需要说明的是,上述各类型的仿真实例之间均以TCP socket方式仿真对外的网络接口,且仿真实例可以任意相邻,且各个仿真实例都可以存在一个对相邻设备的通信子网,其可以通过mesh+proxy进程完成互连;其次,对于相邻的仿真实例的数量以及仿真实例的类型,本申请实施例不加以限制。
在本申请实施例中,可以获取第一仿真实例与第二仿真实例,以及创建用于提供建立通信连接的第一进程,同时还可以创建用于提供第一仿真实例与外网连接的第二进程,以及创建用于提供第二仿真实例与外网连接的第三进程,以便采用第一进程、第二进程以及第三进程构建第一仿真实例对外的网络端口与第二仿真实例对外的网络端口之间的组网。采用用于建立通信连接以及提供外网连接的进程构建第一仿真实例与第二仿真实例之间的组网,提供基于TCP的连接技术,保证网络连接的稳定性,以仿真出稳定的网络;其次,第一仿真实例与第二仿真实例可以为具有多个逻辑子接口的仿真设备对象,提供用子接口连接相邻仿真设备主接口的能力,从而突破了仿真端口数目的限制。
参照图2,示出了本申请实施例中生成第一仿真设备对象的步骤流程图,主要针对端口数目少于目标实际真实设备的仿真设备,且需要通过主接口+子接口的配置,外加一个附属的仿真分离器进程(Splitter)来进行仿真的A类型仿真设备的实例的生成,具体可以包括如下步骤:
步骤201,获取第一仿真设备镜像,并创建针对所述第一仿真设备镜像的第一启动进程;所述第一仿真设备镜像具有网络主接口;
步骤202,根据第一仿真设备镜像获得具有多个逻辑子接口的第一仿真进程;
在本申请的一种实施例中,可以获取第一仿真设备镜像,这里的第一仿真设备镜像可以指的是所要仿真的目标仿真设备的镜像,其中,第一仿真设备镜像可以具有若干个网络主接口,此时可以根据第一仿真镜像获得具有多个逻辑子接口的第一仿真进程。
其中,若第一仿真设备镜像的网络主接口数目少于预设端口数目,预设端口数目可以是所仿真对应的目标真实设备端口数目,则可以通过子接口方式,使得第一仿真镜像配置产生与预设端口数目一一对应的多个逻辑子接口,并将多个逻辑子接口分配至网络主接口,获得具有多个逻辑子接口的第一仿真进程。
在实际应用中,通过扩展逻辑子接口并将扩展的逻辑子接口平均分配至第一仿真设备镜像的若干个网络主接口,实现对第一仿真设备镜像的逻辑端口数目的增加,所得到的增加后的逻辑端口数目等于预设端口数目,即与所仿真对应的目标真实设备端口数目一致。
步骤203,采用所述第一启动进程建立端口转换进程;
在本申请的一种实施例中,第一启动进程所建立的端口转换进程可以用于进行网络端口转换,该进程可以为仿真分离器进程Splitter,其中,转换分离器可以对需要扩展仿真端口的仿真设备对象VM,每个VM实例一个,提供把一个主接口扩展到4096个VLAN子接口的能力,从而突破仿真设备对象端口数不够的关键进程。
步骤204,采用所述具有多个逻辑子接口的第一仿真进程建立针对与所述端口转换进程之间的第一通信子网;
在本申请的一种实施例中,所生成的第一仿真设备对象可以包括启动的第一仿真设备镜像、仿真分离器进程splitter以及它们之间的通信子网,此时可以采用具有多个逻辑子接口的第一仿真进程建立与端口转换进程之间的第一通信子网。
具体的,可以通过端口转换进程对第一仿真进程中的网络主接口创建相应的服务端口,并将创建的服务端口与第一仿真进程对应的网络主接口进行TCP通信连接,即端口转换进程在对于第一仿真进程的每一个网络主接口,均可以建立一个TCP服务端,并与第一仿真进程对应网络主接口通过Socket接口方式连接;然后可以采用第一仿真进程与端口转换进程之间的TCP通信连接建立第一通信子网。
步骤205,采用所述端口转换进程建立针对预设相邻仿真设备对象在内的第二通信子网;
在本申请的一种实施例中,所生成的第一仿真设备对象可以包括启动的第一仿真设备镜像、仿真分离器进程splitter以及它们之间的通信子网,除了采用具有多个逻辑子接口的第一仿真进程建立与端口转换进程之间的第一通信子网以外,还可以采用端口转换进程建立针对预设相邻仿真设备对象在内的第二通信子网。
其中,可以创建端口转换进程与预设相邻仿真设备之间的TCP通信连接;然后采用端口转换进程与预设相邻仿真设备之间的TCP通信连接建立第二通信子网。
在实际应用中,端口转换进程(即仿真分离器进程)面向预设外部相邻设备的接口数目和预设端口数目相同,端口转换进程(即仿真分离器进程)可以用于连接具有多个逻辑接口的第一仿真进程与预设外部相邻设备,且转换分离器面向具有多个逻辑接口的第一仿真进程的接口数目可以和具有多个逻辑接口的第一仿真进程的端口数目一致,且转换分离器面向预设外部相邻设备的接口数目可以和预设端口数目一致。
在一种优选的实施例中,还可以建立端口转换进程面向第一仿真进程相应的服务端口的监听连接,即通过端口转换进程的每一个面向第一仿真进程的TCP连接启动独立监听,以便端口转换进程监听第一仿真进程相应的服务端口所传输的数据包。
在一种情况下,当第一仿真进程向预设外部相邻设备传输数据包时,数据包在第一仿真进程中产生,可以通过第一通信子网向端口转换进程发送第一仿真设备对象传输的数据包;然后通过端口转换进程监听到第一仿真进程传输的数据包,获取第一仿真进程传输的报文数据包中的VLAN ID信息,并查找与VLAN ID信息对应的面向预设外部相邻设备的数据端口;并通过端口转换进程对第一仿真进程传输的数据包进行去除VLAN ID的第一转化操作,得到不带有VLAN ID的数据包,最后通过第二通信子网向将不带有VLAN ID的数据包转发至查找到的预设相邻设备的数据端口。
在另一种情况下,当预设外部相邻设备向第一仿真进程传输数据包时,数据包在外部相邻设备产生,可以通过第二通信子网向所述端口转换进程发送预设外部相邻设备传输的数据包;然后通过端口转换进程读取预设外部相邻设备传输的数据包,并通过反向查找面向相邻设备的数据接收端口所对应的第一仿真进程的数据端口以及VLAN ID信息;并可以通过端口转换进程对预设外部相邻设备传输的数据包进行增加VLAN ID的第二转化操作,得到带有VLAN ID的数据包,最后通过第一通信子网将所述带有VLAN ID的数据包转发给第一仿真设备进程对接的数据端口。
在一种优选的实施例中,还可以建立针对第一仿真进程与端口转换进程之间的双向通信连接,以及建立针对端口转换进程与预设相邻仿真设备之间的双向通信连接。
步骤206,采用所述第一启动进程、所述第一通信子网、所述端口转换进程以及所述第二通信子网,生成针对所述第一仿真设备镜像的第一仿真设备对象。
在本申请的一种实施例中,所生成的第一仿真设备对象可以包括启动的第一仿真设备镜像、仿真分离器进程splitter以及它们之间的通信子网,即可以采用第一启动进程、第一通信子网、端口转换进程以及第二通信子网,生成针对端口数目少于目标实际真实设备的仿真设备,且需要通过主接口与子接口的配置,外加一个附属的仿真分离器进程(Splitter)来进行仿真的A类型仿真设备的第一仿真设备对象。
在本申请实施例中,采用上述基于TCP的连接技术实现仿真网络的虚拟网络连接,具有可靠性,且由于TCP支持fragmentation,那么对于jumbo frame,只是在传输的过程中内核自动进行了fragment/defragment,对仿真设备对象来说它们看到的仍然是Jumboframe,即支持Jumbo frame;且无需额外的二层协议,整个虚拟连接的建立过程只需1-2个round trip(1RT Mesh<->TCP proxy,1RT TCP proxy<->VM/Docker,而TCP proxy<->VM/Docker的TCP连接可以预先建立);以及可以能够提供跨云,跨数据中心的互联,只要underlay网络能够互达,由于TCP是有状态的,大部分的防火墙都是对TCP友好的,所以也是可以跨防火墙,即可以实现跨环境的连接;还能够提供子接口和主接口的互联,仿真中很多厂商提供的仿真镜像能够仿真的端口数量有限,比如国内某厂商的镜像只能仿真14个端口,提供用子接口连接其他仿真设备对象主接口的能力,从而突破仿真端口数目的限制。
参照图3,示出了本申请实施例中生成第二仿真设备对象的步骤流程图,主要针对没有直接绑定宿主机网卡仿真设备,且需要外加一个仿真转接器进程(Transponder)来进行仿真的B类型仿真设备的实例的生成,具体可以包括如下步骤:
步骤301,获取第二仿真设备镜像,并创建针对所述第二仿真设备镜像的第二启动进程;
其中,获取的第二仿真设备镜像具有若干个网络主接口,且其网络主接口在宿主物理服务器上没有直接对应的物理网络端口,这里的第二仿真设备镜像可以指的是所要仿真的目标仿真设备的镜像。
步骤302,根据第二仿真设备镜像获取具有多个逻辑子接口的第二仿真进程;
在本申请的一种实施例中,若第二仿真设备镜像的网络主接口数目少于预设端口数目,则可以通过子接口方式,使得第二仿真镜像配置产生与预设端口数目一一对应的多个逻辑子接口,并将多个逻辑子接口分配至网络主接口,获得具有多个逻辑子接口的第二仿真进程。
在实际应用中,通过扩展逻辑子接口并将扩展的逻辑子接口平均分配至第二仿真设备镜像的若干个网络主接口,实现对第二仿真设备镜像的逻辑端口数目的增加,所得到的增加后的逻辑端口数目等于预设端口数目,即与所仿真对应的目标真实设备端口数目一致,且与宿主物理服务器上的物理网络端口一一对应。
步骤303,采用所述第二启动进程建立第一网络报文转发进程;
在本申请的一种实施例中,第二启动进程所建立的第一网络报文转发进程可以用于对报文数据包进行转发,该进程可以为仿真转接器进程Transponder,其中,转发器Transponder可以每个Docker实例一个,且用于提供把Docker的veth一端转化为TCP/IPsocket的服务。
步骤304,采用所述具有多个逻辑子接口的第二仿真进程建立与所述第一网络报文转发进程之间的第三通信子网;
在本申请的一种实施例中,所生成的第二仿真设备对象可以包括启动的第二仿真设备镜像、仿真转接器进程Transponder以及它们之间的通信子网,此时可以采用具有多个逻辑子接口的第二仿真进程建立与第一网络报文转发进程之间的第三通信子网。
具体的,可以通过第一网络报文转发进程对第二仿真进程中的网络主接口创建以太网端口,并采用以太网端口与第二仿真进程对应的网络主接口通过veth tunnel的方式进行TCP通信连接,即第一网络报文转发进程在对于第二仿真进程的每一个网络接口,均可以通过一个Veth Tunnel,以与第二仿真进程对应网络接口连接;然后可以采用第二仿真进程与第一网络报文转发进程之间的TCP通信连接建立第三通信子网。
步骤305,采用所述第一报文转发进程建立针对预设相邻仿真设备在内的第四通信子网;
在本申请的一种实施例中,所生成的第二仿真设备对象可以包括启动的第二仿真设备镜像、仿真转接器进程Transponder以及它们之间的通信子网,除了可以采用具有多个逻辑子接口的第二仿真进程建立与第一网络报文转发进程之间的第三通信子网以外,还可以采用第一报文转发进程建立针对预设相邻仿真设备在内的第四通信子网。
其中,可以创建第一报文转发进程与预设相邻仿真设备之间的TCP通信连接;然后采用第一报文转发进程与预设相邻仿真设备之间的TCP通信连接建立第四通信子网。
在一种优选的实施例中,还可以建立第一报文转发进程面向第二仿真进程相应的以太网端口的监听连接,即通过在对应Veth Tunnel端口上无差别监听所有第二仿真进程发送出来的原始报文。
在一种情况下,当第二仿真进程向预设外部相邻设备传输数据包时,数据包在第二仿真进程中产生,可以通过第三通信子网向第一报文转发进程发送第二仿真进程传输的数据包;然后通过第一报文转发进程监听到第二仿真进程传输的数据包,查找与以太网端口对应的面向预设外部相邻设备的数据端口;并通过第一报文转发进程采用第四通信子网,将第二仿真进程传输的数据包转发至查找到的预设相邻设备的数据端口。
在另一种情况下,当预设外部相邻设备向第二仿真进程传输数据包时,数据包在外部相邻设备产生,可以通过第四通信子网向第一报文转发进程发送预设外部相邻设备传输的数据包;然后通过第一报文转发进程读取预设外部相邻设备传输的数据包,并通过反向查找面向相邻设备的数据接收端口所对应的第二仿真进程的数据端口;最后通过第一报文转发进程将预设外部相邻设备传输的数据包通过第三通信子网转发给第二仿真进程对接的数据端口。
在一种优选的实施例中,还可以建立针对第二仿真进程与第一报文转发进程之间的双向通信连接,以及建立针对第一报文转发进程与预设相邻仿真设备之间的双向通信连接。
步骤306,采用所述第二启动进程、所述第三通信子网、所述第一报文转发进程以及所述第四通信子网,生成针对所述第二仿真设备镜像的第二仿真设备对象。
在本申请的一种实施例中,所生成的第二仿真设备对象可以包括启动的第二仿真设备镜像、仿真转接器进程Transponder以及它们之间的通信子网,即可以采用第二启动进程、第三通信子网、第一报文转发进程以及第四通信子网,生成没有直接绑定宿主机网卡仿真设备,且需要外加一个仿真转接器进程(Transponder)来进行仿真的B类型仿真设备的第二仿真设备对象。
在本申请实施例中,采用上述基于TCP的连接技术实现仿真网络的虚拟网络连接,具有可靠性,且由于TCP支持fragmentation,那么对于jumbo frame,只是在传输的过程中内核自动进行了fragment/defragment,对仿真设备对象来说它们看到的仍然是Jumboframe,即支持Jumbo frame;且无需额外的二层协议,整个虚拟连接的建立过程只需1-2个round trip(1RT Mesh<->TCP proxy,1RT TCP proxy<->VM/Docker,而TCP proxy<->VM/Docker的TCP连接可以预先建立);以及可以能够提供跨云,跨数据中心的互联,只要underlay网络能够互达,由于TCP是有状态的,大部分的防火墙都是对TCP友好的,所以也是可以跨防火墙,即可以实现跨环境的连接;还能够提供子接口和主接口的互联,仿真中很多厂商提供的仿真镜像能够仿真的端口数量有限,比如国内某厂商的镜像只能仿真14个端口,提供用子接口连接其他仿真设备对象主接口的能力,从而突破仿真端口数目的限制。
参照图4,示出了本申请实施例中生成第三仿真设备对象的步骤流程图,主要针对物理设备(C类型仿真设备)的实例的生成,具体可以包括如下步骤:
步骤401,获取第三仿真设备的物理设备实例;
在本申请的一种实施例中,第三仿真设备不具有对应的仿真镜像,此时可以获取第三仿真设备的物理设备实例。
步骤402,采用所述物理设备实例建立第二报文转发进程;
在本申请的一种实施例中,所建立的第二网络报文转发进程可以用于对报文数据包进行转发,该进程可以为仿真转接器进程Transponder,其中,转发器Transponder可以每个Docker实例一个,且用于提供把Docker的veth一段转化为TCP/IP socket的服务。
步骤403,采用所述物理设备实例建立与所述第二报文转发进程之间的第五通信子网;
在本申请的一种实施例中,所生成的第二仿真设备对象可以包括个真实物理设备(没有办法获得仿真镜像,但是需要对接仿真环境的情况)、第二报文转发进程Transponder以及它们之间的通信子网,此时可以采用物理设备实例建立与第二报文转发进程之间的第五通信子网。
其中,第二报文转发进程可以运行于与物理设备实例不同的物理宿主机,且物理设备实例具有物理网络端口。
具体的,可以将物理设备实例的物理网络端口与预设宿主服务器的物理网络端口进行绑定,并通过第二报文转发进程与所述预设宿主服务器的物理网络端口进行物理网络连接,即第二报文转发进程在对于真实物理设备实例的每一个真实网络接口,绑定到一个宿主服务器上的真实网络端口,并与对应的相邻真实网络接口进行物理网络直连;然后采用第二报文转发进程与预设宿主服务器之间建立的物理网络连接第五通信子网。
步骤404,采用所述第二报文转发进程建立针对预设相邻仿真设备在内的第六通信子网;
在本申请的一种实施例中,所生成的第二仿真设备对象可以包括个真实物理设备(没有办法获得仿真镜像,但是需要对接仿真环境的情况)、第二报文转发进程Transponder以及它们之间的通信子网,处理采用物理设备实例建立与第二报文转发进程之间的第五通信子网以外,还可以采用第二报文转发进程建立针对预设相邻仿真设备在内的第六通信子网。
其中,可以创建用于第二报文转发进程与预设相邻仿真设备之间的TCP通信连接;然后采用第二报文转发进程与预设相邻仿真设备对象之间的TCP通信连接建立第六通信子网。
在一种优选的实施例中,还可以建立第二报文转发进程面向预设宿主服务器相应的物理网络端口的监听连接,即第第二报文转发进程在对应宿主服务器上的真实网络端口上可以无差别监听所有真实物理设备实例发送出来的原始报文。
在一种情况下,当第三仿真设备对象向所述预设外部相邻设备传输数据包时,数据包在真实物理设备实例中产生,可以通过第五通信子网向第二报文转发进程发送所述第三仿真设备对象传输的数据包;然后通过第二报文转发进程监听到第三仿真设备对象传输的数据包,查找预设宿主服务的物理网络端口对应的面向预设外部相邻设备的数据端口;并通过第二报文转发进程采用所述第六通信子网,将第三仿真设备对象传输的数据包转发至查找到的预设相邻设备的数据端口。
在另一种情况下,当预设外部相邻设备向第三仿真设备对象传输数据包时,数据包在外部相邻设备产生,可以通过第六通信子网向第二报文转发进程发送预设外部相邻设备传输的数据包;然后通过第二报文转发进程读取预设外部相邻设备传输的数据包,并通过反向查找所对应的预设宿主服务器对应的物理网卡端口;并通过第二报文转发进程将预设外部相邻设备传输的数据包通过第五通信子网转发至真实物理设备实例对接的数据端口。
步骤405,采用所述物理设备实例、所述第五通信子网、所述第二报文转发进程以及所述第六通信子网,生成针对所述第三仿真设备的第三仿真设备对象。
在本申请的一种实施例中,所生成的第二仿真设备对象可以包括个真实物理设备(没有办法获得仿真镜像,但是需要对接仿真环境的情况)、第二报文转发进程Transponder以及它们之间的通信子网,即可以采用物理设备实例、第五通信子网、第二报文转发进程以及第六通信子网,生成针对物理设备(C类型仿真设备)的第三仿真设备对象。
在本申请实施例中,采用上述基于TCP的连接技术实现仿真网络的虚拟网络连接,具有可靠性,且由于TCP支持fragmentation,那么对于jumbo frame,只是在传输的过程中内核自动进行了fragment/defragment,对仿真设备对象来说它们看到的仍然是Jumboframe,即支持Jumbo frame;且无需额外的二层协议,整个虚拟连接的建立过程只需1-2个round trip(1RT Mesh<->TCP proxy,1RT TCP proxy<->VM/Docker,而TCP proxy<->VM/Docker的TCP连接可以预先建立);以及可以能够提供跨云,跨数据中心的互联,只要underlay网络能够互达,由于TCP是有状态的,大部分的防火墙都是对TCP友好的,所以也是可以跨防火墙,即可以实现跨环境的连接;还能够提供子接口和主接口的互联,仿真中很多厂商提供的仿真镜像能够仿真的端口数量有限,比如国内某厂商的镜像只能仿真14个端口,提供用子接口连接其他仿真设备对象主接口的能力,从而突破仿真端口数目的限制。
参照图5,示出了本申请实施例中一种仿真网络的组网的构建示意图,作为一种示例,第一仿真实例可以为第四仿真设备对象(这里可以采用虚拟机VM的实例),第二仿真实例可以为第二仿真设备对象(这里可以采用容器Docker的实例),即图5示出的是第四仿真设备对象与第二仿真设备对象构建的仿真网络的组网。
首先可以从中间的Mesh进程开始,从右向左可以为Mesh进程(即第一进程)建立到仿真设备VM(在本申请实施例中可以为第一仿真实施例,即第四仿真设备对象)的连接,其流程可以如下:
(1)用户可以通过Mesh API发起建立仿真连接的任务;(2)Mesh dial TCP proxy,即第一进程Mesh可以指向第二进程TCP proxy;(3)TCP proxy可以接受连接,并建立第一进程Mesh与第二进程之间的第一通信连接socket1,并且TCP proxy dial VM1的listensocket,即第二进程可以指向仿真机VM,即可以生成监听请求并向仿真机VM发送监听请求以建立监听连接;(4)仿真机VM1 listen socket accept连接,可以建立第二通信连接socket2;(5)此时TCP proxy可以把socket1/socket2的内容copy到socket2/socket1中,以建立双向连接。
然后可以从中间的Mesh进程开始,从左到右可以为Mesh进程(即第一进程)建立到容器Docker(在本申请实施例中可以为第二仿真实例,即第二仿真设备对象)的连接,其流程可以如下:
(1)用户可以通过Mesh API发起建立仿真连接的任务;
(2)Mesh dial TCP proxy,即第一进程Mesh可以指向第三进程TCP proxy;
(3)TCP proxy可以接受连接,并建立第一进程Mesh与第三进程之间的第六通信连接socket1,并且TCP proxy dial Transponder的listen socket,即第三进程可以指向转发器,可以生成监听请求并向转发器发送监听请求以建立监听连接;
(4)Transponder响应监听请求,以及建立第三进程TCP proxy与转发器之间的第七通信连接socket2;
(5)Transponder可以读socket2的内容把它放到veth pair的一端,把veth pair读到的内容放到socket2,在本申请实施例中,当socket连接建立后,VM1可以通过建立的socket连接开始发送数据包,当数据包到达Transponder的socket2,Transponder可以将接收到的数据包拷贝到veth pair的一端,由于veth pair的特性,veth pair的另外一端,即Docker可以接收到这个数据包);相反的方向,当容器Docker发送数据包到veth pair的一端时,其另外一端(即连接Transponder的一端)会收到这个数据包,然后Transponder同样可以把这个数据包拷贝到socket2,这样这个数据包就可以发送到VM1。这里Transponder所读socket2的内容为VM1发给Docker的数据包,而veth pair读到的内容则可以为另外一个方向(即从Docker发送到VM1)的数据包;
如果Transponder绑定的宿主机网卡是和预设相邻的物理设备直接相连,那么VM就可以通过所述机制和预设相邻的物理设备通信。
(6)TCP proxy可以把socket1/socket2的内容copy到socket2/socket1中,建立双向连接;其中如果发包方向是VM1到Docker,那么socket1的内容可以为VM1发送的包,proxy收到后拷贝到socket2;如果发包方向是Docker到VM1,那么socket2收到后可以把包拷贝到socket1,拷贝是可以通过system call进行的(如图4所示,读a端socket放到内存,写入b端socket)。
参照图6,本申请实施例中另一种仿真网络的组网的构建示意图,作为一种示例,第一仿真实例可以为第一仿真设备对象(这里可以采用虚拟机VM的实例),第二仿真实例可以为第二仿真设备对象(这里可以采用容器Docker的实例),即图6示出的是第一仿真设备对象与第二仿真设备对象构建的仿真网络的组网。其中,s为服务器,c为客户端,m为VM的管理端口,为一个socket的服务端。
首先可以从中间的Mesh进程开始,从右向左可以为Mesh进程(即第一进程)建立到具有分离器Splitter的仿真机VM(在本申请实施例中为第一仿真实施例,即第一仿真设备对象)的连接,其流程可以如下:
(1)用户可以通过Mesh API发起建立仿真连接的任务;
(2)Mesh dial TCP proxy,即第一进程Mesh可以指向第二进程TCP proxy;
(3)TCP proxy接收连接并建立通信连接socket1,并且TCP proxy dialsplitter,即第二进程可以指向分离器,可以生成监听请求并通过监听端口进行监听;
(4)TCP proxy可以在socket1和socket2之间建立双向通道;
(5)Splitter dial VM2 listen socket,即分离器指向仿真机VM2,仿真机VM2可以接收连接,并建立socket通信连接;
(6)分离器Splitter可以在两个socket(即socket1,socket2)之间建立双向通道,并同时可以进行VLAN转化的工作。主要为把从VM2读到的包(带VLAN ID),根据VLAN ID和socket port对应表,去掉VLAN后multiplex到对应的socket端口;然后把从外部仿真设备对象收到的包根据进入的socket port,加入对应的VLAN后,送到VM2的主接口,VM2的主接口可以根据配置的VLAN知道是哪个子接口应该收到这个包,即可以完成对仿真端口的扩展,通过提供用子接口连接其他仿真设备对象主接口的能力,突破仿真端口数目的限制。
然后可以从中间的Mesh进程开始,从左到右可以为Mesh进程(即第一进程)建立到容器Docker(在本申请实施例中可以为第二仿真实例,即第二仿真设备对象)的连接,其流程可以如下:
(1)用户可以通过Mesh API发起建立仿真连接的任务;
(2)Mesh dial TCP proxy,即第一进程Mesh可以指向第三进程TCP proxy;
(3)TCP proxy可以接受连接,并建立第一进程Mesh与第三进程之间的第六通信连接socket1,并且TCP proxy dial Transponder的listen socket,即第三进程可以指向转发器,可以生成监听请求并向转发器发送监听请求以建立监听连接;
(4)Transponder响应监听请求,以及建立第三进程TCP proxy与转发器之间的第七通信连接socket2;
(5)Transponder可以读socket2的内容把它放到veth pair的一端,把veth pair读到的内容放到socket2,在本申请实施例中,当socket连接建立后,VM1可以通过建立的socket连接开始发送数据包,当数据包到达Transponder的socket2,Transponder可以将接收到的数据包拷贝到veth pair的一端,由于veth pair的特性,veth pair的另外一端,即Docker可以接收到这个数据包);相反的方向,当容器Docker发送数据包到veth pair的一端时,其另外一端(即连接Transponder的一端)会收到这个数据包,然后Transponder同样可以把这个数据包拷贝到socket2,这样这个数据包就可以发送到VM1。这里Transponder所读socket2的内容为VM1发给Docker的数据包,而veth pair读到的内容则可以为另外一个方向(即从Docker发送到VM1)的数据包;
如果Transponder绑定的宿主机网卡是和预设相邻的物理设备直接相连,那么VM就可以通过所述机制和预设相邻的物理设备通信。
(6)TCP proxy可以把socket1/socket2的内容copy到socket2/socket1中,建立双向连接;其中如果发包方向是VM1到Docker,那么socket1的内容可以为VM1发送的包,proxy收到后拷贝到socket2;如果发包方向是Docker到VM1,那么socket2收到后可以把包拷贝到socket1,拷贝是可以通过system call进行的(如图3所示,读a端socket放到内存,写入b端socket)。
在本申请实施例中,可以获取第一仿真实例与第二仿真实例,以及创建用于提供建立通信连接的第一进程,同时还可以创建用于提供第一仿真实例与外网连接的第二进程,以及创建用于提供第二仿真实例与外网连接的第三进程,以便采用第一进程、第二进程以及第三进程构建第一仿真实例对外的网络端口与第二仿真实例对外的网络端口之间的组网。采用用于建立通信连接以及提供外网连接的进程构建第一仿真实例与第二仿真实例之间的组网,提供基于TCP的连接技术,保证网络连接的稳定性,以仿真出稳定的网络;其次,第一仿真实例与第二仿真实例可以为具有多个逻辑子接口的仿真设备对象,提供用子接口连接相邻仿真设备主接口的能力,从而突破了仿真端口数目的限制。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图7,示出了本申请的一种仿真网络的组网装置实施例的结构框图,具体可以包括如下模块:
仿真实例获取模块701,用于获取第一仿真实例与第二仿真实例,以及创建用于提供建立通信连接的第一进程;所述第一仿真实例与所述第二仿真实例具有对外的网络端口;
进程创建模块702,用于创建针对所述第一仿真实例的用于提供与外网连接的第二进程,以及创建针对所述第二仿真实例的用于提供与外网连接的第三进程;
组网构建模块703,用于采用所述第一进程、所述第二进程以及所述第三进程,构建所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的组网。
在本申请的一种实施例中,组网构建模块703可以包括如下子模块:
通信连接建立子模块,用于采用所述第一进程、所述第二进程以及所述第三进程,建立所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的通信连接;
双向通信子模块,用于通过建立的通信连接实现所述第一仿真实例与所述第二仿真实例的双向通信。
在本申请的一种实施例中,通信连接建立子模块可以包括如下单元:
第一通信请求发送单元,用于通过所述第一进程生成第一通信请求与第二通信请求,并分别向针对所述第一仿真实例的第二进程以及针对所述第二仿真实例的第三进程发送所述第一通信请求与第二通信请求;
第二通信请求发送单元,用于通过所述第二进程响应所述第一通信请求,生成第三通信请求并向所述第一仿真实例发送所述第三通信请求,以及通过所述第三进程响应所述第二通信请求,生成第四通信请求并向所述第二仿真实例发送所述第四通信请求;
第一通信通道建立单元,用于通过所述第一仿真实例接受所述第三通信请求,并建立与所述第二进程的第一通信通道,以及通过所述第二仿真实例接受所述第四通信请求,并建立与所述第三进程的第二通信通道;
第二通信通道建立单元,用于通过所述第二进程接受所述第一通信请求,并建立与所述第一进程的第三通信通道,以及通过所述第三进程接受所述第二通信请求,并建立与所述第一进程的第四通信通道;
通信连接建立单元,用于通过所述第一通信通道、第二通信通道、第三通信通道以及第四通信通道,实现所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的通信连接。
在本申请的一种实施例中,双向通信子模块可以包括如下单元:
第一双向通信单元,用于当所述第一仿真实例与所述第二仿真实例进行通信时,通过所述第一通信通道将所述第一仿真实例发送的报文数据包传输至所述第二进程,通过所述第三通信通道将所述第一仿真实例发送的报文数据包传输至所述第一进程,并通过所述第四通信通道将第一仿真实例发送的报文数据包传输至所述第三进程,以及通过第二通信通道将第一仿真实例发送的报文数据包传输至所述第二仿真实例;
第二双向通信单元,用于当所述第二仿真实例向所述第一仿真实例进行通信时,通过第二通信通道将所述第二仿真实例发送的报文数据包传输至所述第三进程,通过所述第四通信通道将所述第二仿真实例发送的报文数据包传输至所述第一进程,并通过所述第三通信通道将第二仿真实例发送的报文数据包传输至所述第二进程,以及通过第一通信通道将第二仿真实例发送的报文数据包传输至所述第一仿真实例。
在本申请的一种实施例中,所述第一仿真实例包括第一仿真设备对象、第二仿真设备对象、第三仿真设备对象以及第四仿真设备对象中的任意一项;所述第二仿真实例包括第一仿真设备对象、第二仿真设备对象、第三仿真设备对象以及第四仿真设备对象中的任意一项。
在本申请的一种实施例中,所述装置还可以包括如下模块:
第一仿真设备对象生成模块,用于生成第一仿真设备对象;
第二仿真设备对象生成模块,用于生成第二仿真设备对象;
第三仿真设备对象生成模块,用于生成第三仿真设备对象。
在本申请的一种实施例中,第一仿真设备对象生成模块可以包括如下子模块:
第一仿真设备镜像获取子模块,用于获取第一仿真设备镜像,并创建针对所述第一仿真设备镜像的第一启动进程;所述第一仿真设备镜像具有网络主接口;
第一仿真进程生成子模块,用于根据所述第一仿真设备镜像生成具有多个逻辑子接口的第一仿真进程;
端口转换进程建立子模块,用于采用所述第一启动进程建立端口转换进程;
第一通信子网建立子模块,用于采用所述具有多个逻辑子接口的第一仿真进程建立针对与所述端口转换进程之间的第一通信子网;
第二通信子网建立子模块,用于采用所述端口转换进程建立针对预设相邻仿真设备对象在内的第二通信子网;
第一仿真设备对象生成子模块,用于采用所述第一启动进程、所述第一通信子网、所述端口转换进程、以及所述第二通信子网,生成针对所述第一仿真设备镜像的第一仿真设备对象。
在本申请的一种实施例中,第一仿真进程生成子模块可以包括如下单元:
第一仿真进程生成单元,用于若所述第一仿真设备镜像的网络主接口数目少于预设端口数目,则通过所述第一仿真镜像配置产生与预设端口数目一一对应的多个逻辑子接口,并将所述多个逻辑子接口分配至所述网络主接口,获得具有多个逻辑子接口的第一仿真进程。
在本申请的一种实施例中,第一通信子网建立子模块可以包括如下单元:
第一通信连接创建单元,用于通过所述端口转换进程对所述第一仿真进程中的网络主接口创建相应的服务端口,并将创建的服务端口与所述第一仿真进程对应的网络主接口进行通信连接;
第一通信子网建立单元,用于采用所述第一仿真进程与所述端口转换进程之间的通信连接建立第一通信子网。
在本申请的一种实施例中,第二通信子网建立子模块可以包括如下单元:
第二通信连接创建单元,用于创建所述端口转换进程与预设相邻仿真设备之间的通信连接;
第二通信子网建立单元,用于采用所述端口转换进程与预设相邻仿真设备之间的通信连接建立第二通信子网。
在本申请的一种实施例中,所述端口转换进程面向预设外部相邻设备的接口数目和预设端口数目相同。
在本申请的一种实施例中,还可以包括如下单元:
第一监听连接建立单元,用于建立所述端口转换进程面向所述第一仿真进程相应的服务端口的监听连接;
第一数据包发送单元,用于当所述第一仿真进程向所述预设外部相邻设备传输数据包时,通过所述第一通信子网向所述端口转换进程发送所述第一仿真设备对象传输的数据包;
第一数据端口查找单元,用于通过所述端口转换进程监听到所述第一仿真进程传输的数据包,获取所述第一仿真进程传输的报文数据包中的VLAN ID信息,并查找与所述VLAN ID信息对应的面向预设外部相邻设备的数据端口;
第一转化操作单元,用于通过所述端口转换进程对所述第一仿真进程传输的数据包进行去除VLAN ID的第一转化操作,得到不带有VLAN ID的数据包,并通过第二通信子网向将所述不带有VLAN ID的数据包转发至查找到的预设相邻设备的数据端口。
在本申请的一种实施例中,还可以包括如下单元:
第二数据包发送单元,用于当所述预设外部相邻设备向所述第一仿真进程传输数据包时,通过所述第二通信子网向所述端口转换进程发送所述预设外部相邻设备传输的数据包;
第一数据端口反向查找单元,用于通过所述端口转换进程读取所述预设外部相邻设备传输的数据包,并通过反向查找面向相邻设备的数据接收端口所对应的第一仿真进程的数据端口以及VLAN ID信息;
第二转化操作单元,用于通过所述端口转换进程对所述预设外部相邻设备传输的数据包进行增加VLAN ID的第二转化操作,得到带有VLAN ID的数据包,并通过所述第一通信子网将所述带有VLAN ID的数据包转发给所述第一仿真设备进程对接的数据端口。
在本申请的一种实施例中,第一通信子网建立子模块还可以包括如下单元:
第一双向通信连接建立单元,用于建立针对所述第一仿真进程与所述端口转换进程之间的双向通信连接。
在本申请的一种实施例中,第二通信子网建立子模块还可以包括如下单元:
第二双向通信连接建立单元,用于建立针对所述端口转换进程与所述预设相邻仿真设备之间的双向通信连接。
在本申请的一种实施例中,第二仿真设备对象生成模块可以包括如下子模块:
第二仿真设备镜像获取子模块,用于获取第二仿真设备镜像,并创建针对所述第二仿真设备镜像的第二启动进程;所述第二仿真设备镜像具有网络主接口,且所述网络主接口在宿主物理服务器上没有直接对应的物理网络端口;
第二仿真进程生成子模块,用于根据所述第二仿真镜像获取具有多个逻辑子接口的第二仿真进程;
第一网络报文转发进程建立子模块,用于采用所述第二启动进程建立第一网络报文转发进程;
第三通信子网建立子模块,用于采用所述具有多个逻辑子接口的第二仿真进程建立与所述第一网络报文转发进程之间的第三通信子网;
第四通信子网建立子模块,用于采用所述第一报文转发进程建立针对预设相邻仿真设备在内的第四通信子网;
第二仿真设备对象生成子模块,用于采用所述第二启动进程、所述第三通信子网、所述第一报文转发进程、以及所述第四通信子网,生成针对所述第二仿真设备镜像的第二仿真设备对象。
在本申请的一种实施例中,第三通信子网建立子模块可以包括如下单元:
第三通信连接创建单元,用于通信连接通过所述第一网络报文转发进程对所述第二仿真进程中的网络主接口创建以太网端口,并采用所述以太网端口与所述第二仿真进程对应的网络主接口进行通信连接;
第三通信子网创建单元,用于采用所述第二仿真进程与所述第一网络报文转发进程之间的通信连接建立第三通信子网。
在本申请的一种实施例中,第四通信子网建立子模块可以包括如下单元:
第四通信连接创建单元,用于创建所述第一报文转发进程与预设相邻仿真设备之间的通信连接;
第四通信子网创建单元,用于采用所述第一报文转发进程与预设相邻仿真设备之间的通信连接建立第四通信子网。
在本申请的一种实施例中,还可以包括如下单元:
第二监听连接建立单元,用于建立所述第一报文转发进程面向所述第二仿真进程相应的以太网端口的监听连接;
第三数据包发送单元,用于当所述第二仿真进程向所述预设外部相邻设备传输数据包时,通过所述第三通信子网向所述第一报文转发进程发送所述第二仿真进程传输的数据包;
第二数据端口查找单元,用于通过所述第一报文转发进程监听到所述第二仿真进程传输的数据包,查找与所述以太网端口对应的面向预设外部相邻设备的数据端口;
第一数据包转发单元,用于通过所述第一报文转发进程采用所述第四通信子网,将所述第二仿真进程传输的数据包转发至查找到的预设相邻设备的数据端口。
在本申请的一种实施例中,还可以包括如下单元:
第四数据包发送单元,用于当所述预设外部相邻设备向所述第二仿真进程传输数据包时,通过所述第四通信子网向所述第一报文转发进程发送所述预设外部相邻设备传输的数据包;
第二数据端口反查找单元,用于通过所述第一报文转发进程读取所述预设外部相邻设备传输的数据包,并通过反向查找面向相邻设备的数据接收端口所对应的第二仿真进程的数据端口;
第二数据包转发单元,用于通过所述第一报文转发进程将所述预设外部相邻设备传输的数据包通过所述第三通信子网转发给所述第二仿真进程对接的数据端口。
在本申请的一种实施例中,第三仿真设备对象生成模块可以包括如下子模块:
物理设备实例获取子模块,用于获取第三仿真设备的物理设备实例;所述第三仿真设备对象不具有对应的仿真镜像;
第二报文转发进程建立子模块,用于采用所述物理设备实例建立第二报文转发进程;
第五通信子网建立子模块,用于采用所述物理设备实例建立与所述第二报文转发进程之间的第五通信子网;
第六通信子网建立子模块,用于采用所述第二报文转发进程建立针对预设相邻仿真设备在内的第六通信子网;
第三仿真设备对象生成子模块,用于采用所述物理设备实例、所述第五通信子网、所述第二报文转发进程、以及所述第六通信子网,生成针对所述第三仿真设备的第三仿真设备对象。
在本申请的一种实施例中,所述第二报文转发进程运行于与所述物理设备实例不同的物理宿主机;所述物理设备实例具有物理网络端口;第五通信子网建立子模块可以包括如下单元:
物理网络端口绑定单元,用于将所述物理设备实例的物理网络端口与预设宿主服务器的物理网络端口进行绑定,并通过所述第二报文转发进程与所述预设宿主服务器的物理网络端口进行物理网络连接;
第五通信子网建立单元,用于采用所述第二报文转发进程与所述预设宿主服务器之间建立的物理网络连接第五通信子网。
在本申请的一种实施例中,第六通信子网建立子模块可以包括如下单元:
第五通信连接创建单元,用于创建用于所述第二报文转发进程与预设相邻仿真设备之间的通信连接;
第六通信子网建立单元,用于采用所述第二报文转发进程与预设相邻仿真设备对象之间的通信连接建立第六通信子网。
在本申请的一种实施例中,还可以包括如下单元:
第三监听连接建立单元,用于建立所述第二报文转发进程面向所述预设宿主服务器相应的物理网络端口的监听连接;
第五数据包发送单元,用于当所述第三仿真设备对象向所述预设外部相邻设备传输数据包时,通过所述第五通信子网向所述第二报文转发进程发送所述第三仿真设备对象传输的数据包;
第三数据端口查找单元,用于通过所述第二报文转发进程监听到所述第三仿真设备对象传输的数据包,查找所述预设宿主服务的物理网络端口对应的面向预设外部相邻设备的数据端口;
第三数据包转发单元,用于通过所述第二报文转发进程采用所述第六通信子网,将第三仿真设备对象传输的数据包转发至查找到的预设相邻设备的数据端口。
在本申请的一种实施例中,还可以包括如下单元:
第六数据包发送单元,用于当所述预设外部相邻设备向所述第三仿真设备对象传输数据包时,通过所述第六通信子网向所述第二报文转发进程发送所述预设外部相邻设备传输的数据包;
物理网卡端口反向查找单元,用于通过所述第二报文转发进程读取所述预设外部相邻设备传输的数据包,并通过反向查找所对应的预设宿主服务器对应的物理网卡端口;
第四数据包转发单元,用于通过所述第二报文转发进程将所述预设外部相邻设备传输的数据包通过所述第五通信子网转发至所述真实物理设备实例对接的数据端口。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例还提供了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述仿真网络的组网方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现上述针对仿真网络的组网方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本申请所提供的一种仿真网络的组网方法和一种仿真网络的组网装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (26)
1.一种仿真网络的组网方法,其特征在于,所述方法包括:
获取第一仿真实例与第二仿真实例,以及创建用于提供建立通信连接的第一进程;所述第一仿真实例与所述第二仿真实例具有对外的网络端口;
创建针对所述第一仿真实例的用于提供与外网连接的第二进程,以及创建针对所述第二仿真实例的用于提供与外网连接的第三进程;
采用所述第一进程、所述第二进程以及所述第三进程,构建所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的组网;所述组网的通信连接基于第一仿真实例接收第三通信请求与第二进程建立的第一通信通道、第二仿真实例接收第四通信请求与第三进程建立的第二通信通道、第二进程接收第一通信请求与第一进程建立的第三通信通道以及第三进程接收第二通信请求与第一进程建立的第四通信通道实现,其中第一通信请求与第二通信请求为第一进程生成,第三通信请求由第二进程响应第一通信请求生成,第四通信请求由第三进程响应第二通信请求生成;所述通信连接用于实现第一仿真实例与第二仿真实例的双向通信。
2.根据所述权利要求1所述的方法,其特征在于,所述采用所述第一进程、所述第二进程以及所述第三进程,构建所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的组网,包括:
采用所述第一进程、所述第二进程以及所述第三进程,建立所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的通信连接;
通过建立的通信连接实现所述第一仿真实例与所述第二仿真实例的双向通信。
3.根据权利要求2所述的方法,其特征在于,所述采用所述第一进程、所述第二进程以及所述第三进程,建立所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的通信连接,包括:
通过所述第一进程生成第一通信请求与第二通信请求,并分别向针对所述第一仿真实例的第二进程以及针对所述第二仿真实例的第三进程发送所述第一通信请求与第二通信请求;
通过所述第二进程响应所述第一通信请求,生成第三通信请求并向所述第一仿真实例发送所述第三通信请求,以及通过所述第三进程响应所述第二通信请求,生成第四通信请求并向所述第二仿真实例发送所述第四通信请求;
通过所述第一仿真实例接受所述第三通信请求,并建立与所述第二进程的第一通信通道,以及通过所述第二仿真实例接受所述第四通信请求,并建立与所述第三进程的第二通信通道;
通过所述第二进程接受所述第一通信请求,并建立与所述第一进程的第三通信通道,以及通过所述第三进程接受所述第二通信请求,并建立与所述第一进程的第四通信通道;
通过所述第一通信通道、第二通信通道、第三通信通道以及第四通信通道,实现所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的通信连接。
4.根据权利要求3所述的方法,其特征在于,所述通过建立的通信连接实现所述第一仿真实例与所述第二仿真实例的双向通信,包括:
当所述第一仿真实例与所述第二仿真实例进行通信时,通过所述第一通信通道将所述第一仿真实例发送的报文数据包传输至所述第二进程,通过所述第三通信通道将所述第一仿真实例发送的报文数据包传输至所述第一进程,并通过所述第四通信通道将第一仿真实例发送的报文数据包传输至所述第三进程,以及通过第二通信通道将第一仿真实例发送的报文数据包传输至所述第二仿真实例;
以及,当所述第二仿真实例向所述第一仿真实例进行通信时,通过第二通信通道将所述第二仿真实例发送的报文数据包传输至所述第三进程,通过所述第四通信通道将所述第二仿真实例发送的报文数据包传输至所述第一进程,并通过所述第三通信通道将第二仿真实例发送的报文数据包传输至所述第二进程,以及通过第一通信通道将第二仿真实例发送的报文数据包传输至所述第一仿真实例。
5.根据权利要求1所述的方法,其特征在于,所述第一仿真实例包括第一仿真设备对象、第二仿真设备对象、第三仿真设备对象以及第四仿真设备对象中的任意一项;所述第二仿真实例包括第一仿真设备对象、第二仿真设备对象、第三仿真设备对象以及第四仿真设备对象中的任意一项。
6.根据权利要求5所述的方法,其特征在于,所述第一仿真设备对象通过如下方式生成:
获取第一仿真设备镜像,并创建针对所述第一仿真设备镜像的第一启动进程;所述第一仿真设备镜像具有网络主接口;
若所述第一仿真设备镜像的网络主接口数目少于预设端口数目,则通过所述第一仿真镜像配置产生与预设端口数目一一对应的多个逻辑子接口,并将所述多个逻辑子接口分配至所述网络主接口,获得具有多个逻辑子接口的第一仿真进程;
采用所述第一启动进程建立端口转换进程;
采用所述具有多个逻辑子接口的第一仿真进程建立针对与所述端口转换进程之间的第一通信子网,以及采用所述端口转换进程建立针对预设相邻仿真设备对象在内的第二通信子网;
采用所述第一启动进程、所述第一通信子网、所述端口转换进程、以及所述第二通信子网,生成针对所述第一仿真设备镜像的第一仿真设备对象。
7.根据权利要求6所述的方法,其特征在于,所述采用所述具有多个逻辑子接口的第一仿真进程建立针对与所述端口转换进程之间的第一通信子网,包括:
通过所述端口转换进程对所述第一仿真进程中的网络主接口创建相应的服务端口,并将创建的服务端口与所述第一仿真进程对应的网络主接口进行通信连接;
采用所述第一仿真进程与所述端口转换进程之间的通信连接建立第一通信子网。
8.根据权利要求6所述的方法,其特征在于,所述采用所述端口转换进程建立针对预设相邻仿真设备在内的第二通信子网,包括:
创建所述端口转换进程与预设相邻仿真设备之间的通信连接;
采用所述端口转换进程与预设相邻仿真设备之间的通信连接建立第二通信子网。
9.根据权利要求6所述的方法,其特征在于,所述端口转换进程面向预设外部相邻设备的接口数目和预设端口数目相同。
10.根据权利要求7所述的方法,其特征在于,所述方法还包括:
建立所述端口转换进程面向所述第一仿真进程相应的服务端口的监听连接;
当所述第一仿真进程向预设外部相邻设备传输数据包时,通过所述第一通信子网向所述端口转换进程发送所述第一仿真设备对象传输的数据包;
通过所述端口转换进程监听到所述第一仿真进程传输的数据包,获取所述第一仿真进程传输的报文数据包中的VLAN ID信息,并查找与所述VLAN ID信息对应的面向预设外部相邻设备的数据端口;
通过所述端口转换进程对所述第一仿真进程传输的数据包进行去除VLAN ID的第一转化操作,得到不带有VLAN ID的数据包,并通过第二通信子网向将所述不带有VLAN ID的数据包转发至查找到的预设相邻设备的数据端口。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
当所述预设外部相邻设备向所述第一仿真进程传输数据包时,通过所述第二通信子网向所述端口转换进程发送所述预设外部相邻设备传输的数据包;
通过所述端口转换进程读取所述预设外部相邻设备传输的数据包,并通过反向查找面向相邻设备的数据接收端口所对应的第一仿真进程的数据端口以及VLAN ID信息;
通过所述端口转换进程对所述预设外部相邻设备传输的数据包进行增加VLAN ID的第二转化操作,得到带有VLAN ID的数据包,并通过所述第一通信子网将所述带有VLAN ID的数据包转发给所述第一仿真设备进程对接的数据端口。
12.根据权利要求7所述的方法,其特征在于,所述采用所述具有多个逻辑子接口的第一仿真进程建立针对与所述端口转换进程之间的第一通信子网,还包括:
建立针对所述第一仿真进程与所述端口转换进程之间的双向通信连接。
13.根据权利要求8所述的方法,其特征在于,所述采用所述端口转换进程建立针对预设相邻仿真设备在内的第二通信子网,还包括:
建立针对所述端口转换进程与所述预设相邻仿真设备之间的双向通信连接。
14.根据权利要求5所述的方法,其特征在于,所述第二仿真设备对象通过如下方式生成:
获取第二仿真设备镜像,并创建针对所述第二仿真设备镜像的第二启动进程;所述第二仿真设备镜像具有网络主接口,且所述网络主接口在宿主物理服务器上没有直接对应的物理网络端口;
根据所述第二仿真镜像获取具有多个逻辑子接口的第二仿真进程;
采用所述第二启动进程建立第一网络报文转发进程;
采用所述具有多个逻辑子接口的第二仿真进程建立与所述第一网络报文转发进程之间的第三通信子网,以及采用所述第一报文转发进程建立针对预设相邻仿真设备在内的第四通信子网;
采用所述第二启动进程、所述第三通信子网、所述第一报文转发进程、以及所述第四通信子网,生成针对所述第二仿真设备镜像的第二仿真设备对象。
15.根据权利要求14所述的方法,其特征在于,所述采用所述具有多个逻辑子接口的第二仿真进程建立与所述第一网络报文转发进程之间的第三通信子网,包括:
通过所述第一网络报文转发进程对所述第二仿真进程中的网络主接口创建以太网端口,并采用所述以太网端口与所述第二仿真进程对应的网络主接口进行通信连接;
采用所述第二仿真进程与所述第一网络报文转发进程之间的通信连接建立第三通信子网。
16.根据权利要求14所述的方法,其特征在于,所述采用所述第一报文转发进程建立针对预设相邻仿真设备在内的第四通信子网,包括:
创建所述第一报文转发进程与预设相邻仿真设备之间的通信连接;
采用所述第一报文转发进程与预设相邻仿真设备之间的通信连接建立第四通信子网。
17.根据权利要求15所述的方法,其特征在于,所述方法还包括:
建立所述第一报文转发进程面向所述第二仿真进程相应的以太网端口的监听连接;
当所述第二仿真进程向预设外部相邻设备传输数据包时,通过所述第三通信子网向所述第一报文转发进程发送所述第二仿真进程传输的数据包;
通过所述第一报文转发进程监听到所述第二仿真进程传输的数据包,查找与所述以太网端口对应的面向预设外部相邻设备的数据端口;
通过所述第一报文转发进程采用所述第四通信子网,将所述第二仿真进程传输的数据包转发至查找到的预设相邻设备的数据端口。
18.根据权利要求17所述的方法,其特征在于,所述方法还包括:
当所述预设外部相邻设备向所述第二仿真进程传输数据包时,通过所述第四通信子网向所述第一报文转发进程发送所述预设外部相邻设备传输的数据包;
通过所述第一报文转发进程读取所述预设外部相邻设备传输的数据包,并通过反向查找面向相邻设备的数据接收端口所对应的第二仿真进程的数据端口;
通过所述第一报文转发进程将所述预设外部相邻设备传输的数据包通过所述第三通信子网转发给所述第二仿真进程对接的数据端口。
19.根据权利要求5所述的方法,其特征在于,所述第三仿真设备对象通过如下方式生成:
获取第三仿真设备的物理设备实例;所述第三仿真设备对象不具有对应的仿真镜像;
采用所述物理设备实例建立第二报文转发进程;
采用所述物理设备实例建立与所述第二报文转发进程之间的第五通信子网,以及采用所述第二报文转发进程建立针对预设相邻仿真设备在内的第六通信子网;
采用所述物理设备实例、所述第五通信子网、所述第二报文转发进程、以及所述第六通信子网,生成针对所述第三仿真设备的第三仿真设备对象。
20.根据权利要求19所述的方法,其特征在于,所述第二报文转发进程运行于与所述物理设备实例不同的物理宿主机;所述物理设备实例具有物理网络端口;所述采用所述物理设备实例建立与所述第二报文转发进程之间的第五通信子网,包括:
将所述物理设备实例的物理网络端口与预设宿主服务器的物理网络端口进行绑定,并通过所述第二报文转发进程与所述预设宿主服务器的物理网络端口进行物理网络连接;
采用所述第二报文转发进程与所述预设宿主服务器之间建立的物理网络连接第五通信子网。
21.根据权利要求19所述的方法,其特征在于,所述采用所述第二报文转发进程建立针对预设相邻仿真设备在内的第六通信子网,包括:
创建用于所述第二报文转发进程与预设相邻仿真设备之间的通信连接;
采用所述第二报文转发进程与预设相邻仿真设备对象之间的通信连接建立第六通信子网。
22.根据权利要求20所述的方法,其特征在于,所述方法还包括:
建立所述第二报文转发进程面向所述预设宿主服务器相应的物理网络端口的监听连接;
当所述第三仿真设备对象向预设外部相邻设备传输数据包时,通过所述第五通信子网向所述第二报文转发进程发送所述第三仿真设备对象传输的数据包;
通过所述第二报文转发进程监听到所述第三仿真设备对象传输的数据包,查找所述预设宿主服务的物理网络端口对应的面向预设外部相邻设备的数据端口;
通过所述第二报文转发进程采用所述第六通信子网,将第三仿真设备对象传输的数据包转发至查找到的预设相邻设备的数据端口。
23.根据权利要求22所述的方法,其特征在于,所述方法还包括:
当所述预设外部相邻设备向所述第三仿真设备对象传输数据包时,通过所述第六通信子网向所述第二报文转发进程发送所述预设外部相邻设备传输的数据包;
通过所述第二报文转发进程读取所述预设外部相邻设备传输的数据包,并通过反向查找所对应的预设宿主服务器对应的物理网卡端口;
通过所述第二报文转发进程将所述预设外部相邻设备传输的数据包通过所述第五通信子网转发至真实物理设备实例对接的数据端口。
24.一种仿真网络的组网装置,其特征在于,所述装置包括:
仿真实例获取模块,用于获取第一仿真实例与第二仿真实例,以及创建用于提供建立通信连接的第一进程;所述第一仿真实例与所述第二仿真实例具有对外的网络端口;
进程创建模块,用于创建针对所述第一仿真实例的用于提供与外网连接的第二进程,以及创建针对所述第二仿真实例的用于提供与外网连接的第三进程;
组网构建模块,用于采用所述第一进程、所述第二进程以及所述第三进程,构建所述第一仿真实例的网络端口与所述第二仿真实例的网络端口之间的组网;所述组网的通信连接基于第一仿真实例接收第三通信请求与第二进程建立的第一通信通道、第二仿真实例接收第四通信请求与第三进程建立的第二通信通道、第二进程接收第一通信请求与第一进程建立的第三通信通道以及第三进程接收第二通信请求与第一进程建立的第四通信通道实现,其中第一通信请求与第二通信请求为第一进程生成,第三通信请求由第二进程响应第一通信请求生成,第四通信请求由第三进程响应第二通信请求生成;所述通信连接用于实现第一仿真实例与第二仿真实例的双向通信。
25.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至23中任一项所述仿真网络的组网方法的步骤。
26.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至23中任一项所述仿真网络的组网方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010962085.7A CN113300871B (zh) | 2020-09-14 | 2020-09-14 | 一种仿真网络的组网方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010962085.7A CN113300871B (zh) | 2020-09-14 | 2020-09-14 | 一种仿真网络的组网方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113300871A CN113300871A (zh) | 2021-08-24 |
CN113300871B true CN113300871B (zh) | 2023-02-03 |
Family
ID=77318275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010962085.7A Active CN113300871B (zh) | 2020-09-14 | 2020-09-14 | 一种仿真网络的组网方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113300871B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113572652B (zh) * | 2021-09-27 | 2021-12-07 | 之江实验室 | 一种有线Mesh网络测试方法 |
CN115473828B (zh) * | 2022-08-18 | 2024-01-05 | 阿里巴巴(中国)有限公司 | 基于仿真网络的故障检测方法及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106571888B (zh) * | 2016-11-10 | 2018-08-14 | 中国人民解放军空军航空大学军事仿真技术研究所 | 一种仿真系统自动同步可靠通信方法 |
CN107579879A (zh) * | 2017-09-26 | 2018-01-12 | 深圳震有科技股份有限公司 | 一种网络仿真测试方法、仿真服务器以及存储介质 |
CN109862127B (zh) * | 2017-11-30 | 2021-05-11 | 华为技术有限公司 | 一种报文传输的方法及相关装置 |
US10353700B1 (en) * | 2018-05-21 | 2019-07-16 | Microsoft Technology Licensing, Llc | Code base sharing between standalone and web-based versions of an application via an emulated network communication channel |
IL268485B (en) * | 2018-08-13 | 2022-04-01 | Waterfall Security Solutions Ltd | Automatic security response using one-way links |
CN110266548A (zh) * | 2019-07-02 | 2019-09-20 | 国网上海市电力公司 | 一种通信组网仿真检测系统 |
-
2020
- 2020-09-14 CN CN202010962085.7A patent/CN113300871B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113300871A (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108574616B (zh) | 一种处理路由的方法、设备及系统 | |
CN112583710B (zh) | 软件定义网络中的辅助复制 | |
EP3883217A1 (en) | Data transmission method and computer system | |
CN113300871B (zh) | 一种仿真网络的组网方法和装置 | |
EP4016928A1 (en) | Layer 2 leased line network system, configuration method, and device | |
CN102469004A (zh) | 虚拟机网络系统及其创建方法 | |
US10581669B2 (en) | Restoring control-plane connectivity with a network management entity | |
CN109450905B (zh) | 传输数据的方法和装置及系统 | |
CN112671938B (zh) | 业务服务提供方法及系统、远端加速网关 | |
WO2019080592A1 (zh) | 一种发送报文的方法和设备 | |
CN107770027B (zh) | 一种基于OpenStack架构提供GRE隧道服务的实现方法 | |
US10873527B2 (en) | Link protection method in SDN, switching device, and network controller | |
CN105554175A (zh) | 一种pw冗余场景下arp备份方法 | |
CN105681445A (zh) | 数据的点对点传输路径选择方法及装置 | |
CN104734952A (zh) | 一种数据报文转发方法以及装置 | |
KR102455367B1 (ko) | 패킷 송신 방법, 장치 및 시스템, 및 저장 매체 | |
CN114401274B (zh) | 一种通信线路创建方法、装置、设备及可读存储介质 | |
CN102447703B (zh) | 一种热备份方法和系统、cgn设备 | |
CN114553707B (zh) | 网络的拓扑信息的生成和网络故障的定界方法、装置 | |
EP2713552A1 (en) | Method for processing a multicast group, a data center interconnect router, and system | |
CN108737454B (zh) | 用于在虚拟网关服务器间进行信息同步的方法和设备 | |
CN115567383A (zh) | 网络配置方法、主机服务器、设备和存储介质 | |
CN110545240B (zh) | 基于分布式聚合系统的标签转发表的建立及报文转发方法 | |
CN109218157B (zh) | 一种虚拟专用网络系统的数据处理方法、装置和系统 | |
CN113810425B (zh) | 一种并联网络传输方法、装置、设备及存储介质 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40057966 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |