Internetverbindungsprobleme - IPv6 MTU DNS
Autor: Martin Breidenbach
Zunächst einmal muss geklärt werden:
ist die Datentransferrate niedrig (z.B. bei Downloads) oder dauert es ewig bis z.B. im Mozilla eine Seite aufgebaut wird? Oder lassen sich bestimmte Seiten einfach nicht aufrufen?
Es gibt drei Standardursachen für dieses Problem (nicht notwendigerweise in dieser Reihenfolge):
- TCP/IP v6 (abschalten)
- bei DSL ist die MTU zu groß
- Probleme mit dem DNS
Ihr solltet keineswegs einfach mal alles so abändern wie hier beschrieben. Es geht hier darum, einen Fehler einzukreisen und zu umgehen. Ein 'korrekt' arbeitendes System wird hierdurch nicht schneller.
Der Reihe nach:
Inhaltsverzeichnis
IPv6 abschalten
TCP/IP verwendet vier Bytes zur Adressierung von Rechnern. Durch das rasante Anwachsen des Internets besteht das Problem, dass so langsam die Adressen ausgehen.
Deswegen hat man einen Nachfolger definiert, der 16 statt 4 Bytes für die Adressierung verwendet.
Details: http://de.wikipedia.org/wiki/Ipv6
Wenn ipv6 aktiviert ist, passiert es, dass Linux zuerst versucht, ipv6 und dann das 'gute alte' ipv4 ((TCP/IP)) zu benutzen. Da ipv6 momentan im Internet noch nicht flächendeckend benutzt wird, kann man es auf dem Client abschalten.
Wie man ipv6 abschaltet, steht in diesem Artikel der SuSE Supportdatenbank:
http://portal.suse.com/sdb/de/2003/10/90_mozilla_ipv6.html
Zitat: Symptom
Sobald sie irgendetwas in die Mozilla URL-Leiste eingeben friert Mozilla ein.
Ursache:
Mozilla versucht Namensauflösung zuerst über IPv6. Wenn Sie SuSEfirewall2 benutzen, ist IPv6 allerdings komplett gesperrt. Deswegen läuft die Abfrage ins Leere und wartet auf einen Timeout von ca. 60 Sekunden.
Lösung:
Sie können, wenn Sie ihn nicht benötigen, den IPv6 Support komplett abschalten.
Für SUSE Linux 9.0 können Sie dies tun Sie, indem Sie folgende Zeilen in der Datei /etc/modules.conf ändern.
alias net-pf-10 ipv6 #alias net-pf-10 off
nach
#alias net-pf-10 ipv6 alias net-pf-10 off
Alternativ steht über das Online Update mittlerweile eine modifizierte Version der SuSEfirewall2 zur Verfügung, die die nötigen Pakete auf dem lokalen Rechner nicht mehr blockiert.
Unter SUSE Linux 9.1 (genauer: mit Kernel 2.6.x) gibt es statt der Datei /etc/modules.conf jetzt die Datei /etc/modprobe.conf.
Wenn Sie unter SUSE Linux 9.1 IPv6 grundsätzlich deaktivieren möchten, müssen Sie in der Datei /etc/modprobe.conf die folgende Änderung vornehmen:
alias net-pf-10 ipv6
nach
alias net-pf-10 ipv6 install ipv6 /bin/true
Weiter unten gibt es noch Hinweise wie man IPv6 für Konqueror und Firefox abschalten kann.
Noch ein Artikel zu dem Thema:
http://support.novell.com/cgi-bin/search/searchtid.cgi?10098152.htm
Zitat: The following steps should be followed to disable IPV6 on SuSE Linux Enterprise Server 9:
1- Modify /etc/modprobe.conf.local by adding the following:
# # please add local extensions to this file # install ipv6 /bin/true
2- reboot
- In some circumstances, it is also necessary to modify the /etc/modprobe.conf and change the following:
alias net-pf-10 ipv6
to
alias net-pf-10 off
Hinweis: |
Das hier für SLES9 beschriebene Verfahren funktioniert auch für SuSE Pro 10 (jedefalls bei mir). |
MTU zu gross
MTU und DNS sind Hauptverdächtige wenn sich bestimmte Webseiten nicht aufrufen lassen. Allerdings sind hier die Seitenbetreiber schuld[1].
MTU = Maximum Transfer Unit PPP = Point-to-Point Protocol PPPoE = PPP over Ethernet
DSL verwendet hierzulande in der Regel das PPPoE Protokoll. PPP ist ein Protokoll zur Einwahl in TCP/IP-Netze das z.B. bei der Einwahl über Analog-Modem oder ISDN verwendet wird. PPPoE verwendet das PPP-Protokoll, nur eben über Ethernet und nicht Telefonleitung.
Das Problem besteht nun darin, dass Ethernet-Pakete eine maximale Paketgröße haben. Wenn man nun ein Ethernet-Paket in ein PPP-Paket verpackt und das wiederum in ein Ethernet-Paket steckt (so wie das bei PPPoE geschieht) dann wird der maximal nutzbare Teil des Paketes kleiner. Und dieser ist die MTU.
Eigentlich sollte das automatisch umgesetzt werden und ein zu großes Paket gesplittet werden. Da das nicht immer so funktioniert kann man das Problem umgehen indem man auf dem Client die MTU kleiner macht.
Ein guter Wert für T-DSL ist 1492 bytes.
Die Einstellung für die MTU befinden sich bei SuSE 9.1 tief versteckt im Yast2 in den Experteneinstellungen zur Netzwerkkarte:
yast2- Netzwerkgeraete - Netzwerkkarte - ändern - Karte auswählen - Erweitert - Besondere Einstellungen - MTU
Man kann aber auch (als root) die zugehörige Konfigurationsdatei in /etc/sysconfig/network
selbst bearbeiten.
Unter SuSE 9.0 heißen diese /etc/sysconfig/network/ifcfg-ethX
, wobei ethX
hier als Platzhalter für eth0
, eth1
und so weiter steht.
Unter SuSE 9.1 heißen die Dateien etwas anders, /etc/sysconfig/network/ifcfg-eth-id-00:00:39:c8:91:88
oder ähnlich. Hier wird die MAC-Adresse der Netzwerkkarte zur Identifikation verwendet.
Da drin gibt es eine Zeile 'MTU='.
Hier ein Beispiel:
BOOTPROTO='static' BROADCAST='192.168.1.255' IPADDR='192.168.1.70' MTU='1492' NETMASK='255.255.255.0' NETWORK='192.168.1.0' REMOTE_IPADDR= STARTMODE='onboot' UNIQUE='7EWs.weGuQ9ywYPF' _nm_name='bus-pci-0000:00:11.0'
Wenn man einen eigenen linuxbasierten DSL-Router hat dann besteht die Möglichkeit daß dieser via iptables die Datenpakete an die MTU anpaßt. Dazu muß das Firewallskript erweitert werden um folgende Zeile:
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Weitere Infos zum Thema 'MTU' gibt es hier
Ermitteln des optimalen MTU Wertes:
Internetverbindung: Manche Webseiten lassen sich nicht aufrufen: http://portal.suse.de/sdb/de/2001/11/cg_internet.html
MTU optimieren:
MTU-Mini-FAQ (für xDSL-Zugänge über PPPoE)
Lexikonbeschreibung MTU
DNS-Probleme
Es hat sich gezeigt dass manche DSL-Router Probleme mit der DNS-Weiterleitung haben. Der DSL-Router bekommt in der Regel bei der Einwahl über PPP die Adresse eines DNS-Servers des Providers mitgeteilt. Client-PCs wiederum verwenden dann als DNS-Server die IP-Adresse des DSL-Routers. Der DSL-Router soll DNS-Anfragen von Clients an den DNS-Server des Providers weiterleiten und ebenso die Antwort an den Client weiterreichen. Aus irgendwelchen mir unbekannten Gründen hakt es dabei immer wieder. Die Symptome sind nicht eindeutig - mal gehts, mal nicht, mal gehen bestimmte Seiten aber andere nicht. Es wurde auch schon mehrfach berichtet, dass es unter Windows funktioniert, unter Linux aber nicht. Ich habe schon mal mit einem Firmwareupdate des DSL-Routers Besserung erzielen können. Eine Alternative ist es das Problem einfach zu umgehen und die Adresse eines DNS-Servers des Providers direkt beim Client einzutragen. Das stellt dann ein Problem dar, wenn der Provider den DNS auf einen anderen Server umzieht oder bei mehreren DNS-Servern einer ausfällt. Da viele T-DSL über T-Online verwenden hier ein Link mit Adressen mehrerer DNS-Server von T-Online:
Bei meinem DSL-Router kann man im Webinterface nachsehen, welche DNS-Server er momentan benutzt. Der DNS-Server lässt sich auch so einstellen:
yast2 - Netzwerkdienste - DNS- und Hostname
Ein Fehler in der Datei
/etc/nsswitch.conf
kann dazu führen, dass DNS zur Namensauflösung gar nicht verwendet wird. Deshalb sicherheitshalber die Zeile 'hosts:' überprüfen. Eine i.A. funktionierende Variante ist:
hosts: files dns
IPv6 für Konqueror abschalten
wbast hat Folgendes geschrieben: Ich habe jetzt heraus gekriegt woran das lag.
Und zwar versuchte bei mir der Konqueror(und nur der) IPv6-Adressen aufzulösen.
Das habe ich im abgewöhnt mit einem
export KDE_NO_IPV6=1
in der ~/.bashrc
IPv6 für Firefox abschalten
geko hat Folgendes geschrieben:
Firefox aufrufen und in Adresszeile
about:config
eingeben.
Folgenden Wert suchen:
network.dns.disableIPv6 Standard boolean false
Durch anklicken ändern in:
network.dns.disableIPv6 vom Ben.. boolean true
Noch kurz Firefox neustarten!
Anmerkung
Dieses HOWTO zu Linux oder der Abschnitt davon braucht eine Überarbeitung. Weitere Informationen findest Du hier. Deine Hilfe ist gefragt, das HOWTO zu verbessern. Danach entsorge bitte diese Signierung. |
Google dauert zu lange
ich schaute mir alle confs an die dafür zuständig sein könnten. am ende war ich in der /etc/sysconfig/network/config da gibt es ein eintrag der folgend heißt MODIFY_NAMED_CONF_DYNAMICALLY="no" war ganz erstaunt auf no
also habe ich den eintrag auf yes gestzt mein dns neugestarte und mich neu eingewählt und es funktioniert
Das dürfte der Eintrag sein der dafür zuständig ist bei Einwahl über DHCP auch den DNS-Server zu ändern.
upstream erhöhen
mir hat folgender Tip, den ich in einem anderen Forum gefunden Habe geholfen In der Datei /etc/sysconfig/SuSEfirewall folgende Zeile
FW_HTB_TUNE_DEV=""
ändern in
FW_HTB_TUNE_DEV="eth0,380"
Dadurch wird anscheinend der upstream erhöht. Seitdem rennt meine Internet Verbindung nur noch .
Hi,
bei mir bremste dieser Tip eher. ich bin mit einem analogen Modem unterwegs, weil wir kein DSL bekommen. (Ich wohne nicht am A..... der Welt, aber vom Balkon aus kann ich ihn sehen. )
Dieser Tip gilt für ein analoges " FaxModem V.92 56k" unter Suse 8.2. Mein Modem läuft unter "ppp0". Dann erhöht man die dort eingestellte Baudrate auf 115200.
Dann habe ich in der Datei /etc/sysconfig/SuSEfirewall2 folgende Zeile
FW_HTB_TUNE_DEV=""
geändert in:
FW_HTB_TUNE_DEV="ppp0,100"
In verschiedenen Beiträgen im Internet stand, man soll etwas unter der maximalen Baudrate bleiben. Also hier 100 und nicht 115(200). Mal schauen, was man noch mit anderen Tricks rausholen kann.
Manche Website erscheint nicht (insbesondere ebay)
ipv6 NICHT auf true setzten. Das sollte aus sein. Also FALSE.
Dort gibt es noch eine weiterführende Diskussion, die habe ich nicht eingearbeitet: http://www.linux-club.de/ftopic16677.html