# [ISP3] DNS Konfiguration



## Quest (25. Feb. 2009)

Hallo zusammen

Die DNS Features von ISP3 habe ich bisher noch gar nicht wirklich genutzt. Hab einfach immer alles in mein Zonefile bei Hetzner eingetragen.
Jetzt wollte ich mal testweise eine Domain über myDNS auf meinem Server steuern und hab den Robot von Hetzner angewiesen sich als Slave das Zonefile von meinem Server zu holen.
Die IP-Adressen der Hetzner-DNS habe ich für den Zone-Transfer eingetragen.
Nach Einrichtung der Zone und der Einträge kommt leider bei einem nslookup auf die Domain:


> DNS request timed out.
> timeout was 2 seconds.
> DNS request timed out.
> timeout was 2 seconds.
> *** Zeitüberschreitung bei Anforderung an ns1.first-ns.de


Vermutlich fehlen mir da noch ein paar Einträge in meinem Zonefile oder ich hab einfach sonst irgendwas falsch eingetragen.
Werft doch bitte mal einen kurzen Blick auf den Export von mydns ob ihr etwas erkennen könnt:

```
# mydnsexport diversnetwork.de.
$TTL 86400
; Zone: diversnetwork.de. (#3)
; Created by "mydnsexport diversnetwork.de."
; Wed Feb 25 19:13:47 2009
$ORIGIN diversnetwork.de.

@       IN SOA  ns1.divepage.net.       mail.meinedoma.in. (
        2009022534        ; Serial
        28800             ; Refresh
        7200              ; Retry
        604800            ; Expire
        86400           ) ; Minimum

*                       86400   IN A            88.198.121.94
diversnetwork.de.       86400   IN A            88.198.121.94
diversnetwork.de.       86400   IN MX           5 mail.diversnetwork.de.
diversnetwork.de.       86400   IN NS           ns1.divepage.net.
diversnetwork.de.       86400   IN NS           ns1.first-ns.de.
```


----------



## Till (25. Feb. 2009)

Das sieht soweit ok aus. Um den DNS Server zu Testen kannst Du den Folgenden Befehl auf dem Server ausführen:

dig @localhost diversnetwork.de

Um einen vollständigen DNS Record als Beispiel anzulegen nimmt man am besten den DNS Wizard.


----------



## Quest (25. Feb. 2009)

dig hab ich auf meinem server gar nicht drauf.
meines Wissens kommt das doch mit dem Paket dnsutils?
Dieses erfordert laut Apt aber bind9-host
Kommt sich das mit dem myDNS in die Quere?

Ich hab aber mal von meinem Rechner aus mit nslookup meinen Server als DNS eingestellt (server ns1.divepage.net) und dann noch mal versucht aufzulösen.
Dann funktioniert das.
Nur von externen DNS scheint das nicht zu funktionieren.
In welcher Log kann ich denn nachschauen ob und wenn ja wann sich andere Server erfolgreich eine Zone transferiert haben?

Den Wizard würd ich ja gern verwenden, aber da müsste ich ja auch erst mal Templates für erstellen.


----------



## Quest (25. Feb. 2009)

Noch eine Idee, könnte am mydns-config was nicht stimmen wodurch er keine Zonetransfer an Slave Server zulässt?
Hier meine Config:


```
db-host = localhost             # SQL server hostname
db-user = ispconfig             # SQL server username
db-password = xxx         # SQL server password
database = dbispconfig          # MyDNS database name


                                # GENERAL OPTIONS

user = nobody                   # Run with the permissions of this user
group = nogroup                 # Run with the permissions of this group
listen = *                      # Listen on these addresses ('*' for all)
no-listen =                     # Do not listen on these addresses


                                # CACHE OPTIONS

zone-cache-size = 2048  # Maximum number of elements stored in the zone cache
zone-cache-expire = 60  # Number of seconds after which cached zones expires
reply-cache-size = 2048 # Maximum number of elements stored in the reply cache
reply-cache-expire = 30 # Number of seconds after which cached replies expire


                                # ESOTERICA

log = LOG_DAEMON        # Facility to use for program output (LOG_*/stdout/stderr)
pidfile = /var/run/mydns.pid    # Path to PID file
timeout = 120   # Number of seconds after which queries time out
multicpu = 1    # Number of CPUs installed on your system
recursive =                     # Location of recursive resolver
allow-axfr = yes # Should AXFR be enabled?
allow-tcp = yes  # Should TCP be enabled?
allow-update = no       # Should DNS UPDATE be enabled?
ignore-minimum = no     # Ignore minimum TTL for zone?
soa-table = dns_soa     # Name of table containing SOA records
rr-table = dns_rr       # Name of table containing RR data
soa-where = server_id = 1               # Extra WHERE clause for SOA queries
rr-where =  server_id = 1               # Extra WHERE clause for RR queries
use-soa-active = yes # To fix bug 295 where active or inactive status is ignored.
use-rr-active = yes# To fix bug 295 where active or inactive status is ignored.
```


