Zusätzlich zu den anderen guten Antworten musste ich kürzlich die Mangeltabelle verwenden, um die MTU-Diskrepanzen (Maximum Transmission Unit) auszugleichen, die durch den Datenverkehr über PPPoE, PPP und ATM verursacht werden. Dies führt jeweils zu einem zusätzlichen Aufwand, der die für IP verfügbare Nutzlast verringert von den üblichen 1500 Bytes eines Ethernet-Frames.
Bei Systemen an jedem Ende der Pipe wird die MTU wie üblich auf den regulären Standardwert von 1500 eingestellt, und daher wird versucht, so große IP-Frames zu senden. Da die tatsächlich verfügbare Nutzlast kleiner war, hätte dies zu einer Paketfragmentierung geführt, mit der Ausnahme, dass der Absender häufig anfordert, dass Pakete nicht fragmentiert werden, und dass sie daher vollständig verworfen werden.
In einer idealen Welt hätte die Pfad-MTU-Erkennung es den Endpunkten ermöglicht, ihre MTU nach Bedarf herunterzufahren. Diese Erkennung hängt jedoch von ICMP ab, und Netzwerke außerhalb meiner Kontrolle wurden häufig so konfiguriert, dass ICMP aus Sicherheitsgründen gelöscht wird.
Die einzige Möglichkeit bestand darin, die Paketverwaltung in meinem Router zu verwenden, um TCP-SYN-Pakete so zu ändern, dass die maximale Segmentgröße auf der Transportebene verringert wird:
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1452
Diese Art von Dingen ist chaotisch und sollte im Idealfall vermieden werden, aber ich hatte keine anderen Optionen und dies löste das Problem.
Hoffe, diese Beispiele helfen, sowie die Manpage.
iptables(8)
Manpage enthält alle gewünschten Informationen, einschließlich einiger nützlicher Beispiele für die Verwendung von Mangeltabellen.