djbdns - dnscache nur localhost

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
beggar
Beiträge: 7
Registriert: 04.12.2006 08:32:30

djbdns - dnscache nur localhost

Beitrag von beggar » 04.12.2006 09:45:16

Hallo Board!

Ich bin Umsteiger auf Debian nachdem ich lange Jahre mit SUSE gearbeitet habe. Aus diesem Grund werde ich in Zukunft wohl noch die eine oder andere Frage stellen, die dem einen oder anderen als komisch vorkommt. Ich versuche zu lernen...
:)

Es handelt sich um meinen Testserver, auf dem seit einigen Tagen Debian Sarge läuft. Aktuell ist der Server mit 3.1rc2 und Kernel 2.6 im Expert-Modus installiert. Nur das Grundsystem, keine weiteren Dienste. In den letzten Tagen habe ich dann CHROOOT, SSH mit DSA-Key und proFTP-TLS-Server installiert.

Jetzt geht es an den NS. Ich habe mich für djbdns entschieden um BIND endlich loszuwerden. Bei der Installation habe ich mich an folgende HowTos von
debianhowto.de und bettercom.de gehalten. Tinydns und dnscache laufen.Vom localhost - also der Serverkonsole - funktioniert das alles wunderbar. Leider kann ich nicht von dem Clients in meinem Netzwerk auf dnscache zugreifen?! Habe jetzt 2 Tage dran gebastelt und auch nochmal die Doku von Prof. Bernstein durchgeackert, finde allein nicht den Fehler. Oder muss ich irgendwo noch eine System-Config ändern?
Sende ich von einem client einen ping an den server "server.anynet.internal", kommt immer die Meldung:

Code: Alles auswählen

ping: cannot resolve server.anynet.internal: Unknown host
Gruss,

beggar

Hier meine Configs:
Netzwerk-Setup:

Code: Alles auswählen

name - ip 
-------------------
router - 192.168.1.1
subnet - mask 255.255.255.0
andere - clients 192.168.1.xxx
-------------------
name server 192.168.1.200
Auf den Clients ist der NS eingetragen

Code: Alles auswählen

DNS: 192.168.1.200
server /etc/hosts

Code: Alles auswählen

127.0.0.1       localhost.localdomain   localhost
192.168.1.200   server.anynet.internal server
server /etc/resolv.conf

Code: Alles auswählen

nameserver 127.0.0.1
# nameserver 192.168.1.200
nameserver 213.209.104.220 (<-- internet)
tinydns ist auf ip 127.0.0.1 installiert
Hier das file /etc/tinydns/root/data:

Code: Alles auswählen

.anynet.internal:127.0.0.1:a:259200
.1.168.192.in-addr.arpa:127.0.0.1:a:259200
=server.anynet.internal:192.168.1.200:86400
+*.anynet.internal:192.168.1.200:86400
@mail.anynet.internal:192.168.1.200:a::86400
dnscache auf ip 192.168.1.200 installiert
Ich habe unter /etc/dnscache/root/ip eine Datei mit dem Präfix des lokalen Netzwerks erstellt. In /etc/dnscache/root/ip liegen deshalb folgende Dateien:

Code: Alles auswählen

127.0.0.1
192
Auf der Serverkonsole funktioniert alles prächtig:

Code: Alles auswählen

server:# dnsip localhost
server:# 127.0.0.1
server:# dnsip www.anynet.internal
server:# 192.168.1.200
server:# dnsname 192.168.1.200
server:# server.anynet.internal
server:# dnsip aol.com
server:# 64.12.50.151 205.188.142.182
Das log /etc/dnscache/log/main/current spukt im Sekundentakt folgendes aus:

Code: Alles auswählen

@400000004573ccc80b55b5e4 dnscache: fatal: unable to bind TCP socket: address already used
@400000004573ccc90d6f4afc dnscache: fatal: unable to bind TCP socket: address already used
@400000004573ccca0f20bbec dnscache: fatal: unable to bind TCP socket: address already used
Quicklinks: Wikipedia | LEO | metaGER | Suche Forum

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 04.12.2006 10:17:36

Hm, ich denke, dein Problem wird wohl das sein, was du als letztes gepostet hast. Es läuft schon irgendein Prozess, der den entsprechenden Port für sich beansprucht. Da würde ich mal nachsehen, welcher das ist und und dann entsprechend fixen.

Code: Alles auswählen

netstat -tulpen
sollte dir anzeigen, welcher Prozess auf welchem Port lauscht.

Benutzeravatar
beggar
Beiträge: 7
Registriert: 04.12.2006 08:32:30

Beitrag von beggar » 12.12.2006 21:30:26

