4b42 Logo

Wissensdatenbank

Bind9 Master und Slave Zonentransfer mit Parallels Plesk auf Windows und Debian

Vorwort


Ich habe die Aufgabe, die Zonen eines Parallels Plesk Windows Servers auf einen zweiten Server zu transferieren. Da ich bereits einige Linux Debian Server mit Bind9 in Einsatz habe, werde ich als Slave ebenfalls einen Bind9 unter Debian einsetzen.

Installation


Bind9 Plesk


Die Installation von Plesk werde ich hier nicht erläutern.

Bind9 Debian


Installieren Sie als erstes den Bind9 DNS Server:
aptitude install bind9


Konfiguration


Master - Plesk


Zonentransfer


In der Plesk Version 10.4.4 Update #57 ist es leider nicht möglich, die IP-Adressen der Slave Server über das Plesk Panel einzutragen. Deshalb müssen diese über MySQL Querys erstellt bzw. angepasst werrden.

Slaves anzeigen


Mit folgendem Befehl können Sie sich die IP-Adressen der Slaveserver anzeigen lassen:
"%plesk_bin%\dbclient" --direct-sql --sql="SELECT * FROM misc WHERE param LIKE 'DNS_Allow_Transfer%'"

param		val
DNS_Allow_Transfer1 217.162.14.134/32


Slave entfernen


"%plesk_bin%\dbclient" --direct-sql --sql="DELETE FROM misc WHERE param LIKE 'DNS_Allow_Transfer%' AND val='217.162.14.134/32'"


Slave eintragen


"%plesk_bin%\dbclient" --direct-sql --sql="INSERT INTO misc (param,val) VALUES ('DNS_Allow_Transfer1', '217.162.14.134/32');"

Die Datei named.conf können Sie mit folgendem Befehl erneut erstelle lassen:
%plesk_dir%admin\bin\dnsmng.exe update 4b42.com


Tragen Sie den RNDC Schlüssel in die named.conf Datei ein:
%plesk_dir%\dns\etc\named.conf

key "rndc-key" {
algorithm hmac-md5;
secret "4b424b424b424b424b424b==";
};

Passen Sie die Datei named.user.conf wie folgt an:
%plesk_dir%\dns\etc\named.user.conf

options{ 
allow-recursion {localnets; };
also-notify {217.162.14.134;};
listen-on-v6 {any; };
version none;
};
controls {
inet * port 953 allow { 127.0.0.1; } keys { rndc-key; };
};

Laden Sie die Konfiguration neu:
%plesk_dir%\dns\bin\rndc.exe reload

server reload successful


Ereignis-Manager

Plesk Ereignis-ManagerPlesk Ereignis-Manager

Plesk Ereignis-Manager



Damit die DNS Zonen des Windows Plesk Servers automatisch beim erstellen und entfernen von Domains die DNS-Zonen auf den Linux DNS überträgt müssen noch ein paar Ereignisse erstellt werden.



Erstellen Sie doe folgenden Ereignisse, damit die Zonen automatisch transferiert werden:
Domain created		D:\Programme\Parallels\Plesk\Additional\DNSsync\addzone.bat <new_domain_name>
Domain deleted D:\Programme\Parallels\Plesk\Additional\DNSsync\delzone.bat <old_domain_name>
Domain-Alias erstellt D:\Programme\Parallels\Plesk\Additional\DNSsync\addzone.bat <new_domain_alias_name>
Domain-Alias gelöscht D:\Programme\Parallels\Plesk\Additional\DNSsync\delzone.bat <old_domain_alias_name>
Subdomain erstellt D:\Programme\Parallels\Plesk\Additional\DNSsync\addzone.bat <new_subdomain_name>.<new_domain_name>
Subdomain gelöscht D:\Programme\Parallels\Plesk\Additional\DNSsync\delzone.bat <old_subdomain_name>.<old_domain_name>


Skripte


addzone.bat


@echo off
echo +-----------------------------------------------------------------------+
echo ^| Copyright (c) 2006-2014 by Kevin Buehl [kevin@buehl.biz] ^|
echo +-----------------------------------------------------------------------+
echo ^| __ __ _____________ __ __ ______________ ^|
echo ^| ^| ^| 2006 ^| ^| ^| _______ \ ^| ^| ^| ^| ^|___________ ^| ^|
echo ^| ^| ^| 2014 ^| ^| ^| ^| \ ^| ^| ^| ^| ^| ^| ^| ^|
echo ^| ^| ^|___ ____^| ^| ^| ^|_______/ / ^| ^|___ ____^| ^| ___________^| ^| ^|
echo ^| ^|______ ____ ^| ^| _______ ^| ^|______ ____ ^| ^| ___________^| ^|
echo ^| by ^| ^| ^| ^| \ \ Content ^| ^| ^| ^| ^|
echo ^| Kevin ^| ^| ^| ^|_______/ ^| Management ^| ^| ^| ^|___________ ^|
echo ^| Buehl ^|__^| ^|_____________/ System ^|__^| ^|______________^| ^|
echo ^| ^|
echo ^| visit www.4b42.com or www.buehl.biz for more Infomation ^|
echo ^| ^|
echo ^| No part of this website or any of its contents may be reproduced, ^|
echo ^| copied, modified or adapted, without the prior written consent of ^|
echo ^| the author, unless otherwise indicated for stand-alone materials. ^|
echo ^| For more Infomation visit www.4b42.com. ^|
echo ^| This notice must be untouched at all times. ^|
echo +-----------------------------------------------------------------------+
REM 2014-11-11 KB created
D:\Programme\Parallels\Plesk\dns\bin\rndc.exe -s 217.162.14.134 addzone %1 { type slave; masters {81.7.237.195;}; allow-transfer {81.7.237.195;}; };

