CN113419812B - 一种虚拟化环境下端口转发测试方法、装置、设备及介质 - Google Patents

一种虚拟化环境下端口转发测试方法、装置、设备及介质 Download PDF

Info

Publication number
CN113419812B
CN113419812B CN202110554257.1A CN202110554257A CN113419812B CN 113419812 B CN113419812 B CN 113419812B CN 202110554257 A CN202110554257 A CN 202110554257A CN 113419812 B CN113419812 B CN 113419812B
Authority
CN
China
Prior art keywords
port
virtual machine
network
under
connection request
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
CN202110554257.1A
Other languages
English (en)
Other versions
CN113419812A (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.)
Jinan Inspur Data Technology Co Ltd
Original Assignee
Jinan Inspur Data Technology Co Ltd
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 Jinan Inspur Data Technology Co Ltd filed Critical Jinan Inspur Data Technology Co Ltd
Priority to CN202110554257.1A priority Critical patent/CN113419812B/zh
Publication of CN113419812A publication Critical patent/CN113419812A/zh
Application granted granted Critical
Publication of CN113419812B publication Critical patent/CN113419812B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种虚拟化环境下端口转发测试方法、装置、设备及介质。所述方法包括:对内部网络下的虚拟机的网络进行配置以使虚拟机与外部网络下的主机进行通信;在内部网络下的虚拟机上运行脚本以创建对自定义端口的模拟TCP服务;在内部网络下的虚拟机所在的主机上增加对所述自定义端口的转发规则;利用外部网络下的主机通过所述模拟TCP服务向所述自定义端口发起连接请求;获取内部网络下的虚拟机对所述连接请求的响应结果,并基于所述响应结果确定所述自定义端口是否正常。本发明的方案通过运行脚本实现对任意的自定义端口的模拟TCP服务,还能检测端口的安全性,而且可以很大地节约测试人员的时间,提高测试的效率,节省人力资源。

Description