----------



## Till (25. Feb. 2009)

Es dauert bis zu 48 Stunden bis sich externe nameserver umstellen. wenn der Server bei localhost das richtige zurück gibt, dann ist er auch korrekt konfiguriert.


----------



## Quest (26. Feb. 2009)

Führt der myDNS eigentlich bei einer Änderung durch ISPConfig ein Notify an die eingetragenen Nameserver der Zone durch? Damit ließe sich die Zeit doch verkürzen, oder?

2 weitere Fragen von weiter oben bleiben noch:
Kommt sich myDNS mit dem Paket dnsutils (erfordert bind9-host) in die Quere?
Über ein anderes Paket komm ich scheinbar nicht an dig ran.
Wie wird denn so ein DNS Template bei ISP3 aufgebaut?


----------



## Till (26. Feb. 2009)

> Führt der myDNS eigentlich bei einer Änderung durch ISPConfig ein Notify an die eingetragenen Nameserver der Zone durch? Damit ließe sich die Zeit doch verkürzen, oder?


Nein. Du kannst aber mydns neu starten, um ein notify auszuführen. Es kann aber trotzdem bis zu 48 Stunden dauern, da dns Einträge von den diversen Zugangsanbietern gecached werden.



> Kommt sich myDNS mit dem Paket dnsutils (erfordert bind9-host) in die Quere?


Nicht solange Du ihn nicht startest.



> Wie wird denn so ein DNS Template bei ISP3 aufgebaut?


Schau Dir mal das mitgelieferte Beispiel an. Es enthält alles, was möglich ist.


----------



## Quest (26. Feb. 2009)

Zitat von Till:


> Schau Dir mal das mitgelieferte Beispiel an. Es enthält alles, was möglich ist.


Ich bin seit der 3.0.0.5 dabei und hab immer brav SVN-Updates gemacht, aber bei mir ist kein Beispiel drin. Ist da möglicherweise ein Insert bei einem Update schief gelaufen?

Was die DNS Konfiguration angeht: 
Hetzner bietet mir ja an die 3 Standard-NS von Hetzner als Secondaries zu nutzen, die sich dann immer von meinem MyDNS die Zonefiles holen.
Für die Denic bleibt der Eintrag ja vermutlich dann bei den 3 Hetzner NS.
Nur scheint das mit dem Zonetransfer nicht so zu klappen wie gewünscht.
Wenn ich mit nslookup die Domain aufzulösen versuche bekomme ich einen DNS Timeout. Versuche ich eine andere Domain auf meinem Server aufzulösen für die der Primary DNS noch einer der Hetzner DNS ist, dann klappt das wunderbar.


----------



## Quest (2. März 2009)

... scheinbar bin ich ja der einzige, der Probleme mit myDNS in Kombination mit Secondary-NS-Einträgen von Hetzner hat, aber es funktioniert immer noch nicht.
An der Zone von diversnetwork.de habe ich seit Freitag früh nix mehr geändert, müsste also längst auf die Secondary Server transferiert sein.
Die IP-Adressen der Secondaries hab ich auch in das Transfer-Feld eingetragen. Ebenfalls stehen sie als NS-Records im Zonefile und sollten ja bei Neustart von myDNS - was ich übers Wochenende verteilt ein paar mal gemacht habe - ein Notify bekommen.

Versuche ich Einträge in meiner Zone diversnetwork.de. über meinen myDNS ns1.divepage.net aufzulösen klappt das wunderbar. Versuche ich über einen Hetzner-DNS oder einfach nur über den DNS den mir Arcor bei der Verbindung zuweist aufzulösen bekomme ich nach wie vor nur einen Timeout.


----------



## planet_fox (2. März 2009)

Hi Quest

kannst du mal deine Konfig von Hetzner posten ?


----------



## Quest (2. März 2009)

Die ist für diese Zone recht simpel:
Option "Nur Secondary Eintrag"
IP des Nameservers 78.46.85.41 (Haupt-IP meines Rootservers)

