DNS und DHCP -> wo liegt der Fehler?

Dinh

Well-Known Member
Moin

Ich hoffe, ihr könnt mir hier bei meinem Netzwerkproblem weiterhelfen.
Der Thread wurde sehr lang, sorry, ich wollte das Problem einfach genug genau beschreiben!

Vorgeschichte
Da unser alter Router den Geist aufgegeben hatte musste ein neuer her. Der alte Router vergab per DHCP 10.0.0-er IPs, der neue vergibt 192.168-er IPs.
Unter dem alten Router trat das Problem NICHT auf!

Problem
Wenn ich mit Firefox eine Domain aufrufe, braucht er ca. 1min um die Domain zu finden (lädt die seite also noch nicht). Sobald die Domain mal gefunden wurde lädt die Seite schnell und ich kann mit normalen Ladezeiten durch die Unterseiten (z.B. eines Forums) navigieren. Beim Aufruf einer neuen Domain (z.B. eines anderen Forums) "sucht" er wieder ca. 1min.
Das Problem trat schon unter 5.4 auf. Seither hab' ich 6.0 frisch installiert und hatte gehofft, das Problem so zu lösen.
Das selbe Problem hab' ich unter Ubuntulinux; unter WindowsXP funktioniert alles einwandfrei... :confused:
Meine Vermutung: Der neue Router hat keinen DNS-Server

Configfiles
(IP des Router: 192.168.1.1 / Am PC zugewiesene IP: immer 192.168.1.34)
/etc/rc.conf
hostname="lukas.w.ch"
(wenn ich den leerlasse, wie unter [1] beschrieben, dann startet nicht mal mehr xfwm4! Wenn ich sie auf 192.168.1.34 setze, ändert sich gar nichts.)
/etc/hosts
::1 localhost localhost.w.ch
127.0.0.1 localhost localhost.w.ch
/etc/host.conf
hosts
bind
/etc/resolv.conf
nameserver 192.168.1.1
(ich hab versucht den Nameserver von hand auf einen von [2], den ich anpingen kann, zu ändern. Nach einem Neustart steht da aber wieder 192.168.1.1 drin!)
/etc/nsswitch.conf
group: compat
group_compat: nis
hosts: files dns
networks: files
passwd: compat
passwd_compat: nis
shells:files
(ich denke, da drin liegt der Fehler)

Fehlersuche
"ping www.google.ch (und jede andere Domain)", "ping localhost", "ping 192.168.1.34" und "ping 192.168.1.1"
funktionieren problemlos und ohne Verzögerung

"ifconfig" gibt die richtige IP zurück.

"hostname" gibt den richtigen hostnamen aus der rc.conf zurück.

"host 192.168.1.34" meldet:
;; connection timed out; no servers could be reached

"host localhost" meldet:
localhost has address 127.0.0.1
localhost has IPv6 address ::1
;; connection timed out; no servers could be reached



Ich bin wirklich um jede Hilfe sehr froh!!! :)

[1] http://wiki.bsdforen.de/index.php/FreeBSD_-_Namensauflösung
[2] http://www.gsnw.de/public/dns-server.php
 
ich hab jetzt nicht so ganz verstanden ob die bsd maschine dessen config du hier postest der router ist oder nicht!? (wahrscheinlich eher nicht)

- was ist das für ein router?
- probier doch einfach mal einen anderen dns server (141.89.64.1 oder 141.89.65.1) bei den clients/beim client (hast du schon - hast aber nicht gesagt ob es geklappt hat)
- wenn das hilft, schau ob man beim router die dhcp-options ändern kann - wenn nicht, dann schau nach firmware update des routers (fest verlötete dns server einträge bei denen die ersten beiden in der liste nicht mehr gehen)
- die 192.168.1.1 steht bei jedem neustart wahrscheinlich immer wieder drin weil netzwerk per dhcp konfiguriert wird!? (/etc/rc.conf)
- nsswitch.conf sieht eigentlich super aus
- probier alternativ auch mal ipv6 zu deaktivieren (ipv6_enable="NO")
- ...
 
Thx für die Antwort!

- Es ist ein Netopia 3346-Router und ja, alles oben ist vom FreeBSD-Client.
- Der Router bietet leider keine feinen DHCP-Einstellungen und Firmware-Update nützt wohl nichts, da bei den Windows-Clients alles läuft!
- Den DNS-Server in der resolve.conf kann ich ja eben nicht von Hand ändern, denn nach einem Neustart ist alles wieder wie vorher. Und um die Änderungen aktiv werden zu lassen, muss ich ja neustarten.
- Ich vermute auch, dass die resolve.conf vom DHCP geändert wird.
Kann ich beim Client DHCP nicht so konfigurieren, dass die resolve.conf unangetastet bleibt?
- Habe beim Router den Standard-DNS geändert... leider erfolglos.