一种虚拟化环境下端口转发测试方法、装置、设备及介质
技术领域
本发明涉及虚拟机端口测试领域,尤其涉及一种虚拟化环境下端口转发测试方法、装置、设备及介质。
背景技术
在虚拟化环境下虚拟机可以通过路由器设置的SNAT(源网络地址)地址或者浮动IP访问外部网络,外部网络可以使用端口转发的形式访问内部虚拟机,端口转发可以将内网多个虚拟机提供的多个服务或一个虚拟机提供的多个服务映射到外部网络,节约外部网络IP。每个虚拟机有六万多个端口,每个端口都可能会被使用,因而不可避免的需要对端口进行测试。
请参照图1所示,传统虚拟化环境下端口转发的传统测试方法如下:内部网络下的虚拟机运行ssh服务,外部网络的主机向虚拟机(虚拟IP:映射端口)发送ssh请求,若成功建立连接,则代表端口转发成功。这种测试方法只能测试到虚拟机内已经存在的服务及该服务所使用的端口,要想测试其它端口功能,例如某一未被任何服务所使用的端口是否能正常转发,就只能在虚拟机内部署服务使该服务使用要测试的端口。然而传统虚拟化环境下端口转发的传统测试方法存在如下缺陷:对每个端口要单独部署服务进行测试,而对端口部署服务需要耗时几小时甚至更多时间,既消耗时间又浪费人力,效率非常低下,因此传统虚拟化环境下端口转发的传统测试方法亟需改进。
发明内容
有鉴于此,有必要针以上技术问题,提供解决传统测试方法耗时耗力、效率低下问题的一种虚拟化环境下端口转发测试方法、装置、设备及介质。
根据本发明的第一发面,提供了一种虚拟化环境下端口转发测试方法,所述方法包括:
对内部网络下的虚拟机的网络进行配置以使虚拟机与外部网络下的主机进行通信;
在内部网络下的虚拟机上运行脚本以创建对自定义端口的模拟TCP服务;
在内部网络下的虚拟机所在的主机上增加对所述自定义端口的转发规则;
利用外部网络下的主机通过所述模拟TCP服务向所述自定义端口发起连接请求;
获取内部网络下的虚拟机对所述连接请求的响应结果,并基于所述响应结果确定所述自定义端口是否正常。
在其中一个实施例中,所述对内部网络下的虚拟机的网络进行配置以使虚拟机与外部网络下的主机进行通信的步骤包括:
在虚拟机中创建SDN高级网络子网并配置虚拟机使用所述SDN高级网络子网,以及通过虚拟机控制台查看DHCP的IP是否正常;
在虚拟机中创建分布式NAT网关,配置NAT网关IP为真实存在的物理网关地址,配置准确的网关Segment id数值以确保数据能经物理交换机转发;
在虚拟机中创建分布式路由器,设置网关并开启SNAT,关联虚拟机所使用的SDN高级网络子网;
在虚拟机上ping与所述物理网关同网段的外部地址。
在其中一个实施例中,所述方法还包括:
测试内部网络下的虚拟机与外部网络下的主机是否能进行通信;
若二者不能通信则确认对内部网络下的虚拟机的网络进行配置以使虚拟机与外部网络下的主机进行通信步骤出现异常。
在其中一个实施例中,所述在内部网络下的虚拟机上运行脚本以创建对自定义端口的模拟TCP服务的步骤包括:
在python脚本中导入socket模块,配置参数模拟TCP协议的服务端,绑定自定义的IP地址和端口号以得到所述自定义端口,在绑定的所述自定义端口开启监听;
设置无限循环一直等待客户端连接,当有客户端发送连接请求时,服务端接受连接请求与客户端建立一次稳定连接;
获取客户端的地址端口信息,向客户端发送信息反馈客户端的请求连接建立成功,在服务端打印输出客户端的地址端口信息以及接收到的数据信息
客户端接收完数据后断开连接,一次连接结束;
服务端继续循环等待下一个客户端的连接请求,当有中断出现时,结束整个无限循环,服务端模拟结束。
在其中一个实施例中,所述在内部网络下的虚拟机所在的主机上增加对所述自定义端口的转发规则的步骤包括:
在虚拟机中通过分布式NAT网关功能页的增加端口转发,配置弹窗中虚拟IP为SNAT或浮动IP,配置目的转发的端口为虚拟机服务使用的端口;
在虚拟机中增加端口转发,增加端口转发成功后登录后台查看转发规则。
在其中一个实施例中,所利用外部网络下的主机通过所述模拟TCP服务向所述自定义端口发起连接请求的步骤包括:
通过主机的控制台或命令提示符向所述自定义端口对应的虚拟IP发送连接请求,其中,所述连接请求中包括外部网络下主机的地址端口信息。
在其中一个实施例中,所述获取内部网络下的虚拟机对所述连接请求的响应结果,并基于所述响应结果确定所述自定义端口是否正常的步骤包括:
响应于所述自定义端口接收到连接请求,则确认所述自定义端口转发功能正常,并在在虚拟机上输出外部网络下主机的地址端口信息;
响应于的所述自定义端口未接收到连接请求,则确认所述自定义端口转发功能异常。
根据本发明的第二方面,提供了一种虚拟化环境下端口转发测试装置,所述装置包括:
网络配置模块,用于对内部网络下的虚拟机的网络进行配置以使虚拟机与外部网络下的主机进行通信;
模拟TCP服务模块,用于在内部网络下的虚拟机上运行脚本以创建对自定义端口的模拟TCP服务;
转发规则添加模块,用于在内部网络下的虚拟机所在的主机上增加对所述自定义端口的转发规则;
连接请求模块,用于利用外部网络下的主机通过所述模拟TCP服务向所述自定义端口发起连接请求;
结果确认模块,获取内部网络下的虚拟机对所述连接请求的响应结果,并基于所述响应结果确定所述自定义端口是否正常。
根据本发明的第三方面,还提供了一种计算机设备,该计算机设备包括:
至少一个处理器;以及
存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的虚拟化环境下端口转发测试方法。
根据本发明的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的虚拟化环境下端口转发测试方法。
上述一种虚拟化环境下端口转发测试方法,通过在虚拟机内运行脚本,可以在自定义的端口模拟TCP服务,以代替传统测试方法中的部署服务以使用端口的步骤,通过运行python脚本实现对任意的自定义端口的模拟TCP服务,不仅能快速地测试常用服务的端口转发,还能测试其它不常用的端口,还能检测端口的安全性,而且可以很大地节约测试人员的时间,提高测试的效率,节省人力资源。
此外,本发明还提供了一种虚拟化环境下端口转发测试装置、一种计算机设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为传统虚拟化环境下端口转发的传统测试方法示意图;
图2为本发明一个实施例提供的一种虚拟化环境下端口转发测试方法的流程示意图;
图3为本发明一个实施例提供的本发明方法与传统方法改进前后对比图;
图4为本发明另一个实施例提供的模拟TCP服务流程示意图;
图5A为本发明一个实施例中模拟TCP服务采用的滑动串口示意图;
图5B为本发明一个实施例中模拟TCP服务采用的包守恒原则示意图;
图6本发明另一个实施例提供的一种虚拟化环境下端口转发测试装置结构示意图;
图7本发明另一个实施例中计算机设备的内部结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
在一个实施例中,请参照图2和图3所示,本发明提供了一种虚拟化环境下端口转发测试方法,所述方法包括:
S100,对内部网络下的虚拟机的网络进行配置以使虚拟机与外部网络下的主机进行通信;
S200,在内部网络下的虚拟机上运行脚本以创建对自定义端口的模拟TCP服务;其中脚本可以采用Python语言、C语言或者其它机器语言撰写,优选地可采用Python语言,其能够使用更少的代码实现预期的功能。
S300,在内部网络下的虚拟机所在的主机上增加对所述自定义端口的转发规则;
S400,利用外部网络下的主机通过所述模拟TCP服务向所述自定义端口发起连接请求;
S500,获取内部网络下的虚拟机对所述连接请求的响应结果,并基于所述响应结果确定所述自定义端口是否正常。
上述一种虚拟化环境下端口转发测试方法,通过在虚拟机内运行脚本,可以在自定义的端口模拟TCP服务,以代替传统测试方法中的部署服务以使用端口的步骤,通过运行脚本实现对任意的自定义端口的模拟TCP服务,不仅能快速地测试常用服务的端口转发,还能测试其它不常用的端口,还能检测端口的安全性,而且可以很大地节约测试人员的时间,提高测试的效率,节省人力资源。
在又一个实施例中,前述步骤S100具体包括以下子步骤:
S110,在虚拟机中创建SDN高级网络子网并配置虚拟机使用所述SDN高级网络子网,以及通过虚拟机控制台查看DHCP的IP是否正常;其中,DHCP全称为Dynamic HostConfiguration Protocol,中文含义为“动态主机配置协议”,通常被应用在大型的局域网络环境中,主要作用是集中管理、分配IP地址,使网络环境中的主机动态获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
S120,在虚拟机中创建分布式NAT网关,配置NAT网关IP为真实存在的物理网关地址,配置准确的网关Segment id数值以确保数据能经物理交换机转发;其中,NAT网关(NATGateway)是一种支持IP地址转换的网络云服务,它能够为腾讯云内的资源提供高性能的Internet访问服务。
S130,在虚拟机中创建分布式路由器,设置网关并开启SNAT,关联虚拟机所使用的SDN高级网络子网;SNAT:源地址转换,解决内网用户用同一个公网地址上网的问题。
S140,在虚拟机上ping与所述物理网关同网段的外部地址。
优选地,所述方法还包括:
S150,测试内部网络下的虚拟机与外部网络下的主机是否能进行通信;
S160,若二者不能通信则确认对内部网络下的虚拟机的网络进行配置以使虚拟机与外部网络下的主机进行通信步骤出现异常,并且如无法通信,请检查以上步骤S110至步骤S140是否操作正确。
在又一个实施例中,请参照图4所示,前述步骤S200具体包括以下子步骤:
S210,在python脚本中导入socket模块,配置参数模拟TCP协议的服务端,绑定自定义的IP地址和端口号以得到所述自定义端口,在绑定的所述自定义端口开启监听;
S220,设置无限循环一直等待客户端连接,当有客户端发送连接请求时,服务端接受连接请求与客户端建立一次稳定连接;
S230,获取客户端的地址端口信息,向客户端发送信息反馈客户端的请求连接建立成功,在服务端打印输出客户端的地址端口信息以及接收到的数据信息
S240,客户端接收完数据后断开连接,一次连接结束;
S250,服务端继续循环等待下一个客户端的连接请求,当有中断出现时,结束整个无限循环,服务端模拟结束。
上述实施为了模拟TCP服务需要利用python中的socket模块,socket(套接字)是应用层与传输层(TCP/UDP协议)的接口,是对TCP/IP的封装,是操作***的通信机制。应用程序通过socket进行网络数据的传输。Python提供了socket模块,简化了网络服务的开发。此外,由于自定义端口是可以配置,即对于任意的端口号都能够进行绑定,避免了单独部署服务使用相应的端口,具有较好的通用性。
在又一个实施例中,前述步骤S300具体包括以下子步骤:
S310,在虚拟机中通过分布式NAT网关功能页的增加端口转发,配置弹窗中虚拟IP为SNAT或浮动IP,配置目的转发的端口为虚拟机服务使用的端口;
S320,在虚拟机中增加端口转发,增加端口转发成功后登录后台查看转发规则。
在又一个实施例中,前述步骤S400的实施方式如下:通过主机的控制台或命令提示符向所述自定义端口对应的虚拟IP发送连接请求,其中,所述连接请求中包括外部网络下主机的地址端口信息。
在又一个实施例中,在前述实施例的基础上,前述步骤S500具体包括以下子步骤:
S510,响应于所述自定义端口接收到连接请求,则确认所述自定义端口转发功能正常,并在在虚拟机上输出外部网络下主机的地址端口信息;
S520,响应于的所述自定义端口未接收到连接请求,则确认所述自定义端口转发功能异常。
在又一个实施例中,请再次结合图3所示,下面以一个具体实施例说明本法发明方法,该方法实施步骤如下:
步骤一,配置内网下的虚拟机能和外部网络的主机通信,基本的操作步骤如下:
(a)在虚拟化平台上创建overlay类型的高级网络子网,改配虚拟机使用该高级网络子网,并打开虚拟机控制台,systemctl restart network重启网络服务,ip a查看IP信息;
(b)在虚拟化平台上创建分布式NAT网关,配置网关IP是真实的物理网关地址,例如100.7.47.254;同时需要配置网关的Segment id与集群使用的物理交换机允许通过的Segment id相同,例如物理交换机允许通过的Segment id是0,则需配置网关的Segment id也是0;
(c)在虚拟化平台上创建分布式路由器,设置路由器的网关为上一步骤创建的分布式NAT网关,选择一个未被使用的外部网络地址设为SNAT地址,例如100.7.33.59;关联虚拟机所使用的高级网络子网;
(d)打开虚拟机控制台,ping外网地址,例如ping 100.7.8.78,虚拟机终端有数据返回,可以与外网通信;
步骤二,在虚拟机内运行python脚本模拟TCP服务,脚本的实现结合图4步骤如下:
(a)导入所需要的python模块,socket模块和time模块;
import socket
import time
(b)在主函数中模拟TCP的服务端,绑定自定义的地址和端口并开启监听;
def main():
//定义模拟基于TCP协议的服务端,socket.AF_INET定义基于网络类型的套接字,socket.SOCK_STREAM定义面向连接的稳定数据传输,即TCP协议;
tcp_server_socket=socket.socket(socket.AF_INET,
socket.SOCK_STREAM)
//利用socket中的bind()函数绑定自定义的地址和端口,可输入需要监听的主机的IP地址端口,其中地址不填时代表当前主机,端口可输入1-65535范围内未被占用的任意端口,例如5678;listen()函数开启监听;
addr=("",5678)
tcp_server_socket.bind(addr)
tcp_server_socket.listen(128)
(c)设置无限循环一直等待客户端的连接请求,连接建立后通过在服务端和客户端打印输出内容展示连接的信息,表示端口转发的详情;
while True:
//服务端接受请求并获取到客户端的socket通道和IP地址端口信息,利用time模块获取当前***时间发送到客户端,反馈连接建立成功;
client_socket,client_addr=tcp_server_socket.accept()
client_socket.send("Hello,the time is%s"%time.ctime())
//在服务端输出连接的客户端的地址端口信息以及接收到的2048字节的数据信息,最后关闭客户端连接,一次连接结束;
print("client address is%s"%str(client_addr))
rec_data=client_socket.recv(2048)
print(rec_data)
client_socket.close()
//服务端继续等待客户端的连接请求,直到有ctrl+c等中断出现,结束整个循环,模拟结束;
tcp_server_socket.close()
if__name__=='__main__':
main()
(d)脚本完成后,通过在终端执行命令python+脚本名.py,运行该脚本监听自定义的5678端口。
值得注意的是,本方案在虚拟机内模拟了基于TCP协议的服务,利用了TCP的滑动窗口和包守恒原则创建了可靠的、稳定的数据传输。
TCP引入滑动窗口以解决可靠传输以及包乱序的问题,如图5A所示。在传输过程中,client和server协商接收窗口rwnd,再结合拥塞控制窗口cwnd计算滑动窗口swnd。在Linux内核实现中,拥塞控制窗口cwnd是以包为单位,根据公式swnd=min(rwnd,cwnd*mss)计算swnd,其中mss是最大分段大小,结合图5A所示。
包守恒原则指的是TCP维护一个发送窗口,估计当前网络链路上能容纳的数据包数量,希望在有数据可发的情况下,回来一个确认包就发出一个数据包,总是保持发送窗口那么多包在网络中流动,如图5B所示、
步骤三,增加目的端口是5678的端口转发规则。在虚拟化平台上增加端口转发规则,虚拟IP选择配置的SNAT地址100.7.33.59,外部端口可以输入自定义的端口如222,目的虚拟机端口选择5678端口;增加成功后可以在center后台通过命令ovn-nbctl list load-balancer查看所有的规则列表。
步骤四,使用外部网络的主机发送连接请求进行验证。在100.7.8.78主机终端,输入命令curl http://100.7.33.59:222,主机终端有返回***时间,虚拟机内输出了主机的地址端口信息,端口转发成功。
步骤五,根据虚拟机主机对连接请求的响应结果确定端口测试结果。若虚拟机终端上输出了外部主机的地址端口信息,则表示连接成功建立,端口转发成功;若虚拟机终端上未输出了外部主机的地址端口信息,则表示连接失败,端口转发是失败。此外,还可以根据可根据服务端输出的客户机地址端口信息来判断端口是否有外部地址恶意连接。
本发明方法至少具备以下有益技术效果:
第一,通过在虚拟机内运行python脚本模拟TCP服务,监控自定义的端口,代替了在虚拟机内部署相关服务的繁琐操作。;
第二,通过本方法测试虚拟化环境下的端口转发,能快速地测试所有常用的或客户可能会使用到的端口;
第三,还通过服务端输出的所有连接的客户机的地址端口信息检测端口的安全性,很大地节约了测试人员的时间,提高测试的效率及准确性,节省人力资源。
在又一个实施例中,请结合图6所示,本发明还提供了一种虚拟化环境下端口转发测试装置60,所述装置包括以下结构:
网络配置模块61,用于对内部网络下的虚拟机的网络进行配置以使虚拟机与外部网络下的主机进行通信;
模拟TCP服务模块62,用于在内部网络下的虚拟机上运行脚本以创建对自定义端口的模拟TCP服务;
转发规则添加模块63,用于在内部网络下的虚拟机所在的主机上增加对所述自定义端口的转发规则;
连接请求模块64,用于利用外部网络下的主机通过所述模拟TCP服务向所述自定义端口发起连接请求;
结果确认模块64,获取内部网络下的虚拟机对所述连接请求的响应结果,并基于所述响应结果确定所述自定义端口是否正常。
需要说明的是,关于虚拟化环境下端口转发测试装置的具体限定可以参见上文中对虚拟化环境下端口转发测试方法的限定,在此不再赘述。上述虚拟化环境下端口转发测试装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
根据本发明的另一方面,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图请参照图7所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的虚拟化环境下端口转发测试方法,具体来说,所述方法包括以下步骤:
对内部网络下的虚拟机的网络进行配置以使虚拟机与外部网络下的主机进行通信;
在内部网络下的虚拟机上运行脚本以创建对自定义端口的模拟TCP服务;
在内部网络下的虚拟机所在的主机上增加对所述自定义端口的转发规则;
利用外部网络下的主机通过所述模拟TCP服务向所述自定义端口发起连接请求;
获取内部网络下的虚拟机对所述连接请求的响应结果,并基于所述响应结果确定所述自定义端口是否正常。
根据本发明的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的虚拟化环境下端口转发测试方法,具体来说,所述方法包括以下步骤:
对内部网络下的虚拟机的网络进行配置以使虚拟机与外部网络下的主机进行通信;
在内部网络下的虚拟机上运行脚本以创建对自定义端口的模拟TCP服务;
在内部网络下的虚拟机所在的主机上增加对所述自定义端口的转发规则;
利用外部网络下的主机通过所述模拟TCP服务向所述自定义端口发起连接请求;
获取内部网络下的虚拟机对所述连接请求的响应结果,并基于所述响应结果确定所述自定义端口是否正常。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (8)

