Лимитирование соединений на UDP сервис при помощи iptables
Есть машина с Linux Centos 5.2, есть самописный демон, который принимает определенные данные по UDP протоколу (слушает UDP порт). На udp порт идет поток данных (мусорных в том числе), который увеличивается ближе к вечернему времени, что приводит к тормозам, а в последствии к полной остановке самописного ПО. Исходники демона утеряны и модернизации он не подлежит. Как временное решение проблемы было найдено решение по лимитированию соединений при помощи iptables. Следующие правила применял для реализации этой задачи:
-A RH-Firewall-1-INPUT -p udp -m udp --dport 8000 -m limit --limit 5/second --limit/burst 5 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 8000 --limit 10/s --limit-burst 20 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 8000 -j DROP -m iplimit --iplimit-above 1 -A RH-Firewall-1-INPUT -p udp --dport 8000 -m limit --limit 1/s --limit-burst 1 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 8000 -m limit --limit 20/s --limit-burst 200 -j DROP -A INPUT -p udp --dport 8000 --limit 10/s --limit-burst 20 -j DROP
Данные правила я применял в разном порядке и в разных вариациях. Теперь о том, как проверял работоспособность UDP лимитов:
на «защищаемой» машине запускаю iperf # iperf -s -p 8000 -u
------------------------------------------------------------
Server listening on UDP port 8000 Receiving 1470 byte datagrams UDP buffer size: 8.00 MByte (default)
С другой машины (обе находятся в локальной сети): iperf -c 192.168.1.156 --format k -u -p 8000 -t 180
Смотрю сколько трафика перекачалось, потом повторяю тест, но уже включаю правила iptables. Ситуация не меняется, объем обработанного трафика между машинами остается прежний, вывод - лимитирование не работает, иначе объем данных был бы неизбежно меньше.
В связи с этим у меня к сообществу пара вопросов
1. Правильно ли я проверяю работоспособность UDP лимитов, используя при этом инструмент iperf? 2. Какие же все таки правила iptables нужны для лимитирования соединений по UDP?
Буду рад любым ответам, спасибо.