Probleme mit BIND als caching-only-nameserver

Post Reply
Message
Author
User avatar
Lateralus
prolinux-forum-admin
Posts: 1238
Joined: 05. May 2004 7:35

Probleme mit BIND als caching-only-nameserver

#1 Post by Lateralus »

Ich habe Probleme mit BIND unter einem FreeBSD 4.10. Er soll als caching-only-nameserver agieren. Nach langem hin und her habe ich die named.conf sehr, sehr klein gehalten. Sie sieht nun so aus:

Code: Select all

user@Chronos.local:/# cat /etc/namedb/named.conf
options {
        directory "/etc/namedb";

        forward only;

        forwarders {
                192.168.0.100;
        };
};
Die angegebene IP ist unser DSL-Router, welcher den Nameserver von Telekom zugewiesen bekommt und die DNS-Lookups weiterleitet. Nun komme ich auf widersprüchliche Ergebnisse:

Code: Select all

user@Chronos.local:/> ping -c 1 www.google.de
ping: cannot resolve www.google.de: Host name lookup failure
user@Chronos.local:/> ping -c 1 www.prolinux.de
PING www.prolinux.de (213.239.211.178): 56 data bytes
64 bytes from 213.239.211.178: icmp_seq=0 ttl=53 time=99.468 ms

--- www.prolinux.de ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max/stddev = 99.468/99.468/99.468/0.000 ms
Als root teilweise das:

Code: Select all

user@Chronos.local:/# ping www.google.de
PING www.google.com (66.249.85.99): 56 data bytes
36 bytes from 192.168.0.100: Destination Net Unreachable
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst
 4  5  00 5400 0c29   0 0000  3f  01 163a 192.168.0.66  66.249.85.99 
Und dann zu meiner Verblüffung:

Code: Select all

user@Chronos.local:> ping www.google.de
PING www.google.com (66.249.85.99): 56 data bytes
64 bytes from 66.249.85.99: icmp_seq=0 ttl=247 time=70.598 ms
64 bytes from 66.249.85.99: icmp_seq=1 ttl=247 time=70.245 ms
64 bytes from 66.249.85.99: icmp_seq=2 ttl=247 time=69.324 ms
64 bytes from 66.249.85.99: icmp_seq=3 ttl=247 time=69.941 ms
64 bytes from 66.249.85.99: icmp_seq=4 ttl=247 time=69.450 ms
64 bytes from 66.249.85.99: icmp_seq=5 ttl=247 time=68.414 ms
64 bytes from 66.249.85.99: icmp_seq=6 ttl=247 time=69.353 ms
64 bytes from 66.249.85.99: icmp_seq=7 ttl=247 time=68.535 ms
^C
--- www.google.com ping statistics ---
8 packets transmitted, 8 packets received, 0% packet loss
round-trip min/avg/max/stddev = 68.414/69.483/70.598/0.717 ms

Code: Select all

user@Chronos.local:/# /usr/sbin/named -v
named 8.3.7-REL Tue May 25 21:15:41 GMT 2004
        root@perseus.cse.buffalo.edu:/usr/obj/usr/src/usr.sbin/named
In den Handbuchseiten steht, dass named seine Datenbank in /var/tmp hält, aber dieses Verzeichnis enthält keinerlei Dateien. Es würde mich schon mal interessieren, wie's in den Dateien aussieht, ob die Einträge vermerkt sind, etc.

Obwohl der Nameserver ja an sich läuft, weiß ich nicht,
1. ob er die Einträge tatsächlich abspeichert,
2. warum er teilweise die Auflösung erst nach einigen Versuchen hinbekommt.

Ich habe davon nicht viel Ahnung und wollte es eher aus Spaß mal ausprobieren, mir liegt aber schon sehr viel daran, dass es vernünftig läuft. Wenn jemand ein paar Informationen hätte, würde ich mich freuen.

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

#2 Post by hjb »

Hi,

so ein paar generelle Sachen:

