>Не знаете разницы между таблицами и цепочками? слышали про быстрый поиск с
>хеш-таблицами? нет? погуглите. Погуглил, нашёл вот такой интересный тест:
http://bulk.fefe.de/scalability/
Правда он к обсуждаемому вопросу не имеет отношения...
>Время поиска по цепочке правил линейно зависит от количества правил. Поиск же
>по хеш таблице практически не зависит от количества записей в таблице.
>Вот цитата с букваря по pf "a table is ideal for
>holding a large group of addresses as the lookup time on
>a table holding 50,000 addresses is only slightly more than for
>one holding 50 addresses"
Аналогом таблиц pf в iptables является модуль ipset. Поиск же по спискам правил точно так же линеен.
В Linux эмпирическим путём обнаружилась интересная особенность - кэширование совпадений для правил, правда не нашёл прямых упоминаний об этом от разработчиков netfilter. В цепочках iptables долго идёт только первый поиск. Если приходит пакет с такими же атрибутами, что и уже проверенный, для этого пакета правило определяется из кэша: http://www.protocols.ru/Papers/iptables-test.shtml
>>Нечего не зеркало пенять коли рожа (то есть руки) крива.
>А как иначе разруливать ситуацию когда есть 600 адресов которые нужно дропнуть,
>и 400 адресов которые нужно натить, причем эти адреса постоянно добавляются/удаляются?
>в случае с pf мы добавляем 2 правила:
>block from <drops> to any
>nat from <nats> to any
В случае с iptables точно так же, почитайте man:
http://ipset.netfilter.org/ipset.man.html
>Начинку таблиц без проблем можно менять на лету. Время поиска по такой
>таблице очень и очень маленькое.
>В случае с линухом мы вынуждены держать 1000 правил, поиск по 1000
>правил идет настолько долго что ksoftirqd вылазит вверх (это симптом, никогда
>такого не видели?) и машина просто не вылазит из прерываний. LA
>растер вверх а количество успешно прошедших пакетов - вниз.
Я же говорю - руки кривые.
>Есть патч для linux который добавляет такой функционал, но не очень хочется
>приключений связанных с глюками third level патча.
Каждый сильно востребованный патч со временем попадёт в upstream.
>> Очень глубокомысленный вывод. Ценю. "Таблицы" звучит круче чем "Цепочки".
>Не просто звучит, но и работает =) Простой линейный поиск гораздо медленеей
>поиска по self-ballancing binary tree (хотя я не уверен что в
>pf именно такое дерево, лень в исходники лезть)
Ну и iptables тоже не просто звучит, но и работает =)