Solaris
如何僅對某些 TCP 埠強制使用特定的 MTU?
背景
我在現場部署了一套嵌入式硬體。這些遠端機器連接回我在 AWS 上執行 Ubuntu 的伺服器,我使用該
iptables
mangle
鏈將 MTU 降低到 500,因此這些設備很滿意。作為參考,這是iptables
我使用的規則:-A POSTROUTING -p tcp --sport 12345 --tcp-flags SYN,RST SYN -o eth0 -j TCPMSS --set-mss 500
目前問題
我正在嘗試使用 啟動 Joyent Cloud 上的一些伺服器
SmartOS
,但我找不到任何關於有選擇地更改 MTU 的資訊,就像我在 Linux 上一樣(例如,我發現的所有資訊都是關於全域更改它,這不是我想要的是)。我該怎麼做才能讓 TCP 埠 12345 上的所有連接都獲得我想要的 MTU?
根據 Joyent 支持團隊的回饋,這似乎是不可能的。MTU 只能在介面級別設置,不能像 Linux 那樣通過防火牆。
請注意,理論上可以通過
setsockopt
呼叫(通過TCP_MAXSEG
選項)更改套接字的 MTU,但目前 node.js 沒有可用的擴展來這樣做。其他應用平台應使用該setsockopt
呼叫。