.. Copyright 2013 Hewlett-Packard Development Company, L.P. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. .. _backend-powerdns: PowerDNS Backend ================ Designate Configuration ----------------------- =============================== ====================================== ============================================================== Parameter Default Note =============================== ====================================== ============================================================== domain_type NATIVE PowerDNS Domain Type also_notify [] List of additional IPs to send NOTIFYs to. connection sqlite:///$pystatepath/powerdns.sqlite Database connection string connection_debug 0 Verbosity of SQL debugging information. 0=None, 100=Everything connection_trace False Add python stack traces to SQL as comment strings idle_timeout 3600 timeout before idle sql connections are reaped max_retries 10 maximum db connection retries during startup. (setting -1 implies an infinite retry count) retry_interval 10 interval between retries of opening a sql connection mysql_engine InnoDB MySQL engine to use sqlite_synchronous True If passed, use synchronous mode for sqlite =============================== ====================================== ============================================================== PowerDNS Configuration ---------------------- You need to configure PowerDNS to use the MySQL backend. 1. First enable the MySQL backend: .. code-block:: ini launch = gmysql 2. Configure the MySQL database settings:: .. code-block:: ini gmysql-host= gmysql-port= gmysql-dbname= gmysql-user= gmysql-password= gmysql-dnssec=yes #gmysql-socket= .. note:: PowerDNS can connect via socket or host/port. 3. Configure the options for designate-central - specifically "connection" to point to your MySQL database .. code-block:: ini [backend:powerdns] connection = mysql+pymysql://:@:/ 4. Setup the database schema. .. code-block:: console $ designate-manage powerdns init $ designate-manage powerdns sync 5. Restart PowerDNS and it should be ready to serve queries using the MySQL database as the backing store. PowerDNS deployment as hidden Master ------------------------------------ One deployment scenario can be that the PowerDNS backend will be used as a "hidden" Master DNS for other DNS servers to consume via AXFR. Say you have 10.0.0.1 and 10.0.0.2 as slaves then configure the backend as follows in addition to other options .. code-block:: ini [backend:powernds] domain_type = MASTER also_notify = 10.0.0.1,10.0.0.2 .. note:: This should mostly be used in connection with another backend acting as slave.