基于openstack实现的虚机共享多租户域名系统的制作方法

文档序号:37052072发布日期:2024-02-20 20:51阅读:12来源:国知局
本发明涉及计算机网络领域,具体地说,涉及基于openstack实现的虚机共享多租户域名系统,旨在提供一种经济高效、灵活可控的dns服务解决方案。
背景技术
::1、dns(domain name system)是一种分布式的命名系统,用于将域名和ip地址相互映射。在互联网中,dns是非常重要的基础设施,可以实现网站的访问、电子邮件的发送和接收等功能。在openstack中,dns解析也是非常重要的,可以帮助虚拟机快速定位需要访问的资源。但是,在虚拟化环境下,不同的虚机可能需要访问不同的资源,因此需要针对不同的虚机配置不同的dns解析服务器ip。目前,常见的解决方法是在虚机中手动配置dns服务器ip,但是这种方法不够灵活,而且需要手动配置,容易出错。在openstack云环境下,为虚机提供dns服务是一项必要的服务,dns服务通常由dns服务器集群来提供。然而,不同的虚机可能需要不同的dns解析数据库,因此通常需要配置不同的dns服务器,这样就需要多个dns的集群来提供服务,比较浪费资源。现有的方法存在以下缺点:2、1.现有方法,不能针对不同的虚机配置不同的dns解析服务器ip,这降低了虚拟化环境下的dns解析效率和灵活性。3、2.现有方法,自动化程度低,需要手动配置dns服务器ip,不能自动实现dns解析的配置。4、3.现有方法安全性低无法保证dns解析的安全性。5、4.现有方法不适用于大规模的云计算和虚拟化环境,扩展性差。技术实现思路1、基于openstack实现的虚机共享多租户域名系统,包括以下步骤:2、步骤s1:在虚机中配置resolve,指定需要使用的dns服务器ip;3、步骤s2:在openstack的neutron侧,在qr-的namespace中配置相关iptables规则,包括设置prerouting链上的规则,将特定udp port、特定目的ip的流量导流到末个dns服务器的ip+port上,设置forward链上的规则,将dns服务器的响应流量导回虚机;4、步骤s3:在l3-agent中实现相关代码,包括监控虚机的网络流量,根据iptables规则将特定的udp port、特定目的ip的流量重定向到末个dns服务器的ip+port上,将dns服务器的响应流量导回虚机;5、步骤s5:该方法主要分为两个部分,控制平面执行过程和数据面执行过程。6、优选的,首先是进行控制平面执行过程,openstack管理侧配置,需要在openstack管理侧进行配置,以便将虚机中的dns流量重定向到共享的dns服务集群中的不同服务端口上。这可以通过在openstack的网络配置中指定dns服务集群的地址和端口来实现。管理员可以根据需要为不同的客户端配置不同的dns服务集群地址和端口。7、优选的,其特征在于:共享dns服务集群:为了实现共用一个dns服务器集群,需要搭建一个高可用的dns服务集群。该集群可以由多个dns服务器组成,这些服务器可以分布在不同的物理机上,以提高可靠性和性能。这些dns服务不只是通过53端口提供服务,可以基于不同的dns配置部署多个dns服务通过不同的端口号区分。8、优选的,dns流量重定向:通过openstack管理侧的配置,将虚机中的dns流量重定向到共享的dns服务集群中的不同服务端口上。这可以通过在openstack网络配置中设置dns服务器地址和端口来实现。当虚机发送dns请求时,openstack会将请求重定向到指定的dns服务集群中的相应端口。9、优选的,多个dns数据库支持:为了满足不同客户端对不同dns数据库的需求,可以在共享的dns服务集群中配置多个dns数据库。每个数据库可以存储不同的dns记录,以满足不同客户端的需求。管理员可以根据需要在共享的dns服务集群中添加、删除或修改dns数据库。10、优选的,然后是数据面执行过程,首先,绑定了floating ip的虚机从虚机到dns服务器方向的流量,虚机中配置了默认的openstack的dns地址,访问53端口的流量从虚机中送出后,送达该虚机对应的qroute的namespace中,该namespace中在上述控制面执行过程步骤1中下发的配置后,nat表prerouting链中添加了iptables规则,匹配qr口进来的流量并且源ip为控制面步骤1中下发配置的虚机的ip,以及udp目的端口为的53的报文,作为要访问dns的流量,进行dnat转发到控制面步骤1中配置的共享dns集群的ip:port,该ip为一个vlan类型的ip,此时源ip还是为虚机的内网ip,因为虚机绑定了floatingip,则会命中nat表中postrouting链中的snat规则,将内网ip转换为floatingip,通过vlan网络将报文送达配置的dns ip11、优选的,从dns送回虚机的ip,通过物理vlan网络先到达虚机所在的计算节点,通过ovs流表送到fip-namespace中,通过命中fip-namespace中上述虚机绑定的fip的静态主机路由,将报文通过fpr-口送到qr-namespace中,再通过linux kernel的contrack完成dnat和snat的转换为虚机的内网ip,将报文送回到虚机,至此报的一次交互完成。12、优选的,未绑定floating ip的虚机从虚机到dns服务器方向的流量,虚机中配置了默认的openstack的dns地址,访问53端口的流量从虚机中送出后,送达该虚机对应的qroute的namespace中,该namespace中在上述控制面执行过程步骤1中下发的配置后,nat表prerouting链中添加了iptables规则,匹配qr口进来的流量并且源ip为控制面步骤1中下发配置的虚机的ip,以及udp目的端口为的53的报文,作为要访问dns的流量,进行dnat转发到控制面步骤1中配置的共享dns集群的ip:port,该ip为一个vlan类型的ip,此时源ip还是为虚机的内网ip,因为目的ip为vlan网络的ip,判断为南北流量,需要将报文送到网络节点进行snat后出网,通过命中qr-namespace中的缺省路由将报文送到snat节点,然后报文进入snat-namespace中将源ip为内网ip通过snat为sg口的ip,snat后通过路由将报文送到物理交换机网关,物理网关通过vlan网络将报文送达配置的dns ip。13、优选的,未绑定floating ip的虚机从dns服务器返回虚机的流量,从dns送回虚机的ip,因为去的报文的源ip被snat为sg端口的ip,所以回来的报文的目的ip为snat-namespace中的sg端口的ip,而该ip为vlan网络的ip,在物理交换机的网关上有该ip的mac,物理网络交换机将报文送达该snat节点,snat节点的物理网卡收到报文后将报文送到ovs流表中转发,ovs流表中通过fdb转发到对应的端口,流量进入snat-namespace中,通过linux的conntrack将报文将报文转换为内网的目的ip,snat-namespace中挂载着内网的ip,所以可以通过二层转发,找到内网ip对应的mac,进行二层单播转发,将流量送到流表中,流表中根据目的mac将报文通过br-tun送到虚机所在的计算节点。计算节点收到报文后,通过流表中的mac找到对应的出端口,将报文送回到虚机,至此报的一次交互完成。14、与现有技术相比,本发明具有如下有益效果:15、1.本发明可以针对不同的虚机配置不同的dns解析服务器ip,提高虚拟化环境下的dns解析效率和灵活性。16、2.本发明不需要手动配置dns服务器ip,可以自动实现dns解析的配置。17、3.本发明通过在iptables规则中设置特定的udp port和目的ip,18、4.本发明该方法可以适用于大规模的云计算和虚拟化环境,具有很强的可扩展性。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1