了解如何安装和配置Designate,这是一种用于OpenStack的多租户DNS即服务(DNSaaS)。Designate是一种多租户DNS即服务,包括用于域名和记录管理的RESTAPI以及与Neutron的框架集成和对Bind9的支持。DNSaaS可以提供:用于管理区域和记录的干净的RESTAPI自动记录生成(OpenStack集成)支持多个权威名称服务器可以托管多个项目/组织指定的架构本文解释了如何在CentOS和RHEL上手动安装它并配置当前Designate的版本,但相同的配置也可以用于其他发行版。在OpenStack上安装Designate在我的GitHub存储库中,我放置了Ansible的绑定和指定角色的示例设置。此设置假定bing服务安装在OpenStack控制器节点之外(即使您可以在本地安装bind)。1.在OpenStack控制节点上安装Designate和bind包:#yuminstallopenstack-designate-*bindbind-utils-y2.创建Designate数据库和用户:MariaDB[(none)]>CREATEDATABASEdesignateCHARACTERSETutf8整理utf8_general_ci;MariaDB[(none)]>GRANTALLPRIVILEGESONdesignate.*TO\'designate'@'localhost'IDENTIFIEDBY'rhlab123';MariaDB[(none)]>GRANTALLPRIVILEGESONdesignate.*TO'designate'@'%'\由'rhlab123'识别;注意:必须在控制节点外安装bind包,才能使远程名称服务控件RemoteNameDaemonControl(RNDC)功能正常。配置绑定(DNS服务器)1.生成RNDC文件:rndc-confgen-a-kdesignate-c/etc/rndc.key-r/dev/urandomcat<etcrndc.confinclude"/etc/rndc.key";选项{默认键“指定”;默认服务器{{DNS_SERVER_IP}};default-port953;};EOF2,在named.conf中添加如下配置:include"/etc/rndc.key";控制{inet{{DNS_SERVER_IP}}允许{localhost;{{CONTROLLER_SERVER_IP}};}键{“指定”;};};在选项部分,添加:options{...allow-new-zonesyes;请求ixfr号;监听端口53{任何;};递归没有;允许查询{127.0.0.1;{{CONTROLLER_SERVER_IP}};};};添加正确的权限:chownnamed:named/etc/rndc.keychownnamed:named/etc/rndc.confchmod600/etc/rndc.keychown-vroot:named/etc/named.confchmodg+w/var/named#systemctlrestartnamed#setseboolnamed_write_master_zones13.将rndc.key和rndc.conf推送到OpenStack控制节点:#scp-r/etc/rndc*{{CONTROLLER_SERVER_IP}}:/etc/创建OpenStack指定服务和端点输入:#openstack用户创建--domaindefault--password-promptdesignate#openstackroleadd--projectservices--userdesignateadmin#openstackservicecreate--namedesignate--description"DNS"dns#openstackendpointcreate--regionRegionOnednspublichttp://{{CONTROLLER_SERVER_IP}}:9001/#openstackendpointcreate--regionRegionOnednsinternalhttp://{{CONTROLLER_SERVER_IP}}:9001/#openstackendpointcreate--regionRegionOnednsadminhttp://{{CONTROLLER_SERVER_IP}}:9001/配置指定服务1、编辑/etc/designate/designate.conf:在[service:api]节配置auth_strategy:[service:api]listen=0.0.0.0:9001auth_strategy=keystoneapi_base_uri=http://{{CONTROLLER_SERVER_IP}}:9001/enable_api_v2=Trueenabled_extensions_v2=quotas,reportsin[keystone_authtoken]节配置下列表选项:[keystone_authtoken]auth_type=passwordusername=designatepassword=rhlab123project_name=serviceproject_domain_name=Defaultuser_domainhttp:enticate_www_authen_name=Defaultuser_domain/{{CONTROLLER_SERVER_IP}}:5000/auth_url=http://{{CONTROLLER_SERVER_IP}}:5000/在[service:worker]节,启用worker模型:enabled=Truenotify=True在[storage:sqlalchemy]节,配置数据库访问:[storage:sqlalchemy]connection=mysql+pymysql://designate:rhlab123@{{CONTROLLER_SERVER_IP}}/designate填写指定数据库:#su-s/bin/sh-c"designate-managedatabasesync"designate2、创建Designate的pools.yaml文件(包含target和bind细节):编辑/etc/designate/pools.yaml:-name:default#名称是不可变的。#创建后将没有更改名称的选项,更改它的唯一方法是删除它#(以及与之关联的所有区域)并重新创建它。描述:默认池属性:{}#列出此池中托管的区域的NS记录#这应该是在指定之外创建的记录,#指向控制器节点的公共IP。ns_records:-主机名:{{Controller_FQDN}}。#这是mDNSpriority:1#列出这个池的名称服务器。这些是实际的BIND服务器。#我们使用这些来验证更改是否已传播到所有名称服务器。nameservers:-host:{{DNS_SERVER_IP}}port:53#列出这个池的目标。对于BIND,每个BIND服务器都有一个#条目,因为我们必须在每个服务器目标上运行rndc命令:-type:bind9description:BIND9Server1#列出指定的mdns服务器,BIND服务器应该从中请求区域从转移(AXFR)。#这应该是控制器节点的IP。#如果你有多个控制器,你可以添加多个主控制器#通过在它们上运行designate-mdns并在此处添加它们。masters:-host:{{CONTROLLER_SERVER_IP}}port:5354#BIND配置选项options:host:{{DNS_SERVER_IP}}port:53rndc_host:{{DNS_SERVER_IP}}rndc_port:953rndc_key_file:/etc/rndc.keyrndc_config_file:/etc/rndc.conf填充Designatepool:su-s/bin/sh-c"designate-managepoolupdate"designate3,启动Designatecenter和AP??I服务:systemctlenable--nowdesignate-central指定-api4。验证Designate服务是否正在运行:#openstackdnsservicelist+------------+--------+--------+-------------+|服务名称|状态|统计|能力|+------------+--------+-------+------------+|中央|上|-|-||应用程序接口|上|-|-||域名系统|上|-|-||工人|上|-|-||制作人|上|-|-|+------------+--------+--------+-------------+配置OpenStack带有外部DNS的Neutron1,为Designate服务配置iptables:#iptables-IINPUT-ptcp-mmultiport--dports9001-mcomment--comment"designateincoming"-jACCEPT#iptables-IINPUT-ptcp-mmultiport--dports5354-m评论--comment"指定mdns传入"-jACCEPT#iptables-IINPUT-ptcp-mmultiport--dports53-mcomment--comment"bindincoming"-jACCEPT#iptables-IINPUT-pudp-mmultiport--dports53-mcomment--comment"bind/powerdnsincoming"-jACCEPT#iptables-IINPUT-ptcp-mmultiport--dports953-mcomment--comment"rndcincoming-bindonly"-jACCEPT#服务iptables保存;serviceiptablesrestart#setseboolnamed_write_master_zones12、编辑/etc/neutron/neutron.conf的[default]节:external_dns_driver=designate3、在/etc/neutron/neutron.conf中添加[designate]节:[designate]url=http://{{CONTROLLER_SERVER_IP}}:9001/v2##designateauth_type=passwordauth_url=http://{{CONTROLLER_SERVER_IP}}:5000username=designatepassword=rhlab123project_name=servicesproject_domain_name=Defaultuser_domain_name=Defaultallow_reverse_dns_lookup=Trueipv4_ptr_zone_prefix_size=24ipv6_ptr_zone_prefix_size=1164.编辑neutron.conf的dns_domain:dns_domain=rhlab.dev。重启:#systemctlrestartneutron-*5.在/etc/neutron/plugins/ml2/ml2_conf.ini(ML2)的构成层2中添加dns:extension_drivers=port_security,qos,dns6。添加区域到Designate:#openstackzonecreate–email=admin@rhlab.devrhlab.dev。将记录添加到rhlab.dev区域:#openstackrecordsetcreate--record'192.168.1.230'--typeArhlab.dev.TestDesignate现已安装并配置