Re: Nochmal www.telefonbuch.de
On Tue, May 03, 2005 at 08:59:59PM +0200, Uwe Schuerkamp wrote:
Ja, das denke ich auch, besonders wg. dieser Zeile in meinem firewall.sh script:
#TCPMSS Fix - Needed for *many* broken PPPO{A/E} clients $IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
ich muss gestehen, dass mir nicht klar ist, was diese Zeile eigentlich tut.
Ok - Also - Path MTU Discovery funktioniert so das im TCP Handshake SYN, SYN/ACK, ACK eine MSS (Maximum Segment Size) mitgeliefert wird. Diese MSS ist die Maximale Payload groesse (D.h. Paketgroesse ohne Header) die ich schicken kann. Diese MSS wird durch die MTU des outgoing interfaces (Auf das die route zum zielsystem zeigt) und subtraktion der headergroesse berechnet. Nach dem TCP Handshake wissen also die beiden systeme welche MSS die beiden system auf ihrem LOKALEN link koennen. Bei ethernet ist das 1500-HeaderSize. Der Sender faengt jetzt an zu senden mit der maximalen Paketgroesse. Sollte dazwischen eine Leitung sein die diese MTU nicht supported wird das paket gedroppt und ein "ICMP Destination Unreachable" Subcode "Need Fragmentation" und die neue maximale Paketgroesse geschickt. Damit weiss der Sender nun die maximale Paketgroesse ueber diese Hop hinweg. Dazu kommt das eine PPPoE strecke maximal 1492 byte Paketgroesse kann (Ethernet 1500) weil PPPoE 8 byte/paket benoetigt. D.h. deine Station auf deinem Lokalen Ethernet sagt z.b. dem Webserver von web.de das es 1500 kann, der sagt ebenfalls 1500 und das erste Paket wird bei deinem Provider z.b. T-Online gedroppt. Darauf schickt web.de das paket neu mit einer maximalen groesse von 1492 byte. Jetzt gibt es 2 Probleme damit. - Ich verschenke einmal die RTT (Round Trip Time) zwischen web.de und T-Online weil das paket ja nach dem es gedroppt wurde neu gesendet werden muss. Ausserdem transferiere ich das erste paket immer doppelt. - Wenn web.de eine fehlkonfigurierte firewall hat die ICMP fuer Boese haelt und dieses Droppt kann die PMTU nicht funktionieren weil das "Destination Unreachable", "Fragmentation Needed" ja nicht am Webserver ankommt. Workaround: Der Workaround ist der obige eintrag in deinen IPTables. Er sorgt dafuer das in "geforwardete" SYN paketen die MSS auf die neue MTU angepasst wird. D.h. sollte das paket vom lokalen ethernet mit 1500 kommen und auf ein PPPoE gehen das nur 1492 kann wird die MSS um 8 verringert. Dadurch sollte web.de sofort beginnen mit 1492 zu senden.
device ppp0 entered promiscuous mode IN=ppp0 OUT= MAC= SRC=82.212.218.17 DST=213.182.113.101 LEN=44 TOS=0x00 PREC=0x00 TTL=53 ID=56037 DF PROTO=TCP SPT=80 DPT=52443 WINDOW=24840 RES=0x00 ACK SYN URGP=0
Da sind aber noch andere regeln drin die boese sind. Flo -- Florian Lohoff flo@rfc822.org +49-171-2280134 Heisenberg may have been here.
Teilnehmer (1)
-
Florian Lohoff