ฉันเจอสถานการณ์ที่ลูกค้าต้องการขึ้นบัญชีดำชุดของที่อยู่ IP ต่ำกว่า 1 ล้านรายการ (ไม่มีซับเน็ต) และประสิทธิภาพของเครือข่ายเป็นเรื่องที่น่ากังวล ในขณะที่ฉันคาดเดาว่ากฎ IPTables จะส่งผลกระทบต่อประสิทธิภาพน้อยกว่าเส้นทาง แต่นั่นเป็นเพียงการคาดเดา
ใครบ้างมีหลักฐานที่มั่นคงหรือเหตุผลอื่น ๆ เพื่อสนับสนุน IPTables หรือการกำหนดเส้นทางโมฆะเป็นวิธีการแก้ปัญหาในการขึ้นบัญชีดำรายการที่อยู่ยาว ในกรณีนี้ทุกอย่างเป็นไปโดยอัตโนมัติดังนั้นการใช้งานง่ายจึงไม่เป็นปัญหา
แก้ไข 26-Nov-11
หลังจากการทดสอบและการพัฒนาปรากฏว่าไม่มีตัวเลือกใดที่สามารถใช้งานได้ ดูเหมือนว่าทั้งการค้นหาเส้นทางและ iptables ทำการค้นหาเชิงเส้นผ่านชุดกฎและใช้เวลานานเกินไปในการประมวลผลกฎจำนวนมากนี้ บนฮาร์ดแวร์ที่ทันสมัยการวางรายการ 1M ในบัญชีดำ iptables ทำให้เซิร์ฟเวอร์ช้าลงประมาณ 2 โหลแพ็กเก็ตต่อวินาที ดังนั้นเส้นทาง IPTables และ null จึงหมดไป
ipset
ตามคำแนะนำของ Jimmy Hedman จะดีมากยกเว้นว่าจะไม่อนุญาตให้คุณติดตามที่อยู่มากกว่า 65536 รายการในชุดดังนั้นฉันจึงไม่สามารถลองใช้งานได้หากไม่มีใครมีความคิดใด ๆ
เห็นได้ชัดว่าทางออกเดียวสำหรับการบล็อก IP จำนวนมากนี้กำลังทำการค้นหาที่มีการจัดทำดัชนีในชั้นแอปพลิเคชัน นั่นไม่ใช่เหรอ?
ข้อมูลมากกว่านี้:
กรณีการใช้งานในอินสแตนซ์นี้กำลังบล็อกรายการ "ที่รู้จักผู้กระทำผิด" ของที่อยู่ IP ไม่ให้เข้าถึงเนื้อหาแบบคงที่บนเว็บเซิร์ฟเวอร์ FWIW การทำการบล็อกผ่าน Apache Deny from
นั้นช้าพอ ๆ กัน (ถ้าไม่มาก) เช่นเดียวกันกับการสแกนเชิงเส้น
FYI: วิธีแก้ปัญหาการทำงานขั้นสุดท้ายคือการใช้ mod_rewrite ของ apache ร่วมกับแผนที่ berkeley DB เพื่อทำการค้นหากับบัญชีดำ ลักษณะที่เป็นดัชนีของ berkeley DBs อนุญาตให้รายการขยายขนาดด้วยประสิทธิภาพ O (บันทึก N)