Cómo redirigir paquetes UPD destinados a otro host a localhost

Cómo redirigir paquetes UPD destinados a otro host a localhost

Quiero detectar paquetes UDP dirigidos al puerto 4500 que fluyen desde la máquina A -> B con un dispositivo TAP físico y recibir los paquetes detectados en la máquina C en un puerto local (ver imagen). ingrese la descripción de la imagen aquí

Acerca del dispositivo TAP: Este es un dispositivo físico que se coloca entre A y B. El tráfico entre A y B no se modifica en absoluto, pero los paquetes también se envían a la interfaz de salida TAP de la máquina C (los paquetes recibidos en C se todavía dirigido a B porque el TAP no está haciendo modificaciones)

Mi metaes recibir todos los datos que están dirigidos al puerto 4500 en la máquina C en programas cliente como netcat.

El problemaObviamente, los paquetes recibidos en la NIC de C no están destinados a C y, por lo tanto, los paquetes se descartan antes de acercarse a las capas de aplicaciones del modelo OSi.

Lo que ya probé es usar nftablespara redirigir paquetes, pero de alguna manera mi netcat todavía no recibe mensajes. ¿Alguien puede ayudarme a saber qué estoy haciendo mal o sugerirme cuál es la mejor manera de resolverlo?

nft 'add chain nat udpredirect { type nat hook prerouting priority -101 ; policy accept ; }'
nft 'add rule ip nat PREROUTING udp dport 4500 redirect'

Respuesta1

La respuesta está aquí:https://serverfault.com/a/1125704/570881

La familia netdev debe usarse para modificar paquetes con suficiente antelación antes de que el kernel los elimine.

información relacionada