PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Langsamer DNS-Lookup



Der_Da_93
05.07.2008, 13:14
Hi,
Schon wieder ich.
Also ich hab Archlinux, XServer, KdeMod installiert.
Netzwerk hab ich theoretisch auch konfiguriert.
pings auf den lokalen router und ins internet funktionieren
auch
ping google.de funktioniert.

Nur der DNS-Lookup braucht sehr lange, es ist fast unmoeglich im internet zu surfen. da ich zuerst vermutetete dass es an konqueror liegt, hab ich mal mit wget eine x-beliebige datei runtergeladen; das Laden ging schnell, aber der Lookup brauchte auch wieder seine zeit.

Die relevanten Stellen in meiner rc.conf (Kommentar-bereinigt)

HOSTNAME="myhost"
eth0="dhcp"
INTERFACES=(eth0)

gateway="default gw 192.168.2.1"
ROUTES=(!gateway)

meine resolv.conf


# Generated by dhcpcd for interface eth0
search Speedport_W_700V
nameserver 192.168.2.1


Wo liegt das Problem *fragezeichen*

mfg

bruno
05.07.2008, 13:23
Der Eintrag
search Speedport_W_700V in resolv.conf behindert deine Lookups. Der Resolver hängt jedem Lookup zuerst diese "Domain" an. Da dein Nameserver die Domain nicht kennt, startet er eine Anfrage an den DNS deines Providers. Dieser kennt die Domain auch nicht und startet so weitere Anfragen. Das ganze nimmt einige Zeit in Anspruch.

Konfiguriere deinen DHCP-Server so, dass er die korrekte Domain zurückliefert, sprich die Domain welche dein DNS-Server 192.168.2.1 verwaltet.

bitmuncher
05.07.2008, 13:42
Ausserdem hat es sich als effektiver herausgestellt, wenn man nicht den Router als DNS nutzt, sondern direkt die DNS-Server des Providers einträgt. Der Router muss ja auch erstmal die Anfrage an die bei ihm eingetragenen DNS machen und somit hat man einen "Schritt" mehr für ein Lookup. Dann stört auch ein search-Eintrag nicht mehr.

Der_Da_93
05.07.2008, 14:26
Konfiguriere deinen DHCP-Server so, dass er die korrekte Domain zurückliefert, sprich die Domain welche dein DNS-Server 192.168.2.1 verwaltet.

Also der DHCP-Server ist doch mein Router, oder ?
Wie soll ich den konfigurieren ? Oder verstehe ich da etwas falsch ?

at Bitmuncher
Der Eintrag in die resolv.conf wird durch dhcpcd durchgefuehrt, es bringt also nichts wenn ich den eintrag auf die DTAG schreib.

*ein bisschen verwirrt*

defcon
05.07.2008, 14:41
Konqueror besitzt kein DNS-Cache. Das heißt für jedes Objekt der Webseite wird eine Anfrage an den DNS-Server aus der /etc/resolv.conf gesendet. Das kann bei Seiten mit vielen Objekten also etwas länger dauern.
Um das zu umgehen empfiehlt es sich, einen kleinen lokalen DNS-Server zu installieren wie z. B. dnsmasq, der für Konqueror zwischenspeichert (DNS-Caching).



# pacman -S dnsmasq




# cp /etc/resolv.conf /etc/resolv.conf.dnsmasq



editieren der "alten" resolv.conf


# nano /etc/resolv.conf


in die erste Zeile folgendes eintragen


nameserver 127.0.0.1


dnsmasq konfigurieren


# nano /etc/dnsmasq.conf


folgendes suchen


# Change this line if you want dns to get its upstream servers from
# somewhere other that /etc/resolv.conf
# resolv-file


darunter folgendes eintragen


resolv-file=/etc/resolv.conf.dnsmasq


anschließend


# /etc/rc.d/dnsmasq restart



Eventuell könntest du noch in der /etc/enviroment das hier eintragen:


KDE_NO_IPV6=TRUE

Mike1
05.07.2008, 14:55
resolv-file=/etc/resolv.conf.dsnmasq


Tippfehler!

bruno
05.07.2008, 14:59
@Der_Da_93:
Was für einen Router hast du denn? Falls es sich ein Fertigprodukt handelt ist der Vorschlag von defcon sicher die beste Lösung für dein Problem.

Der_Da_93
05.07.2008, 15:06
Ja, schon aber frueher mit Ubuntu oder Windows hats ja auch funktioniert.
at defcon:
Danke fuer den Tipp, aber dadurch behebe ich das problem ja auch nicht wirklich. Falls sich keine andere Moeglichkeit findet, werde ich es so machen.

defcon
05.07.2008, 15:11
Tippfehler!

Danke, habs korrigiert.

Der_Da_93
05.07.2008, 22:04
Da werd ich jetzt wohl die Idee von bitmuncher nehmen.
Also ich würd's jetzt mit nem kleinen script beim start machen:


#!/bin/bash
cp /etc/resolv.conf.real /etc/resolv.conf
#in der .real befindet sich der Eintrag für den "richtigen" nameserver


Ähm, weiss jemand grad, wo ich dieses script hinpacken soll ?

defcon
05.07.2008, 22:30
wieso Script?
Trag doch einfach den neuen DNS in die /etc/resolv.conf ein.