Bei dieser Option sollten laut Hetzner Support alle 3 NS von Hetzner als Slave fungieren und von der angegebenen IP als Master das Zonefile für die Zone transferieren.
Die IPs dieser 3 NS habe ich in ISP im entsprechenden Feld eingegeben.


----------



## Till (2. März 2009)

Versuch doch testweise erstmal nur die Ip eines slave anzugeben und dann starte mal mydns neu.


----------



## Quest (2. März 2009)

Habe ich gemacht. Danach habe ich 15 Minuten gewartet damit der slave genug Zeit hat um auf einen Notify zu reagieren und habe anschließend mit nslookup versucht auf dem lokalen myDNS und auf dem eingetragenen NS aufzulösen, hier das Ergebnis:
(Testweise hab ich auch noch meine Stammdomain über den Hetzner DNS auflösen lassen, nur um sicherzugehen, dass Zonen, die bei Hetzner selbst liegen auch aufgelöst werden.)


```
> server localhost
Default server: localhost
Address: 127.0.0.1#53
> diversnetwork.de
Server:         localhost
Address:        127.0.0.1#53

Name:   diversnetwork.de
Address: 88.198.121.94
> server 213.239.242.238
Default server: 213.239.242.238
Address: 213.239.242.238#53
> diversnetwork.de
;; connection timed out; no servers could be reached
> divepage.net
Server:         213.239.242.238
Address:        213.239.242.238#53

Name:   divepage.net
Address: 78.46.85.41
>
```

[EDIT]
Hab gerade eine Antwort auf eine Anfrage bei Hetzner bekommen:


> wir haben den Prozess zum Zonentransfer mehrmals erfolglos von ns1.first-ns.de
> (213.239.242.238) aus manuell angestoßen. Der Zonentransfer ist immer
> fehlgeschlagen, weil offenbar keine Daten zurückgeliefert wurden.
> Ist für Sie in Ihren Logs des Nameservers ns1.divepage.net dazu irgendetwas
> ersichtlich?


A: Wo logt myDNS? ich kann nirgends ein Logfile finden. und in der /var/log/messages steht nicht wirklich was über myDNS
B: Woran kann es liegen, dass der externe DNS keine Daten von myDNS zurück bekommt? die genannte IP ist als einzige freigegebene eingetragen und Port 53 ist offen.


----------



## Quest (4. März 2009)

Hab jetzt mal nach den Angaben der myDNS doku einen manuellen Pfad für das Logfile eingetragen.
Funktioniert wunderbar, die Start- und Stopmeldungen gehen ein.
Aber sonst auch leider nix verwertbares...

Die Frage mit dem Log wär damit hinfällig.
Bleibt aber trotzdem noch das Problem, dass die Secondaries sich die Zone nicht transferieren können.
Lässt sich der Zonetransfer vielleicht irgendwie lokal simulieren? z.B. indem ich den transfer für die 127.0.0.1 freigebe und mich dann per telnet mit dem lokalen Port 53 verbinde?
Welche Befehle müsste ich da für den Transfer dann eingeben?


----------



## Quest (4. März 2009)

Hab eine Möglichkeit gefunden mit dig den Zonetransfer zu simulieren.
Die Ausgabe der lokalen Simulation macht mich leider auch nicht schlauer:

```
# dig @127.0.0.1 diversnetwork.de -t AXFR

; <<>> DiG 9.3.4-P1.1 <<>> @127.0.0.1 diversnetwork.de -t AXFR
; (1 server found)
;; global options:  printcmd
; Transfer failed.
```


----------



## Till (4. März 2009)

Hast Du denn für die lokale IP bzw. sicherheitshalber auch 127.0.0.1 den zonentransfer erlaubt?


----------



## Quest (4. März 2009)

Ja, hab ich.
Habs 3 mal probiert.
Nur die Loopback
Nur die Primäre
Und beide
Immer das selbe Ergebnis
myDNS scheint keine XFER Requests anzunehmen / richtig zu bearbeiten. Nehm ich den Typparameter weg liefert dig die erwartete Ausgabe.


----------



## Till (4. März 2009)

Hast Du Dir das hier mal durchgeselesen?

http://mydns.bboy.net/faq/
http://mydns.bboy.net/doc/html/mydns_32.html#SEC32

danach musst Du allow-axfr in der mydns.conf datei aktivieren und allow-tcp würde ich auch mal aktivieren.


----------



## Quest (4. März 2009)

Das scheint ja ISP für mich bei der Installation schon gemacht zu haben. Oder es ist per Default in der configdatei und auf yes.
Siehe meine Configdatei auf der ersten Seite dieses Threads.


