
Я хочу клонировать/дублировать весь udp-трафик, входящий на порт 8500, на порт 8600. Важно, чтобы исходный адрес не был изменен. Также оба порта должны быть доступны приложениям (пакеты должны по-прежнему прибывать на исходный порт).
Это решение (nftables: дублирование UDP-пакетов для определенного IP-адреса:порта назначения на (второй) IP-адрес:порт назначения) работает на более новой системе, к сожалению, рассматриваемая машина работает под управлением ядра 3.10 на RHEL 7, и мне не разрешено его обновлять.
решение1
Поскольку ваш iptables, похоже, достаточно новый, и у вас есть таблица mangle
: Что-то вроде (внимание, я это не тестировал! попробуйте в виртуальной машине или подобном, ошибки с TEE
- это отличный способ занять все ядра вашего ЦП, имея циклические пути для пакетов)
# copy ("TEE") to dummy local IP address 127.0.0.127
iptables -t mangle -A PREROUTING -i {public interface, not lo} -p UDP --dport 8500 -j TEE --gateway 127.0.0.127
# re-redirect things for 127.0.0.127 to 127.0.0.1
iptables -t nat -A PREROUTING -d 127.0.0.127 -p UDP --dport 8500 -j DNAT --to 127.0.0.1:8600