delzone.bat


@echo off
echo +-----------------------------------------------------------------------+
echo ^| Copyright (c) 2006-2014 by Kevin Buehl [kevin@buehl.biz] ^|
echo +-----------------------------------------------------------------------+
echo ^| __ __ _____________ __ __ ______________ ^|
echo ^| ^| ^| 2006 ^| ^| ^| _______ \ ^| ^| ^| ^| ^|___________ ^| ^|
echo ^| ^| ^| 2014 ^| ^| ^| ^| \ ^| ^| ^| ^| ^| ^| ^| ^|
echo ^| ^| ^|___ ____^| ^| ^| ^|_______/ / ^| ^|___ ____^| ^| ___________^| ^| ^|
echo ^| ^|______ ____ ^| ^| _______ ^| ^|______ ____ ^| ^| ___________^| ^|
echo ^| by ^| ^| ^| ^| \ \ Content ^| ^| ^| ^| ^|
echo ^| Kevin ^| ^| ^| ^|_______/ ^| Management ^| ^| ^| ^|___________ ^|
echo ^| Buehl ^|__^| ^|_____________/ System ^|__^| ^|______________^| ^|
echo ^| ^|
echo ^| visit www.4b42.com or www.buehl.biz for more Infomation ^|
echo ^| ^|
echo ^| No part of this website or any of its contents may be reproduced, ^|
echo ^| copied, modified or adapted, without the prior written consent of ^|
echo ^| the author, unless otherwise indicated for stand-alone materials. ^|
echo ^| For more Infomation visit www.4b42.com. ^|
echo ^| This notice must be untouched at all times. ^|
echo +-----------------------------------------------------------------------+
REM 2014-11-11 KB created
D:\Programme\Parallels\Plesk\dns\bin\rndc.exe -s 217.162.14.134 delzone %1


transfer.bat


Diese Datei liest alle Domains aus der named.conf aus und transferiert diese auf den Slave Server
@echo off
echo +-----------------------------------------------------------------------+
echo ^| Copyright (c) 2006-2014 by Kevin Buehl [kevin@buehl.biz] ^|
echo +-----------------------------------------------------------------------+
echo ^| __ __ _____________ __ __ ______________ ^|
echo ^| ^| ^| 2006 ^| ^| ^| _______ \ ^| ^| ^| ^| ^|___________ ^| ^|
echo ^| ^| ^| 2014 ^| ^| ^| ^| \ ^| ^| ^| ^| ^| ^| ^| ^|
echo ^| ^| ^|___ ____^| ^| ^| ^|_______/ / ^| ^|___ ____^| ^| ___________^| ^| ^|
echo ^| ^|______ ____ ^| ^| _______ ^| ^|______ ____ ^| ^| ___________^| ^|
echo ^| by ^| ^| ^| ^| \ \ Content ^| ^| ^| ^| ^|
echo ^| Kevin ^| ^| ^| ^|_______/ ^| Management ^| ^| ^| ^|___________ ^|
echo ^| Buehl ^|__^| ^|_____________/ System ^|__^| ^|______________^| ^|
echo ^| ^|
echo ^| visit www.4b42.com or www.buehl.biz for more Infomation ^|
echo ^| ^|
echo ^| No part of this website or any of its contents may be reproduced, ^|
echo ^| copied, modified or adapted, without the prior written consent of ^|
echo ^| the author, unless otherwise indicated for stand-alone materials. ^|
echo ^| For more Infomation visit www.4b42.com. ^|
echo ^| This notice must be untouched at all times. ^|
echo +-----------------------------------------------------------------------+
REM 2014-11-11 KB created
REM Warte 20 Sekunden bis Plesk die named.conf bei einer neuen Domain geschrieben hat
timeout /T 20 > nul
REM Alle Zeilen welche das Wort zone enthalten einlesen
for /f "delims=" %%a in ('findstr /i /c:"zone" D:\Programme\Parallels\Plesk\dns\etc\named.conf') do (
for /f "tokens=2" %%b in ("%%a") do (
D:\Programme\Parallels\Plesk\dns\bin\rndc.exe -s 217.162.14.134 delzone %%b
D:\Programme\Parallels\Plesk\dns\bin\rndc.exe -s 217.162.14.134 addzone %%b { type slave; masters {81.7.237.195;}; allow-transfer {81.7.237.195;}; };
)
)


Slave - Debian


Lesen Sie den RNDC Schlüssel des Plesksystems aus, dazu öffnen Sie die folgende Datei:
%plesk_dir%\dns\etc\named.conf

Der Schlüssel befindet sich in dem rndc-key Bereich, dieser sieht aus wie folgt:
key "rndc-key" {
algorithm hmac-md5;
secret "4b424b424b424b424b424b==";
};

Kopieren Sie den Secret und tragen Sie diesen in der Bind9 Konfiguration unter Debian ein:
nano /etc/bind/rndc.key


Öffnen Sie nun die Datei named.conf und tragen Sie die folgenden Zeilen ein:
nano /etc/bind/named.conf

include "/etc/bind/rndc.key";

server 81.7.237.195 {
keys rndc-key;
};

controls {
inet * port 953 allow { 127.0.0.1; 81.7.237.195; } keys { rndc-key; };
};


Tragen Sie nun die folgenden Zeilen in die named.conf.options ein:
nano /etc/bind/named.conf.options

	dnssec-enable yes;
allow-new-zones yes;
allow-recursion { 127.0.0.1; 10.0.0.0/8; 172.16.0.0/12; 192.168.0.0/16; };