Задний план
У меня есть набор встроенного оборудования, развернутого в полевых условиях. Эти удаленные машины подключаются к моим серверам в 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.
Обратите внимание, что теоретически возможно изменить MTU для сокета через setsockopt
звонок (через TCP_MAXSEG
option), но в настоящее время для node.js нет расширения для этого. Другие платформы приложений должны использовать setsockopt
вызов.