域名解析的方法、虚拟交换机和分布式DNS系统技术方案

技术编号:21458343 阅读:25 留言:0更新日期:2019-06-26 06:16
本申请提供了一种域名解析方法,该方法应用于第一虚拟交换机,包括:从第二虚拟端口接收与其连接的第一虚拟机发送的携带有所述第一域名的第一DNS请求报文,根据第一流表项将第一DNS请求报文从第二虚拟端口转发至所述第一虚拟端口,再从第一虚拟端口获取第一虚拟机发送的第一DNS应答报文,将第一DNS应答报文发送至第二虚拟端口,该第一DNS应答报文携带所述第一域名的第一IP地址。本申请提供的技术方案可以根据流表控制DNS协议走向,使得虚拟机可以在本主机上实现域名解析服务。

【技术实现步骤摘要】
域名解析的方法、虚拟交换机和分布式DNS系统
本申请涉及网络通信
,并且更具体地,涉及一种域名解析的方法、虚拟交换机和分布式DNS系统。
技术介绍
互联网中的计算机是通过互联网协议(Internetprotocol,IP)地址进行计算机之间的通信。随着数据中心的规模越来越大,互联网中的计算机越来越多,使用域名(domainname)来代替IP地址作为计算机之间服务访问的入口已经成为主流的访问方式。域名解析服务器(domainnameserver,DNS)是为了方便记忆而专门建立的一套地址转换系统,是域名和与之相对应的IP地址之间进行的转换的一种服务器,可以将域名重新转换为IP地址以解析消息的域名。传统的域名解析方案中,虚拟化的DNS服务通常集中部署在独立的物理主机上。主机上的虚拟机(virtualmachine,VM)需要通过该主机上的虚拟交换机以及物理交换机将DNS请求报文发送至DNS所在主机,并经过DNS所在主机中的虚拟路由器、虚拟交换机将DNS请求报文发送至DNS服务所在的VM进行域名解析。上述方案中由于DNS与发送DNS请求报文的VM之间的交互报文需要通过两个虚拟交换机和至少一个物理交换机。一方面,其路径较长,任意一点的故障都会导致DNS的服务不可用,从而导致VM无法进行域名解析。另一方面,由于DNS集中部署在一个主机上,所有VM的DNS请求报文均发送至DNS所在的主机。不仅会造成多个VM进行域名解析的高时延,而且如果DNS所在的主机故障或者不可用,则会导致多个VM无法进行域名解析。因此,如何可以提高域名解析的效率,降低域名解析的时延成为业界亟需要解决的问题。
技术实现思路
本申请提供一种域名解析的方法、虚拟交换机和分布式DNS系统,可以根据流表控制DNS协议走向,使得虚拟机可以在本主机上实现域名解析服务。第一方面,提供了一种域名解析的方法,该方法应用于第一虚拟交换机,第一虚拟交换机的第一虚拟端口与第一虚拟机连接,第一虚拟机记录有第一域名与第一IP地址之间的第一对应关系,第一虚拟交换机的第二虚拟端口与第二虚拟机连接,该方法包括:第一虚拟交换机从该第二虚拟端口接收该第二虚拟机发送的携带有该第一域名的第一DNS请求报文。该第一虚拟交换机根据第一流表项将该第一DNS请求报文从该第二虚拟端口转发至该第一虚拟端口,该第一流表项用于指示该第一虚拟交换机将从该第二虚拟端口接收到的类型为DNS请求报文的报文转发至该第一虚拟端口。该第一虚拟交换机从该第一虚拟端口获取该第一虚拟机发送的第一DNS应答报文,将该第一DNS应答报文发送至该第二虚拟端口,该第一DNS应答报文携带该第一域名的第一IP地址。上述技术方案中,各个主机上的VM均可以为其上运行的VM提供域名解析服务,多个主机之间可以并行运行,从而可以提高域名解析的效率,降低域名解析的时延。在第一方面的第一种可能的实现方式中,该第一虚拟交换机根据第二流表项将该第一DNS应答报文发送至该第二虚拟端口,该第二流表项用于指示该第一虚拟交换机将从该第一虚拟端口接收到的类型为DNS应答报文的报文转发至该第二虚拟端口。根据第一方面或第一方面的第一种可能的实现方式中,该方法还包括:第一虚拟交换机从第二虚拟端口接收第二虚拟机发送的携带有第二域名的第二DNS请求报文,第一虚拟交换机还记录有第三流表项和第六流表项,第三流表项用于指示第一虚拟交换机将从第二虚拟端口接收到的类型为DNS请求报文的报文发送至第五虚拟端口,第六流表项用于指示第一虚拟交换机将从第五虚拟端口接收到的类型为DNS应答报文的报文转发至第二虚拟端口。该第一虚拟交换机将该第一流表项更新为该第三流表项。该第一虚拟交换机根据该第三流表项将该第二DNS请求报文发送至该第五虚拟端口,该第五虚拟端口与第二报文传输模块连接,该第二报文传输模块用于将第二DNS请求报文封装到第一覆盖overlay报文,并将第一overlay报文从第五虚拟端口发送至第一报文传输模块。上述技术方案中,在主机上的VM不能为该主机上运行的VM提供域名解析的情况下,本申请还可以通过其他主机上的VM为本主机上的VM提供域名解析服务,可以提高域名解析的效率。在根据第一方面或第一方面的第一种可能的第一种实现方式中,该方法还包括:该第一虚拟交换机从该第五虚拟端口接收该第二报文传输模块发送的第二overlay报文,该第二overlay报文中封装有携带该第二IP地址的第二DNS应答报文,第二DNS应答报文为第三虚拟机通过第三虚拟端口发送至第二报文传输模块,第三虚拟机记录有第二域名与第二IP地址之间的第二对应关系。第一虚拟交换机从第二overlay报文解封装出第二DNS应答报文,将第二DNS应答报文发送至第五虚拟端口。第一虚拟交换机根据第六流表项将第二DNS应答报文从第五虚拟端口发送至第二虚拟端口。在根据第一方面至在根据第一方面或第一方面的第一种可能的第一种实现方式中,在该第一虚拟交换机从该第二虚拟端口接收该第一DNS请求报文之前,该方法还包括:该第一虚拟交换机从该第二虚拟端口接收携带有该第一虚拟机的IP地址的地址解析ARP请求报文,该ARP请求报文用于请求该第一虚拟机的MAC地址。该第一虚拟交换机根据第七流表项将该ARP请求报文从该第二虚拟端口转发至该第一虚拟端口,其中,该第七流表项用于指示该第一虚拟交换机将从该第二虚拟端口接收到类型为ARP请求报文的报文发送至该第一虚拟端口。该第一虚拟交换机从第一虚拟端口接收该第一虚拟机发送的ARP应答报文,该ARP应答报文携带有该第一虚拟机的MAC地址。该第一虚拟交换机根据第八流表项将从该第一虚拟端口接收到的该ARP应答报文发送至该第二虚拟端口,其中,该第八流表项用于指示该第一虚拟交换机将从该第一虚拟端口接收到的类型为ARP应答报文的报文发送至该第二虚拟端口。第二方面,本申请提供一种第一虚拟交换机,该第一虚拟交换机的第一虚拟端口与第一虚拟机连接,该第一虚拟机记录有第一域名与第一IP地址之间的第一对应关系,该第一虚拟交换机的第二虚拟端口与第二虚拟机连接,该第一虚拟交换机包括:接收模块,用于从该第二虚拟端口接收该第二虚拟机发送的携带有该第一域名的第一DNS请求报文。发送模块,用于根据第一流表项将该第一DNS请求报文从该第二虚拟端口转发至该第一虚拟端口,该第一流表项用于指示该第一虚拟交换机将从该第二虚拟端口接收到的类型为DNS请求报文的报文转发至该第一虚拟端口。该接收模块,用于从该第一虚拟端口获取该第一虚拟机发送的第一DNS应答报文,将该第一DNS应答报文发送至该第二虚拟端口,该第一DNS应答报文携带该第一域名的第一IP地址。在第二方面的第一种可能的实现方式中,该发送模块用于根据第二流表项将该第一DNS应答报文发送至该第二虚拟端口,该第二流表项用于指示该第一虚拟交换机将从该第一虚拟端口接收到的类型为DNS应答报文的报文转发至该第二虚拟端口。根据第二方面或第二方面的第一种可能的实现方式中,该第一虚拟交换机还包括更新模块,封装模块。该接收模块,用于从第二虚拟端口接收第二虚拟机发送的携带有第二域名的第二DNS请求报文,第一虚拟交换机还记录有第三流表项和第六流表项,第三流表项用于指示第一虚拟交换机将从第二虚拟端口接收到的类型为DNS请本文档来自技高网
...