Wenn named nur als Cache läuft, braucht er keine Dateien, denn er benutzt ausschließlich das RAM als Cache.

Ob das Verzeichnis per Default /var/tmp ist, weiß ich nicht, es wäre aber eine ziemlich dumme Idee. Es kann jedenfalls in named.conf konfiguriert werden.

Die widersprüchlichen Ergebnisse kann ich auch nicht ganz erklären, sie deuten aber auf ein Routing-Problem hin.

Gruß,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

AlexMH

#3 Post by AlexMH »

Hi,

> Die angegebene IP ist unser DSL-Router, welcher den Nameserver von Telekom zugewiesen bekommt und die DNS-Lookups weiterleitet.

Du kannst zusaetzlich zu deinem lokalen Router noch irgendwelche DNS aus dem Internet eintragen (z.B. die von T-Online). Dabei spielt es idR keine Rolle von wem der DNS ist, da nahezu alle Nameserver im Internet alle Anfragen beantworten koennen, bzw. deinen Nameserver auf den Richtigen "umleiten". Vielleicht ist der DNS von deinem Router nicht ganz sauber.
Alternativ kannst du deinem Namensserver auch die Liste aller Root-Server (als Hint) uebergeben, so dass er selbststaendig alle Namen aufloesen kann ohne einen anderen DNS fragen zu muessen.

> Als root teilweise das:
> PING www.google.com (66.249.85.99): 56 data bytes
> 36 bytes from 192.168.0.100: Destination Net Unreachable

Das kann ein Routing Problem sein, muss aber erstmal garnix bedeuten. Unter Umstaenden war einfach gerade der Router down, der fuer das Netz 66.249.85.99 zustaendig ist.
Wenn du "traceroute" installiert hast, dann kannst du den Weg deiner Pakete verfolgen, solange sie nicht von einer Firewall geblockt werden. Du siehst dann, wo deine Pakete haengen bleiben. Du solltest auf jedenfall bis ueber deinen Router drueber kommen. Kommst du nicht mal bis zu deinem Router, dann hast du ein Routing problem. Kommst du bis irgendwo ins Internet, dann liegt das Problem nicht bei dir.

> 2. warum er teilweise die Auflösung erst nach einigen Versuchen hinbekommt.

Das kann man pauschal nicht beantworten, du kannst es aber mit "dig" und "nslookup" testen. "Dig" ist die Zukunft und wird nslookup irgendwann vollstaendig ersetzen. "nslookup" ist fuer Anfaenger aber intuitiver. Hier ein Beispiel:

Allgemeines aufloesen eines Namens:
-------------
alex@lithium:alex> nslookup www.pro-linux.de
Server: 127.0.0.1
Address: 127.0.0.1#53

Non-authoritative answer:
Name: www.pro-linux.de
Address: 213.239.211.178
--------------
Hier habe ich meinen lokalen Nameserver nach der IP von Pro Linux gefragt.

Gibst du nur den Befehl "nslookup" ein, kannst du die Anfrage besser steuern. Mit dem Befehl "server <ip>" kannst du den Nameserver festlegen, der gefragt werden soll. Wenn ich also meinen Router auf der IP 10.10.10.1 nach der Adresse von ProLinux fragen wollte, wuerde das so ablaufen:

-------------
alex@lithium:alex> nslookup
> server 10.10.10.1
Default server: 10.10.10.1
Address: 10.10.10.1#53
> www.pro-linux.de
Server: 10.10.10.1
Address: 10.10.10.1#53

Non-authoritative answer:
Name: www.pro-linux.de
Address: 213.239.211.178
> exit
alex@lithium:alex>
--------------

So kannst du z.B. pruefen, ob dein Router den Namen aufloesen kann und dein Nameserver nicht. Ich vermute aber mal, dass BIND seine Aufgabe richtig macht und nur irgendwie dein Router versagt.

Viel Spass beim Testen,
Alex

Post Reply