У меня есть два источника системного журнала, которые входят на порте 514, и я хочу передать им двум различным портам на основе исходного IP (для graylog сервера).
Я могу передать все на том порте к другому локальному порту.
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p udp --dport 514 -j REDIRECT --to-port 1514
COMMIT
Но если я пытаюсь отфильтровать на основе исходного IP, ничего, кажется, не происходит, он просто все продолжает собираться портировать 1514.
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p udp -s $some_ip --dport 514 -j REDIRECT --to-port 1513
-A PREROUTING -p udp -s $some_ip --dport 514 -j REDIRECT --to-port 1514
COMMIT
Любая справка с удовольствием ценилась бы, поскольку я уверен, что я должен, пропуская что-то в широком масштабе очевидное.
Удостоверьтесь, что Вы помещаете правило в правильную таблицу и цепочку. Я боролся с этим тем же сценарием вчера с iptables. Попытайтесь делать захват пакетов, чтобы удостовериться, что пакеты входят, поскольку Вы полагаете, что они - с tcpdump "порт tcpdump-s0-w 514". Можно также настроить журналирование iptables пакетов для проверки, какая цепочечная AMD берут вещи, текут через. Осмотрите текущие правила и командную строку iptables споры с "iptables-nL" и "iptables-S"
https://commons.m.wikimedia.org/wiki/File:Netfilter-packet-flow.svg