<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;">Hallo Christian,<br><br>Das geht und muss gehen, da sonst das ganze Konzept nicht funktionieren würde.<br>Wenn ich morgen Zeit finde, werde ich dazu mal nen Wiki Eintrag anlegen.<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:fff@chrisi01.de">Christian Dresel</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 22:58</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>; <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;">Cc: </span><span style="font-family: Calibri,sans-serif; font-size: 11pt;"><a href="mailto:michael@fritscher.net">Michael Fritscher</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>Guten Abend<br><br>Ich hab im Moment ein halbes Dutzend andere Probleme ;) Macht es euch <br>was aus wenn ich sagen:<br>"Macht ihr erst mal und wenn das halbwegs läuft häng ich meine Kiste als <br>letztes mit rein"?<br><br>Die Domain entsprechend umleiten kann ich problemlos machen sobald ich <br>die Daten habe die dazu nötig sind.<br><br>mfg<br><br>Christian<br><br>P.S. Ein Gedankengang nebenbei wäre es technisch "irgendwie" lösbar eine <br>spezielle Domain (z.b. example.fff.community) auch über das (böse) <br>Internet erreichbar zu machen? Hätte damit was vor und das wäre absolut <br>genial wenn das geht. Ich kanns mir eigentlich nicht vorstellen das es <br>geht aber da seid wohl ihr die Experten und vielleicht täusche ich mich <br>ja und ihr habt da einen "Trick" auf Lager ;)<br><br>Am 15.10.2015 um 20:49 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>-- <br>Kontaktmöglichkeiten ChristianD (Christian Dresel):<br>Jabber: christian@jabber.community<br>E-Mail: fff@chrisi01.de<br>Facebook: https://www.facebook.com/christian.chili<br>Handy/Whatsapp & Festnetz: auf Nachfrage<br><br></body></html>