一种服务访问方法及装置与流程

文档序号:17072900发布日期:2019-03-08 23:28阅读:164来源:国知局
本申请实施例涉及通信
技术领域
:,尤其涉及一种服务访问方法及装置。
背景技术
::随着云计算技术的高速发展,公有云的云平台可以为租户提供大量的服务和应用,租户可以通过互联网或局域网连接并操控远程服务器集群,完成业务逻辑或运算任务。将企业业务部署在云内,在云内使用平台或其他租户提供的服务,能够节省公网带宽费用,且可以保证网络性能和带宽,从而企业业务得到更好的体验。现有技术中公有云平台(或云内公共服务)与租户间互访的链路通过以下方式实现。公有云大都是多租户模式,租户的网络是私有的,不同租户的网络可能是完全重叠的。当租户访问公有云内部大网网络协议(internetprotocol,ip)内的服务时,需要为租户的虚拟机添加或绑定内部大网ip,租户的虚拟机使用该内部大网ip与同在内部大网内的公有云云内服务进行通信。其中,内部大网ip是指云服务管理面的ip地址,也是基础网络ip。租户的虚拟机(virtualmachine,vm)若与云内服务所在内部大网之间直接路由通信,则租户vm应避免使用和内部大网重叠的网络,否则会因为ip地址冲突、路由失效而导致通信失败。租户在创建虚拟私有云(virtualprivatecloud,vpc)时需要规划网络,避开内部大网所使用的网段。当vpc通过虚拟专用网络(virtualprivatenetwork,vpn)与企业业务互联时,该限制会传染到企业内部,导致企业在规划内部网络时也要避开该网段或者避免使用该网段的部分与云上vpc互联。技术实现要素:本申请实施例提供一种服务访问方法及装置,用以解决公有云与租户间互访链路实现方式影响租户的网络规划和企业内部的网络规划的问题。本申请实施例提供的具体技术方案如下:第一方面,提供一种服务访问方法,该方法的执行主体可以是软件定义网络sdn控制器,该方法可以通过以下方式实现:软件定义网络sdn控制器获取服务的注册信息;所述注册信息中包含所述服务的真实网络协议ip地址,所述sdn控制器向虚拟交换机发送所述服务的真实ip地址与虚拟ip地址之间的第一映射关系;和/或,所述注册信息中包含所述服务的域名,所述sdn控制器向域名系统dns发送所述服务的虚拟ip地址与所述服务的域名之间的第二映射关系。通过以上方法,将租户ip地址空间和云管理平台基础网络ip地址空间完全隔离,利于各自ip地址独立、解耦地进行规划和演进。将基础服务入口点分布式化,vpc间访问直接在租户区完成,提高了服务整体吞吐量以及可靠性。管理区ip地址在租户区被替换为动态变化的特殊ip地址,有助于管理区安全防护。在一个可能的设计中,所述虚拟ip地址是所述sdn控制器以服务为粒度分配给所述服务的,或者是所述sdn控制以租户虚拟私有云vpc为粒度分配给所述服务的。具体的,所述sdn控制器为所述服务分配虚拟ip地址;其中,所述sdn控制器以服务为粒度执行所述分配的,或者,所述sdn控制以租户虚拟私有云vpc为粒度执行所述分配的。其中,若所述sdn控制器以服务为粒度执行所述分配的,则所述sdn控制器对不同的服务分配不同的虚拟ip地址,例如,为服务a分配第一虚拟ip地址,为服务b分配第二虚拟ip地址,第一虚拟ip地址与第二虚拟ip地址不同。若所述sdn控制器以租户虚拟私有云vpc为粒度执行所述分配的,则不同服务在同一个vpc内虚拟ip地址不同,但vpc间可以重叠甚至相同。vswitch进行nat转换(即地址转换)为服务真实ip地址的过程时,需要将不同虚拟ip地址转换为同一个真实ip以及将同一个ip地址转换为不同的虚拟ip。sdn控制分配虚拟ip地址能够实现:在承载虚拟机的物理节点或物理服务器内,任意vm进行任意域名请求时得到虚拟ip地址必须唯一的,具体的,该唯一是指:若sdn控制器按照服务为粒度执行所述分配的,则虚拟ip地址在服务后端的服务器内是唯一的,若sdn控制器按照vpc为粒度执行所述分配的,则虚拟ip地址在租户vpc内是唯一的。任意vm可以是指跨租户的多个vm同时请求域名,任意域名请求可以指多个vm请求多个服务的域名。该虚拟ip地址仅在物理服务器内有效,服务器间可重用。通过以上设计,管理区ip地址在租户区被替换为动态变化的特殊ip地址,有助于管理区安全防护。在一个可能的设计中,所述虚拟ip地址符合以下至少一项:所述虚拟ip地址不用于所述虚拟机所在物理节点与外部互联网之间的路由网络;所述虚拟ip地址属于本地链路地址,或者说属于169.254.0.0/16网段,物理节点是指承载虚拟机的节点;虚拟ip地址在不同物理节点上可能不同,例如,同一个服务a的虚拟ip地址在物理节点1和物理节点2上是不同的,假如vm1在物理节点1上,vm2在物理节点2上,vm1和vm2访问服务a时查询到的服务a的虚拟ip地址是不同的;所述虚拟ip地址在不同物理节点上不同。虚拟ip地址在不同物理节点上也可能是相同的,因为虚拟ip地址在不同的物理节点上是可以重用的。将域名对应的服务ip地址替换为租户不使用的虚拟ip地址,并通过内部地址转换,在业务vm不感知此变化的情况下,达到租户和目标服务之间的通信的目的。在一个可能的设计中,所述sdn控制器向所述虚拟交换机发送以下任意一项或多项的组合:所述服务的真实ip地址与所述虚拟ip地址之间的转换规则、访问所述服务的发起端的源地址的转换规则和所述发起端的源端口的转换规则。在一个可能的设计中,所述源端口的转换规则包括:访问请求报文的源端口转换为用于标识虚拟机进程的端口的规则。进程可以包括一个或多个会话,vm可以发起多个访问请求,一个访问请求对应一个会话。在一个可能的设计中,访问请求报文的源端口转换为用于标识虚拟机进程的端口的规则可以理解为:访问请求报文的源端口转换为用于标识本服务器上不同vpc内vm发起的访问不同访问请求会话。所述源端口的转换规则包括:访问请求报文的源端口转换为用于标识本服务器上不同vpc内vm发起的访问不同访问请求会话。会话发起可能来自不同vpc内vm的不同进程。在一个可能的设计中,所述源地址的转换规则包括:所述访问请求报文的源地址转换为所述虚拟交换机的地址的规则;或者,所述访问请求报文的源地址转换为所述sdn控制器分配的用于与所述服务互通的地址。第二方面,提供一种服务访问方法,该方法的执行主体为虚拟交换机,该方法可以通过以下方式实现:虚拟交换机接收虚拟机发送的访问请求报文,所述访问请求报文用于请求对服务进行访问,所述访问请求报文的目的地址为所述服务的虚拟网络协议ip地址,所述虚拟ip地址与所述服务的真实ip地址不同;所述虚拟交换机对所述访问请求报文进行地址转换,所述地址转换包括以下至少一项:将所述访问请求报文的目的地址转换为所述服务的真实ip地址,将所述访问请求报文的源端口转换为用于标识所述虚拟机中进程的端口,可选的,访问请求报文的源端口转换为用于标识虚拟机进程的端口的规则可以理解为:访问请求报文的源端口转换为用于标识本服务器上不同vpc内vm发起的访问不同访问请求会话。所述虚拟交换机向所述服务转发进行所述地址转换后的访问请求报文。本申请(不仅限于第二方面,适用于所有方面的描述)所述的地址转换可以包括源地址的转换、目的地址的转换、源端口的转换和目的端口的转换中的至少一项。通过以上方法,在现有虚拟化系统的基础上,租户无法直接接触到服务的真实ip地址,这样租户可以使用服务的真实ip地址所在的内部大网ip的网络地址空间,提升了租户可使用的网络地址空间,简化了租户ip地址空间规划过程,无需考虑云内网络的地址空间,即租户和云内各自独立规划、独立演进。并且避免了因直接暴露内部大网ip地址而使之成为被攻击的目标。另一方面,将服务消费者和服务提供者隔离开,使得通信双方相互透明,解耦。再一方面,租户可以通过域名访问所有服务,无需额外的操作以及消耗,比如不需要申请弹性ip地址消耗公网带宽,也无需endpoint占用租户自有的ip地址,简化了使用过程,且更符合服务调用习惯。最后,租户不使用公网ip地址就能实现服务的访问,避免了流量绕路,保证了带宽和可靠性,为租户节省了成本,提升了租户业务的网络体验。在一个可能的设计中,所述虚拟ip地址符合以下至少一项:所述虚拟ip地址不用于所述虚拟机所在物理节点与外部互联网之间的路由网络;所述虚拟ip地址属于本地链路地址(locallinkaddress),本申请中本地链路地址也可以描述为169.254.0.0/16网段;虚拟ip地址在不同物理节点上可能不同,例如,同一个服务a的虚拟ip地址在物理节点1和物理节点2上是不同的,假如vm1在物理节点1上,vm2在物理节点2上,vm1和vm2访问服务a时查询到的服务a的虚拟ip地址是不同的。所述虚拟ip地址在不同物理节点上可能是不同的,也可能是相同的。可用于sdn控制器分配的虚拟ip地址段可能不同,比如某个服务器占用了一段虚拟ip地址用于其他目的;可用于sdn控制器分配的虚拟ip地址段也可能是相同的,具体到某个服务分配到的虚拟ip地址也可能相同或不同,比如sdn生成服务虚拟ip地址先后顺序不同。将域名对应的服务ip地址替换为租户不使用的虚拟ip地址,并通过内部地址转换,在业务vm不感知此变化的情况下,达到租户和目标服务之间的通信的目的。虚拟ip地址是临时分配的,虚拟机每次发送访问请求报文时查询到的服务的虚拟ip地址可能是不同的,服务不再对租户呈现其入口真实的ip地址,而该ip地址通常处于内部管理大网,从而在一定程度上起到了安全防护的作用。在一个可能的设计中,所述虚拟交换机获取所述虚拟ip地址与所述服务的真实ip地址之间的映射关系。可选的,通过获取流表的方式获取该映射关系。虚拟交换机可以根据该映射关系或者根据流表,将访问请求报文的目的地址转换为服务的真实ip地址。在一个可能的设计中,所述虚拟交换机获取以下任意一项或多项的组合:所述服务的真实ip地址与所述虚拟ip地址之间的转换规则、访问所述服务的发起端的源地址的转换规则和所述发起端的源端口的转换规则。在一个可能的设计中,所述虚拟交换机接收所述虚拟机发送的地址查询请求,所述地址查询请求中携带所述服务的域名;所述虚拟交换机向域名系统dns转发所述地址查询请求;所述虚拟交换机从所述dns接收携带与所述服务的域名对应的所述虚拟ip地址的报文,虚拟交换机将所述携带所述虚拟ip地址的报文转发给所述虚拟机。通过本设计,虚拟交换机通过dns域名查询得到了服务的虚拟ip地址,虚拟交换机将dns回应的报文转发给vm处理,能够使得vm根据dns协议解析后得到域名对应的虚拟ip地址。进一步的,如果租户想要访问服务时,可以通过域名直接从虚拟机访问服务,且租户无法直接接触到服务的真实ip地址,这样租户可以使用服务的真实ip地址所在的内部大网ip的网络地址空间,扩展了租户可使用的网络地址空间,将租户ip地址空间和云管理平台基础网络ip地址空间完全隔离,利于各自ip地址独立、解耦地进行规划和演进。在一个可能的设计中,所述虚拟交换机从所述服务接收数据报文,所述数据报文的源地址为所述服务的真实ip地址;所述虚拟交换机对所述数据报文进行第二地址转换,所述第二地址转换包括以下至少一项:将所述数据报文的源地址转换为所述服务的所述虚拟ip地址,将所述数据报文的目的端口转换为所述用于标识所述虚拟机中进程的端口;所述虚拟交换机向所述虚拟机发送进行所述第二地址转换后的数据报文。在两个流量方向上,均能实现租户可以使用服务的真实ip地址所在的内部大网ip的网络地址空间,提升了租户可使用的网络地址空间,使得网络地址得以更好的分配,并且规避了内部大网ip地址因暴露而被攻击的风险。第三方面,提供一种服务访问方法,该方法的执行主体可以是域名系统dns,该方法的具体实现步骤为:域名系统dns接收虚拟交换机发送的地址查询请求,所述地址查询请求中携带服务的域名,所述服务为虚拟机请求访问的服务;所述dns向所述虚拟交换机发送携带虚拟网络协议ip地址的报文,所述虚拟ip地址与所述服务的真实ip地址不同。通过以上方法,能够向租户提供服务的虚拟的ip地址,能够实现租户通过域名直接从虚拟机访问云服务或者其他租户的服务的目的,且租户无法直接接触到服务的真实ip地址,这样租户可以使用服务的真实ip地址所在的内部大网ip的网络地址空间,提升了租户可使用的网络地址空间,使得网络地址得以更好的分配,并且规避了内部大网ip地址因暴露而被攻击的风险。另一方面,将服务消费者和服务提供者隔离开,使得通信双方相互透明,解耦。再一方面,租户可以通过域名访问所有服务,无需分别创建endpoint占用租户本身的私有ip地址,节省租户ip地址的资源,且租户使用服务更符合服务调用习惯。最后,租户不适用公网ip地址就能实现服务的访问,避免了流量绕路,保证了带宽和可靠性,为租户节省了成本。在一个可能的设计中,所述dns被配置为为一个租户vpc在每个物理节点(或物理服务器)上单独提供服务。也就是,本申请为每个vpc在每个物理主机上提供一个dns系统。为实现本案变化对租户不可见的目的,所有dns系统需具备相同的ip地址而不冲突,其实现方法是:在vswitch中禁止从服务器外发往本地dns节点的地址解析协议(addressresolutionprotocol,arp)请求,同时禁止本服务器上vm发出的目的为dns节点ip的arp请求发往服务器外。现有技术中,同一网络内相同ip地址会发生冲突,传统dns在某个网络内一般是单实例或者主备的,其ip地址是唯一的。本申请实施例中dns仅对本主机内提供服务,而不接收其他主机的查询请求,但是,在查询失败的情况下还能够转发到系统dns服务进行进一步的查询。在一个可能的设计中,所述dns获取配置信息,所述配置信息用于配置所述服务的域名与所述虚拟ip地址之间的映射关系。在一个可能的设计中,所述虚拟ip地址符合以下至少一项:所述虚拟ip地址为所述虚拟机所在物理节点上的本地链路地址;所述虚拟ip地址不用于所述虚拟机所在物理节点与外部互联网之间的路由网络;所述虚拟ip地址属于本地链路网址,即169.254.0.0/16网段。将域名对应的服务ip地址替换为租户不使用的虚拟ip地址,并通过内部地址转换,在业务vm不感知此变化的情况下,达到租户和目标服务之间的通信的目的。第四方面,提供一种服务访问装置,具有实现上述第二方面或第二方面中任一种可能的设计中虚拟交换机行为的功能,其包括用于执行上述方法所描述的步骤或功能相对应的部件(means)。所述步骤或功能可以通过软件实现,或硬件(如电路)实现,或者通过硬件和软件结合来实现。在一种可能的设计中,上述服务访问装置包括一个或多个处理器和通信单元。所述一个或多个处理器被配置为支持所述服务访问装置执行上述第二方面或第二方面中任一种可能的设计中虚拟交换机相应的功能。例如,将所述访问请求报文中的目的地址转换为所述服务的真实ip地址。所述通信单元用于支持所述服务访问装置与其他设备通信,实现接收和/或发送功能。例如,接收虚拟机发送的访问请求报文,向所述服务的服务器转发转换目的地址后的访问请求报文。可选的,所述服务访问装置还可以包括一个或多个存储器,所述存储器用于与处理器耦合,其保存服务访问装置必要的程序指令和/或数据。所述一个或多个存储器可以和处理器集成在一起,也可以与处理器分离设置。本申请并不限定。所述通信单元可以是收发器,或收发电路。可选的,所述收发器也可以为输入/输出电路或者接口。所述装置还可以为通信芯片。所述通信单元可以为通信芯片的输入/输出电路或者接口。另一个可能的设计中,上述服务访问装置,包括收发器、处理器和存储器。该处理器用于控制收发器或输入/输出电路收发信号,该存储器用于存储计算机程序,该处理器用于运行存储器中的计算机程序,使得该装置执行上述第二方面或第二方面中任一种可能的设计中服务访问装置完成的方法。第五方面,提供一种服务访问装置,具有实现上述第三方面或第三方面中任一种可能的设计中域名系统dns行为的功能,其包括用于执行上述方法所描述的步骤或功能相对应的部件(means)。所述步骤或功能可以通过软件实现,或硬件(如电路)实现,或者通过硬件和软件结合来实现。在一种可能的设计中,上述服务访问装置包括一个或多个处理器和通信单元。所述一个或多个处理器被配置为支持所述服务访问装置执行上述第三方面或第三方面中任一种可能的设计中域名系统dns相应的功能。例如,接收虚拟交换机发送的地址查询请求,向所述虚拟交换机发送虚拟网络协议ip地址。所述通信单元用于支持所述服务访问装置与其他设备通信,实现接收和/或发送功能。例如,接收虚拟交换机发送的地址查询请求,向所述虚拟交换机发送虚拟网络协议ip地址。可选的,所述服务访问装置还可以包括一个或多个存储器,所述存储器用于与处理器耦合,其保存服务访问装置必要的程序指令和/或数据。所述一个或多个存储器可以和处理器集成在一起,也可以与处理器分离设置。本申请并不限定。所述通信单元可以是收发器,或收发电路。可选的,所述收发器也可以为输入/输出电路或者接口。所述装置还可以为通信芯片。所述通信单元可以为通信芯片的输入/输出电路或者接口。另一个可能的设计中,上述服务访问装置,包括收发器、处理器和存储器。该处理器用于控制收发器或输入/输出电路收发信号,该存储器用于存储计算机程序,该处理器用于运行存储器中的计算机程序,使得该装置执行上述第三方面或第三方面中任一种可能的设计中服务访问装置完成的方法。第六方面,提供一种服务访问装置,具有实现上述第一方面或第一方面中任一种可能的设计中软件定义网络sdn控制器行为的功能,其包括用于执行上述方法所描述的步骤或功能相对应的部件。所述步骤或功能可以通过软件实现,或硬件(如电路)实现,或者通过硬件和软件结合来实现。在一种可能的设计中,上述服务访问装置包括一个或多个处理器和通信单元。所述一个或多个处理器被配置为支持所述服务访问装置执行上述第一方面或第一方面中任一种可能的设计中软件定义网络sdn控制器相应的功能。例如,向虚拟交换机发送服务的真实网络协议ip地址与虚拟ip地址之间的第一映射关系,和/或,向域名系统dns发送所述服务的虚拟ip地址与所述服务的域名之间的第二映射关系。所述通信单元用于支持所述服务访问装置与其他设备通信,实现接收和/或发送功能。例如,向虚拟交换机发送服务的真实网络协议ip地址与虚拟ip地址之间的第一映射关系,和/或,向域名系统dns发送所述服务的虚拟ip地址与所述服务的域名之间的第二映射关系。可选的,所述服务访问装置还可以包括一个或多个存储器,所述存储器用于与处理器耦合,其保存服务访问装置必要的程序指令和/或数据。所述一个或多个存储器可以和处理器集成在一起,也可以与处理器分离设置。本申请并不限定。所述通信单元可以是收发器,或收发电路。可选的,所述收发器也可以为输入/输出电路或者接口。所述装置还可以为通信芯片。所述通信单元可以为通信芯片的输入/输出电路或者接口。另一个可能的设计中,上述服务访问装置,包括收发器、处理器和存储器。该处理器用于控制收发器或输入/输出电路收发信号,该存储器用于存储计算机程序,该处理器用于运行存储器中的计算机程序,使得该装置执行上述第一方面或第一方面中任一种可能的设计中服务访问装置完成的方法。第七方面,提供了一种系统,该系统包括上述第四方面、第五方面或第六方面中的至少两个方面提供的服务访问装置。第八方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括用于执行上述各方面中的方法的指令。第九方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括用于执行上述各方面中的方法的指令。附图说明图1a为本申请实施例中系统架构示意图;图1b为本申请实施例中主机内部件的互联关系示意图;图2为本申请实施例中服务访问方法过程示意图;图3为本申请实施例中配置域名的系统架构示意图;图4为本申请实施例中数据配置方法的流程示意图;图5为本申请实施例中服务访问方法之二的流程示意图;图6为本申请实施例中服务访问方法之三的流程示意图;图7为本申请实施例中服务访问装置结构示意图之一;图8为本申请实施例中服务访问装置结构示意图之二。具体实施方式本申请实施例提供一种服务访问方法及装置,方法和装置是基于同一发明相同或相似构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。本申请实施例的描述中,“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请中所涉及的至少一个是指一个或多个;多个,是指两个或两个以上。另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。下面将结合附图,对本申请实施例进行详细描述。图1a示出了本申请实施例适用的一种可能的系统的架构。参阅图1a所示,该系统100中包括:基础网络101、一个或多个云服务102、网络管理部件103、软件定义的网络(software-definednetworking,sdn)控制器104、一个或多个虚拟交换机(vswitch)105,一个或多个本地(local)域名系统(domainnamesystem,dns)106、一个或多个租户vpc107,租户vpc可以使用一个或多个虚拟机(virtualmachine,vm)108。图1a为一种示例性的结构,实际应用的系统中各个部件的数量可以任意设置。图1a中,vswitch有两个,用vswitch1和vswitch2来表示;租户vpc有两个,用租户vpc1和租户vpc2来表示。租户vpc1使用两个vm,用vm1和vm2来表示,租户vpc2使用两个vm,用vm3和vm4来表示。本申请中,租户vpc部署的主机对应不同的localdns106。主机又可称为物理节点、物理服务节点或物理服务器节点等。其中:基础网络101,通常是物理的vlan网络;云服务102,可以简称为服务,为云平台为租户vpc提供的服务和应用。云平台为各个服务提供负载均衡(loadbalance,lb)。若租户vpc使用云平台提供的lb,则云平台为该租户配置内部大网ip地址,该租户可以为其他租户提供云服务,可称作第三方租户服务,功能相当于云平台的服务,只是该租户服务的后端在租户vpc内。内部大网ip是指用于云服务管理面的网络中节点的ip地址,也可以是用于基础网络内各节点的ip地址。本申请中的服务是逻辑概念,只要是给租户或其他服务提供某种功能的,都可以叫服务。实现服务可以是一台服务器,也可以是常见的服务器集群。服务器是指物理上部署在数据中心的计算设备,通常是一台计算主机。网络管理部件103,用于负责全局ip地址、mac地址等网络资源的管理和预分配,对上层的部件或者用户portal提供api接口,该api接口用于资源的管理。还用于负责虚拟化网络模型管理和编排,通过api将虚拟化网络模型设定到sdn控制器104,由sdn控制器104发送到实际的物理设备和实体上实现网络模型。本申请中,网络管理部件103主要用于负责云服务信息的注册,其中云服务信息包括该服务对外呈现的域名、访问入口的ip等。网络管理部件103接受云服务102的域名注册,记录服务的ip与服务的域名之间的映射关系,访问权限等,并将这些信息下发至sdn控制器104。网络管理部件可以是独立的面向网络的管理系统,也可以是云管理系统的一部分。sdn控制器104,通过openflow、ovsdb、netconf等接口下发控制信息到网络设备,实现网络管理部件设定的虚拟网络模型,其中,所述的网络设备中包括软件实体设备。sdn控制器104用于为服务分配虚拟ip地址,并将服务的虚拟ip地址与服务的域名建立映射关系,以及建立服务的虚拟ip地址与服务的真实ip地址之间的映射关系,服务的真实ip地址是指服务的内部真实通信地址;将服务的虚拟ip地址与服务的域名之间的映射关系配置给本地域名系统106,以及根据服务的虚拟ip地址与服务的真实ip地址之间的转换关系生成转发流表,将服务的虚拟ip地址与服务的真实ip地址之间的映射关系及该转发流表下发给虚拟机所在的vswitch。需要说明的是,本申请中,为租户vpc内的vm所在的主机配置相应的本地dns实例,不同的主机对应不同的本地dns实例,且每个本地dns实例均需要配置所有已注册的云服务(即服务),具体的配置服务的本地链路地址与服务的域名之间的映射关系。本申请中的本地链路地址又称链路本地地址(link-localaddress),或称为连结本地位址,是计算机网络中一类特殊的地址,它仅供于在网段,或广播域中的主机相互通信使用。这类主机通常不能用于访问或者提供外部互联网服务,仅用于直连的两终端间的通信,不能跨网络设备进行通信,即不可路由。网络管理部件103和sdn控制器104可以是独立的软件,也可以合并为一个软件系统,但功能逻辑是分离的。虚拟交换机(vswitch)105,用于负责虚拟机108出入流量的转发,通过服务器物理网卡、外部网络与其他服务器上的虚拟机互联。虚拟交换机105作为服务与租户之间链路的转发面,是转发流表的执行主体。本地dns106,可以是分布式部署模式,也可以是集群模式。实现软件可以是通过dnsmasq等开源软件,也可以是商业软件,甚至是通过流表实现。支持租户vpc与主机的隔离映射,即不同的租户vpc映射不同的主机,支持服务的本地链路地址与服务的域名之间的映射关系的配置。dns被配置为为一个租户vpc在每个物理节点(或物理服务器)上单独提供服务。也就是,本申请为每个vpc在每个物理主机上提供一个dns系统。为实现本案变化对租户不可见的目的,所有dns系统需具备相同的ip地址而不冲突。现有技术中,同一网络内相同ip地址会发生冲突,传统dns在某个网络内一般是单实例或者主备的,其ip地址是唯一的。本申请实施例中dns仅对本主机内提供服务,而不接收其他主机的查询请求,但是,在查询失败的情况下还能够转发到系统dns服务进行进一步的查询。租户vpc107,向云服务发起服务请求,以请求服务或应用,由虚拟机来执行,硬件上通过虚拟机所属的物理服务节点(即主机节点或主机)来执行相关操作。租户vpc107,还可以向其他租户提供服务,这种情况下租户的虚拟机可以自建内置lb。以下结合图1a的描述,以本地dns为分布式部署模式为例,通过图1b来体现本申请中主机内的本地dns、虚拟交换机、租户vpc的vm之间的对应关系。如图1b所示,租户vpc1的虚拟机vm1和vm2部署在主机1上,租户vpc1的虚拟机vm3部署在主机2上,租户vpc2的虚拟机vm1和vm2部署在主机1上,租户vpc2的虚拟机vm3部署在主机2上。在主机1上为租户vpc1和租户vpc2配置不同的本地dns,在主机2上为租户vpc1和租户vpc2配置不同的本地dns。本申请中,每个租户vpc在每个主机均有一个对应的本地dns的实例,该实例为逻辑实例或者物理实例,这里所述的每个主机是指每个租户vpc的vm所在的主机。如图2所示,以下介绍一下本申请实施例提供的服务访问方法,以下方法中任意多个连续的步骤均可以形成本申请需要保护的方案。步骤201、服务向管理系统注册访问入口信息,管理系统接收并记录服务的访问入口信息。本申请中,访问入口信息也可以称为注册信息。具体的,管理系统注册各个服务的域名和服务的真实ip地址,其中,服务的真实ip地址通常为服务的lb的外部ip地址。例如,服务a的域名为servicea.abc.com,对应的真实ip地址为ip3,又例如,服务b的域名为vm3.abc.com,对应的真实ip地址为s2.3。服务b为租户区的服务。步骤202、sdn控制器向虚拟交换机发送第一映射关系,向本地dns发送第二映射关系。虚拟交换机接收sdn控制器发送的第一映射关系,本地dns接收sdn控制发送的第二映射关系。其中,第一映射关系为服务的真实ip地址与虚拟ip地址之间的映射关系,第二映射关系为服务的虚拟ip地址与服务的域名之间的映射关系。虚拟交换机为租户的虚拟机所在的物理节点的虚拟交换机,具体的,sdn控制器向虚拟交换机下发流表,流表用于将服务的虚拟ip地址转换为服务的真实ip地址。sdn控制器还可以向虚拟交换机下发服务的虚拟ip地址转换为真实ip地址的规则、发起端的源地址以及端口的转换规则。具体地,本申请中,sdn控制器为服务分配虚拟ip地址,可以以服务为粒度执行该分配,也可以以租户vpc为粒度执行该分配。sdn控制器还向虚拟交换机配置以下一个或多个规则:服务的真实ip地址与虚拟ip地址之间的转换规则,访问服务的发起端的源地址的转换规则,和访问服务的发起端的源端口的转换规则。具体地,虚拟交换机向服务转发来自虚拟机的访问请求报文,需要进行地址转换,其中,源地址转换规则包括:访问请求报文的源地址转换为虚拟交换机的地址的规则;或者,访问请求报文的源地址转换为sdn控制器分配的用于与服务互通的地址。该sdn控制器分配的用于与服务互通的地址并非虚拟交换机所有,可以认为是属于虚拟机的一个地址,是sdn控制器额外为虚拟机分配的用于在基础网络上用于与服务互通的地址。若为不同的虚拟机均分配该额外的地址,虽然能够区分来自不同虚拟机的访问请求报文,但是会浪费ip地址资源,本申请中,可以通过访问请求报文五元组中的源端口来区分报文。虚拟交换机接收来自虚拟机的访问请求报文,将访问请求报文中的源地址修改为上述额外分配的地址;或者将访问请求报文中的源地址修改为虚拟交换机的地址,并将源端口修改为用于标识虚拟机中进程的端口,进程是指一个会话,即一个访问服务请求的会话。一个虚拟机中可能有多个访问服务请求发生,即一个虚拟机中有多个进程,每一个进程对应一个端口号。但是一个主机节点可能有多个虚拟机,多个虚拟机均可使用该主机节点的端口,这样多个虚拟机发起服务访问请求时,访问请求报文中的源端口也可能会出现重复。根据虚拟交换机的网口和虚拟机的网口一一对应,虚拟交换机在接收到不同虚拟机发送的源端口相同的访问请求报文时,可以根据报文的入口来区分不同的虚拟机。本申请中,sdn控制器为不同的虚拟机入口分配源端口的转换规则,并将该转换规则配置给虚拟交换机。虚拟交换机根据该源端口的转换规则,对接收的访问请求报文进行源端口的转换,并向服务转发转换后的访问请求报文。步骤203、租户vpc的虚拟机向虚拟交换机发送地址查询请求,虚拟交换机接收该虚拟机发送的地址查询请求。具体的,租户可以通过域名对某一个服务进行访问,域名访问的方式将会触发虚拟机发出ip地址查询的dns流程。租户vpc的虚拟机向虚拟交换机发送的地址查询请求中携带该服务的域名。步骤204、虚拟交换机向域名系统dns发送该地址查询请求,这里的dns可以指本地dns,本地dns接收虚拟交换机发送的地址查询请求。具体的,虚拟交换机根据地址查询请求报文入接口确定所属vpc,根据该地址查询请求报文协议端口确定属于dns查询报文,从而将该地址查询请求报文转发到vpc在该主机上的本地dns实例。步骤205、本地域名系统localdns接收到地址查询请求后,向虚拟交换机返回携带该服务的虚拟ip地址的报文,虚拟交换机接收携带该服务的虚拟ip地址的报文。具体的,localdns查询本地存储的服务域名与服务地址之间的映射关系(或对应关系),查询到该服务的域名对应的服务的虚拟ip地址,该虚拟ip地址不是该服务的真实ip地址,本申请中的虚拟ip地址为区别于基础网络地址和租户vpc的虚拟机地址的任意地址,虚拟ip地址符合以下至少一项:虚拟ip地址不用于虚拟机所在物理节点与外部互联网之间的路由网络;虚拟ip地址属于169.254.0.0/16网段;所述虚拟ip地址在不同物理节点上不同;虚拟ip地址为动态分配的ip地址。其中,任一物理节点包括虚拟机所在物理节点以及其他物理节点。动态分配的ip地址可以但不限于根据系统根据各个物理节点上租户发起服务访问的数量等因素来确定。步骤206、虚拟交换机向虚拟机返回携带该服务的虚拟ip地址的报文,虚拟机接收虚拟交换返回的携带该服务的虚拟ip地址的报文。步骤207、租户vpc的虚拟机向虚拟交换机发送访问请求报文,虚拟交换机接收虚拟机发送的访问请求报文,访问请求报文用于请求对某一个服务进行访问。其中,该访问请求报文中携带源地址和目的地址,目的地址为该服务的虚拟ip地址,源地址可以为虚拟机的真实ip地址,源地址也可以为sdn控制器分配的用于与服务互通的地址,sdn控制器分配的这个地址是属于虚拟机的。步骤208、虚拟交换机针对接收到的访问请求报文进行地址转换。具体的,虚拟交换机将访问请求报文中的目的地址转换为服务的真实ip地址。将访问请求报文中的源ip地址转换为该虚拟交换机的ip地址,且将访问请求报文中的源端口修改为标识该虚拟机的端口号。当多个虚拟机或多个租户vpc共享同一个虚拟交换机时,可以通过端口号来区分不同的租户(即租户vpc)。地址转换后的访问请求报文中携带的五元组来标识本次访问,通过将源端口修改为标识该虚拟机的端口号,来实现转换后的五元组能够区分多个租户vpc的vm具有相同ip地址的情况。步骤209、虚拟交换机将地址转换后的访问请求报文发送给该服务。该服务接收虚拟交换机发送的访问请求报文。具体的,虚拟交换机将地址转换后的访问请求报文发送给该服务的一个后端节点,例如发送给该服务的入口节点(lb)。如上所述,该服务可能是云平台提供的服务,也可能是租户区提供的服务。若该租户请求访问的服务时云平台提供的服务,那么虚拟交换将地址转换后的访问请求报文发送给云平台提供的lb;若该租户请求访问的服务是其它租户提供的,那么虚拟交换将地址转换后的访问请求报文发送给租户自建的lb,即虚拟交换机将访问请求报文发送给租户服务的虚拟交换机(记为第二虚拟交换机)。可选的,租户服务的虚拟交换机(第二虚拟交换机)将接收到的访问请求报文中的源地址修改为另一个虚拟ip地址,虚拟ip地址的定义可参照上文描述。通过对源地址的转换,能够使得租户服务的虚拟机可以使用与内网重叠的网段作为其私网ip地址,同样能够提高租户ip地址的空间,使得地址分配更加灵活。上文描述了租户如何实现服务的访问的过程,同样的构思,在反向流量中,即当服务向租户返回流程时,也可以采用类似的地址转换,简单来说,虚拟交换机从服务的服务器接收数据报文,数据报文的源地址为服务的真实ip地址,虚拟交换机将数据报文的源地址转换为服务的虚拟ip地址,将数据报文的目的端口转换为用于标识虚拟机中进程的端口。虚拟交换机向虚拟机发送转换地址后的数据报文。转换机制与虚拟机向服务的流量处理过程类似,不再赘述。当云服务主动访问租户或者回应租户请求时,解决了租户ip地址是重叠的问题,使得服务发给某个ip地址的报文时能够正确区分是哪个租户的vm。通过以上方法,在现有虚拟化系统的基础上,能够实现租户通过域名直接从虚拟机访问云服务或者其他租户的服务的目的,且租户无法直接接触到服务的真实ip地址,这样租户可以使用服务的真实ip地址所在的内部大网ip的网络地址空间,提升了租户可使用的网络地址空间,使得网络地址得以更好的分配,并且规避了内部大网ip地址因暴露而被攻击的风险。另一方面,将服务消费者和服务提供者隔离开,使得通信双方相互透明,解耦。再一方面,租户可以通过域名访问所有服务,无需分别创建endpoint占用租户本身的私有ip地址,节省租户ip地址的资源,且租户使用服务更符合服务调用习惯。最后,租户不使用公网ip地址就能实现服务的访问,避免了流量绕路,保证了带宽和可靠性,为租户节省了成本。基于上述描述,以下介绍一下本申请sdn控制器向本地dns配置服务的域名的过程。对租户呈现的dns服务器的地址一般有两种情况。一种情况是呈现云平台内部大网ip地址,另一种情况是呈现外部公网ip地址(如114.114.114.114)。第一种情况通常是云平台默认呈现给租户该云平台的dns域名服务器的ip地址,第二种情况可能是云平台默认指定的,也可以是租户指定的域名服务器地址。本申请中,如图3所示,本地dns通过私有dns服务器实现域名服务,本申请中的私有dns服务器为每个租户vpc(或子网)在主机(即物理服务器节点)提供独立隔离的域名空间,并将dns域名配置到对应的localdns。然而,对于以下两种场景,仍要求能够通过域名访问云服务。情形一是已经上线在用的租户的域名服务器已经设定。情形二是租户指定域名服务器的情况。针对情形一,需要sdn控制器下发流表到vswitch将访问内部云dns的流量重定向到localdns,并指定localdns查找无果后转发到云dns继续查找。具体来说,租户侧dns服务器地址和localdns地址不同,需将dns查询报文目的地址通过网络地址转换(networkaddresstranslation,nat),重定向到localdns,完成查询。当然,这种转换也可以借助iptables规则实现。针对情形二,则需要租户指定dns域名服务器时将localdns地址也指定为其中之一的地址,且系统需将localdns的转发开关关闭,即查询不到不再转发到其他dns服务器查询。显然,两种情形下,都需要客户端请求到设置伪域名项的localdns服务器进行查询,但情况一中租户在vm内实际看到的dns服务器ip地址仍然是原有的,而非localdns的地址。基于以上描述,如图4所示,本申请实施例可通过以下方法来进行数据配置。步骤401、服务将访问入口信息注册到网络管理部件,网络管理部件接收服务发送的访问入口信息,并对服务的访问入口信息进行注册。其中,访问入口信息包括服务的域名和ip地址,该ip地址通常为服务的负载均衡器的外部ip地址(即外部承载的ip地址)。本步骤的注册过程可以是自动化的过程,或者是人工自助进行配置的过程。该ip地址与租户虚拟机所在的主机的ip地址是可路由实现直接互通的,租户虚拟机所在的主机即租户虚拟机所在物理服务器节点。步骤402、网络管理部件将服务的访问入口信息发给sdn控制器,sdn控制器接收网络管理部件发送的访问入口信息。如上所述,网络管理部件和sdn控制器可以合并为一个软件系统,那么本步骤关于访问入口信息的传递可以认为是在两个逻辑功能模块之间进行传递。步骤403、网络管理部件或sdn控制器为服务分配本地链路地址。本步骤的实现可以由网络管理部件来实现,或者由sdn控制器来实现,或者由二者共同所在的软件或硬件来实现。具体的,网络管理部件或sdn控制器在租户vpc的vm所在主机上,为服务分配本地链路地址,该本地链路地址可以与vm的地址进行内网互通。若存在多个服务,则分别为每个服务分配本地链路地址,以实现租户对各个服务的访问。网络管理部件或sdn控制器在为服务分配本地链路地址之后,建立本地链路地址与服务域名的映射关系。步骤404、网络管理部件或sdn控制器向本地dns配置服务的域名,向租户vpc的vm所在主机的vswitch下发流表。本地dns接收网络管理部件或sdn控制器配置的服务的域名,租户vpc的vm所在主机的vswitch接收网络管理部件或sdn控制器下发的流表。具体地,网络管理部件建立服务的虚拟ip地址与服务的域名的映射关系,向本地dns发送服务的虚拟ip地址与服务的域名的映射关系,本地dns接收网络管理部件发送的该映射关系。网络管理部件可以直接发送该映射关系,也可以通过sdn控制器来传递该映射关系。即本步骤可以由网络管理部件执行,也可以由sdn控制器来执行。本申请中服务的域名可以简述为服务域名,本地dns的服务器在实现上有统一系统级的dns和租户级的dns之分。通常来说,云平台提供商所提供的服务会将其服务域名注册到统一系统级的dns,而第三方租户服务则在小范围使用时常常将其服务域名注册到租户私有的dns服务器。当然,根据业务需要,系统服务域名也会被配置到租户私有的dns服务器。而第三方租户服务也可以将其域名注册到系统域名服务器,从而可以给所有其他租户使用其服务。基于业务场景模式和云平台提供商所提供dns服务的能力,本申请中租户通过本地dns访问服务的方法可以适用于以上描述的dns的实现场景。sdn控制器向本地dns配置服务的域名,并建立服务域名与服务的虚拟ip地址之间的映射关系,例如,服务a的域名为servicea.abc.com,真实地址为10.10.10.3,该域名与服务a的注册的域名是一致的,sdn控制器为服务a分配的本地链路地址为169.254.10.3,该地址169.254.10.3是sdn控制器根据一定算法预先分配的,或者临时分配的,该地址169.254.10.3在对应的主机上(即物理服务器上)是唯一的,且仅在该物理服务器上有效。sdn控制器向本地dns配置服务的域名的过程可参见上文中的相关描述,在此不再赘述。以下描述sdn控制器向vswitch下发流表的过程。当租户vpc的vm通过域名访问服务时,本地dns会向租户vpc的vm返回服务的虚拟ip地址,例如地址169.254.10.3,而不是真实地址10.10.10.3,服务的虚拟ip地址可认为是服务的虚拟ip地址,真实地址可认为是该服务的真实可访问的入口ip地址,流表用于将服务的虚拟ip地址转换为真实可访问的入口ip地址,打通租户的vm到服务的通信渠道,并且不对该租户显示服务的真实的入口ip地址。此外,流表还可以针对一些协议支持的常见检测手段进行应答。例如,在租户vm查询服务的虚拟ip地址169.254.10.3后,流表针对租户vm对该ip地址的ping、traceroute,可直接应答,或者探测真实活性后应答,甚至转发到真实可访问的入口均可,这主要取决于云平台本身的安全、运营运维策略。以下给出一种可能的流表的实现形式。在实现ip地址转换时,sdn控制器所下发的流表大致如下://没有加入conntrack的报文,执行ct加入conntrack,执行nat,并且发送到table1table=0,priority=10,tcp,ct_state=-trk,action=ct(nat,table=1)//2口的报文,并且是新连接的则,执行ct的commit,创建连接,执行nat规则,并且报文发给1口table=1,in_port=2,tcp,ct_state=+trk+new,action=ct(nat(src=ip1:20000-50000),nat(dst=ip2),commit),1本申请支持多个租户的服务访问,sdn控制器为多个租户分配服务的虚拟ip地址可能会出现ip地址重叠,在流表中可以引入空间(zone)来区分不同的租户。在一个可能的实现方式中,针对openstack架构下vswitch虚拟网络的具体情况,可在vm出口的地址表(iptables)中将源ip地址转换为169.254.*的网段,并保证主机(物理服务器)上的唯一性,则多租户将在该物理服务器上转换为单租户模型。具体的iptables规则可以为:iptables-tnat-apostrouting-oeth0-jsnat--to-source169.254.x.y其中,ip地址由sdn控制器管理和分配,并保证在物理服务器上唯一,该ip地址属于虚拟ip地址段,主要是为了避免源ip地址重叠,将重叠网络先转换为单网络,且该ip地址和前述为服务分配的虚拟ip地址不能冲突。通过以上数据配置,vm即可开始通过域名访问服务。当vm发出dns请求,查询域名servicea.abc.com对应服务的ip地址时,vswitch将报文直接转发到localdns即可进行查询,而localdns也会返回169.254.x.y作为该服务对应的ip地址用于通信。若已部署vm或者租户指定了dns服务器,则报文将匹配到对应的流表或者iptables规则,nat之后查询localdns服务器。对租户vm来说,整个过程是正常的dns流程。基于上述服务访问方法之一,以下具体描述一下服务访问方法之二和服务访问方法之三。服务访问方法之二和服务访问方法之三主要是基于服务访问方法之一的配置流程之后进行的访问流程。如图5所示,本申请实施例提供的服务访问方法之二如下所述。图5示出了服务访问方法之二中的报文地址转换和报文流向。具体为:租户vpc的虚拟机向连接的虚拟交换机发送报文,虚拟交换机接收租户vpc的虚拟机发送的报文。例如,虚拟交换机为vm1,租户vpc为租户vpc1。该报文的源地址为虚拟机的地址,例如,源地址为s1.2。该报文的目的ip地址为服务的虚拟ip地址,即sdn控制器在为服务分配的本地链路地址。例如,目的ip地址为169.254.x.y。该报文的目的mac地址为网关ip对应的mac地址。虚拟交换机接收到报文后,进行网络地址转换。网络地址转换包括网络源地址转换和网络目的地址转换。即,将源地址转换为该虚拟交换机的地址,例如,该虚拟交换机的地址为ip1:nnnnn,虚拟交换机将s1.2转换为ip1:nnnnn。将目的地址转换为服务的真实可访问的入口ip地址,例如,服务的真实可访问的入口ip地址为ip3,将169.254.x.y转换为ip3。具体的,网络地址转换的过程中对应的流表或者iptables的功能如下所述。其一,将目的ip地址映射为服务的真实的可访问的入口ip地址,即服务所对应的内网ip地址。其二,为解决多租户的问题,源ip地址要映射为不重叠的169.254.0.0/16网段的ip地址,或者用掩盖和空间(mark+zone)的方式解决。其三,在报文发出去之前,将源ip地址转换为服务所在的内网可路由的ip地址,例如ip1,且此处类似多节点通过单点访问外部网络,所以也需要进行网络地址端口转换(networkaddressporttranslation,napt)转换。此后报文直接在基础网络内路由转发即可,而云服务入口也无需做特殊动作,直接接收报文数据包即可。在一个可能的实现方式中,针对openstack架构下vswitch虚拟网络的具体情况,在qbr***添加规则将源ip地址转换为169.254.*.*,同时将目的ip地址转换为ip3。可能的iptables规则如下:而在图中br-int完成源ip地址转换为ip1。由于在之前报文的地址转换中已将源ip全部转换为169.254.*.*,且各自不同,所以,不用考虑多租户的问题,仅snat,且需要转换端口,以便不同租户不同虚拟机不同进程同时访问。这种分步处理较容易理解和维护,但也可以直接在br-int中用纯流表实现。返回的报文在vswitch中做反向转换即可,结合contrack这种转换是很容易实现的。如图6所示,本申请实施例提供的服务访问方法之三如下所述。服务访问方法之三的应用场景是,租户访问的服务位于租户区,即第三方租户服务。部署在租户区的服务与部署在云平台上的服务在后端的集群是类似的。图6示出了服务访问方法之三中的报文地址转换和报文流向。租户vpc的虚拟机vm为vm2,vm2的地址为s1.2,vm2所在虚拟交换机为vswitch1,vswitch1的ip地址为ip1。租户服务的虚拟机为vm3,vm3的地址为s2.3,vm3所在的虚拟交换机为vswitch2,vswitch2的ip地址为ip2。租户vpc的虚拟机vm2向连接的虚拟交换机vswitch1发送报文,虚拟交换机vswitch1接收租户vpc的虚拟机vm2发送的报文。该报文的源地址为虚拟机的地址,例如,源地址为s1.2。该报文的目的ip地址为服务的虚拟ip地址,本申请中服务的虚拟ip地址即服务的虚拟ip地址。例如,目的ip地址(即服务的虚拟ip地址)为169.254.x.y。该报文的目的mac地址为网关ip对应的mac地址。虚拟交换机vswitch1接收到报文后,进行网络地址转换。具体的,将源地址转换为该虚拟交换机vswitch1的地址,例如,将s1.2转换为ip1:nnnnn。将目的地址转换为ip2,即将169.254.x.y转换为ip2,将源端口修改为与vm2对应的端口号。vswitch1向vswitch2发送报文(源地址为ip1:nnnnn,目的地址为ip2)。vswitch2接收到报文后,处理过程如下。租户服务入口lb有两个来源,一种是使用云平台提供的lb服务,即lb本身具备内网ip地址,服务入口仍然为内部大网,另一种是租户自己构建,即入口为租户自己vpc内的ip地址。从网络角度看,两种情况的共同点是入口lb节点或vswitch处收到报文的源ip地址为ip1。如果不改变内网ip1,任由报文进入后端节点,则租户vpc在发布服务供其他租户访问时,将无法使用和内网重叠的网段作为其私网ip地址。一种可能的设计方法是将vswitch2将报文的源ip地址也进行转换(地址转换即地址修改)。如果租户服务入口为系统提供的lb,则该lb不能使用服务器直接回应的方式部署,即lb发往后端的报文中其源ip地址应该为lb的selfip(双臂模式)或者vip(单臂模式)。其目的ip地址自然也将由lb在将负载发往特定后端时更改为真实服务器的ip地址。如果租户服务入口是租户自己的vm,则报文在vswitch2中要进行源地址转换,例如将ip1转换为169.254.w.z,而目的地址ip2则要映射为地址s2.3。类似的,这种地址转换也可以用iptables规则或者流表实现,可参照上文相关描述。169.254.w.z与169.254.x.y类似,均可理解为虚拟ip地址,虚拟ip地址的释义可参照上文相关描述。通过vswitch2对源地址的转换,能够使得vm3可以使用与内网重叠的网段(例如ip1)作为其私网ip地址,同样能够提高租户ip地址的空间,使得地址分配更加灵活。综上所述,本申请实施例中,租户或租户服务系统通过域名直接使用云平台服务或其他租户服务的使用方式,将域名对应的服务ip地址替换为租户不使用的虚拟ip地址,并通过内部地址转换,在业务vm不感知此变化的情况下,达到租户和目标服务之间的通信的目的。同时,由于云服务呈现的ip地址是临时分配的,不同vpc下vm在不同主机的每次调用虚拟ip地址都可能不同,即服务不再对租户呈现其入口真实的ip地址,而该ip地址通常处于内部管理大网,从而在一定程度上起到了安全防护的作用。此外,如果租户不具备访问某服务的权限,可通过在dns不配置其域名达到目的。如果要在vm访问时进行鉴权,通过报文入口也可以得到其所属vpc和租户,从而可以很容易进行权限鉴定。基于上述方法实施例的同一发明构思,如图7所示,本申请实施例还提供了一种服务访问装置700,该服务访问装置包括处理单元701、发送单元702和接收单元703。当该服务访问装置700用于执行上述方法实施例中虚拟交换机执行的方法时,处理单元701用于将访问请求报文中的目的地址转换为服务的真实ip地址,接收单元703用于接收虚拟机发送的访问请求报文,发送单元702用于向服务发送转换目的地址后的访问请求报文。当然处理单元701、发送单元702和接收单元703还可以用于执行上述方法实施例中虚拟交换机执行的其它相关步骤,在此不再赘述。当该服务访问装置700用于执行上述方法实施例中域名系统dns执行的方法时,处理单元701用于调用接收单元703接收信号以及调用发送单元702发送信号,接收单元703用于接收虚拟交换机发送的地址查询请求,发送单元702用于向虚拟交换机发送虚拟ip地址。当然处理单元701、发送单元702和接收单元703还可以用于执行上述方法实施例中域名系统dns执行的其它相关步骤,在此不再赘述。当该服务访问装置700用于执行上述方法实施例中软件定义网络sdn控制器执行的方法时,处理单元701用于调用接收单元703接收信号以及调用发送单元702发送信号,发送单元702用于接收向虚拟交换机发送服务的真实网络协议ip地址与虚拟ip地址之间的第一映射关系,和/或,发送所述服务的虚拟ip地址与所述服务的域名之间的第二映射关系。当然处理单元701、发送单元702和接收单元703还可以用于执行上述方法实施例中软件定义网络sdn控制器执行的其它相关步骤,在此不再赘述。基于与上述方法实施例的同一发明构思,如8所示,本申请实施例还提供了一种服务访问装置800,该服务访问装置800包括:收发器801、处理器802和存储器803。存储器803为可选的。存储器803用于存储处理器802执行的程序。当该服务访问装置800用于实现上述方法实施例中虚拟交换机执行的操作时,处理器802用于调用一组程序,当程序被执行时,使得处理器802执行上述方法实施例中虚拟交换机执行的操作。图7中的功能模块发送单元702、接收单元703可以通过收发器801来实现,处理单元801可以通过处理器802来实现。当该服务访问装置800用于实现上述方法实施例中域名系统dns执行的操作时,处理器802用于调用一组程序,当程序被执行时,使得处理器802执行上述方法实施例中域名系统dns执行的操作。当该服务访问装置800用于实现上述方法实施例中软件定义网络sdn控制器执行的操作时,处理器802用于调用一组程序,当程序被执行时,使得处理器802执行上述方法实施例中软件定义网络sdn控制器执行的操作。其中,处理器802可以是中央处理器(centralprocessingunit,cpu),网络处理器(networkprocessor,np)或者cpu和np的组合。处理器802还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程逻辑门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。存储器803可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);存储器803也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器803还可以包括上述种类的存储器的组合。在本申请上述实施例提供的通信方法中,所描述的终端和网络设备所执行的操作和功能中的部分或全部,可以用芯片或集成电路来完成。为了实现上述图7和图8所述的装置的功能,本申请实施例还提供一种芯片,包括处理器,用于支持该装置实现上述方法实施例中虚拟交换机、dns和sdn所涉及的功能。在一种可能的设计中,该芯片与存储器连接或者该芯片包括存储器,该存储器用于保存该装置必要的程序指令和数据。本申请实施例提供了一种计算机存储介质,存储有计算机程序,该计算机程序包括用于执行上述实施例提供的方法实施例的指令。本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例提供的方法实施例。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1