클라이언트가 1 백만 개 미만의 개별 IP 주소 (서브넷 없음) 집합을 블랙리스트에 추가해야하는 상황을 겪어 왔으며 네트워크 성능이 중요합니다. IPTables 규칙이 경로보다 성능에 미치는 영향은 적다고 추측하지만 추측에 불과합니다.
누구든지 긴 IP 주소 목록을 블랙리스트에 올리는 솔루션으로 IPTables 또는 null 라우팅을 선호한다는 확실한 증거 나 다른 근거가 있습니까? 이 경우 모든 것이 자동화되므로 사용 편의성은 실제로 중요하지 않습니다.
26 년 11 월 11 일 수정
일부 테스트 및 개발 후 이러한 옵션 중 어느 것도 실행 가능한 것으로 보이지 않습니다. 경로 조회와 iptables 모두 규칙 세트를 통해 선형 검색을 수행하고이 많은 규칙을 처리하는 데 너무 오래 걸리는 것 같습니다. 최신 하드웨어에서 iptables 블랙리스트에 1M 항목을 넣으면 서버가 초당 약 12 개의 패킷으로 느려집니다. 따라서 IPTables 및 null 경로가 없습니다.
ipset
, 지미 헤드 먼 (Jimmy Hedman)이 추천 한대로 세트에서 65536 개가 넘는 주소를 추적 할 수 없다는 점을 제외하고는 훌륭 할 것입니다.
이 많은 IP를 차단하는 유일한 솔루션은 응용 프로그램 계층에서 인덱스 조회를 수행하는 것입니다. 그렇지 않습니까?
추가 정보 :
이 인스턴스의 사용 사례는 IP 주소의 "알려진 범죄자"목록이 웹 서버의 정적 컨텐츠에 액세스하는 것을 차단합니다. FWIW, Apache를 통한 차단 Deny from
은 선형 스캔과 마찬가지로 느리게 진행됩니다.
참고 : 최종 작업 솔루션은 버클리 DB 맵과 함께 apache의 mod_rewrite를 사용하여 블랙리스트에 대한 조회를 수행하는 것이 었습니다. 버클리 DB의 인덱스 특성으로 인해 목록은 O (log N) 성능으로 확장 될 수있었습니다.