📚 Legacy Documentation
Notice: This is the legacy documentation. For the latest features and updates, refer to our current SolusVM documentation.
Master DNS Server Install
The instruction vary for different OSes. The instructions for the following OSes can be found in this document.
CentOS 6 x86_64
CentOS 7 x86_64
CentOS 6 x86_64:
1. Enable epel repository using the instruction from here: http://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F
2. Install PowerDNS and MySQL
yum -y install mysql mysql-server pdns pdns-backend-mysql
chkconfig --levels 235 mysqld on
chkconfig --levels 235 pdns on
service mysqld start3. Set a MySQL root password
mysqladmin -u root password MYNEWPASSWORD4. Download the PowerDNS SQL and import it
wget http://files.soluslabs.com/solusvm/pdns/pdns.sql
mysql --user=root --password=MYNEWPASSWORD < pdns.sql5. Edit /etc/pdns/pdns.conf with your database details:
launch=gmysql
gmysql-host=127.0.0.1
gmysql-user=root
gmysql-password=MYNEWPASSWORD
gmysql-dbname=powerdns6. To give permission for the MySQL user to connect from your SolusVM master, use following:
mysql -u root -pAfter entering the password use following:
GRANT ALL ON powerdns.* TO 'root'@'YOUR_SOLUSVM_MASTERS_IP' IDENTIFIED BY 'MYNEWPASSWORD';
FLUSH PRIVILEGES;7. Start PowerDNS:
/etc/init.d/pdns startTo do a monitored start, use following:
/etc/init.d/pdns monitorCentOS 7 x86_64:
1. Enable epel repository using the instruction from here: http://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F
2. Install PowerDNS and MySQL
yum -y install mariadb mariadb-server pdns pdns-backend-mysql
systemctl enable mariadb
systemctl enable pdns
systemctl start mariadb3. Set a MySQL root password
mysqladmin -u root password MYNEWPASSWORD4. On CentOS 7 pdns 4.0.6 is installed by default and in this version
powerdns database is different from the one in version 3.X.
Create a file pdns.sql with the below content and import it:
CREATE TABLE domains (
id INT AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
master VARCHAR(128) DEFAULT NULL,
last_check INT DEFAULT NULL,
type VARCHAR(6) NOT NULL,
notified_serial INT DEFAULT NULL,
account VARCHAR(40) DEFAULT NULL,
solusvm_cid int(11) DEFAULT NULL,
PRIMARY KEY (id)
) Engine=InnoDB;
CREATE UNIQUE INDEX name_index ON domains(name);
CREATE TABLE records (
id INT AUTO_INCREMENT,
domain_id INT DEFAULT NULL,
name VARCHAR(255) DEFAULT NULL,
type VARCHAR(10) DEFAULT NULL,
content VARCHAR(64000) DEFAULT NULL,
ttl INT DEFAULT NULL,
prio INT DEFAULT NULL,
change_date INT DEFAULT NULL,
disabled TINYINT(1) DEFAULT 0,
ordername VARCHAR(255) BINARY DEFAULT NULL,
auth TINYINT(1) DEFAULT 1,
PRIMARY KEY (id)
) Engine=InnoDB;
CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);
CREATE INDEX recordorder ON records (domain_id, ordername);
CREATE TABLE supermasters (
ip VARCHAR(64) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) NOT NULL,
PRIMARY KEY (ip, nameserver)
) Engine=InnoDB;
CREATE TABLE comments (
id INT AUTO_INCREMENT,
domain_id INT NOT NULL,
name VARCHAR(255) NOT NULL,
type VARCHAR(10) NOT NULL,
modified_at INT NOT NULL,
account VARCHAR(40) NOT NULL,
comment VARCHAR(64000) NOT NULL,
PRIMARY KEY (id)
) Engine=InnoDB;
CREATE INDEX comments_domain_id_idx ON comments (domain_id);
CREATE INDEX comments_name_type_idx ON comments (name, type);
CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
CREATE TABLE domainmetadata (
id INT AUTO_INCREMENT,
domain_id INT NOT NULL,
kind VARCHAR(32),
content TEXT,
PRIMARY KEY (id)
) Engine=InnoDB;
CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);
CREATE TABLE cryptokeys (
id INT AUTO_INCREMENT,
domain_id INT NOT NULL,
flags INT NOT NULL,
active BOOL,
content TEXT,
PRIMARY KEY(id)
) Engine=InnoDB;
CREATE INDEX domainidindex ON cryptokeys(domain_id);
CREATE TABLE tsigkeys (
id INT AUTO_INCREMENT,
name VARCHAR(255),
algorithm VARCHAR(50),
secret VARCHAR(255),
PRIMARY KEY (id)
) Engine=InnoDB;
CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);mysql --user=root --password=MYNEWPASSWORD -e"create database powerdns"
mysql --user=root --password=MYNEWPASSWORD powerdns < pdns.sql5. Edit /etc/pdns/pdns.conf with your database details:
launch=gmysql
gmysql-host=127.0.0.1
gmysql-user=root
gmysql-password=MYNEWPASSWORD
gmysql-dbname=powerdns6. To give permission for the MySQL user to connect from your SolusVM master, use following:
mysql -u root -pAfter entering the password use following:
GRANT ALL ON powerdns.* TO 'root'@'YOUR_SOLUSVM_MASTERS_IP' IDENTIFIED BY 'MYNEWPASSWORD';
FLUSH PRIVILEGES;7. Start PowerDNS:
systemctl start pdns