Zonefile erzeugen Serial

Bash, Shell, PHP, Python, Perl, CGI
linuxnewbie
Posts: 150
Joined: 2003-01-24 16:00

Zonefile erzeugen Serial

Post by linuxnewbie »

Wie kann ich es, wenn ich über ein php Script die Zone file erzeuge aus der mysql, die serial vernünftig erhöhen?

Wenn ich den date() befehl nehme kann ich ja über die schalter Y m und d das erste format bekommen für "2003""08""09" jetzt fehlt aber noch die 01 am schluß, bzw bei einer änderung der datei am selben tag eine 02-99

wie kann man das vernünftig lösen?

das script wenn es fertig ist erzeugt aus der datenbank alle zonefiles aller domain auf dem server und bei änderungen liest es die geänderten daten aus und erstellt daraus wieder die zonefiles.

wenn die zonefiles fertig sind soll an den sec nameserver ein signal gehen das ebenfalls ein script ausführt das eventuell über eine getunnelte verbindung eine template named.conf geladen wird wo die eventuellen neuen domains drin stehen dann wird der primary reloaded und der secondary ebenfalls

das ist eigentlich kein problem, das problem ist für mich eher eine vernünftige lösung für die letzten ziffern bei änderungen.
ich könnte natürlich für jede zonefile in der db die letzte änderung speichern und dann eine if schleife legen falls das datum übereinstimmt und wenn nicht wird ein zähler erhöht der als dann als die letzten ziffern gilt, ist das datum unterschiedlich wird einfach 01 eingetragen.

hätte jemand eine kürzere lösung oder einfachere lösung bereit?
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover

Re: Zonefile erzeugen Serial

Post by alexander newald »

Eine direkte Lösung habe ich nicht, aber wenn du die Zones eh schon in mySQL drin hast, kannst du dir ja mal http://bind-dlz.sourceforge.net/ anschauen. Erweitert Bind um die Möglichkeit Zones direkt aus mySQL zu holen. Ist nicht ganz einfach von der Einrichtung läuft aber. Bei Fragen kannste mir ja mailen. (Oder hier posten)
linuxnewbie
Posts: 150
Joined: 2003-01-24 16:00

Re: Zonefile erzeugen Serial

Post by linuxnewbie »

Ich will Bind Zonefiles aus der DB erzeugen, es soll für ein Nameserver Admintool sein. Da möchte ich nicht jemand zumuten der dieses Tool nutzt, seinen Bind zu umzustellen das es mit der MySQL klappt.
[nix]pepe
Userprojekt
Userprojekt
Posts: 244
Joined: 2003-04-08 19:36

Re: Zonefile erzeugen Serial

Post by [nix]pepe »

mmmh, ich hab's bei mir so gelöst, das ich einfach die minuten von date als endzahl genommen habe...

MfG
Pepe
linuxnewbie
Posts: 150
Joined: 2003-01-24 16:00

Re: Zonefile erzeugen Serial

Post by linuxnewbie »

Hmm, aber dann würde doch wenn man um 15:30 etwas ändert 30 gespeichert, und wenn man dann um 16:20 etwas ändert 20 gespeichert, was dann zu einer kleinere serial führt und den sec nicht zum zoneupdate auffordert.
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover

Re: Zonefile erzeugen Serial

Post by alexander newald »

Das "Ende" der Serial mit in der DB speichern und eins hochzählen?
wgot
Posts: 1675
Joined: 2003-07-06 02:03

Re: Zonefile erzeugen Serial

Post by wgot »

Hallo,

die Uhrzeit nehmen, in Minuten umrechnen und durch 15 dividieren. Liegt immer zwischen 0 und 95, darf nur keine zwei Ã?nderungen in der gleichen Viertelstunde geben.

Gruß, Wolfgang
linuxnewbie
Posts: 150
Joined: 2003-01-24 16:00

Re: Zonefile erzeugen Serial

Post by linuxnewbie »

hmm dann muß ichs wohl so machen, wobei die serial wieder dann auf 01 gesetzt wird wenn die änderung nicht am selbigen tage war.


ich werds mal probieren, vielleicht kann ich wenn das endprodukt funktioniert hier zum dl freigeben
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09

Re: Zonefile erzeugen Serial

Post by majortermi »

LinuxNewbie wrote:hmm dann muß ichs wohl so machen, wobei die serial wieder dann auf 01 gesetzt wird wenn die änderung nicht am selbigen tage war.
Warum so aufwendig? Benutze doch einfach einen vollständigen Timestamp als Serial.
Wenn man die Zone-Files manuell editiert, macht man das nur aus Gründen der Ã?bersichtlichkeit nicht.
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
linuxnewbie
Posts: 150
Joined: 2003-01-24 16:00

Re: Zonefile erzeugen Serial

Post by linuxnewbie »

Ok ich habs jetzt so gelöst das ich die komplette Serial in der DB speichere
also
2003080901

wenn ich etwas ändern will nehme ich über substr die letzten beiden ziffern weg und frage nach ob die serial = date mit Ymd nicht ist wenn ja wird die serial 2003080901 gesetzt, ist das datum gleich wird der zähler genommen und um 1 erhöht
dodolin
Posts: 3840
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: Zonefile erzeugen Serial

Post by dodolin »

Warum so aufwendig? Benutze doch einfach einen vollständigen Timestamp als Serial.
Prinzipiell ACK, aber es gibt halt manche Registrare (z.B. Providerdomain als prominentes Beispiel), die als Format für die Serial YYYYMMDDNN verlangen und andernfalls die Registrierung ablehnen.

