Presenting FDF - the Flexible Discovery Forwarder

Do you have a home network with multiple VLANs/subnets?

Do you have streaming devices, media servers, or other devices on your network that aren't accessible from other subnets, because they use network protocols that assume they're running on a flat network?

Do you use a device running OpenWrt or a "normal" Linux distribution as the router in your network?

Are you reasonably comfortable building and installing software and configuring the firewall on your Linux-based router?

If so, read on.

Presenting FDF, the Flexible Discovery Forwarder. FDF runs on a Linux system that is connected to multiple networks (as the router in a home network, for example) and forwards the "discovery" packets used by various devices and applications between networks. As it turns out, almost all network discovery protocols designed for a single network can be made to work if the initial discovery packet makes it onto the network to which the "discoveree" is connected.

If you're interested in testing this out, check out the GitHub repository. The main README file includes instructions for building, installing, configuring, and running the service. There's also a separate file that provides instructions for using FDF on OpenWrt.

In order to test the sofware in its current state, you should have a few skills:

  • Comfortable using a Linux command line.

  • Some experience building software from its source code.

  • Understand network concepts - interfaces, VLANs, subnets, protocols, ports, routing, etc.

  • Ability to translate higher level concepts into firewall rules. There are a number of interfaces to the Linux kernel's firewall - legacy iptables, firewalld, OpenWrt's fw3, etc. I am personally only familiar with the legacy iptables interface, so I cannot provide detailed instructions for other interfaces. (Besides which, the required configuration is very network-specific.)

Please report any problems (or just questions that aren't answered in the documentation) as GitHub issues.

1 Like

Why not just provide a build for x64/arm64?