nftables, в чем разница между этими двумя вариантами?
Создаем таблицу и цепочку. Это общее для обоих вариантов:
nft add table inet test_filter
nft 'add chain inet test_filter INPUT { type filter hook input priority 0; policy accept; }'
Вариант 1:
nft 'add chain inet test_filter rate_limit'
nft add rule inet test_filter rate_limit limit rate 1/second burst 3 packets counter return
nft add rule inet test_filter rate_limit counter drop
nft 'add rule inet test_filter INPUT meta l4proto tcp tcp flags & (fin|syn|rst|ack) == syn counter jump rate_limit'
Вариант 2:
nft 'add chain inet test_filter rate_limit'
nft add rule inet test_filter rate_limit limit rate 1/second burst 3 packets counter drop
nft 'add rule inet test_filter INPUT meta l4proto tcp tcp flags & (fin|syn|rst|ack) == syn counter jump rate_limit'
В чем разница? Проверяю, сканируя при помощи nmap. Второй вариант практически не влияет на него. А вот первый работает отлично, существенно замедляя сканирование. Почему?