Andreas Korthaus: extrem langsames LAN

Beitrag lesen

Hi!

Ich vermute einmal, dass es am fehlenden lokalen DNS liegt.

Aber wenn ich doch IP-Adressen verwende, was soll er den überhaupt einen DNS-Server fragen? Meine Clients haben keinen eigenen Hostnamen - wofür auch?

Der Linux rechner wird bei jedem Request vermutlich, in Ermangelung anderer Möglichkeiten, auf den öffentlichen DNS-Server Deines Providers zugreifen, was dann schon etwas dauern kann.

Das glaube ich zwar nicht, aber selbst wenn, DNS-Abfragen dauern sicherlich nicht so lange. Den Linux-Server interessiert doch gar nicht der Hostname des Gegenüber, es sei denn ich habe hostname lookup im Apachen konfiguriert, aber selbst das bezweifele ich. Auf einem anderen Linux-Server der direkt am Internet hängt verwende ich z.B. hostname lookup, und der ist sauschnell. Ich würde sagen obwohl der 500 KM von mir entfernt steht dauert ein Response ca. 10-20 % der Zeit wie bei meinem Server der hier ca. 30 meter entfernt steht. Ich verstehe das nicht. Überhaupt nicht.

Trage als erstes einmal auf dem Linuxrechner die IP-Adressen der beiden Rechner, also den Server selbst und den Client, mit dem Du probierst, in die Datei /etc/hosts ein.

Wie, nur die IP-Adressen? Das Problem ist, dass der Client seine IP per DHCP vom "Router" bekommt.

Also ich gebe im Client folgendes im Browser ein:

http://192.168.168.3/admin/

und das dauert, und dauert, und dauert, selbst

http://192.168.168.3/

dauert ein bisschen. Ich muss aber sagen, im Augenblick geht es. Ich hatte aber mal vor einiger Zeit eine in PHP programmierte Groupware-Lösung installiert, bei Antwortzeiten von nicht viel unter 1 Minute kann man das aber vergessen. Woher kann das kommen? Ich verwende wie gesagtz die IP, keinen Hostnamen. Und selbst wenn ich eienn Hostnamen verwenden würde, dann ist es immer noch Sache des Clients die IP zu ermitteln, die Verbindung wird ja nur über die IP hergestellt. Der Server erfährt vom Hostnamen den ich eingegeben habe ja lediglich nebenbei aus dem host: - HTTP-Header.

Meinen Erfahrungen nahc geht dann alles ratz-fatz.

Bei einem kleinen LAN könnte das Eintragen aller lokalen Rechner in die Hosts-Dateien aller Rechner noch  mit halbwegs vertretbarem Aufwand gemacht werden. Eleganter (und lehrreicher) ist sicherlich ein lokaler DNS-Server, der dann auch als DNS-Cache für das Internet dienen kann.

Oh ja, das war auch mein Gedanke, den habe ich dann auch bis ca. 3 Uhr verfolgt, aber dann war ich es Leid weil es mir irgendwie zu kompliziert war, vielleicht war ich auch einfach zu müde ;-)

Jedenfalls weiß ich nicht was ich dort eintragen soll. Ich habe ja im prinzip nur einen Rechnernamen im LAN, die Clients brauchen wohl keinen Hostnamen, oder? Zumal das gar nicht per DNS geht, halt wegen DHCP. Aber da ich ja nicht ausschließen will dass e vielleicht mal einen 2. oder 3. Server gibt, sollte man das auch entsprechend bedenken. Wobei im Augenblick gibt es sogar 2 Server, der alte Windows-Server muss noch parallel laufen, naja, und vielleicht könnte man dem Gateway noch einen Namen verpassen ;-)

Ich habe mir gedacht nimm mal so eine Adresse:

server1.mein-netz.lan

das ist der Linux-Server(Red Hat 9) der unter der IP 192.168.168.3 erreichbar ist.

Gut was heißt das dann? Da bin ich noch nicht so recht hintergekommen.   Ich habe einige Anleitungen gelesen, abe irgendwie habe ich das Gefühl das die ganz andere Ziele verfolgten, vor allem weil die dann immer noch einen extra Namensserver bei den verschiedenen Domains angegeben haben.

Meine Standardmäßige named.conf sieht so aus:

// generated by named-bootconf.pl

options {
        directory "/var/named";
        /*
         * If there is a firewall between you and nameservers you want
         * to talk to, you might need to uncomment the query-source
         * directive below.  Previous versions of BIND always asked
         * questions using port 53, but BIND 8.1 uses an unprivileged
         * port by default.
         */
        // query-source address * port 53;
};

//
// a caching only nameserver config
//
controls {
        inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
        type hint;
        file "named.ca";
};

zone "localhost" IN {
        type master;
        file "localhost.zone";
        allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.local";
        allow-update { none; };
};

include "/etc/rndc.key";

Im Prinzip müsste ich ja folgende 2 Einträge machen:
w

zone "mein-netz.lan" IN {
        type master;
        file "mein-netz.lan.zone";
};

zone "168.168.192.in-addr.arpa" IN {
        type master;
        file "168.168.192.local";

};

Die hierzu entsprechendem Dateien müssten ja etwas so aussehen:

$TTL 3D
@                       1D IN SOA       server1.mein-netz.lan. admin.mein-netz.lan (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

1D IN NS        server1.mein-netz.lan.
server1                 1D IN A         192.168.168.3

und entsprechend anders herum

$TTL 3D
@                       1D IN SOA       server1.mein-netz.lan. admin.mein-netz.lan (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum

1D IN NS        server1.mein-netz.lan.
3                       1D IN PTR       server1.mein-netz.lan.

ISt das so OK? Also ich glaube dass ich es so langsam verstehe, ich hatte mich immer gewundert wieso um Himmelswillen man einen Namensserver hier angeben muss und zwar für seinen eigenen Hostnamen, aber ich denke das ist nur ein Sonderfall.

Wenn ich diesen Namensserver aber jetzt in meinen Cients angeben will, braucht man dann nicht 2 Namensserver? Und ich kann ja keinen anderen nehmen da der dann nicht meinen lokalen Server kennt.

Und was muss ich noch machen, damit der Server an sich überhaupt auch als "caching nameserver" funktioniert? Das wäre ja auch noch eine Maßnahme.

Grüße
Andreas