DNS und ISPConfig in großen Umgebungen

funsurfer

New Member
Hallo.

Ich hätte eine Frage.. und zwar habe ich einen DNS mit ca 3000 Domains zu verwalten. Ich habe gehört, dass Bind und PowerDNS in sochen Dimensionen eher auf Filebasis arbeiten sollten und nicht über MySQL.
Ich brauche Authoritiv und Resolver :)

Ich will keine Performanceprobleme bekommen...

Kann mir da bitte wer einen Tipp geben?

Bis jetzt wurde bind mit flat Files ohne DB eingesetzt....

ThX im Voraus und LG
 

mare

Member
Ich kenn ein Setup mit Bind als HiddenMaster (Als Supermaster) und Power DNS als Public Server mit ca. 4500 Domains.

Solange du aufpasst, das Mysql die Indexe im Ram hat und nicht auslagert ist imho alles im grünen Bereich.

Sicher scheint es mit flatfiles stabiler und die DB ist ein Point of Failure. Wenn es die zu gewagt ist, kannst du ja auch die bind files aus dem ISPC per rsync verteilen. Ist dann halt nicht Realtime.

/LG
 

mare

Member
Ich habe:
- mir div. DNS Templates gebaut. (Mehrere Webserver in den alten Zonen)
- über curl die Oberfläche angefahren und die Zonen sowie Records einpflegen lassen.

Die Quelle war allerdings ein pdns dump. Sollte aber mit deinen zonefiles ähnlich gehen.
 

funsurfer

New Member
Ich habe:
- mir div. DNS Templates gebaut. (Mehrere Webserver in den alten Zonen)
- über curl die Oberfläche angefahren und die Zonen sowie Records einpflegen lassen.

Die Quelle war allerdings ein pdns dump. Sollte aber mit deinen zonefiles ähnlich gehen.

Kannst du mir das näher erleutern?
Und was mir aufgefallen ist.... wir haben ja 2 Nameserver... der 2te holt sich ja die Files vom ersten... wie handelt das der ISPconfig?
von Hand habe ich das ja immer an beiden Servern eintragen müssen.
weiters war am alten server mehrere ns instanzen per chroot getrennt am laufen... ist warscheinlich im ISPconfig ein problem oder?
Pro NS ein eigener (virtueller) Server oder?
Ganz geht das aus der onlinedemo nicht hervor... :(

Vielen Dank
 
Zuletzt bearbeitet:

mare

Member
Hi,

ISP-Config macht nichts weiter als die Zonen per Bind auf dem ausgewählten Server bereitszustellen. Den Rest mußt du lösen.(Entweder per AXFR oder RSYNC der Zonenfiles)

Wir haben das mit 4 PowerDNS Slaves gelöst die in den Zonen eingetragen werden. Der ISPC Bind ist dafür der Supermaster. Sobald die Zone auf dem ISPC Bind generiert wird schickt der an die Nameserver der Zone ein Notify. Diese legen die Zone selbst an (geht nur mit DB als Backend) und starten einen AXFR Zonentransfer. Wenn du jetzt im ISPC Interface mal was änderst dauert es max 1 Minuten bis alle Slave Server das Update gemacht haben. Der ISPC-Bind ist im Internet nicht sichtbar sondern nur die 4 Public Slaves.

-
Zum Konvertieren:

1. Zonen anlegen.
Voraussetzung eine Quelle mit Zonen und Client Zuordnung sowie die Templates.
Wie gesagt, bei mir war die Quelle eine PDNS-Datenbank. Aber hier mal die relevanten ISPC Aufrufe (PHP). Ich weiß , es geht auch über die RemoteAPI aber ich habe alle Daten (Kunden/Domain/Mails/DBs) so eingelesen da eben nicht alles über die API ging.

#Anmelden
Code:
unlink('/tmp/cookie') ;
system('curl --insecure -c /tmp/cookie --data "username=admin&passwort=admin&s_mod=login&s_pg=index" http://127.0.0.1:8080/content.php') ;
$sessionid = trim(exec("cat /tmp/cookie  | grep PHP |awk '{print $7}'")) ;
#Domain anlegen
Code:
system ("curl -b /tmp/cookie --data \"template_id=$template&server_id=1&
client_group_id=".$kunde."&domain=$row->name&create=1&phpsessid=\$SESSION\" http://127.0.0.1:8080/dns/dns_wizard.php") ;
#zusätzliche Records anlegen
Code:
system("curl -b /tmp/cookie --data \"name=$host&data=$row2->content&ttl=86400&active
    =Y&id=&zone=$helpid&type=$row2->type&next_tab=&phpsessid=\$SESSION\" http://127.0.0.1:8080/dns/dns_
    ".strtolower($row2->type)."_edit.php > /dev/null > /dev/null") ;
 

funsurfer

New Member
Danke,

Das sollte aber klappen, wenn ich den zonentransfer im bind vom first AUT DNS der im ISPConfig drin ist per AXFER auf den Secondary AUT DNS übertragen lasse. sollte ja mit notify hinhauen. ohne DB.

Das konstrukt soll folgendermaßen aussehen:

Ich habe einen authoritiven DNS 1 und authoritiven DNS 2 die Zone wird am DNS1 eingetragen via ISPConfig. der macht ein notify an den DNS2 und der holt sich dann alles vom DNS1.

Weiters gibt es noch auf 2 eigenständigen Maschinen einen resolver konfiguriert....

müsste alles ohne DB klappen oder? dann muss auch der DNS2 nicht im ISPConfig drin sein?!

LG
 

mare

Member
Hallo,

Genau das wird eben nicht klappen ;-)

Dein bind auf dem 2. Server legt keine neuen Zonenfiles an. Bestehende Abgleichen geht aber eben keine Neuen anlegen.

Es gibt imho einen fork der das kann habe ich aber nicht getestet.

Also entweder die Bind Daten wie .conf und Zonen per rsync schieben oder die Zonen auf dem Slave beim ersten Mal händisch anlegen oder PDNS mit DB verwenden.
 

Till

Administrator
Oder als 3. und wahrscheinlich beste Möglichkeit die ISPConfig Mirror Funktion verwenden. Denn warum ein extra rsync setup wenn ISPCXonfig das ja alles automatisch macht. Die Mirror Funktion ist nämlich dafür da, dass die Zonen icht extra als secondary angelegt werden müssen und auch automatisch die geänderten Zonen auf dem Slave aktualisiert werden.
 

funsurfer

New Member
Oder als 3. und wahrscheinlich beste Möglichkeit die ISPConfig Mirror Funktion verwenden. Denn warum ein extra rsync setup wenn ISPCXonfig das ja alles automatisch macht. Die Mirror Funktion ist nämlich dafür da, dass die Zonen icht extra als secondary angelegt werden müssen und auch automatisch die geänderten Zonen auf dem Slave aktualisiert werden.

am slave sind das aber ja alles sdb.xxx files und am Master db.xxxx

Hab ich jetzt einen Denkfehler?

Weißt du welcher fork das kann, bzw. welcher das ist?
Würd ich direkt mal testen :)
 

