Таблица nftables и приоритет цепочки

$ awk 'NR==FNR { a[$1]++ ; next}; $1 in a' file2 file1
c   cat
e   eagle
f   fire

Это считывает вfile2(первый аргумент имени файла )и сохраняет его в массиве a. Он определяет, читает ли он первый файл, проверяя, равно лиNR(общее количество просмотренных входных записей )FNR(номеру входной записи текущего входного файла)

Затем он считываетfile1(второй аргумент имени файла )и, если первое поле находится в массиве a, печатает соответствующую строку ввода (в awk— действие по умолчанию при любом успешном результате теста., такой как $1 in a, должен напечатать входную строку -, поэтому $1 in aсам по себе эквивалентен$1 in a {print}).


Кстати, во многих случаях подобные задачи можно выполнить с помощью grep -f file2 file1, но это будет соответствовать содержимому файла2 в любом месте в файле1 -, например. cиз файла2 будет соответствовать не только cat, но и jackв файле1.

1
27.09.2021, 18:21
1 ответ

Исторически сложилось так, что в данном хуке была одна цепочка NAT (prerouting, input, output,... ). Выполнение оператора nat или просто принятие -пакета, являющегося терминалом для цепочки, с одной цепочкой также заканчивало обработку внутри ловушки. С nftables , позволяющими использовать более одной цепочки в одном и том же хуке, завершение цепочки просто продолжится до следующей цепочки. Таким образом, если первая цепочка ничего не делает (, принимая -сообщение ), следующая цепочка получает шанс сделать это вместо этого,что не то, что задумано.

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

Вместо accept, который имеет нулевой эффект, (оставляя цепочку VPN-POSTROUTINGпустой, также выполняется политика по умолчанию :accept), установите отметку. Поэтому замените правило в VPN-POSTROUTINGна это:

nft add rule ip vpn VPN-POSTROUTING oifname br2 ip saddr 10.0.0.0/24 ip daddr 192.168.0.0/24 mark set 0xdeaf

Когда эта метка установлена, ее можно использовать в другой цепочке для изменения поведения, не выполняя остальные правила. Сначала вставьте это правило вip nat INTERNET:

nft insert rule ip nat INTERNET mark 0xdeaf accept
0
07.10.2021, 16:03

Теги

Похожие вопросы