.png)
Na minha caixa Linux 10.20.1.1
, tenho dois aplicativos UDP vinculados na porta 46000 (App A)
e 36000(App B)
respectivamente. Os aplicativos se comunicam com dois servidores UDP vinculados como 10.10.1.1:36000 (Srv X)
e 10.10.1.2:36000 (Srv Y)
respectivamente.
Quando eu envio o pacote, tenho a necessidade de sempre usar a porta UDP src como 36000. O pacote no fio será sempre 36000 - 36000
as portas src e dst.
Minhas regras do iptables são como abaixo. Minha intenção é enviar DNAT
o pacote recebido do Srv X da porta 36000 to 46000
para que o App A o receba.
*nat
-A PREROUTING -s 10.10.1.1/32 -p udp --dport 36000 -j DNAT --to-destination :46000
*raw
-A PREROUTING -p udp --dport 36000 -j CT --notrack
-A PREROUTING -p udp -j ACCEPT
-A OUTPUT -p udp --dport 36000 -j CT --notrack
-A OUTPUT -p udp -j ACCEPT
*filter
-A INPUT -p udp -m udp --dport 36000 -j ACCEPT --> rule 1
-A INPUT -p udp -m udp --dport 46000 -j ACCEPT --> rule 2
-A OUTPUT -p udp -m udp --dport 36000 -j ACCEPT -> rule 3
Quando eu envio um pacote, App A to Srv X
tudo corre bem. Não há nenhuma /proc/net/ip_conntrack
correspondência de entrada e saída do pacote conntrack rule 3
. Quando a resposta vem de Srv X to App A
, o pacote atravessa a tabela bruta, mas DOES NOT
passa DNAT
e salta diretamente para a regra 1 da tabela de filtro. Isso significa que a resposta Srv X chega à minha caixa, mas vai para o Aplicativo B em vez do Aplicativo A.
Questões:
A tabela RAW indica que não há arquivo
CONNTRACK
. No entanto, o comportamento acima indica que o primeiro pacoteApp A -> Srv X
com porta src e dst36000 - 36000
está sendo rastreado por algum módulo em algum lugar. Portanto, a resposta deSrv X -> App A
não parece passar por DNAT. Como posso evitar issoCONNTRACK
?Como garantir que todos os pacotes recebidos do Srv X com porta dst 36000 sempre passem por DNAT?
Agradecemos antecipadamente, Telex
Responder1
Ao olhar paraDocumentação do Netfilter, diz-se que"O rastreamento de conexão é fundamental para o NAT", portanto, você não pode ter DNAT sem ativarconexão.