Thông tin hệ thống của tôi:
Bản phát hành CentOS Linux 7.9.2009 (Lõi)
tường lửa-cmd v0.6.3
iptables v1.4.21
Hạt nhân 3.10.0-1160.25.1.el7.x86_64
Nó đang chạy Dấu hoa thị v18.4.0
tổng đài với PJSIP
. Carier của tôi gửi quá nhiều MỜI SIP
gói mỗi giây, nói 20 cuộc gọi mỗi giây
từ họ VOS3000
Chuyển đổi mềm. Hầu hết chúng đều bị tắc nghẽn (SIP 503) ở điểm cuối gửi đi của tôi (ví dụ: chỉ 2 trong số 20 cuộc gọi có trạng thái đổ chuông).
Nó gây ra việc sử dụng CPU rất cao khi tôi đang sử dụng PHP AGI (FastAGI)
cho mỗi cuộc gọi đến cũng như khi cuộc gọi kết thúc.
Bây giờ, tôi muốn giới hạn MỜI SIP
gói sử dụng tường lửa
. Giả sử, tôi muốn tối đa 3 MỜI mỗi giây; tôi chạy
tường lửa-cmd -- Permanent --direct --add-rule bộ lọc ipv4 INPUT_direct 0 -p udp --dport 5060 -m string --algo bm --string "INVITE nhâm nhi:" -m hashlimit --hashlimit-above 3/ sec --hashlimit-mode dstport --hashlimit-name sip -j REJECT --reject-with icmp-port-unreachable
tường lửa-cmd --reload
Các lệnh trên thành công nhưng nó không hoạt động. Tôi gửi 20 cuộc gọi mỗi giây bằng cách sử dụng SIPp
từ một máy chủ lưu trữ bên ngoài và tôi thấy có hơn 900 cuộc gọi mỗi phút đến tổng đài Asterisk của tôi.
Cũng đang chạy tcpdump -i bất kỳ -nn icmp
trong máy chủ không hiển thị bất kỳ thông báo không thể truy cập ICMP nào cho cổng 5060.