1.一种虚拟化环境下端口转发测试方法,其特征在于,所述方法包括:
对内部网络下的虚拟机的网络进行配置以使虚拟机与外部网络下的主机进行通信;
在内部网络下的虚拟机上运行脚本以创建对自定义端口的模拟TCP服务;
在内部网络下的虚拟机所在的主机上增加对所述自定义端口的转发规则;
利用外部网络下的主机通过所述模拟TCP服务向所述自定义端口发起连接请求;
获取内部网络下的虚拟机对所述连接请求的响应结果,并基于所述响应结果确定所述自定义端口是否正常;
所述在内部网络下的虚拟机上运行脚本以创建对自定义端口的模拟TCP服务的步骤包括:
在python脚本中导入socket模块,配置参数模拟TCP协议的服务端,绑定自定义的IP地址和端口号以得到所述自定义端口,在绑定的所述自定义端口开启监听;
设置无限循环一直等待客户端连接,当有客户端发送连接请求时,服务端接受连接请求与客户端建立一次稳定连接;
获取客户端的地址端口信息,向客户端发送信息反馈客户端的请求连接建立成功,在服务端打印输出客户端的地址端口信息以及接收到的数据信息;
客户端接收完数据后断开连接,一次连接结束;
服务端继续循环等待下一个客户端的连接请求,当有中断出现时,结束整个无限循环,服务端模拟结束;
所述获取内部网络下的虚拟机对所述连接请求的响应结果,并基于所述响应结果确定所述自定义端口是否正常的步骤包括:
响应于所述自定义端口接收到连接请求,则确认所述自定义端口转发功能正常,并在在虚拟机上输出外部网络下主机的地址端口信息;
响应于的所述自定义端口未接收到连接请求,则确认所述自定义端口转发功能异常。
2.根据权利要求1所述的方法,其特征在于,所述对内部网络下的虚拟机的网络进行配置以使虚拟机与外部网络下的主机进行通信的步骤包括:
在虚拟机中创建SDN高级网络子网并配置虚拟机使用所述SDN高级网络子网,以及通过虚拟机控制台查看DHCP的IP是否正常;
在虚拟机中创建分布式NAT网关,配置NAT网关IP为真实存在的物理网关地址,配置准确的网关Segment id数值以确保数据能经物理交换机转发;
在虚拟机中创建分布式路由器,设置网关并开启SNAT,关联虚拟机所使用的SDN高级网络子网;
在虚拟机上ping与所述物理网关同网段的外部地址。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
测试内部网络下的虚拟机与外部网络下的主机是否能进行通信;
若二者不能通信则确认所述对内部网络下的虚拟机的网络进行配置以使虚拟机与外部网络下的主机进行通信的步骤出现异常。
4.根据权利要求1所述的方法,其特征在于,所述在内部网络下的虚拟机所在的主机上增加对所述自定义端口的转发规则的步骤包括:
在虚拟机中通过分布式NAT网关功能页的增加端口转发,配置弹窗中虚拟IP为SNAT或浮动IP,配置目的转发的端口为虚拟机服务使用的自定义端口;
在虚拟机中增加端口转发,增加端口转发成功后登录后台查看转发规则。
5.根据权利要求4所述的方法,其特征在于,所述利用外部网络下的主机通过所述模拟TCP服务向所述自定义端口发起连接请求的步骤包括:
通过主机的控制台或命令提示符向所述自定义端口对应的虚拟IP发送连接请求,其中,所述连接请求中包括外部网络下主机的地址端口信息。
6.一种虚拟化环境下端口转发测试装置,其特征在于,所述装置包括:
网络配置模块,用于对内部网络下的虚拟机的网络进行配置以使虚拟机与外部网络下的主机进行通信;
模拟TCP服务模块,用于在内部网络下的虚拟机上运行脚本以创建对自定义端口的模拟TCP服务;
转发规则添加模块,用于在内部网络下的虚拟机所在的主机上增加对所述自定义端口的转发规则;
连接请求模块,用于利用外部网络下的主机通过所述模拟TCP服务向所述自定义端口发起连接请求;
结果确认模块,获取内部网络下的虚拟机对所述连接请求的响应结果,并基于所述响应结果确定所述自定义端口是否正常;
所述模拟TCP服务模块进一步配置用于:
所述在内部网络下的虚拟机上运行脚本以创建对自定义端口的模拟TCP服务的步骤包括:
在python脚本中导入socket模块,配置参数模拟TCP协议的服务端,绑定自定义的IP地址和端口号以得到所述自定义端口,在绑定的所述自定义端口开启监听;
设置无限循环一直等待客户端连接,当有客户端发送连接请求时,服务端接受连接请求与客户端建立一次稳定连接;
获取客户端的地址端口信息,向客户端发送信息反馈客户端的请求连接建立成功,在服务端打印输出客户端的地址端口信息以及接收到的数据信息;
客户端接收完数据后断开连接,一次连接结束;
服务端继续循环等待下一个客户端的连接请求,当有中断出现时,结束整个无限循环,服务端模拟结束;
所述结果确认模块进一步配置用于:
响应于所述自定义端口接收到连接请求,则确认所述自定义端口转发功能正常,并在在虚拟机上输出外部网络下主机的地址端口信息;
响应于的所述自定义端口未接收到连接请求,则确认所述自定义端口转发功能异常。
7.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器中运行的计算机程序,所述处理器执行所述程序时执行权利要求1-5任意一项所述的方法。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行权利要求1-5任意一项所述的方法。
CN202110554257.1A 2021-05-20 2021-05-20 一种虚拟化环境下端口转发测试方法、装置、设备及介质 Active CN113419812B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110554257.1A CN113419812B (zh) 2021-05-20 2021-05-20 一种虚拟化环境下端口转发测试方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110554257.1A CN113419812B (zh) 2021-05-20 2021-05-20 一种虚拟化环境下端口转发测试方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN113419812A CN113419812A (zh) 2021-09-21
CN113419812B true CN113419812B (zh) 2022-03-11

