Re: lags bei freebsd

From: Joerg Wunsch <j(at)uriah.heep.sax.de>
Date: Thu, 2 May 2002 22:58:04 +0200

As Christian Gruendemann wrote:

> /etc/ppp/ppp.conf eingetragen haben.
> set mru 1492
> set mtu 1492

> Die Telekom ist naemlich zu bleode, ordentliche Paket mit einer MTU
> von 1500 zu routen.

Nein. Da PPP over Ethernet gefahren wird, Ethernet aber eine maximale
Framegröße von 1500 kann, ist objektiv nicht mehr als 1492 drin. Das
hat nix mit *T*** zu tun, sondern nur damit, daß PPPoE benutzt wird.
(OK, das hat dann wieder was mit *T*** zu tun. ;-)

Wozu die *T*** zu blöd ist ist, für die normalerweise von der
Gegenseite in diesem Falle gerouteten 1500 Byte Pakete das geforderte
(IP-Option `don't fragment') ICMP-Paket beim Verwerfen des zu langen
Paketes zu erzeugen (das passiert beim Übergang auf PPPoE, da ab dort
die MTU auf 1492 sinkt) und entsprechend zur Gegenstelle zu routen.
Diese würde nämlich daraufhin dann ihre gesendete Paketgröße passend
reduzieren. Das Ganze nennt sich `path MTU discovery' und hat sich
bei IPv4 als gegenüber der früher benutzten IP-Fragmentierung deutlich
überlegen herausgestellt, so daß es mittlerweile jeder benutzt -- und
daß es bei IPv6 vorgeschrieben ist (dort gibt es die Fragmentierung
von Paketen nichtmal mehr optional). Durch das Nichtversenden oder
-weiterleiten von ICMP `fragmentation needed' Paketen bringt man die
path MTU discovery aber zum Erliegen und verhindert damit das
Zustandekommen eines TCP-Datenstromes. (Das ist übrigens auch ein
beliebter Anfängerfehler beim Aufsetzen eines Firewalls: ICMP-Pakete
werden zuweilen als ,,gefährlich'' verteufelt und dann gleich mal
pauschal geblockt.)

Das Setzen der MRU und MTU im PPP-Setup ist übrigens nur bedingt
hilfreich: es wirkt nur für Verbindungen, bei der die PPP-Maschine
selbst ein Endpunkt ist. Für geroutete Pakete hat die entsprechend
dahinter liegende Kiste bereits zu lange Pakete erzeugt. Der bessere
Workaround ist, daß die TCP-Datenströme mit einer Option `MSS' (max
segment size) versehen werden, die der Gegenseite anzeigt, daß sie
keine TCP-Pakete erzeugen soll, die größer als der angegebene Wert
sind (der dann auf 1492 Octets gesetzt wird). Dies geschieht
normalerweise transparent in der PPPoE-Implementierung.

-- 
cheers, J"org               .-.-.   --... ...--   -.. .  DL8DTL
http://www.sax.de/~joerg/                        NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Thu 02 May 2002 - 23:00:08 CEST

search this site