微虚拟机网络配置及双栈端口转发方法、装置和设备与流程

摘要: 本技术属于计算机虚拟化,具体涉及一种微虚拟机(microvirtualmachine,microvm)的端口转发方法、装置和设备。背景技术:1、随着云端代码执行...
微虚拟机网络配置及双栈端口转发方法、装置和设备与流程

本技术属于计算机虚拟化,具体涉及一种微虚拟机(micro virtualmachine,microvm)的端口转发方法、装置和设备。

背景技术:

1、随着云端代码执行和沙箱服务的发展,基于硬件虚拟化的轻量级隔离环境被用于承载用户程序。为了使隔离环境中的网络服务能够被外部访问,通常由守护进程检测用户程序建立的端口监听记录,并针对检测到的端口监听记录建立转发进程。

2、现有实现通常根据进程和端口维护转发记录。当同一用户程序使用同一端口在不同本地地址上分别建立监听时,多条端口监听记录可能具有相同的转发记录标识。其中一条端口监听记录可能覆盖另一条端口监听记录,或者被作为已经处理的端口监听记录而不再建立转发。由此,部分本地地址对应的端口可能无法被外部访问,并且转发结果可能受到系统返回端口监听记录的顺序影响。

技术实现思路

1、本技术提供了一种微虚拟机网络配置及双栈端口转发方法、装置和设备,以减少不同本地地址对应的监听记录被作为同一记录处理的情况,提高端口转发的完整性和稳定性。

2、本技术提供了一种微虚拟机网络配置及双栈端口转发方法,包括:

3、启动目标微虚拟机;

4、获取所述目标微虚拟机对应的端口监听信息,所述端口监听信息用于表征所述目标微虚拟机中用户进程的端口监听状态;

5、获取所述端口监听信息对应的监听地址信息;

6、根据所述端口监听信息确定候选监听实例以及所述候选监听实例对应的进程标识和监听端口;

7、根据所述监听地址信息、所述进程标识和所述监听端口,确定所述候选监听实例对应的连接识别信息,所述连接识别信息用于区分不同的监听实例;

8、根据所述连接识别信息确定待进行端口转发的目标监听实例;

9、对所述目标监听实例进行端口转发。

10、根据本技术提供的微虚拟机网络配置及双栈端口转发方法,所述根据所述监听地址信息、所述进程标识和所述监听端口确定所述候选监听实例对应的连接识别信息,包括:根据所述监听地址信息确定所述候选监听实例对应的本地互联网协议(internetprotocol,ip)地址;根据所述进程标识、所述监听端口和所述本地ip地址确定所述候选监听实例对应的连接识别信息。

11、根据本技术提供的微虚拟机网络配置及双栈端口转发方法,所述获取所述目标微虚拟机对应的端口监听信息,包括:获取所述目标微虚拟机中的多个网络连接;根据所述多个网络连接分别对应的连接状态,从所述多个网络连接中确定处于监听状态的候选网络连接;根据所述候选网络连接对应的本地地址,从所述候选网络连接中确定满足预设监听地址条件的目标网络连接,所述预设监听地址条件用于指示互联网协议第6版(internetprotocol version 6,ipv6)通配符地址属于允许进行端口转发的监听地址范围;根据所述目标网络连接确定所述端口监听信息。

12、根据本技术提供的微虚拟机网络配置及双栈端口转发方法,所述对所述目标监听实例进行端口转发,包括:根据所述监听地址信息确定所述目标监听实例对应的后端地址和用于连接所述目标监听实例的协议族;根据所述协议族和所述后端地址确定所述目标监听实例对应的后端连接参数;根据所述后端连接参数和所述后端地址对所述目标监听实例进行端口转发。