Till

Administrator
Du denkst hier zu kompliziert. Dafür brauchst Du keinen Fork von BIND sondern einfach nur ISPConfig. ISPConfig transeferiert die Daten intern über den ISPConfig Replikationsmechanismus und fügt sie dann lokal in der BIND Config hinzu.

Das Setup is ganz einfach:

1) ISPConfig multiserver setup. Dabei legts Du 2 oder mehr DNS Server an wie heir beschrieben:

Installing A Multiserver Setup With Dedicated Web, Email, DNS And MySQL Database Servers On Debian 5.0 With ISPConfig 3 | HowtoForge - Linux Howtos and Tutorials

2) Du stallst bei allen dns slave servern in ispconfig in den server settings ein, dass sie mirror des ersten Servers sind.

Das ist schon alles. ISPConfig kümmerst sich nun darum dass die BIND daten auf allen Servern gleich sind wenn Du eine Domain im DNS in ISPConfig hinzufügst.
 

funsurfer

New Member
Du denkst hier zu kompliziert. Dafür brauchst Du keinen Fork von BIND sondern einfach nur ISPConfig. ISPConfig transeferiert die Daten intern über den ISPConfig Replikationsmechanismus und fügt sie dann lokal in der BIND Config hinzu.

Das Setup is ganz einfach:

1) ISPConfig multiserver setup. Dabei legts Du 2 oder mehr DNS Server an wie heir beschrieben:

Installing A Multiserver Setup With Dedicated Web, Email, DNS And MySQL Database Servers On Debian 5.0 With ISPConfig 3 | HowtoForge - Linux Howtos and Tutorials

2) Du stallst bei allen dns slave servern in ispconfig in den server settings ein, dass sie mirror des ersten Servers sind.

Das ist schon alles. ISPConfig kümmerst sich nun darum dass die BIND daten auf allen Servern gleich sind wenn Du eine Domain im DNS in ISPConfig hinzufügst.

Dann habe ich aber von der Konfig her 2 Master oder?
immerhin schaut ja das Named.conf file im Slave anderst aus als im Master oder?
 

mare

Member
Hi,

Master / Slave ist dann vollkommen unrelevant, da die Daten übers ISPC kommen. Die DNS-Server machen dann nichts mehr direkt untereinander.

Hmm, an das Mirror System von ISP Config habe ich noch gar nicht gedacht :eek: das werde ich auf jedenfall mit 2 der Public Nameservern ausprobieren. Dann laufen 2 mit Bind und 2 mit powerDNS.
 

Till

Administrator
Dann habe ich aber von der Konfig her 2 Master oder?

ja.

immerhin schaut ja das Named.conf file im Slave anderst aus als im Master oder?

Aber auch nur, damit bind die Daten selbst transferiert. da wir das aber in unserem setup nicht benötigen, können master und slave identisch aussehen. Denn der Trnasfer wird ja von ispconfig gemacht, wie mare bereits erläutert hat.

Hmm, an das Mirror System von ISP Config habe ich noch gar nicht gedacht das werde ich auf jedenfall mit 2 der Public Nameservern ausprobieren. Dann laufen 2 mit Bind und 2 mit powerDNS.

Ja, das ist problemlos möglich.
 

mare

Member
Hi,

Ich habe das jetzt mal mit einem der DNS Server gemacht.
Funktioniert super. Und gelöscht Domains fliegen auch gleich raus.
(Bei der PDNS Variante mußte da ein Script auf veraltete Daten testen.)

Da die Server vom Setup her ja auch alle "Master DNS" sind entfallen auch die Refresh Checks.

Ein Sach stört mich noch.
Ist es notwendig, das die Tabelle client komplett mit übertragen wird?
 

Till

Administrator
Ist es notwendig, das die Tabelle client komplett mit übertragen wird?

Das ist leider für einige Module notwendig, wenn auch nicht für reine DNS Server wenn ich mich recht erinnere. Kann ich so aber aus dem Kopf nicht mehr genau sagen, weiß nur noch dass wir sie erst aus Sicherheitsgründen ausgeklammert hatten aber dass es dann doch notwendig war auf einige der daten dort vom Slave aus zuzugreifen, so dass wir sie in die Repliaktion aufnehmen mussten.
 

Werbung

Top