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