mirror of
https://github.com/bol-van/zapret.git
synced 2024-11-30 05:50:53 +03:00
nft: try to bypass digit starting interfaces nft bug
This commit is contained in:
parent
9ff0e67431
commit
be1269d950
@ -99,14 +99,17 @@ nft_create_or_update_flowtable()
|
|||||||
# $1 = flags ('offload' for hw offload)
|
# $1 = flags ('offload' for hw offload)
|
||||||
# $2,$3,$4,... - interfaces
|
# $2,$3,$4,... - interfaces
|
||||||
# can be called multiple times to add interfaces. interfaces can only be added , not removed
|
# can be called multiple times to add interfaces. interfaces can only be added , not removed
|
||||||
local flags=$1 devices
|
local flags=$1 devices makelist
|
||||||
shift
|
shift
|
||||||
# warning ! tested on nft 1.0.1 . 0.9.6 has bug not allowing quotes in flowtable device list
|
# warning ! nft versions at least up to 1.0.1 do not allow interface names starting with digit in flowtable and do not allow quoting
|
||||||
# dont want to make KOSTIL here, pls upgrade
|
# warning ! openwrt fixes this in post-21.x snapshots with special nft patch
|
||||||
make_quoted_comma_list devices "$@"
|
# warning ! in traditional linux distros nft is unpatched and will fail with quoted interface definitions if unfixed
|
||||||
[ -n "$devices" ] && devices="devices={$devices};"
|
|
||||||
[ -n "$flags" ] && flags="flags $flags;"
|
[ -n "$flags" ] && flags="flags $flags;"
|
||||||
nft add flowtable inet $ZAPRET_NFT_TABLE ft "{ hook ingress priority -1; $flags $devices }"
|
for makelist in make_quoted_comma_list make_comma_list; do
|
||||||
|
$makelist devices "$@"
|
||||||
|
[ -n "$devices" ] && devices="devices={$devices};"
|
||||||
|
nft add flowtable inet $ZAPRET_NFT_TABLE ft "{ hook ingress priority -1; $flags $devices }" && break
|
||||||
|
done
|
||||||
}
|
}
|
||||||
nft_flush_ifsets()
|
nft_flush_ifsets()
|
||||||
{
|
{
|
||||||
|
@ -45,11 +45,9 @@ Swap позволяет немного сгладить проблему, но
|
|||||||
|
|
||||||
Боль N4
|
Боль N4
|
||||||
|
|
||||||
Лишь самые последние версии nft (проверено 1.0.1) не имеют бага, который не разрешает названия интерфейсов в кавычках в
|
Все версии nft вплоть до как минимум 1.0.1 имеют баг, который не разрешает названия интерфейсов в кавычках в
|
||||||
определении flowtable. На ubuntu 20.04 версия более старая. Пролетаем.
|
определении flowtable. Без кавычек нельзя вставить интерфейсы , имя которых начинается с цифры.
|
||||||
Без кавычек нельзя вставить интерфейсы , имя которых начинается с цифры.
|
OpenWRT решает эту проблему отдельным патчем в snapshot версии, но на традиционных системах и в openwrt 21.x- его нет.
|
||||||
Не хотелось городить костыли. Обновляйтесь. Иначе не будет работать flow offloading.
|
|
||||||
На самых первых OpenWRT снапшотах с firewall4 версия nft достаточно новая.
|
|
||||||
Почему бы не наплевать на интерфейсы, начинающиеся с цифры ? Потому что для openwrt 6to4-6to4, 6in4-he-net - обычное явление.
|
Почему бы не наплевать на интерфейсы, начинающиеся с цифры ? Потому что для openwrt 6to4-6to4, 6in4-he-net - обычное явление.
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user