Am Meisten verwirrt mich das hier:
"host 192.168.1.34" meldet:
;; connection timed out; no servers could be reached

"host localhost" meldet:
localhost has address 127.0.0.1
localhost has IPv6 address ::1
;; connection timed out; no servers could be reached

Jetzt aber mal gut' Nacht! :D
 
Wenn ich mit Firefox eine Domain aufrufe, braucht er ca. 1min um die Domain zu finden (lädt die seite also noch nicht). Sobald die Domain mal gefunden wurde lädt die Seite schnell und ich kann mit normalen Ladezeiten durch die Unterseiten (z.B. eines Forums) navigieren.
Dein neuer Router (sprich dessen DNS-Server) wird sich an den IPv6 DNS-Anfragen von deinem Client verschlucken.

- Den DNS-Server in der resolve.conf kann ich ja eben nicht von Hand ändern, denn nach einem Neustart ist alles wieder wie vorher. Und um die Änderungen aktiv werden zu lassen, muss ich ja neustarten.
Im Prinzip müsstest du in deinen Clients diekt den DNS-Server von deinem ISP Eintrage. Mögl. wäre hier AFAIK in "dhclient.conf" per "supersede" den DNS-Server der vom Router vorgegeben wird zu überschreiben. Allerdings hast du beim nutzen des ISP-DNS keine DNS-Auflösung von deinen LAN-Rechnern, da die ja dein Router sonst macht.
 
Hi,

die Datei resolv.conf wird definitiv durch das dhclient-Script geändert. Lies dir mal die man-Page zu dhclient.conf durch, speziell die Abschnitte zu prepend und append. Damit kannst du vom dhcpd gelieferte Einträge, für die mehrere Werte zulässig sind, wie z.B. nameserver, um feste Werte erweitern. Prepend fügt sie davor ein, und append demzufolge danach.
Du kannst auch mal die Beiträge hier im Forum durchsuchen, ich hatte vor vielleicht zwei Jahren ein ähnliches Problem.

Gruß c.
 
Hi und danke für eure Antworten! :)
Ich glaube, ihr habt mich auf den richtigen Weg gebracht.

Dass sich der Router an den ipv6-Anfragen verschluckt, könnte sehr gut sein.
Das wäre auch eine Erklärung dafür, dass unter Win alles läuft.

Ich werde morgen (oder heute, falls ich die Zeit finde) Abend mal versuchen IPv6 zu deaktivieren.
Reicht da ein einfaches ipv6_enable="NO" in der rc.conf?
Das hab ich eigentlich schon drin, dennoch krieg ich von ifconfig v6-IPs.
Ich stelle die Option mal an den Anfang... sollte wohl VOR den DHCP-Request kommen! ;)

Falls das nichts nützt (ich immernoch v6-IPs hab), werde ich den Kernel ohne
Code:
options          INET6             # IPv6 communications
neu kompilieren.

Nochmals vielen Dank! :o
Ich meld' mich dann, ob's geklappt hat oder nicht! :)

Dinh
 
Reicht da ein einfaches ipv6_enable="NO" in der rc.conf?
Das wäre eh der Standard. Mich würde eh mal interessieren, was dieser Schalter wirklich/genau macht? In der "sysctl.conf" kann man die tcp6 - Adressen von allen Devices dann verbannen. Abgesehen vom Loopback-Device :-/

Falls das nichts nützt, werde ich den Kernel ohne "options INET6" neu kompilieren.
Damit hast du zwar IPv6 los. Hilft dir aber nicht bei diesem Problem (und bekommst evtl. neue).

Das Problem sind die AAAA - Anfragen die manche Programme grundsätzlich an den DNS-Server stellen (kann man ja auch über IPv4). Diese Anfragen sind für die Verzögerung verantwortlich. Abhilfe schafft hier nur:
- einen DNS-Server benutzen der darauf "gescheit" reagiert.
- lokal einen DNS-Proxy benutzen der diese Abfragen nicht selbst benutzt, bzw. wo man die deaktivieren kann (pdnsd z.B.).

Beide Punkte setzten dann in der Regel das Anpassen der DHCP-Antwort voraus.
 
Hurra! :D

Ich konnte das Problem dank eurer Hilfe endlich lösen! :)

Ich musse die (standardmässig leere) /etc/dhclient.conf anpassen und um folgende Zeilen ergänzen:

Code:
interface "fxp0" {
        prepend domain-name-servers 145.253.2.11;
}

Vielen Dank noch einmal für die tolle Hilfe! :o
 
Zurück
Oben