Невозможно загрузить sh набор элементов таблицы - PullRequest
0 голосов
/ 16 апреля 2020

На самом деле я учусь использовать nftables в тестовой среде, и я на самом деле работаю с наборами nftables. Я был на версии 0.7, и так как мои тесты не работали, я обновился до версии 0.9.4, но моя проблема осталась прежней.

Я могу создавать свои наборы на столе без проблем. И мои элементы набора должны содержать адреса ipv4. Я работал с таблицами, цепочками и наборами nftables без проблем, мои правила работали и т. Д. c ...

Итак, что я хочу сделать, но не могу найти, как это сделать, это удалить все элементы моего набора без уточнения адресов ipv4 по одному.

Допустим, имя моей таблицы test , а имя моего набора - tmp с типом ipv4_addr, моя конфигурация будет выглядеть так что:

table ip test {
        set tmp {
                type ipv4_addr
        }
}

Я могу успешно добавить элемент в этот набор с помощью этой команды:

nft add element ip test tmp { 10.10.10.10 }

Теперь я хочу удалить все элементы моего набора, я посмотрел на man-странице nft и там говорится, что я могу грипп sh всех элементов из моего набора с помощью команды flu sh:

SETS
[...]
flush    Remove all elements from the specified set.

Поэтому я попытался этой командой удалить все мои элементы из моего set:

nft flush set test tmp

Но он возвращает мне эту ошибку:

Error: Could not process rule: Invalid argument
flush set test tmp
^^^^^^^^^^^^^^^^^^^

Я пробовал много команд одним и тем же способом (добавление таблицы перед набором, без уточнения таблицы), это всегда возвращает мне ошибку, но не каждый раз одно и то же.

Я думаю Я должен сделать что-то не так, но я не могу понять, что. Если у вас есть идеи, пожалуйста? Я буду очень благодарен!

Может быть, моя общая конфигурация плохая, и я не должен думать о наборах таким образом?

А если невозможно отобрать sh элементы из набора, Есть ли способ удалить все элементы из набора (кроме определения тайм-аута флага)?

Извините, если мое сообщение не ясно, я француз, и это немного сложно писать на другом языке, чтобы описать проблема ...

Спасибо!

С уважением.

1 Ответ

0 голосов
/ 30 апреля 2020

Поэтому я связался с командой netfilter и дал мне ответ.

Опция flu sh для набора работает только с Linux 4.10 и далее, и моя версия была ниже.

В любом случае я нашел способ создать таблицу sh с этими командами в Debian, если вам интересно:

Сохранить элементы из набора в переменной:

elements=$(nft list set test tmp | awk '/{ /,/}/' | cut -d '=' -f 2)

Удалить элементы с помощью команда удаления

nft delete element test tmp ${ip_elements}

Надеюсь, это поможет некоторым людям.

...