Nftables не работает так, как ожидалось, для блокировки с помощью счетчика

Nftables не работает так, как ожидалось, для блокировки с помощью счетчика

Цель: Учет избыточных пакетов, скорость исходного IP-адреса и порта назначения которых превышает 200 пакетов в секунду, например:

от 1 с до 2 с: IP 1.1.1.1 до MyServer:80
[Это происходит 201 раз в секунду 1]

table netdev filter {
    set whitelist {
        type ipv4_addr
        elements = { 186.248.79.100 }
    }

    set blocklist {
        type ipv4_addr
        size 65535
        flags dynamic,timeout
        timeout 30s
    }

    chain ingress {
        type filter hook ingress device "eth0" priority -450; policy accept;
        ip saddr @whitelist accept
        ip daddr 10.0.0.192 jump input
        ip daddr != 10.0.0.192 jump forward
    }

    chain http {
        ip saddr 191.185.17.156 counter
        meter http size 65535 { ip saddr . tcp dport limit rate over 200/second } add @blocklist { ip saddr } counter
    }

    chain forward { }

    chain input {
        tcp dport vmap { 8000 : jump portainer, 9443 : jump portainer }
        tcp dport vmap { 80 : jump http }
    }
}

Проблема в цепочке http, то есть я сделал 20 http-запросов к серверу (мой публичный исходный IP-адрес 191.185.17.156), счетчик приема показывает, что всего 200 пакетов (включая рукопожатие TCP Tree Way, ack и т. д.), до тех пор все нормально, см.:

ip saddr 191.185.17.156 counter packets 100 bytes 4920

meter http size 65535 { ip saddr . tcp dport limit rate over 200/second } add @blocklist { ip saddr } counter packets 73 bytes 3576

Теперь что ломает мне голову, как это возможно, что с моего исходного IP на порт 80 на сервере идет 100 пакетов, и в то же время есть 73 лишних пакета? Поскольку 100 меньше 200, то второй счетчик должен быть пустым

Не говоря уже о том, что IPv4 был добавлен в черный список неправомерно.

Связанный контент