Der_Da_93
05.07.2008, 22:33
wieso Script?
Trag doch einfach den neuen DNS in die /etc/resolv.conf ein.

Die wird bei jedem Systemstart neu geschrieben,
ich schätz mal von dhcpcd.

defcon
05.07.2008, 22:35
hm,also bei mir nicht. Mein Eintrag steht genauso drin wie ichs zu Anfangs eingetragen hatte.

Der_Da_93
05.07.2008, 22:42
hm,also bei mir nicht. Mein Eintrag steht genauso drin wie ichs zu Anfangs eingetragen hatte.

Also ich hab halt in der rc.conf:

eth0=dhcp

Soll ich das rausmachen ?

defcon
05.07.2008, 22:45
Wenn du dir eine statische IP verpassen willst, dann ja

bruno
05.07.2008, 22:48
Am Einfachsten ist es, wenn du deinen DHCP-Server so konfigurierst, dass die korrekte DNS-IP ausgeliefert wird. I. d. R. ist dies auch auf 08/15-Routern von [beliebiger Hersteller] möglich.

Gast1
05.07.2008, 22:55
1. http://wiki.archlinux.org/index.php/Netcfg

2.

# DNS Settings (optional)
DOMAIN=localdomain
DNS1=192.168.0.1
DNS2=
SEARCH=

3.

#
# Network Profile
#
CONNECTION="ethernet"
DESCRIPTION="LAN with DHCP and static DNS-Servers"
# Network Settings
INTERFACE="eth0"
HOSTNAME="GEHT_EUCH_NEN_FEUCHTEN_KEHRICHT_AN"
# Interface Settings
IP="dhcp"
IFOPTS="dhcp"
DHCP_TIMEOUT="60"
# DNS Settings (optional)
DOMAIN=localdomain
DNS1=Mein_erster_bevorzugter_DNS-Server
DNS2=Mein_zweiter_bevorzugter_DNS-Server
SEARCH=site

Works for me ™

Der_Da_93
05.07.2008, 23:03
Am Einfachsten ist es, wenn du deinen DHCP-Server so konfigurierst, dass die korrekte DNS-IP ausgeliefert wird. I. d. R. ist dies auch auf 08/15-Routern von möglich.

Ja schon, aber auf anderen PC's im selben Netzwerk funktioniert DHCP ja. btw: In der WebGUI des "Speedports W700V" finde ich absolut keine Einstellungen bezüglich DNS-Server.
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

1. http://wiki.archlinux.org/index.php/Netcfg

2.

3.

#
# Network Profile
#
CONNECTION="ethernet"
DESCRIPTION="LAN with DHCP and static DNS-Servers"
# Network Settings
INTERFACE="eth0"
HOSTNAME="[B]GEHT_EUCH_NEN_FEUCHTEN_KEHRICHT_AN"
# Interface Settings
IP="dhcp"
IFOPTS="dhcp"
DHCP_TIMEOUT="60"
# DNS Settings (optional)
DOMAIN=localdomain
DNS1=Mein_erster_bevorzugter_DNS-Server
DNS2=Mein_zweiter_bevorzugter_DNS-Server
SEARCH=site

Works for me ™

Danke, ich werd's mir morgen anschauen, wobei ich noch überlege ob es nicht einfacher wäre, einfach mit einem kl. script die resolv.conf zu ändern.

bruno
05.07.2008, 23:12
Warum selber ein Script schreiben wenn dir diese Lösung die Arbeit abnimmt? :think:

Der_Da_93
06.07.2008, 17:10
Warum selber ein Script schreiben wenn dir diese Lösung die Arbeit abnimmt? :think:

Weil mein Script nur eine einzige Zeile hätte.
Die Lösung mit netcfg, aber um einiges mehr :-)

Ne eigentlich nur deswegen, weil ich dazu noch ein Packet mehr installieren muss.

Aber ich habs jetzt mit netcfg gemacht, und es funktioniert.
Ein großes Dank an Rain_Maker und alle die sich hier bemüht haben:thumbsup:

Noch eine ganz kleine Frage:
Falls ich es mit einem "Script" hätte lösen wollen, wo hätte ich es dann hinschreiben müssen ?

bitmuncher
06.07.2008, 22:21
Falls ich es mit einem "Script" hätte lösen wollen, wo hätte ich es dann hinschreiben müssen ?

Du hättest dir z.B. ein Init-Skript erstellen können in /etc/init.d/, das die Parameter 'start' und 'stop' versteht. So könnte es direkt beim Booten ausgeführt werden. Hätte dann aber auch wieder mehr als eine Zeile. ;)

Skeleton eines Init-Skripts


#!/bin/bash

case "$1" in
start)
mein_start_befehl
;;
stop)
mein_stop_befehl
;;
*)
print "Usage: `basename $0` [start|stop]" >&2
exit 64
;;
esac

exit 0

Der_Da_93
07.07.2008, 21:22
in /etc/init.d
[/code]

Ich glaub sowas wie /etc/init.d gibts bei Archlinux nicht.

Gast1
07.07.2008, 21:30
Du glaubst richtig.

http://en.wikipedia.org/wiki/Init

Arch nutzt kein SysV-Init sondern ein BSD-style Init.