http://users.livejournal.com/_slw/ ([identity profile] http://users.livejournal.com/_slw/) wrote in [personal profile] nuclight 2012-06-01 04:48 am (UTC)

Аа, вон ты о чем. Да, красивая идея. Но здесь, однако, возникают вопросы:
1) Как оно работает в случае нескольких таких с дырками? В случае префиксов всё просто и однозначно. Я в алгоритм радикса не вникал на таком уровне, чтобы понимать работу дырок.


он исходно с дырками. он даже не знает где адрес начинается, для него это просто дырка от начала пакета

2) Насколько быстро оно будет работать? Радикс побитовый, и я подозреваю, что на строках в сотни бит оно будет тормозить - O(log2 N) уже немаленький станет.

у него сложность log2 от количества правил. и нет, строки как строки через него гонять неправильно. строги надо через регэкспы гонять. но до строк имеет смысл поставить радикс.

А у нас есть выбор? Эта штука, по крайней мере, проверена и работает, из альтернатив разве что предложенный тобой выше радикс.

выбор есть всегда. и радикс для IP адресов я на днях попробую (по халтуре заказчик созрел на попробовать этот вариант, последовательное сравнение правил по скорости не устраивает).

Это-то как раз просто и интуитивно понятно. Правила идут последовательно, кто первое совпало, того и тапки. Как ранний ipfw1, еще без всяких skipto и дивертов.

это медленно. на приличном количестве правил ты даже гигабит не обработаешь. а сечас надо обрабатывать 10 и смотреть на 40. иначе -- просто потрать энергию на девушек.


ipfw add 30 allow ruletable(wan_rules)
ipfw ruletable wan_rules add tablearg 100 from 1.2.3..0/24 to 5.6.7.8 src-port 1234 dst-port 80 ipttl 9-255 ...

т.е. внутренний синтаксис в стиле ipfw1, примитивный как в nf-hipac. А в основном ipfw - вызовы ruletable, netgraph, divert и пр., которые не соптимизировать, и обычные правила, если нужны.


это без поллитры не грокнуть. и потом на живой системе не посмотреть нормально, что бы сразу разобраться.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting