Пытаюсь завести pbr в OpenWRT 24.10.4 для DNS Based Routing.
Ставлю пакет luci-app-pbr, одна из зависимостей которого - пакет pbr. При установке pbr получаю такую ошибку
Installing pbr (1.2.2-r6) to root...
Downloading https://downloads.openwrt.org/releases/24.10.4/packages/mipsel_24kc/packages/pbr_1.2.2-r6_all.ipk
Configuring pbr.
//usr/lib/opkg/info/pbr.postinst: /etc/init.d/pbr: line 1888: syntax error: unexpected "fi" (expecting "done")
//usr/lib/opkg/info/pbr.postinst: /etc/init.d/pbr: line 1888: syntax error: unexpected "fi" (expecting "done")
Installing rc.d symlink for pbr... /etc/rc.common: /etc/init.d/pbr: line 1888: syntax error: unexpected "fi" (expecting "done")
FAIL
/etc/rc.common: /etc/init.d/pbr: line 1888: syntax error: unexpected "fi" (expecting "done")
/etc/rc.common: /etc/init.d/pbr: line 1888: syntax error: unexpected "fi" (expecting "done")
Смотрю содержимое скрипта около строки 1888:
if is_supported_interface "$dest_dns_interface"; then
local d
for d in $(uci -q get network."$dest_dns_interface".dns); do
if ! is_family_mismatch "$src_addr" "$d"; then
if is_ipv4 "$d"; then
dest_dns_ipv4="${dest_dns_ipv4:-${d}}"
elif is_ipv6 "$d"; then
dest_dns_ipv6="${dest_dns_ipv6:-${d}}"
fi
fi
fi # <-- лишний fi, который воткнули из-за поехавшей разметки
done
fi
Удалил лишний fi, попытался запустить pbr вручную:
root@OpenWrt:~# uci set pbr.config.enabled='1'; uci commit pbr;
root@OpenWrt:~# /etc/init.d/pbr start
Using uplink interface (on_start): wan [✓]
Found uplink gateway (on_start): xxx.xxx.xxx.xxx [✓]
Processing environment (on_start) ERROR: Uplink/WAN interface is still down, increase value of 'procd_boot_trigger_delay' option!
Setting interface trigger for wan [✓]
pbr 1.2.2-r6 FAILED TO START!!!
Check the output of nft -c -f /var/run/pbr.nft
ERROR: The pbr 1.2.2-r6 service failed to discover WAN gateway!
ERROR: Errors encountered, please check https://docs.openwrt.melmac.ca/pbr/1.2.2/#error-messages-details!
При этом wan интерфейс в системе есть и поднят:
wan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
В конфиге pbr wan интерфейс имеет стандартное название: option uplink_interface 'wan'.
Начал дебажить глубже - оказалось, что в коде используется переменная wanGW, но она нигде не инициализируется, вместо нее есть wanGW4 и wanGW6. Правлю название переменной - начинает ругаться, что функций типа cleanup_main_chains нет и так далее. Кажется, что я что-то делаю не так, может каких-то зависимостей не хватает, может версия pbr не та (хотя в репе OpenWRT я не нашел другой версии).
У меня 2 вопроса:
- нормально ли, что в стабильной ветке OpenWRT отваливается
pbr? - есть ли какой-то мануал как завести
pbrв OpenWRT?

