ข้อมูลระบบของฉัน:
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
ตู้สาขาโทรศัพท์กับ พีเจเอสไอพี
. ผู้ให้บริการของฉันส่งมากเกินไป เชิญจิบ
แพ็คเก็ตต่อวินาทีพูด 20 สายต่อวินาที
จากพวกเขา VOS3000
ซอฟต์สวิตซ์ ส่วนใหญ่แออัด (SIP 503) ในปลายทางขาออกของฉัน (เช่น มีเพียง 2 ใน 20 สายเท่านั้นที่ได้รับสถานะเสียงเรียกเข้า)
มันทำให้การใช้งาน CPU สูงมากในขณะที่ฉันใช้อยู่ PHP AGI (ฟาสต์เอจีไอ)
สำหรับการโทรเข้าแต่ละครั้งตลอดจนเมื่อวางสาย
ตอนนี้ฉันต้องการ จำกัด เชิญจิบ
แพ็คเก็ตโดยใช้ ไฟร์วอลล์
. พูดว่า ฉันต้องการเชิญสูงสุด 3 ครั้งต่อวินาที ฉันวิ่ง
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-above 3/ วินาที --hashlimit-mode dstport --hashlimit-name sip -j REJECT --reject-with icmp-port-unreachable
ไฟร์วอลล์ cmd --reload
คำสั่งด้านบนสำเร็จ แต่ใช้งานไม่ได้ ฉันส่ง 20 สายต่อวินาทีโดยใช้ SIPp
จากโฮสต์ภายนอก และฉันเห็นสายเรียกเข้ามากกว่า 900 สายต่อนาทีที่ Asterisk PBX ของฉัน
ยังวิ่ง tcpdump -i ใด ๆ -nn icmp
ในเซิร์ฟเวอร์ไม่แสดงข้อความ ICMP ที่ไม่สามารถเข้าถึงได้สำหรับพอร์ต 5060