AW: DNS Zone File
mayosemmel
mayosemmel at googlemail.com
Do Okt 15 21:54:17 CEST 2015
Ja das ist was mir vorschwebte. Allerdings funktioniert der Transfer noch nicht.
Hast du den Bind schon neu gestartet?
Grüße Jan
----- Ursprüngliche Nachricht -----
Von: "Tim Niemeyer" <tim.niemeyer at mastersword.de>
Gesendet: 15.10.2015 21:42
An: "mayosemmel" <mayosemmel at googlemail.com>
Cc: "Michael Fritscher" <michael at fritscher.net>; "Christian Dresel" <fff at chrisi01.de>; "franken-dev at freifunk.net" <franken-dev at freifunk.net>
Betreff: Re: DNS Zone File
Hi
Also ich hab auf ro1 nun folgendes getan:
Den ro1 selbst nicht mehr als dns via dhcp verteilt. Hier habe ich jetzt
temporär 8.8.8.8 drin.
cd /etc/bind/
Dein Script (siehe unten) in /etc/bind/sync.sh gepackt.
chmod +x sync.sh
touch db.fff.community
chmod g+w db.fff.community
chown root:bind db.fff.community
mkdir backup
chmod g+w backup
chown root:bind backup
in named.conf.local:
--- %< ---
zone "fff.community" {
type master;
file "/etc/bind/db.fff.community";
allow-transfer {10.50.252.15; 10.50.252.39; 10.50.252.27;};
};
--- >% ---
Die config von sync.sh angepasst:
--- %< ---
DnsPeers=(10.50.252.15 10.50.252.38 10.50.252.27)
DomainZone="fff.community"
OwnZoneFile="/etc/bind/db.fff.community"
TempDir="/tmp/fff-dns"
BackupDir="/etc/bind/backup"
--- >% ---
Cron angelegt (/etc/crontab):
*/5 * * * * bind /etc/bind/sync.sh
Geb mal kurz Rückmeldung ob das so in etwa das ist, was dir vorschwebte.
Tim
Am Donnerstag, den 15.10.2015, 20:49 +0200 schrieb mayosemmel:
> Hallo zusammen,
>
> ich hab das jetzt endlich bei mir aufgesetzt, nachdem mein Server nun
> wieder läuft.
> Als Sync Partner/Adressen habe ich die folgenden 3 eingetragen:
> 10.50.252.15 10.50.252.39 10.50.252.27
> Das sind die Server von Chris, Tim und Michael.
>
> Sobald ihr die Root Zone auch drin habt kann Christian das entsprechend
> eintragen hat lassen. Anschließend kann es mit den Delegations und dem
> DynDns weiter gehen.
>
> @Liste: Im Zone file habe ich ein paar Zeilen gelöscht, wegen den
> öffentlichen IPs - somit ist es durchaus möglich das hier was fehlt
>
> Viele Grüße
> Jan
>
> Am Dienstag, den 06.10.2015, 22:53 +0200 schrieb Tim Niemeyer:
> > Klingt alles gut. Ist nur grad zu spät um mich da rein zu denken.
> > Wegen mit können wir das aber einfach mal machen. Durch probieren
> > kommt man meist schneller zum Ziel, als wen man nur rum rätselt. :-)
> >
> > Ich versuche das morgen mal umzusetzen.
> >
> > Tim
> >
> > Am 6. Oktober 2015 22:46:09 MESZ, schrieb mayosemmel
> > <mayosemmel at googlemail.com>:
> > Hallo zusammen,
> >
> > zuerst möchte anmerken, das die Mail mit Absicht nicht an die Liste
> > geht, da in den Zone Files öffentliche IP Adressen sind.
> >
> > Ich hab das mit den Zone Files soweit fertig gemacht. Allerdings ist das
> > mit den Delegations schwer zu testen, solange in der offiziellen Zone
> > noch andere Server eingetragen sind.
> > Ich würde daher folgendes vorschlagen:
> > Wir 3 (Tim, Michael und Ich) spielen auf unseren Servern das Zone File
> > ein und richten die Synchronisierung ein.
> > Anschließend trägt Christian die Server beim Provider ein.
> > Nun sollte zumindest die reguläre Zone funktionieren und wir können mir
> > der Delegation weitermachen.
> > Was haltet ihr von der Vorgehensweise?
> >
> > Man kann aus den Zones sicherlich noch ein bisschen was rauswerfen, was
> > ich jetzt für den Testbetrieb eingefügt habe. Ansonsten sollte das alles
> > soweit funktionsfähig sein.
> > Falls ihr die Zone-Files
> > einspielt und den Sync scharf macht, probiert
> > bitte zuerstmal nur mit einem der anderen zu syncen (um die aktuelle
> > Version zu haben).
> >
> > Viele Grüße
> > Jan
> >
> > Zone File für die "Root-Server":
> >
> > fff.community. 3600 IN SOA NS1.fff.community. franken.freifunk.net. 2015100600 3600 1800 604800 600
> > fff.community. 3600 IN NS ro1.fff.community.
> > fff.community. 3600 IN NS fff-wue1.fff.community.
> > fff.community. 3600 IN NS fff-gw-m1.fff.community.
> > FFF-GW-M1.fff.community. 3600 IN A 37.120.190.92
> > nuernberg.fff.community. 3600 IN NS fff-test1.nuernberg.fff.community.
> > fff-test1.nuernberg.fff.community. 3600 IN AAAA
> > fff.community. 3600 IN SOA NS1.fff.community. franken.freifunk.net. 2015100600 3600 1800 604800 600
> >
> >
> > Beispielhaftes Zonefile für eine Delegation
> >
> > nuernberg.fff.community. 3600 IN SOA fff-test1.nuernberg.fff.community. franken.freifunk.net. 2015100600 3600 1800 604800 600
> > nuernberg.fff.community. 3600 IN NS fff-test1.nuernberg.fff.community.
> > fff-test1.nuernberg.fff.community. 3600 IN AAAA 2a01:4a0:2001:2074:2::30
> > test.nuernberg.fff.community. 3600 IN A 10.50.40.100
> >
> >
> > Script zum Synchronisieren
> >
> >
> > #!/bin/bash
> >
> > #Server die
> > abgefragt werden sollen (Alle DNS Peers)
> > DnsPeers=(ns1.kraus.moe kraus.moe ns2.kraus.moe)
> > #Name der Zone die verteilt werden soll
> > DomainZone="kraus.moe"
> > #Position und Name des Zone Files
> > OwnZoneFile="/etc/bind/db.kraus.moe"
> > #Temporäres Verzeichnis - muss pro Zone exclusiv sein!
> > TempDir="/tmp/fff-dns"
> > #Backup Verzeichnis
> > BackupDir="/home/freifunk/DNS-Backup"
> > #Wie viele Backups sollen aufgehoben werden? Nur Integer Werte!
> > BackupsToStore=20
> >
> >
> > function backup
> > {
> > datetime=$(date +"%Y-%m-%d_%H-%M-%S")
> > mkdir -p $1/$datetime
> > cp $OwnZoneFile $1/$datetime/.
> > BackupFiles=( $(ls -t $1) )
> > if [ -n ${BackupFiles[0]} ] && [ ${#BackupFiles[@]} -gt 20 ]
> > then
> > rm -rf $1/${BackupFiles[$BackupsToStore]}
> > fi
> > }
> >
> > function exit_script
> > {
> > rm -rf $TempDir
> > exit $1
> > }
> >
> > mkdir -p $TempDir
> > cd $TempDir
> > OwnSerial=$(grep SOA $OwnZoneFile |awk 'NR==1{print $7}')
> > HighestSerialSoFar=0
> > for peer in "${DnsPeers[@]}"
> > do
> > #Zone File von Peering DNS Servern herunterladen
> > dig @$peer $DomainZone axfr |grep -v ";"> $peer
> > #Seriennummer des Zone Files einlesen
> > PeerSerial=$(grep SOA $peer |awk 'NR==1{print $7}')
> > #Falls keine Seriennummer vorhanden, ist das File invalid oder die Verbindung zum Peer ist nicht in Ordnung
> > if [ -z $PeerSerial ]
> > then
> > rm -f $peer
> > continue
> > PeerSerial=1
> > fi
> > #Falls eigenes Zone File keine Seriennummer enthält und somit invalid ist, automatisch erstbestes valides nutzen
> > if [ -z $OwnSerial ]
> > then
> > named-checkzone $DomainZone $peer
> > if [ $? -eq 0 ]
> > then
> > cp $peer $OwnZoneFile
> > fi
> > exit 0
> > fi
> > #Nur die Zone-Files mit dem höchsten Serial behalten - wenn dieser höher ist als der bereits vorhandene
> > if [ $OwnSerial -ge $PeerSerial ]
> > then
> > rm -f $peer
> > continue
> > elif [ ${HighestSerialSoFar[0]} -gt $PeerSerial ]
> > then
> > rm -f $peer
> > continue
> > else
> > HighestSerialSoFar=( $PeerSerial $peer )
> > fi
> > done
> >
> > #Anzahl der verbliebenen Zone Files ermitteln
> > PeerZoneFileCount=$(ls -l|wc -l)
> > #Im Falle von einem Update vorher ein Backup machen
> > if [ $PeerZoneFileCount -gt 1 ]
> > then
> > backup $BackupDir $BackupsToStore
> > else
> > exit_script 0
> > fi
> >
> > #Falls nur ein Zone File verblieben ist, direkt einspielen und neustarten
> > if [ $PeerZoneFileCount -eq 2 ]
> > then
> > named-checkzone $DomainZone ${HighestSerialSoFar[1]}
> > if [ $? -eq 0 ]
> > then
> > cp ${HighestSerialSoFar[1]} $OwnZoneFile
> > fi
> > /etc/init.d/bind9 restart
> > exit_script 0
> > #Im Fall von mehreren Zone Files, prüfen ob alle
> > identisch sind. Falls nicht Abbruch. Ansonsten einspielen und neustart
> > else
> > md5=$(md5sum ${HighestSerialSoFar[1]} |awk '{print $1}')
> > for ZoneFile in *
> > do
> > loopmd5=$(md5sum $ZoneFile |awk '{print $1}')
> > if [ $md5 != $loopmd5 ]
> > then
> > echo $md5 $loopmd5
> > exit_script 1
> > fi
> > done
> >
> > named-checkzone $DomainZone ${HighestSerialSoFar[1]}
> > if [ $? -eq 0 ]
> > then
> > cp ${HighestSerialSoFar[1]} $OwnZoneFile
> > fi
> > /etc/init.d/bind9 restart
> > exit_script 0
> > fi
> >
>
>
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20151015/9bd7e5c7/attachment-0002.html>
Mehr Informationen über die Mailingliste franken-dev