]> git.99rst.org Git - openwrt-packages.git/commit
shunt: add new package
authorDirk Brenken <redacted>
Sun, 23 Aug 2026 17:05:33 +0000 (19:05 +0200)
committerDirk Brenken <redacted>
Tue, 25 Aug 2026 19:24:47 +0000 (21:24 +0200)
commit928797a9914e8db8dfd615c5d2f29017d320926c
tree88ceb8e890318d1c00ae537e8f301d40cf9bfe5b
parent7fea15f314da3b49719297200e760acc4b5b1051
shunt: add new package

shunt is a policy-based routing daemon for OpenWrt. Policies select
traffic by client address or MAC, destination address, domain, port and
protocol, and route it into any netifd interface or device via fwmark
and per-policy routing tables in nftables/fw4.

Domains are covered by a passive DNS observer (AF_PACKET + BPF) that
works with any resolver - dnsmasq, unbound, AGH, a remote DoH client -
because it reads answers on the LAN bridges instead of integrating with
a specific DNS backend. An optional poller pre-warms configured names.
Learned addresses are written in adaptive batches to stay usable beside
packages that keep very large nft sets (e.g. banIP).

Written in ucode, no dependencies beyond ucode modules, nft and ip.
Companion LuCI app is submitted separately to openwrt/luci.

Signed-off-by: Dirk Brenken <redacted>
Co-authored-by: Claude <redacted>
Signed-off-by: Dirk Brenken <redacted>
19 files changed:
net/shunt/Makefile [new file with mode: 0644]
net/shunt/README.md [new file with mode: 0644]
net/shunt/files/shunt.config [new file with mode: 0644]
net/shunt/files/shunt.init [new file with mode: 0644]
net/shunt/files/shunt.rpcd [new file with mode: 0644]
net/shunt/files/shunt.uc [new file with mode: 0755]
net/shunt/src/config.uc [new file with mode: 0644]
net/shunt/src/dedupe.uc [new file with mode: 0644]
net/shunt/src/dns.uc [new file with mode: 0644]
net/shunt/src/frame.uc [new file with mode: 0644]
net/shunt/src/match.uc [new file with mode: 0644]
net/shunt/src/netifd.uc [new file with mode: 0644]
net/shunt/src/nft.uc [new file with mode: 0644]
net/shunt/src/poll.uc [new file with mode: 0644]
net/shunt/src/route.uc [new file with mode: 0644]
net/shunt/src/snoop.uc [new file with mode: 0644]
net/shunt/src/snoop_bpf.uc [new file with mode: 0644]
net/shunt/test-version.sh [new file with mode: 0755]
net/shunt/test.sh [new file with mode: 0755]
git clone https://git.99rst.org/PROJECT