Family

ID=77712631

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110554257.1A Active CN113419812B (zh) 2021-05-20 2021-05-20 一种虚拟化环境下端口转发测试方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN113419812B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114726757B (zh) * 2022-03-24 2024-05-03 深圳市领创星通科技有限公司 设备联网测试方法、装置、计算机设备、存储介质
CN114745445B (zh) * 2022-04-27 2024-05-28 深圳绿米联创科技有限公司 控制方法、装置、电子设备和存储介质
CN115277349B (zh) * 2022-07-18 2024-01-02 天翼云科技有限公司 一种配置分布式网关的方法、开放虚拟网络及存储介质
CN114944992B (zh) * 2022-07-26 2022-10-18 南京赛宁信息技术有限公司 一种主动防御网关配置检测方法、装置与***

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104158701A (zh) * 2014-08-18 2014-11-19 中国联合网络通信集团有限公司 网关功能测试方法和装置
CN105227690A (zh) * 2015-09-06 2016-01-06 上海斐讯数据通信技术有限公司 一种多端口并发dhcp获取地址的方法
CN106375142A (zh) * 2016-08-26 2017-02-01 腾讯科技(深圳)有限公司 应用程序的测试方法和装置
CN107040429A (zh) * 2017-03-13 2017-08-11 上海斐讯数据通信技术有限公司 一种端口转发性能的测试方法及***
CN107911313A (zh) * 2017-11-15 2018-04-13 北京易讯通信息技术股份有限公司 一种在私有云中虚拟机端口流量外迁的方法
CN110891285A (zh) * 2019-12-03 2020-03-17 锐捷网络股份有限公司 一种发射设备、反射设备、网络性能测试方法及***
CN111371636A (zh) * 2020-02-16 2020-07-03 苏州浪潮智能科技有限公司 一种基于云平台的端口转发功能测试方法及***
CN111669300A (zh) * 2020-04-24 2020-09-15 平安科技(深圳)有限公司 基于直连测试网络的网关测试方法、装置和计算机设备
CN112217690A (zh) * 2020-09-18 2021-01-12 苏州浪潮智能科技有限公司 一种计算节点之间局域网可用的并发测试方法及***
CN112637244A (zh) * 2021-01-08 2021-04-09 江苏天翼安全技术有限公司 一种针对常见与工控协议及端口的威胁检测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8954544B2 (en) * 2010-09-30 2015-02-10 Axcient, Inc. Cloud-based virtual machines and offices

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104158701A (zh) * 2014-08-18 2014-11-19 中国联合网络通信集团有限公司 网关功能测试方法和装置
CN105227690A (zh) * 2015-09-06 2016-01-06 上海斐讯数据通信技术有限公司 一种多端口并发dhcp获取地址的方法
CN106375142A (zh) * 2016-08-26 2017-02-01 腾讯科技(深圳)有限公司 应用程序的测试方法和装置
CN107040429A (zh) * 2017-03-13 2017-08-11 上海斐讯数据通信技术有限公司 一种端口转发性能的测试方法及***
CN107911313A (zh) * 2017-11-15 2018-04-13 北京易讯通信息技术股份有限公司 一种在私有云中虚拟机端口流量外迁的方法
CN110891285A (zh) * 2019-12-03 2020-03-17 锐捷网络股份有限公司 一种发射设备、反射设备、网络性能测试方法及***
CN111371636A (zh) * 2020-02-16 2020-07-03 苏州浪潮智能科技有限公司 一种基于云平台的端口转发功能测试方法及***
CN111669300A (zh) * 2020-04-24 2020-09-15 平安科技(深圳)有限公司 基于直连测试网络的网关测试方法、装置和计算机设备
CN112217690A (zh) * 2020-09-18 2021-01-12 苏州浪潮智能科技有限公司 一种计算节点之间局域网可用的并发测试方法及***
CN112637244A (zh) * 2021-01-08 2021-04-09 江苏天翼安全技术有限公司 一种针对常见与工控协议及端口的威胁检测方法

