Falls das zu übertragende IP-Paket größer als die maximale Transfergröße (MTU) ist, wird dem Sender per ICMP mitgeteilt, dass eine Fragmentierung durchzuführen ist, die Daten also in kleineren Häppchen zu senden sind. Manche ISPs blockieren ICMP oder lassen nur bestimmte ICMP-Nachrichten durch, was dann dazu führt, dass der Sender nie erfährt, dass die Übertragung nicht funktioniert hat. Gleiches kann bei VPN-Verbindungen (IPSEC, OpenVPN) passieren, die mit ICMP nicht korrekt umgehen. Symptome sind dann:

  • Webbrowser stellen zwar eine Verbindung zum Webserver her, stecken dann aber beim Empfang der Webseite fest
  • sehr kleine E-Mails können versand werden, größere hingegen nicht
  • SSH arbeitet korrekt, aber SCP hängt bei der ersten Übertragung fest
    (Quelle: Man-Page iptables-extensions)

Für solche Fälle kann mit Hilfe von iptables und der Erweiterung TCPMSS die MTU der Verbindung auf die maximal zulässige Größe auf diesem Transportpfades gesetzt werden. Dadurch können alle TCP-Pakete ohne Fragmentierung übertragen werden.

Auf einem Server (nicht Router) tauscht man in obigem Kommando FORWARD gegen OUTPUT.

Anschließend muss noch ein (distributionsabhängiger) Weg gefunden werden, diese Regel nach einem Neustart des Servers automatisch zu laden.

Bild by Fabienne Serriere [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons

Schon lange hatte ich den Wunsch, mir einen eigenen Router zu basteln. Mein bisheriger Router bekommt leider vom Hersteller keine Updates mehr. Schon IPv6 ist mit meinem alten Router nicht möglich. Was also tun? Einen ausgemusterten Rechner als Router hinstellen? Zu laut, zu groß, zu viel Stromverbrauch. Was also tun? Ein embedded System musste also her. Meine Wahl fiel auf das ALIX 2D13 Board mit einer 4 GB CF-Karte. Auch das OS war schnell gefunden: genau für diese Hardwarekonstellation gibt es vorgefertigte pfSense-Images (ein angepasstes FreeBSD), welches alle meine Vorgaben erfüllte. Bei der Hardware kamen noch eine WLAN-Karte nebst der notwendigen Antennen und Verbindungskabel dazu. Für die Kommunikation über die serielle Schnittstelle (für den Fall der Fälle) war noch ein Serial-to-USB-Adapterkabel notwendig.

Die Einrichtung von pfSense war im Anschluß ein Kinderspiel. Die Internetverbindung stand sofort und die anderen Geräte im Netzwerk waren erreichbar.

An der Konfiguration für T-Entertain habe ich dann noch zwei Tage geknobelt. Ein ausführlicher Bericht folgt.

Update vom 19.10.2014: pfSense für Telekom-IPTV einrichten