SDB:Problem mit der Herstellung einer TCP/IP Verbindung in openSUSE 10.2

aus openSUSE, der freien Wissensdatenbank

Version: 10.2

Inhaltsverzeichnis

Situation

Der Verbindungsaufbau des Browser zu bestimmten Webseiten schlägt in der standard Installation von OpenSuSE 10.2 fehl.

Beispiele von nicht erreichbaren Seiten:
http://www.keh.com/
http://www.marymount.edu/
http://www.packetstormsecurity.org/
http://furniture33.com/

Problem Beschreibung

Der Grund für dieses Verhalten ist eine Netzwerk Funktionen im Linux Kernel Namens "TCP window scaling". Window Scaling ist eine TCP-Erweiterung für schnellere Netzwerkverbindung. Weitere Informationen zu diesem Thema finden Sie in der RFC 1323.

Olaf Kirch zufolge (Bug#229848) liegt das Problem an Routern/Filtern vor dem Ziel-Host, die die Option des "TCP window scaling" nicht beherrschen, und deshalb diese Pakete verwerfen.

Der nachfolgende (englische) Text ist ein Auszug von Kommentar #24 des BUGs #229848 auf Novells Bugzilla

[...]
This is neither a bug
in our stack nor in the destination system's stack - I assume there's
a connection tracking router/filter at the remote site that does not
understand window scaling. This problem has been cropping up for quite some
time on the netdev mailing list and in other places. Essentially what happens
is that the router happily passes all TCP options during the SYN handshake,
including the options announcing window scaling. However, the router doesn't
understand window scaling, so when it sees the Linux client announcing a
window of "47" (which is really (47 << some scaling factor), it will discard
any packets that are not fully inside that 47 byte window.
[...]

Lösungen

Eine schnelle

von Anders Johansson
echo "0" > /proc/sys/net/ipv4/tcp_window_scaling

Wenn dies automatisch bei jedem Systemstart gesetzt werden soll kann man die Datei /etc/sysctl.conf editieren und die folgende Zeile hinzufügen:

net.ipv4.tcp_window_scaling = 0

Eine andere

von Karsten Keil

Diese Lösung schränkt nicht die Fenster auf 64k ein. Sie können eine spezielle route für die problem Seite hinzufügen.

ip route add IP.ADD.RE.SS/32 via <Ihr standard gateway> window 65535

IP.ADD.RE.SS ist die IP addresse von der problematischen Seite.

Links

https://bugzilla.novell.com/show_bug.cgi?id=229848
http://kerneltrap.org/node/6723
http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122newft/122t/122t8/tcpwslfn.htm
http://www.ietf.org/rfc/rfc1323.txt