背景
組み込みハードウェアのセットを現場に配備しています。これらのリモートマシンは、Ubuntuを実行しているAWSのサーバーに接続し直し、iptables
mangle
チェーンを使用してMTUを500に下げ、これらのデバイスが満足できるようにします。参考までに、これは私が使用しているiptables
ルールです。
-A POSTROUTING -p tcp --sport 12345 --tcp-flags SYN,RST SYN -o eth0 -j TCPMSS --set-mss 500
現在の問題
SmartOS
を使用してJoyentCloudでいくつかのサーバーを起動しようとしていますが、Linuxの場合のようにMTUを選択的に変更することに関する情報が見つかりません(たとえば、見つけたすべての情報は変更に関するものです) itglobally、これはnot私が欲しいものです)。
TCPポート12345のすべての接続が必要なMTUを取得するようにするにはどうすればよいですか?
Joyentのサポートチームからのフィードバックに基づくと、これは不可能のようです。 MTUは、Linuxの場合のようにファイアウォールを介してではなく、インターフェイスレベルでのみ設定できます。
理論的には、setsockopt
呼び出し(TCP_MAXSEG
オプションを介して)を介してソケットのMTUを変更することは可能ですが、現在、node.jsで変更できる拡張機能はありません。他のアプリプラットフォームでは、setsockopt
呼び出しを使用する必要があります。