
Por padrão, o destino SNAT mantém a porta de origem do pacote original. Se essa porta já estiver em uso, ele escolhe uma aleatoriamente. Existe alguma forma de influenciar a escolha desta porta ou avaliar a faixa dentro da qual ela é escolhida? Nos meus testes net.ipv4.ip_local_port_range
não pareceu ter influência nisso. Gostaria de saber se existe uma configuração diferente para isso
Responder1
Por padrão, o destino SNAT mantém a porta de origem do pacote original. Se essa porta já estiver em uso, ele escolhe uma aleatoriamente.
Não é escolhido aleatoriamente por padrão, em vez disso, o algoritmo padrão é o seguinte
(a parte em negrito confirma sua afirmação sobre manter a porta original)
Se nenhum intervalo de portas for especificado, as portas de origem abaixo de 512 serão mapeadas para outras portas abaixo de 512: aquelas entre 512 e 1023 inclusive serão mapeadas para portas abaixo de 1024 e outras portas serão mapeadas para 1024 ou acima.Sempre que possível, nenhuma alteração na porta ocorrerá.
https://man7.org/linux/man-pages/man8/iptables-extensions.8.html
Existe alguma forma de influenciar a escolha desta porta ou avaliar a faixa dentro da qual ela é escolhida?
Sim, é possível usando instruções masquerade
ou snat
em sua NAT
regra, especificando intervalos de portas da seguinte maneira--to-ports port[-port]
--to-ports porta[-porta]
This specifies a range of source ports to use, overriding
the default SNAT source port selection heuristics (see
above). This is only valid if the rule also specifies one
of the following protocols: tcp, udp, dccp or sctp.
https://man7.org/linux/man-pages/man8/iptables-extensions.8.html
Nos meus testes, net.ipv4.ip_local_port_range não pareceu ter influência nisso.
O net.ipv4.ip_local_port_range
aplica-se a portas ouvintes que devem estar disponíveis para serem ouvidas, não tem nada a ver com SNAT
, ou seja, essas portas nunca serão utilizadas de NAT
fato.
https://www.ibm.com/docs/en/filenet-p8-platform/5.5.x?topic=listener-linux