Re: Ein wenig Internet "geht nicht"

From: Bernd Walter <ticso(at)cicely7.cicely.de>
Date: Thu, 28 Nov 2013 02:32:29 +0100

On Thu, Nov 28, 2013 at 11:57:33AM +1100, Peter Ross wrote:
> Hallo Bernd,
>
> danke fürs Antworten.
>
> On Wed, 27 Nov 2013, Bernd Walter wrote:
>
> >On Wed, Nov 27, 2013 at 02:35:35PM +1100, Peter Ross wrote:
> >>Hi Bernd,
> >>
> >>danke. Ich muß bei TCP viel nachgucken. Ich habe es mal gelernt aber nicht
> >>unbedingt parat und gut die Hälfte vergessen. Ich gucke auf der Ebene zu
> >>selten hin.
> >>
> >>Ein paar kurze Fragen:
> >>
> >>>Verbindungsaufbau von deiner Seite initiiert, receive window auf 64k
> >>>MSS auf 1448 - recht klein, aber wohl wegen DSL gleich runter gesetzt.
> >>>MSS ist die TCP-Packetgröße, die dein System verarbeiten kann, aber
> >>>das wird als Workaround für die path-MTU genutzt.
> >>>09:16:14.766313 IP 115.186.196.106.25818 > 217.13.68.220.80: Flags [S],
> >>>seq 1941116519, win 65535, options [mss 1448,nop,wscale 6,sackOK,TS val
> >>>639102670 ecr 0], length 0
> >>>
> >>>Bestätigung der Verbindung von der Gegenseite, receive window auf recht
> >>>kleine 5792, was aber Ok ist wenn man nicht viel zum Server schicken will
> >>>Zeitabstand ist schon relativ groß, aber du kommst ja auch von weit her.
> >>>MSS ist 1460 - mit 40 Bytes Header sind das volle 1500.
> >>>Das sagt aus, dass dein DSL Router keinen MSS Hack für
> >>>kaput-konfiguriertes
> >>>Path MTU hat.
> >>
> >>Was heißt das?
> >
> >MSS ist die maximale Payloadgröße, die ein TCP-Empfänger verarbeiten kann.
> >Normalerweise sollte der Path MTU discovery dafür sorgen, dass eine
> >kleinere
> >MTU auf dem Transportwege erkannt wird.
> >Du schickst ein großes Packet los und der Router mit der Engstelle verwirft
> >das Packet, weil zu groß, dabei sended er an den Absender ein Infopacket
> >warum das verworfen wurde und wie groß das maximal sein darf.
> >Der Sender merkt sich das und sended das dann im Restransmit kleiner.
> >Wenn jetzt ein Webserver mit MTU 1500 ein Packt an einen DSL-Kunden schickt
> >wird der Router beim DSL-Provider an den Webserver so eine Information
> >schicken.
> >Da aber ICMP ja grundsätzlich böse ist (Seufz) kommt das oftmals nicht
> >durch
> >die Firewall vom Webserver und der Webserver wird beim Retransmit wieder
> >ein
> >1500'er Packet senden.
> >Daher hat man als Dirty Workaround auf den DSL-Routern üblicherweise einen
> >Hack laufen, der bei vorbeikommenden TCP-Packeten das MSS-Feld runter
> >dreht, sodass der Webserver gar nicht erst auf die Idee kommt ein zu großes
> >Packet zu senden.
> >Das funktioniert natürlich nur für TCP und sorgt dafür, dass die Server-
> >betreiber mit den kaputten Filtern sich immer noch nicht eine
> >funktionierende
> >MTU-Discovery kümmern.
>
> Ja, das habe ich auch so verstanden. Und deshalb den Hinweis vom ISP,
> _mein FreeBSD-Interface_ (zwischen mir und Modem) auf 1492 zu begrenzen,
> ernst genommen.

Die Wissen vermutlich nicht was ein Modem ist.
1492 ist die übliche MTU auf dem PPP.

> 09:16:14.766313 IP 115.186.196.106.25818 > 217.13.68.220.80: Flags [S], seq
> 1941116519, win 65535, options [mss 1448,nop,wscale 6,sackOK,TS val
> 639102670 ecr0], length 0
> 09:16:15.121678 IP 217.13.68.220.80 > 115.186.196.106.25818: Flags [S.],
> seq 1647088676, ack 1941116520, win 5792, options [mss 1460,sackOK,TS val
> 76214678 ecr 639102670,nop,wscale 9], length 0
> 09:16:15.121822 IP 115.186.196.106.25818 > 217.13.68.220.80: Flags [.], ack
> 1, win 1032, options [nop,nop,TS val 639103026 ecr 76214678], length 0
> 09:16:15.121931 IP 115.186.196.106.25818 > 217.13.68.220.80: Flags [.], seq
> 1:1437, ack 1, win 1032, options [nop,nop,TS val 639103026 ecr 76214678],
> length 1436
>
> Mein erstes Paket advertised 1448 Byte MSS (+40 macht 1488), die Antwort
> ist MSS 1460, und ich sende 1436 Byte.. ist das nicht okay?
>
> Oder heißt das, die Gegenseite hat meine MSS 1448 ignoriert (MSS 1460 in
> der Antwort) und sendet mir eine 1460-Byte-Antwort, die dann evt. am
> Modem hängenbleibt, wegen des Verpackens in PPP?
>
> Nebenbei, es geht weder mit 1500 (dem Default) noch mit 1492 an meinem
> FreeBSD-Interface.

