iptables & mms

Lutz Donnerhacke lutz at iks-jena.de
Mon Sep 29 09:46:04 CEST 2003


* TobbY Nowack wrote:
> 14:59:12.782929 golan-zr12.fem.tu-ilmenau.de.1097 > ha-42.web.de.www: S
> 2450003094:2450003094(0) win 16384 <mss 1400,nop,nop,sackOK> (DF)

Du möchtest Verbindung.

> 14:59:12.946947 ha-42.web.de.www > golan-zr12.fem.tu-ilmenau.de.1097: S 
> 1424807005:1424807005(0) ack 2450003095 win 5840 <mss 1410,nop,nop,sackOK> 
> (DF)

Er nimmt die Verbindung an.

> 14:59:12.950686 golan-zr12.fem.tu-ilmenau.de.1097 > ha-42.web.de.www: . ack
> 1 win 17640 (DF)

Du bestätigst das.

> 14:59:17.790942 ha-42.web.de.www > golan-zr12.fem.tu-ilmenau.de.1084: . 
> 436431599:436433009(1410) ack 2218358288 win 5840 (DF)

Er sendet Dir die ersten Daten, ist dabei aber mit den Sequenznummern
durcheinander geraten.

> 14:59:17.791346 golan-zr12.fem.tu-ilmenau.de.1084 > ha-42.web.de.www: R 
> 2218358288:2218358288(0) win 0 (DF)

Du quittierst den Empfang.

> 14:59:34.952849 golan-zr12.fem.tu-ilmenau.de.1097 > ha-42.web.de.www: P 
> 1:2(1) ack 1 win 17640 (DF)

Du sendest ein Byte.

> 14:59:35.051395 ha-42.web.de.www > golan-zr12.fem.tu-ilmenau.de.1097: . ack 
> 2 win 5840 (DF)

Er quittiert den Empfang.

> ck 1 win 17640 (DF)

Huh?

> 14:59:35.502887 ha-42.web.de.www > golan-zr12.fem.tu-ilmenau.de.1097: . ack 
> 3 win 5840 (DF)

Quittierung.

> 14:59:35.765664 golan-zr12.fem.tu-ilmenau.de.1097 > ha-42.web.de.www: P 
> 3:4(1) ack 1 win 17640 (DF)

Das nächste Byte. Vorzugsbehandlung.

> 14:59:35.929429 ha-42.web.de.www > golan-zr12.fem.tu-ilmenau.de.1097: . ack 
> 4 win 5840 (DF)

Quittierung.

> 14:59:36.356562 golan-zr12.fem.tu-ilmenau.de.1097 > ha-42.web.de.www: P 
> 4:6(2) ack 1 win 17640 (DF)

Zwei Byte. Vorzugsbehandlung.

> 14:59:36.496630 ha-42.web.de.www > golan-zr12.fem.tu-ilmenau.de.1097: . ack 
> 6 win 5840 (DF)

Quittierung.

> 14:59:37.650502 ha-42.web.de.www > golan-zr12.fem.tu-ilmenau.de.1097: . 
> 1:1411(1410) ack 6 win 5840 (DF)

Er sendet Daten.

> 14:59:37.650636 golan-zr12.fem.tu-ilmenau.de > ha-42.web.de: icmp: 
> vpn-nowackt.lan.indiancoder.de unreachable - need to frag (mtu 1400) [tos 
> 0xc0]

MTU zu klein. Da DF seitens des Servers gesetzt ist, ist PMTUD an, der
Sender muß also kleinere Brötchen backen.

> 14:59:37.656578 ha-42.web.de.www > golan-zr12.fem.tu-ilmenau.de.1097: . 
> 1411:2821(1410) ack 6 win 5840 (DF)

Er hört aber nicht zu. (Weil Web.de ICMP wegwirft, und damit PMTUD kaputt
macht, das aber deren Server sprechen wollen.) Kurz: Web.de will nicht mit
Dir sprechen.

> Diese letzte Zeile ließ mich dann stutzig werden. Wie kann ich nun 
> erreichen das ich Pakete der richitgen mtu bekomme, die auch der Client am 
> Ende des Tunnels verarbeiten kann.

Indem man den Firewall Admin von web.de an den Füßen aufhängt, mit Pfeilen
durchbohrt, ihn auf kleiner Flamme röstet und dann anfängt, ihm wirklich weh
zu tun. Ab Januar sehe ich dafür reelle Chancen, dieses Procedere zu beginnen.

> Den hinweise aus der IP-Tables manpage: iptables -A FORWARD -p tcp 
> --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1400 habe ich in meiner 
> iptables configuration schon aufgenommen.

1400 ist immer noch zu groß. Du kannst das Problem nur lösen, in dem Du den
Admin o.g. Prozedur unterziehst.

> Ich wollte eigentlich nicht als "workaround" auf dem Router noch einen
> Squid aufsetzten.

Du kannst Deinen derzeitigen MSS Würgaround auf 900 Byte verringern.