Вниманию общественности представлен (http://marc.info/?l=linux-netdev&m=123735060618579&w=2) первый публичный выпуск проекта nftables, новой реализации пакетного фильтра для Linux, идущего на смену iptables, как в свое время iptables пришел на смену ipchains, а ipchains заменил собой ipfwadm. Главным отличием nftables, является не только изменившийся синтаксис задания правил, но и совершенно новый подход в их трансляции: определенные пользователем правила теперь преобразуются в специальный объектный код, который используется для принятия решения по дальнейшим действиям с пакетом внутри ядра.Для формирования правил фильтрации в nftables представлена утилита nft , которая проверяет корректность правил и транслирует их в псевдокод. Правила теперь могут добавляться не только инкрементально, но и загружаться атомарно целиком из файла на диске, как это сделано, например, в пакетном фильтре PF.
По заявлению разработчиков, код nftables еще находится на стадии альфа тестирования и ...URL: http://marc.info/?l=linux-netdev&m=123735060618579&w=2
Новость: http://www.opennet.me/opennews/art.shtml?num=20843
Ну сейчас начнется: PF против nftables... ))))))))
судя по всему pf опять вырулит по-простоте синтаксиса как минимум
кстати не факт!
с учётом вот этого: "и фронтэнда, работающего на уровне пользователя"
фронтэнд можно приделать какой угодно, наверное даже и с синтаксисом, идентичным PF
не вижу прорыва.
заменили одну хорошую реализацию на другую (надеюсь не менее хорошую).
смысл такой переработки?
лучше бы замену tc написали, вот там действительно стоило бы пересмотреть
подход к конфигурации. потому что динамически изменять правила в этом
говнище крайне геморройно.
Даешь холливар!
pf vs nftables!!!
А вообще, честно, я не понимаю эту разницу в фаерволах, почему не сделать единый фаер для всех систем! чтоб не запоминать кучу спрок синтаксиса для разных ОС ( читать для linux и unix ) Я конечно понимаю что различия в архитектуре ядер. НО я думаю если захотеть, можно прийти к единому решинию. Кажется мне, что дело в разных лицензиях. На этом уполкаю, я то еще разведу войну GPLv* vs BSD
>Даешь холливар!
>....я то еще разведу войну
>GPLv* vs BSDразведи-разведи :)
особенно о психологическом аспекте договорённости об едином интерфейсе
универсального фаервола...
> А вообще, честно, я не понимаю эту разницу в фаерволах, почему не сделать единый фаер для всех систем! чтоб не запоминать кучу спрок синтаксиса для разных ОС ( читать для linux и unix )IPFilter
>А вообще, честно, я не понимаю эту разницу в фаерволах, почему не
>сделать единый фаер для всех систем!Можно продолжить идею: а почему бы не сделать единую модель авто, похоронив все остальные?!Водителям было бы удобно - в любом авто как у себя дома.Ремонтерам было бы удобно.Любое авто ремонтируется одинаково.Заправщикам тоже было бы удобно.Магазин запчастей мог бы стать размерами с киоск :) И т.д. и т.п. :)
>чтоб не запоминать кучу спрок синтаксиса для разных ОС
>
>Можно продолжить идею: а почему бы не сделать единую модель авто
>Водителям было бы удобнорули, педали и ПДД одинаковые
Угу --- левые и правые, две и три, теоретические и практические... а так да, конечно.
Да, конечно, в какойнить тойоте руль ну совсем как у копейки, никто и не сомневался :).И чего никто на копейке ездить не хочет?Все почему-то иномарки предпочитают купить.Вот прям копия :)
> include "ipv4-filter"А я думал - stdio.h =)
> создавать переменные, выполнять математические операцииА тормозить все это не будет?
Я думаю, что все операции будут происходить в момент загрузки правил. С чего ему тормозить? Вот работать быстрее iptables будет точно.Мне вот интересно, как будет реализован ipq? Не хотелось бы наработки переписывать.
>Я думаю, что все операции будут происходить в момент загрузки правил.Если так - было б гут.А то есть области где каждый лишний такт проца-как нож в спину.Например мелкие роутеры с не особо каким процом айпитаблесом натят и файрволят например.И это стоит понимать.
>С чего ему тормозить?
Ну, могу себе представить реализацию где переменные на ходу заполняются и т.п., это ессно будет не шибко быстро.
>Вот работать быстрее iptables будет точно.
Мне пофиг на работу самой по себе айпитаблес-морды к нетфильтру, но не пофиг на скорость файрволинга по итоговому набору правил нетфильтром.Не имеет оно права проц грузить и должно много выжимать даже на хилом проце :).Надеюсь что оно и правда будет не хуже.
Так написано же, что будет парситься и перемалываться в псевдокод. Я так понимаю, что синтаксис правил удобен для пользователя, а псевдокод удобен (в плане скорости в т.ч.) для фильтра.
Напоминиет миграцию от комбайнеров к шейдерам в OpenGL.
Интересно, синтаксис iptables ужасен, новый nftables мне нравится, хотя лучше pf-а ещё нечего не видел, для конечно.
>Интересно, синтаксис iptables ужасен, новый nftables мне нравится, хотя лучше pf-а ещё
>нечего не видел, для конечно.Наоборот, синтаксис iptables устраивает полностью.
А пример из текста новости совершено не читабелен.Неужели Вам ЭТО понятнее правил iptables?
>>Интересно, синтаксис iptables ужасен, новый nftables мне нравится, хотя лучше pf-а ещё
>>нечего не видел, для конечно.
>
>Наоборот, синтаксис iptables устраивает полностью.
>А пример из текста новости совершено не читабелен.
>
>Неужели Вам ЭТО понятнее правил iptables?Давай более простой вопрос.
Ты вообще видел и использовал pf ?
Если нет, тогда собственно и разговаривать не о чем.
Ну хоть не XML
А почему бы и не на XML правила записывать? Транслятор соответствующий мог бы их в тот же самый байт-код перегонять.
покороче нельзя было название придумать?
>определенные пользователем правила теперь преобразуются в специальный упрощенный псевдокод, который используется для принятия решенияслабаки! нада было сразу в машинный код транслировать. а так придётся потом этот псевдокод интерпретировать, и получится, что файлвол - интерпретатор собственного байт-кода в режиме ядра
>слабаки! нада было сразу в машинный код транслировать.А что с портабельностью делать?Генерилка кода для всех поддерживаемых платформ - монстрик типа gcc всунутый в ядро? :)
Здесь может помочь llvm
главное, чтоб списки адресов наконец реализовали ..
ip daddr { 192.168.0.0/24 => drop, 192.168.0.100 => accept}
>ip daddr { 192.168.0.0/24 => drop, 192.168.0.100 => accept}Эт не то, если я правильно понял. В ipfw есть таблицы, очень удобная фича.
угу .. именно, только в ipfw ими я не пользовался, а вот в pf юзал постоянно
table <users> { 192.168.2.8, 192.168.1.5, 192.168.3.0/24 }
pass in from <users> to any
>главное, чтоб списки адресов наконец реализовали ..Реализация давно есть, но ее не включили в ядро. http://ipset.netfilter.org/
Когда ж они наконец успокоятся? Сначала был ipfwadm, потом ipchains, затем долгое время iptables, который даже при переезде на 2.6.0 не сломали. Но покой нам только снится ... Это было обманчивое затишье.
>Когда ж они наконец успокоятся? Сначала был ipfwadm, потом ipchains, затем долгое
>время iptables, который даже при переезде на 2.6.0 не сломали. Но
>покой нам только снится ... Это было обманчивое затишье.iptables оказался весьма good enough, чтоб мотивация по замене копилась небыстро.
Так и Layer7 фильтрацию наконец бы в него ванильно включили
http://l7-filter.sourceforge.net/
а разве pf не кроссплатформенный? он вроде везде работает
в BSD только... в linux к сожалению нет.
>в BSD только... в linux к сожалению нет.Вроде как есть порт pf в Windows
PF PF .. Layer 2 он умеет ?.. нет .. прохождение всего списка правил снова после попадания в altq например ?.. нет .. равномерное распределение пропускной способности по типу pipe с weight ?.. нет .. вобщем ipfw+dummynet .. хоть закидайте меня помидорами по самую макушку :)
да, забыл про forward и divert совместно с несколькими одновременно работающими natd .. :)
>PF PF .. Layer 2 он умеет ?.. нет .. прохождение
>всего списка правил снова после попадания в altq например ?.. нет
>.. равномерное распределение пропускной способности по типу pipe с weight ?..
>нет .. вобщем ipfw+dummynet .. хоть закидайте меня помидорами по самую
>макушку :)Видимо, давно man 5 pf.conf не смотрел. :)
На, почитай: http://www.freebsd.org/cgi/man.cgi?query=pf.conf&sektion=5
$ man 5 pf.conf | col -b | grep -i mac | grep -vi macro | grep -vi machin
$$ man 5 pf.conf | col -b | grep -i layer
their layer 3 (see ip(4) and ip6(4)) and layer 4 (see icmp(4), icmp6(4),
Due to a lock order reversal (LOR) with the socket layer, the use of the
$"Оказывается, что pf+altq нельзя настроить так, что бы умел поделить поровну трафик на каждого подключенного юзера. Один товарищ попытался извратнуться ( http://developer.co.ua/posts/view/shljuz_s_avtorizatsiej_i_d... ). Смелый и инженерный такой подход у него. А ведь хочется что бы кнопочку, ну максимум две, нажать - и шо б все заработало как надо. Ан нет. "
Взято отсюда: http://nexus.org.ua/weblog/message/878/Ещё поспорим ?.. :)
кстати по ссылке человек выбрал pf потому что видно не прочёл man natd, который поверьте более объёмен чем секция "Translation" в man pf.conf.
>кстати по ссылке человек выбрал pf потому что видно не прочёл man
>natd, который поверьте более объёмен чем секция "Translation" в man pf.conf.
>ну не смешите =)
и binat там несомненно есть ))))
>Для формирования правил фильтрации в nftables представлена утилита nft , которая проверяет
>корректность правил и транслирует их в псевдокод.Байт-код? То есть в линуксе наконец-то изобрели ipfw2 ? Поздравляю!
вообще както странно, неужели нельзя отделить написание правил от конкретного типа фаервола ? ну не пофигу ли вам во что преобразуется iptables -s $localnet -j Accept ? главное чтобы транслятор мог правильно преобразовать и скорость работы была нормальной. A вообщето опять начинается изобретение велосипеда как и с буфером обмена
Ну из плюсов очевидно подедржка обоих протоколов v4/v6 и бриджинг ну и соответственно наборы (sets), когда можно одним правилом решить то на что раньше нужно было городить тучу.
Похоже что разработчики iptables наконец-то прочитали faq по pf и наконец-то увидели, как они были не правы.
Решили срочно исправиться и все переделать ...
Как же вы любите Херами помериться. Я не знаю на чем основан фаервол в микротиках(учитывая что он на ядре линукс) но реализация мне там очень нравится. так же надеялся что в NFTCLI сделают что то вроде интерактива с табуляцией и динамической справкой. Ну и подсветка синтаксиса не помешала бы. В общем пока в OSourse -е "Лебедь, рак и щука" есть хорошие идеи но реализовать их качественно не получается, а жаль. Внедряют что то новое не доработав старое(в частности не к IPTables) и каждый режет свое.