【技术保护点】
1.一种分布式域名解析服务器DNS系统,其特征在于,包括:第一主机,包括:第一虚拟机,与第一虚拟交换机的第一虚拟端口连接,所述第一虚拟机记录有第一域名与第一IP地址之间的第一对应关系;第二虚拟机,与所述第一虚拟交换机的第二虚拟端口连接,向所述第二虚拟端口发送携带有所述第一域名的第一DNS请求报文;所述第一虚拟交换机,用于根据第一流表项将所述第一DNS请求报文从所述第二虚拟端口转发至所述第一虚拟端口,所述第一流表项用于指示所述第一虚拟交换机将从所述第二虚拟端口接收到的类型为DNS请求报文的报文转发至所述第一虚拟端口;所述第一虚拟机,用于从所述第一虚拟端口获取所述第一DNS请求报文,根据所述第一DNS请求报文携带的所述第一域名从所述第一对应关系获取所述第一IP地址,发送携带所述第一IP地址的第一DNS应答报文至所述第一虚拟端口;所述第一虚拟交换机,从所述第一虚拟端口获取所述第一DNS应答报文,将所述第一DNS应答报文发送至所述第二虚拟端口。

【技术特征摘要】
1.一种分布式域名解析服务器DNS系统,其特征在于,包括:第一主机,包括:第一虚拟机,与第一虚拟交换机的第一虚拟端口连接,所述第一虚拟机记录有第一域名与第一IP地址之间的第一对应关系;第二虚拟机,与所述第一虚拟交换机的第二虚拟端口连接,向所述第二虚拟端口发送携带有所述第一域名的第一DNS请求报文;所述第一虚拟交换机,用于根据第一流表项将所述第一DNS请求报文从所述第二虚拟端口转发至所述第一虚拟端口,所述第一流表项用于指示所述第一虚拟交换机将从所述第二虚拟端口接收到的类型为DNS请求报文的报文转发至所述第一虚拟端口;所述第一虚拟机,用于从所述第一虚拟端口获取所述第一DNS请求报文,根据所述第一DNS请求报文携带的所述第一域名从所述第一对应关系获取所述第一IP地址,发送携带所述第一IP地址的第一DNS应答报文至所述第一虚拟端口;所述第一虚拟交换机,从所述第一虚拟端口获取所述第一DNS应答报文,将所述第一DNS应答报文发送至所述第二虚拟端口。2.根据权利要求1所述的系统,其特征在于,所述第一虚拟交换机,用于从所述第一虚拟端口获取所述第一DNS应答报文,根据第二流表项将所述第一DNS应答报文发送至所述第二虚拟端口,所述第二流表项用于指示所述第一虚拟交换机将从所述第一虚拟端口接收到的类型为DNS应答报文的报文转发至所述第二虚拟端口。3.根据权利要求1或2所述的系统,其特征在于,所述第一虚拟机还记录有第二域名与第二IP地址之间的第二对应关系,所述系统还包括:第二主机,包括:第三虚拟机,所述第三虚拟机记录有所述第二对应关系;第二虚拟交换机,设置有第三虚拟端口,所述第三虚拟机与所述第三虚拟端口连接;第一报文传输模块,与所述第二虚拟交换机的第四虚拟端口连接;所述第一主机,还包括:第二报文传输模块,与所述第一虚拟交换机的第五虚拟端口连接;控制平台,用于检测所述第一虚拟机发生故障,并发送第三流表项和第六流表项至所述第一虚拟交换机,发送第四流表项和第五流表项至所述第二虚拟交换机;其中,所述第三流表项用于指示所述第一虚拟交换机将从所述第二虚拟端口接收到的类型为DNS请求报文的报文发送至所述第五虚拟端口,所述第二报文传输模块用于将从所述第五虚拟端口接收到的报文发送至第一报文传输模块,所述第四流表项用于指示所述第二虚拟交换机将从所述第四虚拟端口接收到的类型为DNS请求报文的报文发送至所述第三虚拟端口,所述第五流表项用于指示所述第二虚拟交换机将从所述第三虚拟端口接收到的类型为DNS应答报文的报文转发至所述第四虚拟端口,所述第六流表项用于指示所述第一虚拟交换机将从所述第五虚拟端口接收到的类型为DNS应答报文的报文转发至所述第二虚拟端口。4.根据权利要求3所述的系统,其特征在于,所述第一虚拟交换机,用于将所述第一流表项更新为所述第三流表项,从所述第二虚拟端口接收所述第二虚拟机发送的携带有所述第二域名的第二DNS请求报文,根据所述第三流表项将所述第二DNS请求报文发送至所述第五虚拟端口;所述第二报文传输模块,用于从所述第五虚拟端口获取所述第二DNS请求报文,将所述第二DNS请求报文封装到第一覆盖overlay报文,并发送所述第一overlay报文至所述第一报文传输模块;所述第一报文传输模块,用于接收所述第一overlay报文,从所述第一overlay报文解封装所述第二DNS请求报文,将所述第二DNS请求报文发送至所述第四虚拟端口;所述第二虚拟交换机,用于根据所述第四流表项将所述第二DNS请求报文发送至所述第三虚拟端口;所述第三虚拟机,用于从所述第三虚拟端口获取所述第二DNS请求报文,根据所述第二DNS请求报文携带的所述第二域名从所述第二对应关系获取所述第二IP地址,产生携带所述第二IP地址的第二DNS应答报文。5.根据权利要求4所述的系统,其特征在于,所述第三虚拟机,用于将所述第二DNS应答报文发送至所述第三虚拟端口;所述第二虚拟交换机,用于根据所述第五流表项将所述第二DNS应答报文发送至所述第四虚拟端口;所述第一报文传输模块,用于从所述第四虚拟端口获取所述第二DNS应答报文,将所述第二DNS应答报文封装至第二overlay报文,并发送所述第二overlay报文至所述第二报文传输模块;所述第二报文传输模块,用于从所述第二overlay报文解封装出所述第二DNS应答报文,将所述第二DNS应答报文发送至所述第五虚拟端口;所述第一虚拟交换机,用于从所述第五虚拟端口接收所述第二DNS应答报文,根据所述第六流表项将所述第二DNS应答报文发送至所述第二虚拟端口;所述第二虚拟机,用于从所述第二虚拟端口接收所述第二DNS应答报文,并从所述第二DNS应答报文获取所述第二IP地址。6.根据权利要求1至5中任一项所述的系统,其特征在于,所述第二虚拟机,在向所述第二虚拟端口发送携带有所述第一域名的第一DNS请求报文之前,还用于发送携带有所述第一虚拟机的IP地址的地址解析ARP请求报文至所述第二虚拟端口,所述ARP请求报文用于请求所述第一虚拟机的MAC地址;所述第一虚拟交换机,用于根据第七流表项将所述ARP请求报文从所述第二虚拟端口转发至所述第一虚拟端口,其中,所述第七流表项用于指示所述第一虚拟交换机将从所述第二虚拟端口接收到类型为ARP请求报文的报文发送至所述第一虚拟端口;所述第一虚拟机,用于从所述第一虚拟端口获取所述APR请求报文,根据所述ARP请求报文产生携带有所述第一虚拟机的MAC地址的ARP应答报文,并发送所述ARP应答报文至所述第一虚拟端口,所述第一虚拟交换机,用于根据第八流表项将从所述第一虚拟端口接收到的所述ARP应答报文发送至所述第二虚拟端口,其中,所述第八流表项用于指示所述第一虚拟交换机将从所述第一虚拟端口接收到的类型为ARP应答报文的报文发送至所述第二虚拟端口;所述第二虚拟机,用于从所述第二虚拟端口接收所述ARP应答报文,获取所述ARP应答报文携带的所述第一虚拟机的MAC地址,根据所述第一虚拟机的MAC地址构造所述第一DNS请求报文。7.一种域名解析方法,其特征在于,所述方法应用于第一虚拟交换机,所述第一虚拟交换机的第一虚拟端口与第一虚拟机连接,所述第一虚拟机记录有第一域名与第一IP地址之间的第一对应关系,所述第一虚拟交换机的第二虚拟端口与第二虚拟机连接,所述方法包括:所述第一虚拟交换机从所述第二虚拟端口接收所述第二虚拟机发送的携带有所述第一域名的第一DNS请求报文;所述第一虚拟交换机根据第一流表项将所述第一DNS请求报文从所述第二虚拟端口转发至所述第一虚拟端口,所述第一流表项用于指示所述第一虚拟交换机将从所述第二虚拟端口接收到的类型为DNS请求报文的报文转发至所述第一虚拟端口;所述第一虚拟交换机从所述第一虚拟端口获取所述第一虚拟机发送的第一DNS应答报文,将所述第一DNS应答报文发送至所述第二虚拟端口,所述第一DNS应答报文携带所述第一域名的第一IP地址。8.根据权利要求7所述的方法,其特征在于,所述第一虚拟交换机将所述第一DNS应答报文发送至所述第二虚拟端口,包括:所述第一虚拟交换机根据第二流表项将所述第一DNS应答报文发送至所述第二虚拟端口,所述第二流表项用于指示所...

【专利技术属性】
技术研发人员:苏建康刘正军文康伍枫
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1