Como forçar uma MTU específica para apenas determinadas portas TCP?

1

Plano de fundo

Eu tenho um conjunto de hardware incorporado implantado no campo. Essas máquinas remotas se conectam de volta aos meus servidores na AWS que executam o Ubuntu e eu uso a corrente iptables mangle para reduzir a MTU para 500, para que esses dispositivos fiquem felizes. Para referência, esta é a regra iptables que estou usando:

-A POSTROUTING -p tcp --sport 12345 --tcp-flags SYN,RST SYN -o eth0 -j TCPMSS --set-mss 500

Problema atual

Estou tentando criar alguns servidores no Joyent Cloud usando SmartOS , mas não consigo encontrar nenhuma informação sobre como alterar seletivamente o MTU como eu posso no Linux (por exemplo, todas as informações que descobri são sobre a mudança é globalmente , o que é não o que eu quero).

Como eu faria isso para que todas as conexões na porta TCP 12345 recebam o MTU que eu quero?

    
por Dave S. 01.07.2013 / 16:20

1 resposta

0

Com base no feedback da equipe de suporte da Joyent, isso parece não ser possível. A MTU só pode ser definida no nível da interface, não através do firewall, como acontece com o Linux.

Note que é teoricamente possível alterar a MTU para um soquete através da chamada setsockopt (via a opção TCP_MAXSEG ), mas atualmente não há extensão disponível para que o node.js faça isso. Outras plataformas de aplicativos devem usar a chamada setsockopt .

    
por 09.07.2013 / 16:25