Also Published As

Publication number Publication date
CN113419812A (zh) 2021-09-21

Similar Documents

Publication Publication Date Title
CN113419812B (zh) 一种虚拟化环境下端口转发测试方法、装置、设备及介质
US9146826B2 (en) Method and apparatus for scaling network simulation
CN109951325B (zh) 一种网络线缆连接检查方法和装置
CN110557290B (zh) 网络加速服务的处理方法及装置
US20130136131A1 (en) Relay device and activation method of electronic device
CN107613037B (zh) 一种域名重定向方法和***
CN109728962B (zh) 一种发送报文的方法和设备
KR20100019420A (ko) 에지 라우팅을 갖는 피어-투-피어 협업 시스템
CN110266761B (zh) 负载均衡应用创建方法、装置、计算机设备及存储介质
CN114070723A (zh) 裸金属服务器的虚拟网络配置方法、***及智能网卡
EP3780885A1 (en) Method, apparatus and system for establishing subflows of multipath connection
US20220030051A1 (en) Executing workloads across multiple cloud service providers
US10855546B2 (en) Systems and methods for non-intrusive network performance monitoring
CN111447302B (zh) 一种利用raw socket模拟多客户端测试DHCP的方法和***
JP2010531602A5 (zh)
CN108234194B (zh) 基于sdn的网络拓扑结构发现方法、装置和存储介质
JP2015510744A (ja) インターネットアクセスモードを自動的に設定する処理方法及び処理装置
JP2011015095A (ja) 通信装置、アドレス設定方法およびアドレス設定プログラム
US8443094B2 (en) Computer system comprising a communication device
CN112073553A (zh) 网络地址转换类型的检测方法、装置、设备及存储介质
CN113347287B (zh) 数据中心中主机发现与添加方法、装置、设备及介质
CN113596119B (zh) 边缘能力分发方法、***、设备及计算机可读存储介质
WO2022222479A1 (zh) 网络检测方法、装置、设备和存储介质
CN115567383A (zh) 网络配置方法、主机服务器、设备和存储介质
CN103167546A (zh) 添加有数采服务器的移动g网无线业务测试***及其方法

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