Netflix + IPv6 = MTU Problem

Wir (Opennet Initiative e.V.) testen gerade die Gluon Firmware bei uns. Wir haben ein IPv6-only Netz gebaut. Einige Nutzer berichteten nun über Probleme mit Netflix. Nach längerem Suchen stellt sich heraus, dass es ein MTU Problem zu sein scheint.
Ich wollte mein Wissen/Erkenntnisse hier teilen und hoffe, dass jemand anderes dieses Problem auch schon hatte (und hoffentlich eine Lösung/Workaround kennt).

Konkret sehen wir ein MTU Problem, weil sich die Netflix Server nicht standardkonform verhalten.

Die Netflix Server versuchen erstmal möglichst große Pakete zu schicken. So weit so gut. Jedoch haben wir einen Tunnel auf dem Weg und dieser erzwingt kleinere Pakete. Hierfür gibt es in IPv6 extra ICMP Meldungen, welche dem Server diesen Umstand mitteilen. Leider machen die Netflix Server dann komische Dinge.

Es folgt ein konkreter Auszug des Netzwerkverkehrs.

IP6 2a05:d018:76c:b683:f711:f0cf:5cc7:b815.443 > 2a0a:4580:xxxxx.34888: Flags [P.], seq 1:2857, ack 514, win 69, options [nop,nop,TS val 717834735 ecr 3089593717], length 2856
IP6 2a0a:4580:xxxxx > 2a05:d018:76c:b683:f711:f0cf:5cc7:b815: ICMP6, packet too big, mtu 1312, length 1240
IP6 2a05:d018:76c:b683:f711:f0cf:5cc7:b815.443 > 2a0a:4580:xxxxx.34888: Flags [.], seq 1:1429, ack 514, win 69, options [nop,nop,TS val 717834983 ecr 3089593717], length 1428
IP6 2a0a:4580:xxxxx > 2a05:d018:76c:b683:f711:f0cf:5cc7:b815: ICMP6, packet too big, mtu 1312, length 1240
IP6 2a05:d018:76c:b683:f711:f0cf:5cc7:b815.443 > 2a0a:4580:xxxxx.34888: Flags [.], seq 1:1429, ack 514, win 69, options [nop,nop,TS val 717835495 ecr 3089593717], length 1428

Was passiert dort genau:

  • Netflix Server (2a05:d018:76c:b683:f711:f0cf:5cc7:b815) schickt ein Antwortpaket zurück mit einer Größe von 2856 Byte. Normalerweise sind im Internet max. 1500 Byte anzutreffen und real wird das hier auch der Fall gewesen sein. Hier sind es (logisch) mehr weil wir den tcpdump auf einer virtuellen Maschine gemacht haben.
  • Unser Gateway hat nun die Aufgabe das große Paket ins VPN zu schicken, jedoch ist das Paket zu groß. Das Gateway schickt ein „ICMP6, packet too big, mtu 1312“ zurück. Somit weiß Netflix auch, wie groß maximal das Paket sein darf (1312 Byte).
  • Netflix schickt nun ein neues (kleineres) Paket mit … 1428 Byte.
  • Unser Gateway weist nochmals auf das Größenproblem hin.
  • Netflix schickt erneut 1428 Byte.
  • usw. usw.

Aus irgend einem Grund scheint Netflix die MTU nicht auf den korrekten Wert zu reduzieren. Ob das gewollt ist oder bei Netflix ein Bug ist, kann ich nicht beurteilen.

Kennt jemand dieses Problem? Sollte man Netflix dezent auf diesen Umstand hinweisen?

1 „Gefällt mir“

Das Problem kenne ich mit Netflix und habe es schon öfter gemeldet. Getan hat sich nichts also machen wir weiter mss clamping.

3 „Gefällt mir“

Ja leider, am mssclamping führt auch nach Jahren kein Weg vorbei.

3 „Gefällt mir“

-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

for the record :wink: