Информация о моей системе:
Выпуск CentOS Linux 7.9.2009 (основной)
брандмауэр-cmd v0.6.3
iptables v1.4.21
Ядро 3.10.0-1160.25.1.el7.x86_64
Он работает Звездочка v18.4.0
АТС с PJSIP
. Моя карьера отправляет слишком много SIP ПРИГЛАШЕНИЕ
пакетов в секунду, скажем 20 звонков в секунду
от их ВОС3000
программный переключатель. Большинство из них перегружены (SIP 503) на моей исходящей конечной точке (например, только 2 из 20 вызовов получают статус звонка).
Это вызывает очень высокую загрузку ЦП, поскольку я использую PHP AGI (FastAGI)
при каждом входящем вызове, а также при сбросе вызова.
Теперь я хочу ограничить SIP ПРИГЛАШЕНИЕ
пакеты с использованием брандмауэр
. Скажем, я хочу максимум 3 INVITE в секунду; я бегу
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT_direct 0 -p udp --dport 5060 -m string --algo bm --string "INVITE sip:" -m hashlimit --hashlimit-выше 3/ sec --hashlimit-mode dstport --hashlimit-name sip -j REJECT --reject-with icmp-port-unreachable
брандмауэр-cmd --перезагрузить
Вышеупомянутые команды успешны, но не работают. Я отправляю 20 звонков в секунду, используя SIPp
с внешнего хоста, и я вижу более 900 вызовов в минуту, поступающих на мою АТС Asterisk.
Также работает tcpdump -i любой -nn icmp
на сервере не отображается сообщение о недоступности ICMP для порта 5060.