O encaminhamento de porta NAT redirecionará os pacotes em vez de duplicá-los. No seu exemplo, o tráfego de chamadas não deve chegar à camada de aplicativo em B:2222
, mas ser redirecionado diretamente para C:3333
.
Provavelmente você deseja analisar a TEE
target de iptables
e fazer a duplicação em um host intermediário ao longo da rota de rede de A.
C
/
A - X - B
Em X
, duplique os pacotes:
iptables -t mangle -A PREROUTING -d B -p udp --dport 2222 -j TEE --gateway C
Em C
, redirecione o tráfego duplicado para o ouvinte local:
iptables -t nat -A PREROUTING -d B -p udp --dport 2222 -j DNAT --to-destination C:3333
A razão para o host intermediário é que normalmente o linux não permite que você mexa com a rota do tráfego destinado a uma interface local. Eu não tentei este TEE
setup especificamente, mas normalmente o tráfego para uma interface local irá cortar as regras de roteamento, então nunca vai sair em --gateway C
. Eu estou supondo que você iria acertar o mesmo problema com o TEE
tentando encaminhar o tráfego para B
out, mas ymmv.
O próximo problema pode ser o próprio aplicativo. Tem certeza de que o protocolo suporta simplesmente tocar e reproduzir o fluxo de rede duplicado?
Se o fluxo RTP puder ser captado por aplay
on C
, então parece que você também tem o seu caminho errado. Você deseja que nc
canalize para aplay
.
nc -l -u 3333 | aplay