Skip to content

Commit 31a6d8b

Browse files
committed
refactor: migrate nftables rules from netdev to inet table
1 parent 05ce54b commit 31a6d8b

1 file changed

Lines changed: 20 additions & 17 deletions

File tree

  • packages/lime-proto-babeld/files/usr/lib/lua/lime/proto

packages/lime-proto-babeld/files/usr/lib/lua/lime/proto/babeld.lua

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -93,30 +93,33 @@ function babeld.configure(args)
9393

9494
uci:save("babeld")
9595

96-
if utils.is_installed("kmod-batman-adv") then
97-
if not fs.stat("/etc/nft-lime") then fs.mkdir("/etc/nft-lime") end
98-
if not fs.stat("/etc/nft-lime/20-lime-babel-filter.nft") then
99-
fs.writefile("/etc/nft-lime/20-lime-babel-filter.nft", [[
100-
table netdev lime_babel_filter {
96+
if utils.is_installed("kmod-batman-adv") then
97+
local dir = "/usr/share/nftables.d/ruleset-post"
98+
local path = dir .. "/20-lime-babel-filter.nft"
99+
100+
if not fs.stat(dir) then fs.mkdir(dir) end
101+
102+
if not fs.stat(path) then
103+
fs.writefile(path, [[
104+
#!/usr/sbin/nft -f
105+
add table inet lime_babel_filter
106+
add chain inet lime_babel_filter prevent_babel_leak_from_bat0
107+
delete chain inet lime_babel_filter prevent_babel_leak_from_bat0
108+
109+
table inet lime_babel_filter {
101110
chain prevent_babel_leak_from_bat0 {
102111
type filter hook ingress device "bat0" priority 0; policy accept;
103-
ether daddr 33:33:00:00:01:06 counter drop
104-
ether daddr 01:00:5e:00:00:6f counter drop
112+
113+
ip6 daddr ff02::1:6 udp dport 6696 counter drop
114+
ip daddr 224.0.0.111 udp dport 6696 counter drop
115+
105116
ip6 nexthdr udp udp dport 6696 counter drop
106117
ip protocol udp udp dport 6696 counter drop
107118
}
108119
}
109120
]])
110-
111-
uci:set("firewall", "lime_babel_filter_include", "include")
112-
uci:set("firewall", "lime_babel_filter_include", "path", "/etc/nft-lime/20-lime-babel-filter.nft")
113-
uci:set("firewall", "lime_babel_filter_include", "type", "nftables")
114-
uci:set("firewall", "lime_babel_filter_include", "position", "ruleset-post")
115-
uci:set("firewall", "lime_babel_filter_include", "enabled", "1")
116-
117-
uci:save("firewall")
118-
end
119-
end
121+
end
122+
end
120123
end
121124

122125
function babeld.setup_interface(ifname, args)

0 commit comments

Comments
 (0)