[RootConf] IPFW: несколько наборов правил и другие предполагаемые изменения

Apr 06, 2009 00:14

===
В марте, помнится, я написал в ipfw@ предложения по архитектурным улучшениям ipfw, как кандидат на GSoC 2008. Никто не отреагировал (многабукаф, фигли). Дальше, в конце мая в RU.UNIX.BSD разгорелся спор - народ хотел изменения "как Cisco ACLs, но лучше", однако конкретики не было, хотя со временем что-то уже вырисовалось, я поглядел на идеи для ( Read more... )

сети, netgraph, лытдыбр, freebsd, ipfw, админское

Leave a comment

zed_0xff April 6 2009, 07:49:49 UTC
еще бы неплохо научить ipfw формировать из правил вида
allow tcp from any to 10.1.1.1, 10.1.1.2, 10.10.2.3, 10.11.12.3, ... etc
автоматом внутри себя таблички(table), ибо руками бывает лень из-за 8-10 айпишников табличку городить, а иначе получаем замедление скорости пропорционально количеству адресов. если я правильно понимаю внутренности ipfw

Reply

nuclight April 6 2009, 11:14:58 UTC
Тут вопрос не такой однозначный. Сложные алгоритмы, оптимизированные для больших значений, плохо работают на очень небольших, когда буквально несколько. Два-три адреса практически наверняка будут сравниваться быстрее, чем они же, но в таблице. Так что вам не зря лень. Правда, где проходит граница, как будут именно 8-10 айпишников, не знаю. Замерять надо.

Reply

zed_0xff April 6 2009, 12:37:34 UTC
ну для 2-3 адресов естественно неактуально, у меня вот сейчас есть и по 11 и по 17 адресов в строке

Reply

Для 17 адресов уже однозначно таблицу nuclight April 6 2009, 12:46:51 UTC
А алгоритм назначения номеров этим вновь создаваемым таблицам предложите? Чтоб учитывалось, если какие-то табдицы явно у вас уже используются.

Reply

Re: Для 17 адресов уже однозначно таблицу zed_0xff April 6 2009, 14:14:27 UTC
эти таблицы должны быть "внутренними", и соответственно не иметь визуально для юзера никакого интерфейса.
при добавлении нового правила(или изменении существующего) с несколькими адресами:
( Nip - это количество адресов в src или dst поле правила, Nt - это некоторый threshold, количество адресов в праивиле, ДО которого правило будет добавляться старым способом, а если больше - то с автосозданием внутренней таблицы. можно грабить корованы задавать это значение этого через sysctl )
1) если Nip < Nt - то создаем правило старым проверенным способом; return
2) берем все айпишники из нового (еще не добавленного) правила в некоторый массив a_ips
3) проходим по всем внутренним таблицам, ищем есть ли уже таблица содержимое которой == a_ips ( ... )

Reply

Re: Для 17 адресов уже однозначно таблицу nuclight April 6 2009, 15:28:46 UTC
Хм, выглядит неплохо, на первый взгляд технических возражений нет, хотя надо еще подумать. Есть, впрочем, несколько туманных соображений, исходя из планов дальнейшего развития ( ... )

Reply

Re: Для 17 адресов уже однозначно таблицу poige January 4 2010, 18:22:50 UTC
Надо ещё не забывать счётчики++.

Reply


Leave a comment

Up