13、根据本技术提供的微虚拟机网络配置及双栈端口转发方法,所述根据所述监听地址信息确定所述目标监听实例对应的后端地址和用于连接所述目标监听实例的协议族,包括:在所述监听地址信息指示本地ip地址为ipv6通配符地址的情况下,将所述协议族确定为互联网协议第4版(internet protocol version 4,ipv4),并将所述后端地址确定为ipv4回环地址;在所述监听地址信息指示本地ip地址为ipv6回环地址的情况下,将所述协议族确定为ipv6,并将所述后端地址确定为ipv6回环地址的字面地址;在所述监听地址信息指示本地ip地址为ipv4回环地址的情况下,将所述协议族确定为ipv4,并将所述后端地址确定为ipv4回环地址。

14、根据本技术提供的微虚拟机网络配置及双栈端口转发方法,所述根据所述连接识别信息确定待进行端口转发的目标监听实例,包括:获取当前端口转发表,所述当前端口转发表用于记录已进行端口转发的监听实例对应的连接识别信息;确定所述连接识别信息是否记录于所述当前端口转发表中;在所述连接识别信息未记录于所述当前端口转发表的情况下,将所述连接识别信息对应的监听实例确定为目标监听实例。

15、根据本技术提供的微虚拟机网络配置及双栈端口转发方法,所述启动目标微虚拟机,包括:获取所述目标微虚拟机对应的宿主机侧虚拟网络接口的ipv6路由能力信息,所述ipv6路由能力信息用于指示所述虚拟网络接口是否具备ipv6路由能力;根据所述ipv6路由能力信息确定所述目标微虚拟机对应的ipv6协议栈配置参数,所述ipv6协议栈配置参数用于指示所述目标微虚拟机的ipv6协议栈的启用状态;根据所述ipv6协议栈配置参数启动所述目标微虚拟机。

16、根据本技术提供的微虚拟机网络配置及双栈端口转发方法,所述获取所述目标微虚拟机对应的宿主机侧虚拟网络接口的ipv6路由能力信息,包括:获取所述虚拟网络接口对应的ipv6路由器检测结果,所述ipv6路由器检测结果用于指示是否存在能够向所述虚拟网络接口提供ipv6路由能力的ipv6路由器;根据所述ipv6路由器检测结果确定所述ipv6路由能力信息。

17、根据本技术提供的微虚拟机网络配置及双栈端口转发方法,所述根据所述ipv6路由能力信息确定所述目标微虚拟机对应的ipv6协议栈配置参数,包括:将所述ipv6路由能力信息写入所述目标微虚拟机对应的启动选项;在构建所述目标微虚拟机对应的内核启动参数时,从所述启动选项中获取所述ipv6路由能力信息;根据所述ipv6路由能力信息确定所述ipv6协议栈配置参数。

18、本技术还提供了一种微虚拟机网络配置及双栈端口转发装置,包括:

19、启动单元,用于启动目标微虚拟机;

20、第一获取单元,用于获取所述目标微虚拟机对应的端口监听信息,所述端口监听信息用于表征所述目标微虚拟机中用户进程的端口监听状态;

21、第二获取单元,用于获取所述端口监听信息对应的监听地址信息;

22、第一确定单元,用于根据所述端口监听信息确定候选监听实例以及所述候选监听实例对应的进程标识和监听端口;

23、第二确定单元,用于根据所述监听地址信息、所述进程标识和所述监听端口,确定所述候选监听实例对应的连接识别信息,所述连接识别信息用于区分不同的监听实例;

24、第三确定单元,用于根据所述连接识别信息确定待进行端口转发的目标监听实例;

25、转发单元,用于对所述目标监听实例进行端口转发。

26、本技术还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述微虚拟机网络配置及双栈端口转发方法。

27、本技术还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述微虚拟机网络配置及双栈端口转发方法。

28、本技术还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述微虚拟机网络配置及双栈端口转发方法。

29、根据本技术提供的微虚拟机网络配置及双栈端口转发方法、装置和设备,通过结合端口监听信息、进程标识、监听端口和监听地址信息区分不同监听实例,再据此选择目标监听实例并建立端口转发,可以减少不同本地地址对应的监听记录被作为同一记录处理的情况,提高端口转发的完整性和稳定性。