nepos hat geschrieben:Hm, ich denke, dein Problem wird wohl das sein, was du als letztes gepostet hast. Es läuft schon irgendein Prozess, der den entsprechenden Port für sich beansprucht. Da würde ich mal nachsehen, welcher das ist und und dann entsprechend fixen.

Code: Alles auswählen

netstat -tulpen
sollte dir anzeigen, welcher Prozess auf welchem Port lauscht.
Danke für den Tip. Habe das mal versucht, sehe da aber nix:

Code: Alles auswählen

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     0          1852       564/portmap
tcp        0      0 192.168.1.200:53        0.0.0.0:*               LISTEN     0          2679       1121/dnscache
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN     65534      2576       1075/proftpd: (acce
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     0          2421       1042/exim4
tcp        0      0 0.0.0.0:826             0.0.0.0:*               LISTEN     0          2562       1068/rpc.statd
tcp6       0      0 :::80                   :::*                    LISTEN     0          2608       1086/apache2
tcp6       0      0 :::22                   :::*                    LISTEN     0          2531       1061/sshd
tcp6       0      0 :::443                  :::*                    LISTEN     0          2609       1086/apache2
udp        0      0 0.0.0.0:820             0.0.0.0:*                          0          2545       1068/rpc.statd
udp        0      0 192.168.1.200:53        0.0.0.0:*                          0          2678       1121/dnscache
udp        0      0 127.0.0.1:53            0.0.0.0:*                          0          2675       1120/tinydns
udp        0      0 0.0.0.0:823             0.0.0.0:*                          0          2559       1068/rpc.statd
udp        0      0 0.0.0.0:111             0.0.0.0:*                          0          1851       564/portmap
Habe meinen Clients als DNS nur die IP des NS (192.168.1.200) gegeben, der Zugriff auf das Internet funktioniert wunderbar. Nur die lokalen Namen werden bei Anfragen von den Clients nicht aufgelöst. Auf dem NS selbst funktioniert das auch wunderbar.

Code: Alles auswählen

# dnsip www.anynet.internal
# 192.168.1.200
So sieht das ganze im Log von /etc/dnscache/log/main/current aus, wenn ich Google anlaufe und danach den NS:

Code: Alles auswählen

(Schnipp)
....
@40000000457f015f020af4f4 cached 1 c.l.google.com.
@40000000457f015f020b8964 cached 1 d.l.google.com.
@40000000457f015f020b9cec cached 1 e.l.google.com.
@40000000457f015f020bac8c cached 1 g.l.google.com.
@40000000457f015f020bb844 tx 0 1 sb.l.google.com. l.google.com. d8ef3509 40e9b709 40e9a109 40e9a709 42660b09 40e9b309
@40000000457f015f0c24834c rr d8ef3509 300 1 sb.l.google.com. 480edd5b
@40000000457f015f0c24aa5c rr d8ef3509 300 1 sb.l.google.com. 480edd5d
@40000000457f015f0c24b9fc rr d8ef3509 300 1 sb.l.google.com. 480edd5f
@40000000457f015f0c24c99c stats 18 14819 1 0
@40000000457f015f0c24d554 sent 18 98
@40000000457f02223804c83c query 19 c0a80169:c49f:d233 1 server.anynet.internal.
@40000000457f0222380550f4 tx 0 1 server.anynet.internal. . 8009006b c021040c c00505f1 ca0c1b21 c0249411 c03a801e c6290004 803f0235 c1000e81 c0702404 80080a5a c620400c c0cbe60a
@40000000457f0224045ca93c nxdomain c021040c 3600 server.anynet.internal.
@40000000457f0224045cd434 sent 19 52
@40000000457f0224046b6a94 query 20 c0a80169:c4a0:103e 1 server.anynet.internal.
@40000000457f0224046b91a4 cached nxdomain server.anynet.internal.
@40000000457f0224046ba52c sent 20 52
Irgendwie hakt es bei der Übergabe der Daten an tinydns....

Benutzeravatar
beggar
Beiträge: 7
Registriert: 04.12.2006 08:32:30

Beitrag von beggar » 12.12.2006 21:48:15

Wenn ich einen nslookup auf server.anynet.internal mache, bekomme ich die IP vom Server und die Fehlermeldung "server can't find server.anynet.internal: NXDOMAIN". Lustigerweise bringt der Reverse-lookup mit nslookup 192.168.1.200 den Namen des NS ohne Fehlermeldung.
Beim Ping auf server.anynet.internal bekomme ich nur eine Fehlermeldung "non-existant domain".

Muss ins Bett, mache Morgen weiter....
:?

Antworten