iptables para encaminhar/duplicar/espelhar o tráfego UDP gerado localmente

iptables para encaminhar/duplicar/espelhar o tráfego UDP gerado localmente

Estou executando um programa em um Raspberry Pi que lê dados de sensores e os envia para um servidor via UDP. Para depurar e monitorar esses dados redirecionei esses dados UDP para meu PC usando iptables no Raspberry Pi:

sudo iptables -t nat -A OUTPUT -p udp -d 192.168.178.10 --dport 4000 -j DNAT --to-destination 192.168.178.22:4000

Os endereços IP usados ​​são
192.168.178.10 - Servidor
192.168.178.22 - PC usado para depuração.

Isso funciona bem. No entanto, os dados só chegam ao PC, mas não ao servidor.

Então tentei copiar e encaminhar os dados UDP para o PC e para o servidor usando algo assim:

sudo iptables -t mangle -A POSTROUTING -p udp -d 192.168.178.10 --dport 4000 -j TEE --gateway 192.168.178.22

Usei diferentes combinações de parâmetros como mangle/nat, POSTROUTING/OUTPUT/PREROUTING etc.

Até o momento não consegui enviar os dados para os dois destinos. Como os dados são gerados localmente, presumi que -A OUTPUT deveria funcionar. Mas aparentemente estou faltando alguma coisa ...

Além disso, posso limpar as regras do iptables usando

sudo iptables -F
sudo iptables -X

Mas a regra ainda é executada e tenho que reiniciar o Raspberry Pi para começar do zero.

Portanto, há duas perguntas:

Como funciona a duplicação e o encaminhamento de dados gerados localmente?
Como as regras são limpas de forma eficaz?

Todos os exemplos que encontrei até agora se aplicam ao tráfego de entrada/saída, mas não aos dados gerados localmente.

Responder1

Agora - por acidente - encontrei uma solução:

sudo sysctl -w net.ipv4.ip_forward=1

sudo iptables -t nat -A OUTPUT -p udp -d 192.168.178.10 --dport 4000 -j DNAT --to-destination 192.168.178.22:4000

sudo iptables -t mangle -A POSTROUTING -p udp -d 192.168.178.22 --dport 4000 -j TEE --gateway 192.168.178.10

Isso funciona bem, porém parece ser desnecessariamente complicado, pois eu esperava que isso fosse possível com uma única regra.

Talvez alguém tenha uma ideia de como simplificar isso.

informação relacionada