Me he encontrado con una situación en la que una de las necesidades del cliente a la lista negra de un conjunto de sólo menos de 1 millón de direcciones IP individuales (no subredes), y el rendimiento de la red es una preocupación. Mientras yo conjetura de que las reglas IPTables tendría menos de un impacto en el rendimiento de las rutas, eso es sólo una conjetura.
¿Alguien tiene alguna evidencia sólida o de otra justificación para favorecer a cualquiera de las IPTables o nulo de enrutamiento como solución para el establecimiento de listas negras largas listas de direcciones IP? En este caso todo está automatizado, por lo que la facilidad de uso no es realmente una preocupación.
EDICIÓN 26-Nov-11
Después de algunas pruebas y el desarrollo, parece que ninguna de estas opciones son viables. Parece que tanto la ruta de las búsquedas y de iptables lineal hacer búsquedas a través de los juegos de reglas, y simplemente tomar demasiado tiempo para este proceso que muchas de las normas. En hardware moderno, poniendo 1M de elementos en una iptables lista negra ralentiza el servidor hasta aproximadamente 2 docenas de paquetes por segundo. Así IPTables y nulo de las rutas de salida.ipset
, según lo recomendado por Jimmy Hedman, sería genial, excepto que no permiten el seguimiento de más de 65536 direcciones en un conjunto, por lo que ni siquiera puedo intentar usarlo a menos que alguien tenga alguna idea.
Al parecer la única solución para el bloqueo de este muchas IPs está haciendo en un índice de búsqueda en la capa de aplicación. Es que no es así?
Más Información:
El uso del caso en este ejemplo es el bloqueo de un "delincuentes conocidos" lista de direcciones IP de acceso a contenido estático en un servidor web. FWIW, haciendo de bloqueo a través de Apache Deny from
es igual de lento (si no más) como también se hace una exploración lineal.
FYI: trabajo Final la solución fue usar apache mod_rewrite en conjunto con una base de datos berkeley DB mapa para hacer búsquedas en contra de la lista negra. El indexado de la naturaleza de berkeley DBs permitido la lista a escala con O(log N) el rendimiento.