----------



## Till (4. März 2009)

Habe das gerade mal auf meinem debian lenny test server ausprobiert und da funktioniert es mit der von ISPConfig erzeugten Konfiguration.


```
dig @127.0.0.1 till.int -t AXFR

; <<>> DiG 9.5.1-P1 <<>> @127.0.0.1 till.int -t AXFR
; (1 server found)
;; global options:  printcmd
till.int.               86400   IN      SOA     ns1.till.int. t.brehm.ensign.de. 2009030202 28800 7200 604800 86400
mail.till.int.          86400   IN      A       192.168.0.100
till.int.               86400   IN      A       192.168.0.100
till.int.               86400   IN      MX      10 mail.till.int.
till.int.               86400   IN      NS      ns1.till.int.
till.int.               86400   IN      NS      ns2.till.int.
www.till.int.           86400   IN      A       192.168.0.100
till.int.               86400   IN      SOA     ns1.till.int. t.brehm.ensign.de. 2009030202 28800 7200 604800 86400
;; Query time: 12 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Mar  2 15:08:54 2009
;; XFR size: 8 records (messages 8, bytes 442)
```
Den Fehler den Du erhältst bekomme ich dann, wenn ich nicht im Feld "Allow zone transfers to these IPs (comma separated list)" der Domain die IP "127.0.0.1" eintrage, da ich ja die Abfrage von localhost aus durchführe.


----------



## Quest (5. März 2009)

Gut, das bedeutet dann wohl, dass der myDNS den Transfer verweigert, weil er nicht erkennt, dass 127.0.0.1 die Zone transferieren darf.
Nur Warum?
Laut myDNS Doku muss das Feld xfer in der Datenbank ja nur vorhanden sein und wird automatisch berücksichtigt.
Es ist da und die in ISP eingetragenen IP Adressen stehen auch drin.
Da es bei dir auf Lenny funktioniert werd ich glaub ich einfach erst mal ein Upgrade auf Lenny machen und es dann noch mal versuchen.


----------



## Till (5. März 2009)

Keine Ahnung warum es bei Dir nicht geht. Welche mydns Version setzt Du ein?


----------



## Quest (5. März 2009)

Laut apt die 1.1.0-7e
Habe jetzt das Upgrade auf Lenny gemacht. Hat zu diesem Problem nix gebracht, alles beim Alten geblieben...


----------



## Till (5. März 2009)

Installier bitte mal das aktuelle mydns-ng wie es in der Anleitung für lenny steht.


----------



## Quest (5. März 2009)

Hab ich jetzt gemacht.
Ergebnis:
Hat alles geklappt, sogar make install
Nur das Startscript aus dem howto will nicht:

```
# /etc/init.d/mydns start
/etc/init.d/mydns: line 1: #!: command not found
: command not foundline 9:
: invalid options: line 10: set: -
set: usage: set [--abefhkmnptuvxBCHP] [-o option] [arg ...]
```
Mein Startscript:

```
#!/bin/sh
#
# mydns         Start the MyDNS server
#
# Author:       Philipp Kern <phil@philkern.de>.
#               Based upon skeleton 1.9.4 by Miquel van Smoorenburg
#               <miquels@cistron.nl> and Ian Murdock <imurdock@gnu.ai.mit.edu>.
#

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/sbin/mydns
NAME=mydns
DESC="DNS server"

SCRIPTNAME=/etc/init.d/$NAME

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

case "$1" in
  start)
        echo -n "Starting $DESC: $NAME"
        start-stop-daemon --start --quiet --exec $DAEMON -- -b
        echo "."
        ;;
  stop)
        echo -n "Stopping $DESC: $NAME"
        start-stop-daemon --stop --oknodo --quiet --exec $DAEMON
        echo "."
        ;;
  reload|force-reload)
        echo -n "Reloading $DESC configuration..."
        start-stop-daemon --stop --signal HUP --quiet --exec $DAEMON
        echo "done."
        ;;
  restart)
        echo -n "Restarting $DESC: $NAME"
        start-stop-daemon --stop --quiet --oknodo --exec $DAEMON
        sleep 1
        start-stop-daemon --start --quiet --exec $DAEMON -- -b
        echo "."
        ;;
  *)
        echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
        exit 1
        ;;
esac

exit 0
```


----------



## Quest (5. März 2009)

Hab jetzt die Configfiles + Startscript aus der VM genommen und über ein svn update die Dienste neu konfigurieren lassen.
Was MyDNS angeht passt jetzt alles.
Funktioniert, danke


----------

