LINUX.ORG.RU
Ответ на: комментарий от Kolins

История об этом умалчивает, но не исключено. Я видел случай, когда были разные правила, и там и там , типа настриваешь itptables и нихрена не понимашь, что за фигня. Онказывает, nftables активен своими правилами и добавляет гемора в отладке.

macumazan ★★
() автор топика
Последнее исправление: macumazan (всего исправлений: 2)
Ответ на: комментарий от macumazan

проверка элементарная. введи

$ iptables --version
iptables v1.8.7 (nf_tables)

в ответ увидишь что iptables используется как интерфейс к nftables.
если в ответе будет (legacy) то в ядре используется iptables.
если в скобочках ничего не приписано, то ядро древнее как г мамонта и в нем iptables

iptables не все правила nftables может интерпретировать в свой вывод. потому iptables для отладки nftables не используй.
он оставлен лишь для приемки iptables-команд от легаси софта…

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 3)
Ответ на: комментарий от pfg

iptables не все правила nftables может интерпретировать в свой вывод. потому iptables для отладки nftables не используй

У тебя всё наоборот.

iptables с бэкендом nf_tables создаёт и использует свои, отдельные таблицы. В них никто, кроме iptables, писать не должен.

intelfx ★★★★★
()
Ответ на: комментарий от pfg

iptables-save — это тупой скрипт поверх команды iptables, он по отдельности не может быть полноценным или неполноценным, т.к. в нём попросту нет своей логики.

Что касается самих iptables vs. nftables — тут ещё хороший вопрос, помню, я где-то краем глаза видел список фич, которые потерялись при переезде с первого на второе. Но в целом второй быстрее и лучше, да.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от macumazan

Смотри.

Если iptables говорит, что у него бэкенд nf_tables — то никаких «таблиц iptables» в системе не существует.

Все правила, которые ты делаешь через iptables (или iptables-save), транслируются в правила nftables и попадают только туда (в отдельную nft-таблицу, чтобы не мешать нативным пользователям nftables).

Параллельно с этим (или вместо этого) можно использовать команду nft напрямую. Она «видит» всё — и те правила, которые оттранслировались из iptables, и свои правила, которые были добавлены нативно. Но трогать первое из второго категорически не рекомендуется.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от macumazan

Могут. Я тебе больше скажу: могут быть одновременно активны iptables-legacy, iptables-nft и нативные nftables.

Это всё просто разные фронтенды к ядерной подсистеме netfilter, которая вполне допускает подключение множественных хуков к одним и тем же «точкам» в пайплайне обработки трафика.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 3)
Ответ на: комментарий от pfg

Да, и работать совместно. По очереди, в порядке приоритетов (в nft приоритеты хуков каждой таблицы можно задавать явно, в iptables они захардкожены).

Как при этом обрабатываются вердикты — я наизусть не помню.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

Вот наворотили). Таки да, могут.

 iptables-legacy -L                                                                                                                   
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

В итоге сабж не верный, нифига в таблице не одинаковые правила. Ну, всё сходится теперь.

macumazan ★★
() автор топика
Последнее исправление: macumazan (всего исправлений: 1)
Ответ на: комментарий от pfg

Нет, никакие пакеты никуда не перенаправляются. Ты не так понимаешь механику работы nftables.

Когда пакет доходит до какой-то «точки» (см. картинку netfilter packet flow), он по очереди передаётся во все обработчики (таблицы), подключенные к этой точке, в порядке приоритетов.

В iptables эти обработчики захардкожены (в виде таблиц filter, nat, mangle, raw и цепочек INPUT/FORWARD/OUTPUT), и их приоритеты захардкожены.

В nftables ты сам управляешь обработчиками, т. е. твои таблицы и цепочки могут называться как угодно, главное, чтобы они были подключены к правильным хукам/точкам. И таблиц может быть несколько, т. е. у тебя в nft может быть filter1 и filter2, а внутри них INPUT1 и INPUT2, и они все будут исполняться в том порядке, в котором ты указал (без каких-либо прыжков между ними, просто по очереди!).

(Собственно, именно так и работает слой совместимости iptables-nft: он создаёт свой, полностью отдельный набор таблиц и цепочек в nftables, и пишет тебе грозные комментарии, чтобы ты их не трогал, а создавал свои отдельно, если нужно.)

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 6)
Ответ на: комментарий от intelfx

Но в целом второй быстрее и лучше, да.

Лень искать, но видел тесты, где не быстрее. В зависимости от правил может быть быстрее, медленнее или примерно так же. Но в любом случае nftables лучше.

anonymous
()
Ответ на: комментарий от anonymous

Лень искать

Жаль, мне было бы интересно (правда).

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

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)