Sende doch mal für Spass ping Packete mit aufsteigender Größe an eine
externe Maschine, die zuverlässig antwortet und schaue bis wie viel Bytes
das geht.
Zur -s Angabe kommen noch 28 Bytes Overhead zur MTU hinzu.
Ich kann bei mir bis -s 1432 senden, danach wird fragmentiert gesended.
Mein DSL-Router hat eine MTU von 1460 (und das Modem Ethernet 1500).
Die MTU ist von meiner Seite aus auf 1460 in der mpd.conf runter gesetzt.
Das wird per PPP-Handshake mit der Gegenseite ausgehandelt, sodass der
ISP dort auch nur 1460 macht.

> >>Nebenbei.. ich glaube nicht, daß sich "mein" Rechner jemals verrechnet
> >>hat: Meine Pakete passen alle in die MTU von 1492, wie beim Interface des
> >>FreeBSD-Rechners angegeben (und abgesprochen mit dem ISP, der das Modem
> >>stellt - darauf habe ich keinen Zugriff).
> >
> >Verstehe ich nicht.
> >Bei PPP handelt man die MTU mit der Gegenseite automatisch aus.
> >Die Geräte dahinter sollten per PMTU automatisch erfahren, wenn es einen
> >Abschnitt mit kleinerer MTU gibt.
> >Was ist das für ein Aufbau?
> >Bei klassischen PPPoE mit DSL-Modem hast du auf dem Ethernet-Interface
> >zum Modem natürlich eine 1500'er MTU - erst das PPP-Interface hat eine
> >kleinere MTU, weil er das mit PPP-Overhead in 1500 unter bringen muss.
> >Wenn du dem auf dem Ethernet zum Modem die MTU runter schraubst wird der
> >PPP sein Packet zum Modem nicht mehr los.
>
> Das verstehe ich nun wieder nicht. Ich sitze doch hinter dem Modem und
> habe gar kein PPP - d.h. ein ankommendes 1500-Byte-Paket wird um die 8
> Byte verkürzt und kommt bei mir wieder an, wenn ich meine MTU auf 1492
> habe?

Äh, ok.
D.h. du hast ein Modem, was DSL macht und klemmst dich direkt ohne PPPoE
dahinter an?
Grundsätzlich geht das, weil auch hier sind die DSL-Modems vereinfacht
gesagt Ethernet-Bridges und das PPPoE ist darüber gelegt.
Aber warum sollte dann die MTU 1492 sein?
DSL-Modems machen 1500, weil halt Ethernet-Bridge und auf dem DSL ist das
eh was ganz anderes.
Irgendwie liegt der Verdacht nahe, dass das kein "Modem" ist, sondern
ein ganzer Router - solche Fehler in der Bezeichnung unterläuft den ISPs
hier auch systematisch, um dem hässlichen Wort Routerzwang aus dem Weg zu
gehen.
Aber auch in dem Fall sollte die MTU 1500 sein, weil der Router dann mit
dir Ethernet spricht und dann ggfs. die PMTU zum Client macht.

> Ich finde es merkwürdig, daß sich mein ISP seit zwei Tagen nicht mit
> substentieller Antwort zurückgemeldet hat. "Wir arbeiten dran", ist
> alles, was ich höre.
>
> Vielleicht verstehen die das auch nicht.. Auch wurde ich am Anfang
> gebeten, das Modem zu rebooten, sie konnten da nicht ran(?)

Das inzwischen oft die klassischen Router, die als Modem bezeichnet werden
und auf die die ISPs Vollzugriff haben (natürlich auch in dein Netz).
Aber auch ein normales DSL-Modem kann mit dem Netzbetreiber kommunizieren
und von diesem Befehle für Loopback und ähliches zum testen annehmen,
sowie Fehlerzähler liefern.
Hat das "Modem" möglicherweise mehrere Ethernet-Anschlüße?
Oder gar WLAN, Telefon, ...?
Das alles macht bei einem reinen Modem keinen Sinn.

Zu kannst aber mal für Spas die MTU bei dir auf 1400 oder so runter
drehen.
Das verkleiner die maximale Packetgröße und kleinere gehen ja scheinbar
durch.
Ich frage mich aber auch was bei den Zielsystemen passiert, die du ereichen
kannt.
Normalerweise sollte man erwarten, dass dahin auch große Packete auftreten.
Mag aber auch sein, dass die HTTP-Requests dahin einfach kleiner sind,
z.B. weil weniger Cookies oder ähnliches zu senden ist.

-- 
B.Walter <bernd@bwct.de> http://www.bwct.de
Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Thu 28 Nov 2013 - 02:32:40 CET

search this site