Neutron DHCP service提供的DNS服务,存在两个问题:一是只能在tenant network内使用,无法在整个OpenStack下使用,另一个是在OpenStack之外,无法使用其提供的域名访问虚机。因此,接下来要介绍OpenStack中的External DNS service:Designate。项目的介绍可以在其wiki上找到。Designate号称是一个DNSaaS的项目(这年头不把自己叫做as a Service就不舒服)。但是Designate并没有实现DNS协议,而是管理了实现DNS协议的软件,例如BIND9,PowerDNS等。Designate将这些软件与OpenStack连接了起来,通过一套自己提供的API,控制底层的DNS软件,完成例如创建DNS Zone,写入Resource Record等DNS操作。所以,Designate本身只是一个软件框架,一个适配多种DNS软件的软件框架。
在OpenStack Mitaka版本之前,Designate只是一个独立的DNS软件接口,如果用户需要新增DNS记录,可以调用Designate API完成写入。如果你本身就熟悉BIND9的操作,那Designate的意义不是那么的明显。在Mitaka版本,Designate与OpenStack Nova,Neutron做了集成,真正的将Designate与OpenStack结合在了一起,具体来说,就是将DNS记录的创建,与虚机/网络的创建关联起来,用户不再需要特意的去管理Designate中的DNS记录。
需要注意的是,Devstack的安装过程,不会完成所有的Neutron与Designate集成所需要的配置,为了将Designate与Nova/Neutron集成起来,还需要手动修改一些配置。