<mode=flüster>
Allerdings werden sie es wohl kaum mitbekommen, wenn man das nach der erstmaligen Registrierung dann ändert. Man muss nur schauen, dass alle nachfolgenden Timestamps höher als das ursprüngliche Datum sind...
</mode>
linuxnewbie
Posts: 150
Joined: 2003-01-24 16:00

Re: Zonefile erzeugen Serial

Post by linuxnewbie »

MajorTermi wrote:
LinuxNewbie wrote:hmm dann muß ichs wohl so machen, wobei die serial wieder dann auf 01 gesetzt wird wenn die änderung nicht am selbigen tage war.
Warum so aufwendig? Benutze doch einfach einen vollständigen Timestamp als Serial.
Wenn man die Zone-Files manuell editiert, macht man das nur aus Gründen der Ã?bersichtlichkeit nicht.

Es soll auch übersichtlich sein damit man die serial überall verwenden kann.

wenn ich jetzt den timestamp nehme wäre das zb
1060433171 im vergleich
2003080901

somit kennen die anderen nameserver die normale serial und dementsprechend werden auch keine zonefiles übertragen da die serial dann geringer wäre, oder liege ich da falsch?
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09

Re: Zonefile erzeugen Serial

Post by majortermi »

LinuxNewbie wrote: Es soll auch übersichtlich sein damit man die serial überall verwenden kann.

wenn ich jetzt den timestamp nehme wäre das zb
1060433171 im vergleich
2003080901

somit kennen die anderen nameserver die normale serial und dementsprechend werden auch keine zonefiles übertragen da die serial dann geringer wäre, oder liege ich da falsch?
Es gibt keine "normale" Serial. Die "Serial" ist einfach nur als eine beliebige Zahl definiert, die erhöht werden muss, wenn man Ã?nderungen vornimmt. Du könntest auch als erste Serial "1" verwenden, als nächste "2", usw. das würde genauso funktionieren, weil der Nameserver immer nur schaut, ob sich die Serial inzwischen verändert hat.
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
linuxnewbie
Posts: 150
Joined: 2003-01-24 16:00

Re: Zonefile erzeugen Serial

Post by linuxnewbie »

Es geht ja auch darum das die nameserver die dieses zonefile haben, bzw bisher verwendet haben, eine andere serial erwarten als ich es durch den unix timestamp geben würde.

wie soll ich das problem lösen das wenn jemand mein tool nutzt, das alle serials plötzlich niedriger sind als die serials die webmin oder sonstige andere tools erzeugen und somit die zone nicht mehr geupdatet wird?
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover

Re: Zonefile erzeugen Serial

Post by alexander newald »

Musste bei der Denic die Serial nicht 6 Stellen haben?
dodolin
Posts: 3840
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe

Re: Zonefile erzeugen Serial

Post by dodolin »

Musste bei der Denic die Serial nicht 6 Stellen haben?
Kann ja gar nicht sein, in den RFCs sind genau 8 Stellen gefordert. Die genaue Stelle müsstest du aber selbst suchen, wenn es dir wichtig ist... ;)
linuxnewbie
Posts: 150
Joined: 2003-01-24 16:00

Re: Zonefile erzeugen Serial

Post by linuxnewbie »

Kleiner Zwischebericht:


Die Zonefiles werden korrekt erstellt aus der Datenbank. Die Serial wird korrekt generiert. Es wird nebenbei eine seperate _named.conf erstellt wo alle Zones eingetragen werden diese Datei kann man dann in die Orginal named.conf includieren.

Jetzt muß ich nur noch eine Weboberfläche zum korrekten eintragen der Daten, zum löschen sowie editieren und suchen basteln bzw verbessern.

Wenn ich genug Zeit habe in den nächsten Tagen, wird es wahrscheinlich noch die Woche fertig.

Ich habe als Maximalwert pro Zonefile
5 NS records,
4 MX records,
10 A records und
10 CNAME records

Ich denke das sollte für den normalen Gebrauch langen ;)
Oder habe ich etwas vergessen oder übersehen?
Die Werte für ttl refresh retry expire und minimum kann man ebenfalls selber bestimmen. Ich werde es noch so machen das wenn man dort nichts einträgt die Standardwerte genommen werden wie es in der Rootforum FAQ steht.

Oder hat jemand "bessere" Ideal Werte für diesen Bereich?
tape
Posts: 57
Joined: 2003-02-11 12:08

Re: Zonefile erzeugen Serial

Post by tape »

Alexander Newald wrote:Musste bei der Denic die Serial nicht 6 Stellen haben?
nein
bobby
Posts: 146
Joined: 2003-08-03 13:42

Re: Zonefile erzeugen Serial

Post by bobby »

Hallo zusammen!
Ich habe als Maximalwert pro Zonefile
5 NS records,
4 MX records,
10 A records und
10 CNAME records
Wieso denn überhaupt Maximalwerte? Für einen einzelnen Server sind 10 A-Records sicher genug. Allerdings in einem Netzwerk sind 10 A-Records ein bisschen wenig.
Ich meine es kommt natürlich darauf an was du mit dem Script für eine "Zielgruppe hast".

Kannste mir das Script vielleicht mal zuschicken, ich hab mich schon mal nach no einem Script umgesehen, nichts gefunden und bis jetzt keine Zeit gefunden selbst eins zu schreiben.

Gruß

Björn