DNS Zone File

Christian Dresel fff at chrisi01.de
Do Okt 15 22:58:16 CEST 2015


Guten Abend

Ich hab im Moment ein halbes Dutzend andere Probleme ;) Macht es euch 
was aus wenn ich sagen:
"Macht ihr erst mal und wenn das halbwegs läuft häng ich meine Kiste als 
letztes mit rein"?

Die Domain entsprechend umleiten kann ich problemlos machen sobald ich 
die Daten habe die dazu nötig sind.

mfg

Christian

P.S. Ein Gedankengang nebenbei wäre es technisch "irgendwie" lösbar eine 
spezielle Domain (z.b. example.fff.community) auch über das (böse) 
Internet erreichbar zu machen? Hätte damit was vor und das wäre absolut 
genial wenn das geht. Ich kanns mir eigentlich nicht vorstellen das es 
geht aber da seid wohl ihr die Experten und vielleicht täusche ich mich 
ja und ihr habt da einen "Trick" auf Lager ;)

Am 15.10.2015 um 20:49 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
>>          
>


-- 
Kontaktmöglichkeiten ChristianD (Christian Dresel):
Jabber: christian at jabber.community
E-Mail: fff at chrisi01.de
Facebook: https://www.facebook.com/christian.chili
Handy/Whatsapp & Festnetz: auf Nachfrage




Mehr Informationen über die Mailingliste franken-dev