nuclight: (Default)
nuclight ([personal profile] nuclight) wrote2012-04-26 03:11 am
Entry tags:

IpfwNg

В честь 26 годовщины 26 апреля уволился с текущей работы и таки наконец начал проект http://wiki.freebsd.org/IpfwNg — хотя на работе FreeBSD и была основной системой, реальную возможность пилить ядро я так и не получил (хотя тот же NAT64 нам бы понадобился не через полгода, так через год). В ближайшие недели посижу дома и надеюсь сделать хотя бы скелет, который можно будет потом уже в свободное время потихоньку пилить — работы по проекту предстоит очень много.

Желающие обсудить по делу — велкам в каменты (хотя я туда еще не все наброски оформил).

[identity profile] http://users.livejournal.com/_slw/ 2012-05-25 12:41 pm (UTC)(link)
Кхе. А ты думаешь это реально? Я что-то не встречал алгоритмов перевода из псевдокода инструкций в дерево. Рассматривавшийся пример hipac - он по фиксированному набору чисел делает, никакого произвольного набора полей, а тем более строк или даже регэксопв для SIP, там и близко нет. Такая тема тянет на докторскую, пожалуй =) Сочинить такое своё я пожалуй точно ниасилю.

ах да. я совсем забыл сказать-уточнить.
дерево (radix tree роутинга, условно говоря) используется для выбора правил, с которым собственно и идет сравнение. т.е. в дереве в узлах указывается какой бит следует анализировать, приходим к узлу в котором реальное правило (типа смещение в пакете, длинна, маска, образец). если правило под пакет не подошло -- дерево используется для выбора альтернативного, более общего правила.

т.е. деревом анализируются отдельные биты, что бы выбрать конкретное правило для полного сопоставления с пакетом. поэтому на этапе работы с пакетом код файрвола может не заморачиваться детальными знаниями о протокле -- его интересуют только смещения и цепочки битов. а весь анализ был проведен в userland когда формировалось дерево и по описанию протокола формировались смещения битовых цепочек для анализа. разумеется из этих цепочек самих по себе правила не востановить, то вместе с ними можно хранить исходное, текстовое представление этих правил.