nft: quoting interface names

This commit is contained in:
bol-van 2022-02-16 23:33:45 +03:00
parent 0d08b555e8
commit a5757eac50
2 changed files with 12 additions and 1 deletions

View File

@ -101,6 +101,8 @@ nft_create_or_update_flowtable()
# can be called multiple times to add interfaces. interfaces can only be added , not removed
local flags=$1 devices
shift
# warning ! tested on nft 1.0.1 . 0.9.6 has bug not allowing quotes in flowtable device list
# dont want to make KOSTIL here, pls upgrade
make_quoted_comma_list devices "$@"
[ -n "$devices" ] && devices="devices={$devices};"
[ -n "$flags" ] && flags="flags $flags;"
@ -334,7 +336,7 @@ _nft_fw_tpws6()
_set_route_localnet 1 $3
for i in $3; do
_dnat6_target $i DNAT6
[ -n "$DNAT6" -a "$DNAT6" != '-' ] && nft_add_rule dnat_pre iifname $i meta l4proto tcp $filter ip6 daddr != @nozapret6 dnat ip6 to [$DNAT6]:$port
[ -n "$DNAT6" -a "$DNAT6" != '-' ] && nft_add_rule dnat_pre iifname \"$i\" meta l4proto tcp $filter ip6 daddr != @nozapret6 dnat ip6 to [$DNAT6]:$port
shift
done
}

View File

@ -43,6 +43,15 @@ Swap позволяет немного сгладить проблему, но
Что он делает за это время ? Тащит из ядра огромный блоб, в котором все в куче, и разбирает его, чтобы выделить искомую мелочь ?
В какой-то мере удается это сгладить, обьединяя несколько команд в единый скрипт.
Боль N4
Лишь самые последние версии nft (проверено 1.0.1) не имеют бага, который не разрешает названия интерфейсов в ковычках в
определении flowtable. На ubuntu 20.04 версия более старая. Пролетаем.
Без ковычек нельзя вставить интерфейсы , имя которых начинается с цифры.
Не хотелось городить костыли. Обновляйтесь.
Иначе не будет работать software flow offloading, не говоря уже о hardware.
На самых первых OpenWRT снапшотах с firewall4 версия nft достаточно новая.
Плюс N1, главный