Skip to content

Instantly share code, notes, and snippets.

@Sammy1Am
Created July 13, 2023 19:22
Show Gist options
  • Save Sammy1Am/afd9cbc34a64226df8b967cbed0f98f1 to your computer and use it in GitHub Desktop.
Save Sammy1Am/afd9cbc34a64226df8b967cbed0f98f1 to your computer and use it in GitHub Desktop.
Multicast and TP-Link Relay for nftables on OpenWRT
# It's important to use separate ip/ip6 tables when working with dup (at least for now there are some
# issues it seems using inet
# Create ipv4 relay table
table ip relay4
flush table ip relay4
# This will forward TP-Link discovery packets (useful for ensuring cameras stream locally instead of over
# the Internet, and discovering other IoT devices. Needs to be paired with a firewall rule to accept
# forwards on SOURCE port 9999 from br-lan.21 to br-lan.1
table ip relay4 {
chain prerouting_mangle_tplinkrelay4 {
type filter hook prerouting priority mangle; policy accept;
iifname "br-lan.1" udp dport 9999 ip daddr 255.255.255.255 dup to 255.255.255.255 device br-lan.21
}
}
# mDNS relaying for ipv4 (some implementations expect source address to be on the same subnet, hence sarrd set)
table ip relay4 {
chain prerouting_mangle_mdns4 {
type filter hook prerouting priority mangle; policy accept;
ip daddr 224.0.0.251 iifname br-lan.1 ip saddr set 192.168.21.1 dup to 224.0.0.251 device br-lan.21 notrack
ip daddr 224.0.0.251 iifname br-lan.21 ip saddr set 192.168.7.1 dup to 224.0.0.251 device br-lan.1 notrack
}
}
# Create ipv6 relay table
table ip6 relay6
flush table ip6 relay6
# mDNS relaying for ipv4 (some implementations expect source address to be on the same subnet, hence sarrd set)
table ip6 relay6 {
chain prerouting_mangle_mdns6 {
type filter hook prerouting priority mangle; policy accept;
ip6 daddr ff02::fb iif br-lan.1 ip6 saddr set fd00:0:0:21::1 dup to ff02::fb device br-lan.21 notrack
ip6 daddr ff02::fb iif br-lan.21 ip6 saddr set fd00:0:0:7::1 dup to ff02::fb device br-lan.1 notrack
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment